OGrid core – framework-agnostic types, hooks, and utilities for OGrid data tables.
npm install @alaarab/ogrid-coreFramework-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.
``bash`
npm install @alaarab/ogrid-core
- IColumnDef -- Column definition with sorting, filtering, and renderingIDataSource
- -- Server-side data source interfaceIFetchParams
- -- Parameters for fetchPage()IFilters
- -- Unified filter values (text, multi-select, people)UserLike
- -- Minimal user shape for people pickerIColumnFilterDef
- , IColumnMeta, IPageResult, ColumnFilterType
- useOGrid(props, ref) -- Page/sort/filter/visibleColumns + dataGridProps for 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)
- OGridLayout -- Layout structure for OGrid: toolbar row (title, toolbar, columnChooser), grid area, pagination. Accepts containerComponent and gap so Fluent/Material/Radix supply their Container (div or Box).
- 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)
- -- Splits IFilters into multiSelectFilters, textFilters, peopleFilterstoUserLike(user)
- -- Converts a user-like object to UserLikeexportToCsv(items, columns, getValue, filename)
- -- Full CSV exportbuildCsvHeader
- , buildCsvRows, triggerCsvDownload, escapeCsvValue` -- Low-level CSV helpers
MIT