Package Exports
- @alaarab/ogrid-core
Readme
@alaarab/ogrid-core
Framework-agnostic types, hooks, and utilities for OGrid data tables.
This package is the shared foundation used by @alaarab/ogrid-fluent and @alaarab/ogrid-material. You typically don't need to install it directly -- both framework packages re-export everything from core.
Install
npm install @alaarab/ogrid-coreWhat's Included
Types
IColumnDef<T>-- Column definition with sorting, filtering, and renderingIDataSource<T>-- Server-side data source interfaceIFetchParams-- Parameters forfetchPage()IFilters-- Unified filter values (text, multi-select, people)UserLike-- Minimal user shape for people pickerIColumnFilterDef,IColumnMeta,IPageResult,ColumnFilterType
Hooks
useOGrid(props, ref)-- Page/sort/filter/visibleColumns +dataGridPropsfor DataGridTable (used by OGrid wrappers)useDataGridState({ props, wrapperRef })-- Orchestrator for grid state, selection, editing, clipboard, keyboard, fill handle, status baruseFilterOptions(dataSource, fields)-- Loads filter options for multi-select columnsuseColumnHeaderFilterState(params)-- Headless filter popover state (open, temp values, apply/clear, people search)useColumnChooserState({ columns, visibleColumns, onVisibilityChange })-- Column visibility dropdown (open, Escape, select all/clear)useInlineCellEditorState({ value, editorType, onCommit, onCancel })-- Inline cell editor (localValue, keydown, blur/commit)
Components
OGridLayout-- Layout structure for OGrid: toolbar row (title, toolbar, columnChooser), grid area, pagination. AcceptscontainerComponentandgapso Fluent/Material/Radix supply their Container (div or Box).
Utilities
getPaginationViewModel(...)-- Page numbers, ellipsis, start/end item for PaginationControlsgetHeaderFilterConfig(col, input)-- ColumnHeaderFilter props from column + filter/sort stategetCellRenderDescriptor(item, col, rowIndex, colIdx, input)-- Cell mode (editing-inline / editing-popover / display) and flags for DataGridTabletoDataGridFilterProps(filters)-- SplitsIFiltersintomultiSelectFilters,textFilters,peopleFilterstoUserLike(user)-- Converts a user-like object toUserLikeexportToCsv(items, columns, getValue, filename)-- Full CSV exportbuildCsvHeader,buildCsvRows,triggerCsvDownload,escapeCsvValue-- Low-level CSV helpers
License
MIT