comins-table 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-BF1H3EEK.js","names":[],"sources":["../src/column-pinning.ts","../src/core.ts"],"sourcesContent":["export type CominsColumnPinned = \"left\" | \"right\";\n\nexport type CominsColumnPinningBlock = {\n columnIds: readonly string[];\n columnWidths: readonly number[];\n id: string;\n pinned?: CominsColumnPinned;\n};\n\nexport type CominsResolvedPinnedColumn = {\n boundary?: boolean;\n offset?: number;\n pinned?: CominsColumnPinned;\n};\n\nexport type CominsResolvedColumnPinning = {\n columns: ReadonlyMap<string, CominsResolvedPinnedColumn>;\n orderedColumnIds: readonly string[];\n};\n\nexport type CominsColumnPinningSpanFragment = CominsResolvedPinnedColumn & {\n colSpan: number;\n startIndex: number;\n};\n\nexport function normalizeCominsColumnPinned(value: unknown): CominsColumnPinned | undefined {\n return value === \"left\" || value === \"right\" ? value : undefined;\n}\n\nexport function resolveCominsColumnPinning(\n blocks: readonly CominsColumnPinningBlock[],\n containerWidth: number,\n): CominsResolvedColumnPinning {\n const left = blocks.filter((block) => block.pinned === \"left\");\n const center = blocks.filter((block) => block.pinned === undefined);\n const right = blocks.filter((block) => block.pinned === \"right\");\n const demotedLeft: CominsColumnPinningBlock[] = [];\n const demotedRight: CominsColumnPinningBlock[] = [];\n const effectiveLeft = [...left];\n const effectiveRight = [...right];\n const safeContainerWidth = Number.isFinite(containerWidth) ? Math.max(0, containerWidth) : 0;\n const pinnedBudget = safeContainerWidth < 48 ? 0 : safeContainerWidth - 48;\n const totalWidth = (current: readonly CominsColumnPinningBlock[]) =>\n current.reduce(\n (sum, block) =>\n sum + block.columnWidths.reduce((blockSum, width) => blockSum + Math.max(0, width), 0),\n 0,\n );\n\n while (totalWidth(effectiveLeft) + totalWidth(effectiveRight) > pinnedBudget) {\n const leftWidth = totalWidth(effectiveLeft);\n const rightWidth = totalWidth(effectiveRight);\n\n if (leftWidth > rightWidth && effectiveLeft.length > 0) {\n demotedLeft.unshift(effectiveLeft.pop()!);\n } else if (effectiveRight.length > 0) {\n demotedRight.push(effectiveRight.shift()!);\n } else if (effectiveLeft.length > 0) {\n demotedLeft.unshift(effectiveLeft.pop()!);\n } else {\n break;\n }\n }\n\n const effectiveBlocks = [\n ...effectiveLeft,\n ...demotedLeft,\n ...center,\n ...demotedRight,\n ...effectiveRight,\n ];\n const columns = new Map<string, CominsResolvedPinnedColumn>();\n let leftOffset = 0;\n\n for (const block of effectiveLeft) {\n for (let index = 0; index < block.columnIds.length; index += 1) {\n const columnId = block.columnIds[index]!;\n columns.set(columnId, { offset: leftOffset, pinned: \"left\" });\n leftOffset += Math.max(0, block.columnWidths[index] ?? 0);\n }\n }\n\n const lastLeftColumnId = effectiveLeft.at(-1)?.columnIds.at(-1);\n\n if (lastLeftColumnId) {\n columns.set(lastLeftColumnId, { ...columns.get(lastLeftColumnId), boundary: true });\n }\n\n let rightOffset = 0;\n\n for (let blockIndex = effectiveRight.length - 1; blockIndex >= 0; blockIndex -= 1) {\n const block = effectiveRight[blockIndex]!;\n\n for (let columnIndex = block.columnIds.length - 1; columnIndex >= 0; columnIndex -= 1) {\n const columnId = block.columnIds[columnIndex]!;\n columns.set(columnId, { offset: rightOffset, pinned: \"right\" });\n rightOffset += Math.max(0, block.columnWidths[columnIndex] ?? 0);\n }\n }\n\n const firstRightColumnId = effectiveRight[0]?.columnIds[0];\n\n if (firstRightColumnId) {\n columns.set(firstRightColumnId, { ...columns.get(firstRightColumnId), boundary: true });\n }\n\n for (const block of [...demotedLeft, ...center, ...demotedRight]) {\n for (const columnId of block.columnIds) {\n columns.set(columnId, {});\n }\n }\n\n return {\n columns,\n orderedColumnIds: effectiveBlocks.flatMap((block) => [...block.columnIds]),\n };\n}\n\nexport function getCominsPinnedBlockResizeMaxWidth(\n blocks: readonly CominsColumnPinningBlock[],\n resolved: CominsResolvedColumnPinning,\n blockId: string,\n containerWidth: number,\n minimumCenterWidth = 48,\n): number | undefined {\n const target = blocks.find((block) => block.id === blockId);\n\n if (\n !target?.pinned ||\n target.columnIds.length === 0 ||\n target.columnIds.some((columnId) => resolved.columns.get(columnId)?.pinned !== target.pinned)\n ) {\n return undefined;\n }\n\n const otherPinnedWidth = blocks.reduce((total, block) => {\n if (\n block.id === target.id ||\n !block.pinned ||\n block.columnIds.some((columnId) => resolved.columns.get(columnId)?.pinned !== block.pinned)\n ) {\n return total;\n }\n\n return total + block.columnWidths.reduce(\n (blockTotal, width) => blockTotal + (Number.isFinite(width) ? Math.max(0, width) : 0),\n 0,\n );\n }, 0);\n const safeContainerWidth = Number.isFinite(containerWidth) ? Math.max(0, containerWidth) : 0;\n const safeMinimumCenterWidth = Number.isFinite(minimumCenterWidth)\n ? Math.max(0, minimumCenterWidth)\n : 48;\n\n return Math.max(0, safeContainerWidth - safeMinimumCenterWidth - otherPinnedWidth);\n}\n\nexport function getCominsColumnPinningSpanFragments(\n resolved: CominsResolvedColumnPinning,\n startIndex: number,\n colSpan: number,\n): CominsColumnPinningSpanFragment[] {\n const endIndex = Math.min(\n resolved.orderedColumnIds.length,\n Math.max(startIndex, startIndex + Math.max(1, Math.floor(colSpan))),\n );\n const fragments: CominsColumnPinningSpanFragment[] = [];\n\n for (let index = Math.max(0, startIndex); index < endIndex; index += 1) {\n const columnId = resolved.orderedColumnIds[index];\n const pin = columnId ? resolved.columns.get(columnId) ?? {} : {};\n const previous = fragments.at(-1);\n\n if (previous && previous.pinned === pin.pinned) {\n previous.colSpan += 1;\n\n if (pin.pinned === \"right\") {\n previous.offset = pin.offset;\n }\n continue;\n }\n\n fragments.push({\n boundary: pin.boundary,\n colSpan: 1,\n offset: pin.offset,\n pinned: pin.pinned,\n startIndex: index,\n });\n }\n\n return fragments;\n}\n","import type React from \"react\";\n\nimport type { CominsColumnFilterConfig } from \"./filtering\";\nimport { normalizeCominsColumnPinned, type CominsColumnPinned } from \"./column-pinning\";\n\nexport type { CominsColumnPinned } from \"./column-pinning\";\n\nexport type CominsRowId = string | number;\n\nexport type CominsTableDensity = \"comfortable\" | \"compact\" | \"spacious\";\n\nexport type CominsTableTheme = {\n className?: string;\n density?: CominsTableDensity;\n style?: React.CSSProperties;\n};\n\nexport type CominsSortDirection = \"asc\" | \"desc\";\n\nexport type CominsSortState = {\n columnId: string;\n direction: CominsSortDirection;\n};\n\nexport type CominsSortModel = readonly CominsSortState[];\n\nexport type CominsCellFormatParams<TData, TValue = unknown> = {\n column: CominsTableRuntimeColumn<TData, TValue>;\n row: TData;\n rowId: CominsRowId;\n value: TValue;\n};\n\nexport type CominsColumnValueResolver<TData, TValue> =\n | TValue\n | ((params: CominsCellFormatParams<TData, TValue>) => TValue);\n\nexport type CominsComponentPrimitiveValue = string | number | boolean;\nexport type CominsComponentAlign = \"center\" | \"end\" | \"start\";\nexport type CominsComponentDirection = \"left\" | \"right\";\n\nexport type CominsComponentPlacement = {\n align?: CominsComponentAlign;\n direction?: CominsComponentDirection;\n id?: string;\n};\n\nexport type CominsTableComponentOption = {\n disabled?: boolean;\n label: React.ReactNode;\n value: CominsComponentPrimitiveValue;\n};\n\nexport type CominsVirtualListItem<TItem = unknown> = {\n data?: TItem;\n disabled?: boolean;\n label: React.ReactNode;\n searchText?: string;\n value: CominsComponentPrimitiveValue;\n};\n\nexport type CominsTableMenuItem =\n | {\n disabled?: boolean;\n label: React.ReactNode;\n type?: \"item\";\n value: CominsComponentPrimitiveValue;\n }\n | {\n label: React.ReactNode;\n type: \"label\";\n }\n | {\n type: \"divider\";\n };\n\nexport type CominsComponentColumnPayload<TData, TValue = unknown> = {\n definition: CominsTableRuntimeColumn<TData, TValue>;\n field: string;\n id: string;\n index: number;\n label: React.ReactNode;\n};\n\nexport type CominsComponentRowPayload<TData> = {\n data: TData;\n dataIndex: number;\n disabled: boolean;\n id: CominsRowId;\n index: number;\n selected: boolean;\n};\n\nexport type CominsCellComponentPayload<TData, TValue = unknown> = {\n column: CominsComponentColumnPayload<TData, TValue>;\n row: CominsComponentRowPayload<TData>;\n selection: {\n selectedRowCount: number;\n };\n value: TValue;\n};\n\nexport type CominsHeaderComponentPayload<TData, TValue = unknown> = {\n column: CominsComponentColumnPayload<TData, TValue>;\n layout: {\n hidden: boolean;\n width?: number;\n };\n sort: {\n count: number;\n direction: CominsSortDirection | null;\n enabled: boolean;\n priority: number | null;\n };\n};\n\nexport type CominsClipboardGuard<TData, TValue = unknown> =\n | boolean\n | ((params: CominsCellComponentPayload<TData, TValue>) => boolean);\n\nexport type CominsColumnProps<TData, TValue = unknown> = {\n className?: string | ((params: CominsCellComponentPayload<TData, TValue>) => string | undefined);\n copyable?: CominsClipboardGuard<TData, TValue>;\n disabled?: CominsClipboardGuard<TData, TValue>;\n pasteable?: CominsClipboardGuard<TData, TValue>;\n style?: React.CSSProperties | ((params: CominsCellComponentPayload<TData, TValue>) => React.CSSProperties | undefined);\n};\n\nexport type CominsTableComponentProps<TPayload, TProps> = TProps | ((payload: TPayload) => TProps);\n\nexport type CominsTableOptions<TPayload> =\n | CominsTableComponentOption[]\n | ((payload: TPayload) => CominsTableComponentOption[]);\n\nexport type CominsTableMenuItems<TPayload> =\n | CominsTableMenuItem[]\n | ((payload: TPayload) => CominsTableMenuItem[]);\n\nexport type CominsVirtualListItems<TPayload> =\n | Array<CominsVirtualListItem>\n | ((payload: TPayload) => Array<CominsVirtualListItem>);\n\nexport type CominsButtonComponentConfig<TPayload> = {\n onClick?: (payload: TPayload & { event: React.MouseEvent<HTMLButtonElement> }) => void;\n props?: CominsTableComponentProps<TPayload, React.ButtonHTMLAttributes<HTMLButtonElement>>;\n type: \"button\";\n};\n\nexport type CominsInputCommitEvent =\n | React.ChangeEvent<HTMLInputElement>\n | React.FocusEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>;\n\nexport type CominsInputComponentConfig<TPayload> = {\n onChange?: (payload: TPayload & { event: CominsInputCommitEvent; value: string }) => void;\n onValueChange?: (payload: TPayload & { value: string }) => void;\n props?: CominsTableComponentProps<TPayload, React.InputHTMLAttributes<HTMLInputElement>>;\n type: \"input\";\n};\n\nexport type CominsCheckboxComponentConfig<TPayload> = {\n onCheckedChange?: (payload: TPayload & { checked: boolean }) => void;\n props?: CominsTableComponentProps<TPayload, React.InputHTMLAttributes<HTMLInputElement>>;\n type: \"checkbox\";\n};\n\nexport type CominsRadioComponentConfig<TPayload> = {\n onValueChange?: (payload: TPayload & { value: string }) => void;\n options: CominsTableOptions<TPayload>;\n props?: CominsTableComponentProps<\n TPayload,\n React.HTMLAttributes<HTMLDivElement> & { value?: CominsComponentPrimitiveValue }\n >;\n type: \"radio\";\n};\n\nexport type CominsSelectComponentConfig<TPayload> = {\n onValueChange?: (payload: TPayload & { value: string }) => void;\n options: CominsTableOptions<TPayload>;\n props?: CominsTableComponentProps<TPayload, React.SelectHTMLAttributes<HTMLSelectElement>>;\n type: \"select\";\n};\n\nexport type CominsToggleComponentConfig<TPayload> = {\n onCheckedChange?: (payload: TPayload & { checked: boolean }) => void;\n props?: CominsTableComponentProps<\n TPayload,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { checked?: boolean }\n >;\n type: \"toggle\";\n};\n\nexport type CominsProgressComponentConfig<TPayload> = {\n props?: CominsTableComponentProps<\n TPayload,\n React.HTMLAttributes<HTMLDivElement> & { max?: number; value?: number }\n >;\n type: \"progress\";\n};\n\nexport type CominsMenuComponentConfig<TPayload> = {\n items: CominsTableMenuItems<TPayload>;\n onBeforeChange?: (\n payload: TPayload & { event?: Event | React.SyntheticEvent; open: boolean },\n ) => boolean | void;\n onOpenChange?: (payload: TPayload & { event?: Event | React.SyntheticEvent; open: boolean }) => void;\n onSelect?: (\n payload: TPayload & {\n event: React.MouseEvent<HTMLButtonElement>;\n item: Extract<CominsTableMenuItem, { value: CominsComponentPrimitiveValue }>;\n value: CominsComponentPrimitiveValue;\n },\n ) => void;\n props?: CominsTableComponentProps<TPayload, React.ButtonHTMLAttributes<HTMLButtonElement>>;\n type: \"menu\";\n};\n\nexport type CominsVirtualListSearchFilterPayload = {\n item: CominsVirtualListItem;\n itemIndex: number;\n value: string;\n};\n\nexport type CominsVirtualListComponentConfig<TPayload> = {\n items: CominsVirtualListItems<TPayload>;\n onClickItem?: (\n payload: TPayload & {\n event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;\n item: CominsVirtualListItem;\n itemIndex: number;\n value: CominsComponentPrimitiveValue;\n },\n ) => void;\n onContextMenuItem?: (\n payload: TPayload & {\n event: React.MouseEvent<HTMLButtonElement>;\n item: CominsVirtualListItem;\n itemIndex: number;\n value: CominsComponentPrimitiveValue;\n },\n ) => void;\n props?: CominsTableComponentProps<\n TPayload,\n React.HTMLAttributes<HTMLDivElement> & {\n height?: number | string;\n itemHeight?: number;\n limit?: number;\n more?: boolean;\n searchable?: boolean;\n }\n >;\n searchFilter?: (payload: CominsVirtualListSearchFilterPayload) => boolean;\n type: \"virtual-list\";\n};\n\nexport type CominsHeaderComponentConfig<TData, TValue = unknown> =\n | CominsButtonComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsInputComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsCheckboxComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsRadioComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsSelectComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsToggleComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsProgressComponentConfig<CominsHeaderComponentPayload<TData, TValue>>\n | CominsMenuComponentConfig<CominsHeaderComponentPayload<TData, TValue>>;\n\nexport type CominsCellComponentConfig<TData, TValue = unknown> =\n | CominsButtonComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsInputComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsCheckboxComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsRadioComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsSelectComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsToggleComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsProgressComponentConfig<CominsCellComponentPayload<TData, TValue>>\n | CominsVirtualListComponentConfig<CominsCellComponentPayload<TData, TValue>>;\n\nexport type CominsHeaderComponent<TData, TValue = unknown> = CominsComponentPlacement &\n CominsHeaderComponentConfig<TData, TValue>;\n\nexport type CominsCellComponent<TData, TValue = unknown> = CominsComponentPlacement &\n CominsCellComponentConfig<TData, TValue>;\n\nexport type CominsTableCellConfig<TData, TValue = unknown> = {\n components?: Array<CominsCellComponent<TData, TValue>>;\n format?: (params: CominsCellComponentPayload<TData, TValue>) => React.ReactNode;\n props?:\n | CominsColumnProps<TData, TValue>\n | ((params: CominsCellComponentPayload<TData, TValue>) => CominsColumnProps<TData, TValue>);\n renderer?: (params: CominsCellComponentPayload<TData, TValue>) => React.ReactNode;\n tooltip?: string | ((params: CominsCellComponentPayload<TData, TValue>) => React.ReactNode);\n};\n\nexport type CominsTableHeaderConfig<TData, TValue = unknown> = {\n components?: Array<CominsHeaderComponent<TData, TValue>>;\n props?: React.ThHTMLAttributes<HTMLTableCellElement>;\n renderer?: (params: CominsHeaderComponentPayload<TData, TValue>) => React.ReactNode;\n};\n\nexport type CominsTableColumn<TData, TValue = unknown> = {\n cell?: CominsTableCellConfig<TData, TValue>;\n field: string;\n filter?: CominsColumnFilterConfig<TData, TValue>;\n header?: CominsTableHeaderConfig<TData, TValue>;\n hidden?: boolean;\n id?: string;\n label: React.ReactNode;\n lockPosition?: boolean;\n maxWidth?: number;\n minWidth?: number;\n pinned?: CominsColumnPinned;\n sort?: boolean | ((left: TValue, right: TValue, leftRow: TData, rightRow: TData) => number);\n width?: number;\n};\n\nexport type CominsTableColumnGroup = {\n children: string[];\n hidden?: boolean;\n id: string;\n label: React.ReactNode;\n lockPosition?: boolean;\n pinned?: CominsColumnPinned;\n};\n\nexport type CominsTableRuntimeColumn<TData, TValue = unknown> = Omit<\n CominsTableColumn<TData, TValue>,\n \"id\"\n> & {\n id: string;\n};\n\nexport type CominsTableRuntimeColumnGroup = Omit<CominsTableColumnGroup, \"children\"> & {\n children: string[];\n};\n\nexport type CominsEventColumn<TData, TValue = unknown> = {\n definition: CominsTableRuntimeColumn<TData, TValue>;\n field: string;\n id: string;\n index: number;\n label: React.ReactNode;\n};\n\nexport type CominsColumnRuntimeState = {\n hidden?: boolean;\n pinned?: CominsColumnPinned;\n width?: number;\n};\n\nexport type CominsColumnGroupRuntimeState = {\n hidden?: boolean;\n pinned?: CominsColumnPinned;\n};\n\nexport type CominsColumnLayout = {\n columns: Record<string, CominsColumnRuntimeState>;\n groups?: Record<string, CominsColumnGroupRuntimeState>;\n order: string[];\n};\n\nexport type CominsPaginationState = {\n pageIndex: number;\n pageSize: number;\n};\n\nexport type CominsSelectionState = {\n cell: CominsCellAddress | null;\n range: CominsCellRange | null;\n rowIds: CominsRowId[];\n};\n\nexport type CominsTableState<TData> = {\n columnOrder: string[];\n columnGroups: CominsTableRuntimeColumnGroup[];\n columnGroupState: Record<string, CominsColumnGroupRuntimeState>;\n columns: Array<CominsTableRuntimeColumn<TData>>;\n columnState: Record<string, CominsColumnRuntimeState>;\n getRowId: (row: TData, index: number) => CominsRowId;\n pagination: CominsPaginationState;\n rowIds: CominsRowId[];\n rows: TData[];\n selection: CominsSelectionState;\n showHeader: boolean;\n sort: CominsSortState | null;\n sortModel: CominsSortModel;\n theme: CominsTableTheme;\n};\n\nexport type CominsTableStateInput<TData> = {\n columnLayout?: Partial<CominsColumnLayout>;\n columnGroups?: ReadonlyArray<CominsTableColumnGroup>;\n columns: ReadonlyArray<CominsTableColumn<TData>>;\n getRowId?: (row: TData, index: number) => CominsRowId;\n pagination?: Partial<CominsPaginationState>;\n rows: readonly TData[];\n showHeader?: boolean;\n sort?: CominsSortState | null;\n sortModel?: CominsSortModel;\n theme?: CominsTableTheme;\n};\n\nexport type CominsRowUpdate<TData> = {\n id: CominsRowId;\n patch: Partial<TData> | ((row: TData) => TData);\n};\n\nexport type CominsVirtualRowsOptions = {\n overscan?: number;\n rowHeight: number;\n scrollTop: number;\n viewportHeight: number;\n};\n\nexport type CominsVirtualRows<TData> = {\n bottomSpacerHeight: number;\n endIndex: number;\n rows: TData[];\n startIndex: number;\n topSpacerHeight: number;\n totalHeight: number;\n};\n\nexport type CominsHeaderColumnCell<TData> = {\n colSpan: 1;\n column: CominsTableRuntimeColumn<TData>;\n columnId: string;\n groupId?: string;\n kind: \"column\";\n rowSpan: 1 | 2;\n};\n\nexport type CominsHeaderGroupCell = {\n colSpan: number;\n group: CominsTableRuntimeColumnGroup;\n groupId: string;\n kind: \"group\";\n rowSpan: 1;\n};\n\nexport type CominsHeaderCell<TData> = CominsHeaderColumnCell<TData> | CominsHeaderGroupCell;\n\nexport type CominsCopiedRow<TData> = {\n kind: \"row\";\n row: TData;\n text: string;\n};\n\nexport type CominsCopiedCell = {\n kind: \"cell\";\n text: string;\n value: unknown;\n};\n\nexport type CominsCopiedCellRangeCell = {\n columnId: string;\n text: string;\n value: unknown;\n} | null;\n\nexport type CominsCopiedCellRange = {\n kind: \"cell-range\";\n rows: CominsCopiedCellRangeCell[][];\n text: string;\n};\n\nexport type CominsExportFormat = \"csv\" | \"json\";\n\nexport type CominsExportValueSource = \"formatted\" | \"raw\";\n\nexport type CominsExportColumn<TData> = {\n format?: (row: TData, rowIndex: number) => unknown;\n id?: string;\n label?: string;\n value: (row: TData, rowIndex: number) => unknown;\n};\n\nexport type CominsExportRowsOptions<TData> = {\n columnOrder?: string[];\n columns: Array<CominsExportColumn<TData>>;\n headerOverrides?: Record<string, string>;\n rows: readonly TData[];\n valueSource?: CominsExportValueSource;\n};\n\nexport type CominsCellAddress = {\n columnId: string;\n rowId: CominsRowId;\n};\n\nexport type CominsCellRange = {\n anchor: CominsCellAddress;\n focus: CominsCellAddress;\n};\n\nexport type CominsPasteRowOptions<TData> =\n | {\n getNewRowId?: (row: TData) => CominsRowId;\n mode: \"append\";\n }\n | {\n getPastedRowId?: (row: TData) => CominsRowId;\n mode: \"insert-after\";\n targetRowId: CominsRowId;\n }\n | {\n mode: \"overwrite\" | \"replace\";\n targetRowId: CominsRowId;\n };\n\nexport type CominsRowSelectionOptions = {\n multi?: boolean;\n toggle?: boolean;\n};\n\nexport type CominsFillCellRangeOptions = {\n source: CominsCellAddress;\n target: CominsCellRange;\n};\n\nconst COMINS_MIN_COLUMN_WIDTH = 88;\n\nfunction defaultGetRowId<TData>(_row: TData, index: number) {\n return index;\n}\n\nfunction useRowsReference<TData>(rows: readonly TData[]) {\n return rows as TData[];\n}\n\nfunction normalizeColumns<TData>(columns: ReadonlyArray<CominsTableColumn<TData>>) {\n return columns.map((column) => ({\n ...column,\n id: column.id ?? column.field,\n }));\n}\n\nfunction normalizeColumnGroups<TData>(\n columns: ReadonlyArray<CominsTableRuntimeColumn<TData>>,\n columnGroups: ReadonlyArray<CominsTableColumnGroup> = [],\n) {\n const knownColumnIds = new Set(columns.map((column) => column.id));\n const usedColumnIds = new Set<string>();\n const usedGroupIds = new Set<string>();\n const groups: CominsTableRuntimeColumnGroup[] = [];\n\n for (const group of columnGroups) {\n if (usedGroupIds.has(group.id)) {\n continue;\n }\n\n const children = group.children.filter((columnId) => {\n if (!knownColumnIds.has(columnId) || usedColumnIds.has(columnId)) {\n return false;\n }\n\n usedColumnIds.add(columnId);\n return true;\n });\n\n usedGroupIds.add(group.id);\n\n if (children.length === 0) {\n continue;\n }\n\n groups.push({\n ...group,\n children,\n });\n }\n\n return groups;\n}\n\nfunction normalizeColumnState<TData>(\n columns: ReadonlyArray<CominsTableRuntimeColumn<TData>>,\n layout?: Partial<CominsColumnLayout>,\n) {\n const state: Record<string, CominsColumnRuntimeState> = {};\n\n for (const column of columns) {\n state[column.id] = {\n hidden: layout?.columns?.[column.id]?.hidden ?? column.hidden,\n pinned: normalizeCominsColumnPinned(\n layout === undefined ? column.pinned : layout.columns?.[column.id]?.pinned,\n ),\n width: layout?.columns?.[column.id]?.width ?? column.width,\n };\n }\n\n return state;\n}\n\nfunction normalizeColumnGroupState(\n columnGroups: ReadonlyArray<CominsTableRuntimeColumnGroup>,\n layout?: Partial<CominsColumnLayout>,\n) {\n const state: Record<string, CominsColumnGroupRuntimeState> = {};\n\n for (const group of columnGroups) {\n state[group.id] = {\n hidden: layout?.groups?.[group.id]?.hidden ?? group.hidden,\n pinned: normalizeCominsColumnPinned(\n layout === undefined ? group.pinned : layout.groups?.[group.id]?.pinned,\n ),\n };\n }\n\n return state;\n}\n\nfunction getColumnGroupIdMap(columnGroups: ReadonlyArray<CominsTableRuntimeColumnGroup>) {\n const map = new Map<string, string>();\n\n for (const group of columnGroups) {\n for (const columnId of group.children) {\n map.set(columnId, group.id);\n }\n }\n\n return map;\n}\n\nfunction findColumnGroupById(\n columnGroups: ReadonlyArray<CominsTableRuntimeColumnGroup>,\n groupId: string,\n) {\n return columnGroups.find((group) => group.id === groupId);\n}\n\nfunction normalizeColumnOrder<TData>(\n columns: ReadonlyArray<CominsTableRuntimeColumn<TData>>,\n layout?: Partial<CominsColumnLayout>,\n columnGroups: ReadonlyArray<CominsTableRuntimeColumnGroup> = [],\n) {\n const knownIds = new Set(columns.map((column) => column.id));\n const ordered = (layout?.order ?? []).filter((id) => knownIds.has(id));\n const missing = columns.map((column) => column.id).filter((id) => !ordered.includes(id));\n const flatOrder = [...ordered, ...missing];\n const columnById = new Map(columns.map((column) => [column.id, column]));\n const groupIdByColumnId = getColumnGroupIdMap(columnGroups);\n const groupById = new Map(columnGroups.map((group) => [group.id, group]));\n const isColumnPinned = (columnId: string) =>\n !groupIdByColumnId.has(columnId) &&\n normalizeCominsColumnPinned(\n layout === undefined\n ? columnById.get(columnId)?.pinned\n : layout.columns?.[columnId]?.pinned,\n ) !== undefined;\n const isGroupPinned = (groupId: string) =>\n normalizeCominsColumnPinned(\n layout === undefined\n ? groupById.get(groupId)?.pinned\n : layout.groups?.[groupId]?.pinned,\n ) !== undefined;\n type ColumnOrderEntity = {\n columnIds: string[];\n key: string;\n locked: boolean;\n };\n const createEntities = (order: readonly string[]) => {\n const emittedGroups = new Set<string>();\n const entities: ColumnOrderEntity[] = [];\n\n for (const columnId of order) {\n const groupId = groupIdByColumnId.get(columnId);\n\n if (!groupId) {\n entities.push({\n columnIds: [columnId],\n key: `column:${columnId}`,\n locked:\n columnById.get(columnId)?.lockPosition === true ||\n isColumnPinned(columnId),\n });\n continue;\n }\n\n if (emittedGroups.has(groupId)) {\n continue;\n }\n\n const group = groupById.get(groupId);\n\n if (!group) {\n entities.push({\n columnIds: [columnId],\n key: `column:${columnId}`,\n locked:\n columnById.get(columnId)?.lockPosition === true ||\n isColumnPinned(columnId),\n });\n continue;\n }\n\n const groupChildrenInOrder = order.filter((currentId) => group.children.includes(currentId));\n entities.push({\n columnIds: groupChildrenInOrder,\n key: `group:${groupId}`,\n locked:\n group.lockPosition ||\n isGroupPinned(groupId) ||\n groupChildrenInOrder.some((currentId) => columnById.get(currentId)?.lockPosition === true),\n });\n emittedGroups.add(groupId);\n }\n\n return entities;\n };\n const declaredEntities = createEntities(columns.map((column) => column.id));\n const proposedEntities = createEntities(flatOrder);\n const declaredEntityByKey = new Map(declaredEntities.map((entity) => [entity.key, entity]));\n const declaredSegmentByKey = new Map<string, number>();\n let segmentCount = 0;\n\n for (const entity of declaredEntities) {\n declaredSegmentByKey.set(entity.key, segmentCount);\n\n if (entity.locked) {\n segmentCount += 1;\n }\n }\n\n const movableEntitiesBySegment = Array.from(\n { length: segmentCount + 1 },\n () => [] as ColumnOrderEntity[],\n );\n const proposedEntityByKey = new Map(proposedEntities.map((entity) => [entity.key, entity]));\n\n for (const entity of proposedEntities) {\n const declaredEntity = declaredEntityByKey.get(entity.key);\n\n if (!declaredEntity || declaredEntity.locked) {\n continue;\n }\n\n const segment = declaredSegmentByKey.get(entity.key) ?? 0;\n movableEntitiesBySegment[segment]?.push(entity);\n }\n\n const normalizedEntities: ColumnOrderEntity[] = [];\n let currentSegment = 0;\n\n for (const entity of declaredEntities) {\n if (!entity.locked) {\n continue;\n }\n\n normalizedEntities.push(...(movableEntitiesBySegment[currentSegment] ?? []));\n normalizedEntities.push(proposedEntityByKey.get(entity.key) ?? entity);\n currentSegment += 1;\n }\n\n normalizedEntities.push(...(movableEntitiesBySegment[currentSegment] ?? []));\n\n return normalizedEntities.flatMap((entity) => {\n const declaredEntity = declaredEntityByKey.get(entity.key);\n\n if (!declaredEntity || entity.columnIds.length === 1) {\n return entity.columnIds;\n }\n\n const lockedChildIds = new Set(\n declaredEntity.columnIds.filter((columnId) => columnById.get(columnId)?.lockPosition),\n );\n\n if (lockedChildIds.size === 0) {\n return entity.columnIds;\n }\n\n const declaredChildSegmentById = new Map<string, number>();\n let childSegmentCount = 0;\n\n for (const columnId of declaredEntity.columnIds) {\n declaredChildSegmentById.set(columnId, childSegmentCount);\n\n if (lockedChildIds.has(columnId)) {\n childSegmentCount += 1;\n }\n }\n\n const movableChildrenBySegment = Array.from(\n { length: childSegmentCount + 1 },\n () => [] as string[],\n );\n\n for (const columnId of entity.columnIds) {\n if (lockedChildIds.has(columnId)) {\n continue;\n }\n\n const segment = declaredChildSegmentById.get(columnId) ?? 0;\n movableChildrenBySegment[segment]?.push(columnId);\n }\n\n const normalizedChildren: string[] = [];\n let currentChildSegment = 0;\n\n for (const columnId of declaredEntity.columnIds) {\n if (!lockedChildIds.has(columnId)) {\n continue;\n }\n\n normalizedChildren.push(...(movableChildrenBySegment[currentChildSegment] ?? []));\n normalizedChildren.push(columnId);\n currentChildSegment += 1;\n }\n\n normalizedChildren.push(...(movableChildrenBySegment[currentChildSegment] ?? []));\n return normalizedChildren;\n });\n}\n\nfunction createEmptySelection(): CominsSelectionState {\n return {\n cell: null,\n range: null,\n rowIds: [],\n };\n}\n\nfunction areRowIdsEqual(left: readonly CominsRowId[], right: readonly CominsRowId[]) {\n return left.length === right.length && left.every((id, index) => id === right[index]);\n}\n\nfunction withRows<TData>(\n state: CominsTableState<TData>,\n rows: TData[],\n options: { resetSelection?: boolean } = {},\n): CominsTableState<TData> {\n const rowIds = rows.map(state.getRowId);\n const shouldResetSelection = options.resetSelection === true || !areRowIdsEqual(state.rowIds, rowIds);\n\n return {\n ...state,\n rowIds,\n rows,\n selection: shouldResetSelection ? createEmptySelection() : state.selection,\n };\n}\n\nfunction findRowIndex<TData>(state: CominsTableState<TData>, rowId: CominsRowId) {\n return state.rowIds.findIndex((id) => id === rowId);\n}\n\nfunction findColumn<TData>(state: CominsTableState<TData>, columnId: string) {\n return state.columns.find((column) => column.id === columnId);\n}\n\nfunction areSortModelsEqual(left: CominsSortModel, right: CominsSortModel) {\n return (\n left.length === right.length &&\n left.every(\n (rule, index) => rule.columnId === right[index]?.columnId && rule.direction === right[index]?.direction,\n )\n );\n}\n\nfunction normalizeSortModel<TData>(\n columns: ReadonlyArray<CominsTableRuntimeColumn<TData>>,\n sortModel: CominsSortModel,\n): CominsSortState[] {\n const sortableColumnIds = new Set(columns.filter((column) => Boolean(column.sort)).map((column) => column.id));\n const usedColumnIds = new Set<string>();\n const normalized: CominsSortState[] = [];\n\n for (const rule of sortModel) {\n if (\n !sortableColumnIds.has(rule.columnId) ||\n usedColumnIds.has(rule.columnId) ||\n (rule.direction !== \"asc\" && rule.direction !== \"desc\")\n ) {\n continue;\n }\n\n usedColumnIds.add(rule.columnId);\n normalized.push({ columnId: rule.columnId, direction: rule.direction });\n }\n\n return normalized;\n}\n\nfunction getNestedFieldValue(row: unknown, field: string): unknown {\n return field.split(\".\").reduce<unknown>((value, key) => {\n if (value == null || typeof value !== \"object\") {\n return undefined;\n }\n\n return (value as Record<string, unknown>)[key];\n }, row);\n}\n\nfunction setNestedFieldValue<TData>(row: TData, field: string, value: unknown): TData {\n if (!row || typeof row !== \"object\") {\n return row;\n }\n\n const keys = field.split(\".\");\n const [firstKey] = keys;\n\n if (!firstKey) {\n return row;\n }\n\n if (keys.length === 1) {\n return { ...row, [firstKey]: value };\n }\n\n const root = { ...(row as Record<string, unknown>) };\n let current: Record<string, unknown> = root;\n\n keys.slice(0, -1).forEach((key, index) => {\n const nextKey = keys[index + 1];\n const existing = current[key];\n const next =\n existing && typeof existing === \"object\" && !Array.isArray(existing)\n ? { ...(existing as Record<string, unknown>) }\n : {};\n\n current[key] = next;\n\n if (nextKey) {\n current = next;\n }\n });\n\n current[keys.at(-1)!] = value;\n\n return root as TData;\n}\n\nfunction createCellComponentParams<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n): CominsCellComponentPayload<TData> {\n const rowIndex = state.rowIds.indexOf(rowId);\n\n return {\n column: {\n definition: column,\n field: column.field,\n id: column.id,\n index: state.columns.findIndex((current) => current.id === column.id),\n label: column.label,\n },\n row: {\n data: row,\n dataIndex: rowIndex,\n disabled: false,\n id: rowId,\n index: rowIndex,\n selected: state.selection.rowIds.includes(rowId),\n },\n selection: {\n selectedRowCount: state.selection.rowIds.length,\n },\n value: getCominsCellValue(state, row, column.id),\n };\n}\n\nfunction resolveGuard<TData>(\n guard: CominsClipboardGuard<TData> | undefined,\n params: CominsCellComponentPayload<TData>,\n) {\n if (guard === undefined) {\n return true;\n }\n\n return typeof guard === \"boolean\" ? guard : guard(params);\n}\n\nfunction resolveCellProps<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n) {\n const params = createCellComponentParams(state, row, rowId, column);\n const props = column.cell?.props;\n\n return typeof props === \"function\" ? props(params) : props;\n}\n\nfunction getCellRangeBounds<TData>(\n state: CominsTableState<TData>,\n range: CominsCellRange,\n rowIds: readonly CominsRowId[] = state.rowIds,\n) {\n const visibleColumns = getCominsVisibleColumns(state);\n const anchorRowIndex = rowIds.indexOf(range.anchor.rowId);\n const focusRowIndex = rowIds.indexOf(range.focus.rowId);\n const anchorColumnIndex = visibleColumns.findIndex((column) => column.id === range.anchor.columnId);\n const focusColumnIndex = visibleColumns.findIndex((column) => column.id === range.focus.columnId);\n\n if (anchorRowIndex < 0 || focusRowIndex < 0 || anchorColumnIndex < 0 || focusColumnIndex < 0) {\n return null;\n }\n\n return {\n columnEnd: Math.max(anchorColumnIndex, focusColumnIndex),\n columnStart: Math.min(anchorColumnIndex, focusColumnIndex),\n rowEnd: Math.max(anchorRowIndex, focusRowIndex),\n rowIds,\n rowStart: Math.min(anchorRowIndex, focusRowIndex),\n visibleColumns,\n };\n}\n\nfunction assignGeneratedRowId<TData>(row: TData, rowId: CominsRowId) {\n if (row && typeof row === \"object\" && \"id\" in row) {\n return { ...row, id: rowId } as TData;\n }\n\n return row;\n}\n\nfunction createCopiedRowId(existingIds: readonly CominsRowId[], sourceRowId: CominsRowId) {\n let index = 1;\n let nextId = `${String(sourceRowId)}-copy-${index}`;\n const ids = new Set(existingIds.map(String));\n\n while (ids.has(nextId)) {\n index += 1;\n nextId = `${String(sourceRowId)}-copy-${index}`;\n }\n\n return nextId;\n}\n\nfunction canUseCellClipboard<TData>(\n state: CominsTableState<TData>,\n row: TData | undefined,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n kind: \"copy\" | \"paste\",\n) {\n if (row === undefined) {\n return false;\n }\n\n const params = createCellComponentParams(state, row, rowId, column);\n const props = resolveCellProps(state, row, rowId, column);\n\n if (props?.disabled !== undefined && resolveGuard(props.disabled, params) === true) {\n return false;\n }\n\n return resolveGuard(kind === \"copy\" ? props?.copyable : props?.pasteable, params);\n}\n\nfunction defaultCompare(left: unknown, right: unknown) {\n if (typeof left === \"number\" && typeof right === \"number\") {\n return left - right;\n }\n\n return String(left ?? \"\").localeCompare(String(right ?? \"\"));\n}\n\nexport function createCominsTableState<TData>({\n columnLayout,\n columnGroups,\n columns,\n getRowId = defaultGetRowId,\n pagination,\n rows,\n showHeader = true,\n sort = null,\n sortModel,\n theme = {},\n}: CominsTableStateInput<TData>): CominsTableState<TData> {\n const nextRows = useRowsReference(rows);\n const nextColumns = normalizeColumns(columns);\n const nextColumnGroups = normalizeColumnGroups(nextColumns, columnGroups);\n const nextSortModel = normalizeSortModel(nextColumns, sortModel ?? (sort ? [sort] : []));\n\n return {\n columnOrder: normalizeColumnOrder(nextColumns, columnLayout, nextColumnGroups),\n columnGroups: nextColumnGroups,\n columnGroupState: normalizeColumnGroupState(nextColumnGroups, columnLayout),\n columns: nextColumns,\n columnState: normalizeColumnState(nextColumns, columnLayout),\n getRowId,\n pagination: {\n pageIndex: pagination?.pageIndex ?? 0,\n pageSize: pagination?.pageSize ?? Math.max(nextRows.length, 1),\n },\n rowIds: nextRows.map(getRowId),\n rows: nextRows,\n selection: createEmptySelection(),\n showHeader,\n sort: nextSortModel[0] ?? null,\n sortModel: nextSortModel,\n theme,\n };\n}\n\nexport function queryCominsRows<TData>(\n state: CominsTableState<TData>,\n predicate?: (row: TData, index: number) => boolean,\n) {\n return predicate ? state.rows.filter(predicate) : [...state.rows];\n}\n\nexport function replaceCominsRows<TData>(state: CominsTableState<TData>, rows: readonly TData[]) {\n return withRows(state, useRowsReference(rows), { resetSelection: true });\n}\n\nexport function addCominsRows<TData>(state: CominsTableState<TData>, rows: readonly TData[]) {\n return withRows(state, [...state.rows, ...rows]);\n}\n\nexport function updateCominsRows<TData>(\n state: CominsTableState<TData>,\n updates: ReadonlyArray<CominsRowUpdate<TData>>,\n) {\n const updateMap = new Map(updates.map((update) => [update.id, update.patch]));\n const rows = state.rows.map((row, index) => {\n const rowId = state.rowIds[index];\n const patch = rowId === undefined ? undefined : updateMap.get(rowId);\n\n if (!patch) {\n return row;\n }\n\n return typeof patch === \"function\" ? patch(row) : { ...row, ...patch };\n });\n\n return withRows(state, rows);\n}\n\nexport function deleteCominsRows<TData>(state: CominsTableState<TData>, rowIds: readonly CominsRowId[]) {\n const deleteIds = new Set(rowIds);\n\n return withRows(\n state,\n state.rows.filter((_row, index) => {\n const rowId = state.rowIds[index];\n\n return rowId === undefined || !deleteIds.has(rowId);\n }),\n );\n}\n\nexport function setCominsTableTheme<TData>(state: CominsTableState<TData>, theme: CominsTableTheme) {\n return {\n ...state,\n theme: { ...state.theme, ...theme },\n };\n}\n\nexport function setCominsHeaderVisible<TData>(state: CominsTableState<TData>, showHeader: boolean) {\n return {\n ...state,\n showHeader,\n };\n}\n\nexport function setCominsPagination<TData>(\n state: CominsTableState<TData>,\n pagination: Partial<CominsPaginationState>,\n) {\n return {\n ...state,\n pagination: {\n pageIndex: pagination.pageIndex ?? state.pagination.pageIndex,\n pageSize: pagination.pageSize ?? state.pagination.pageSize,\n },\n };\n}\n\nexport function setCominsSortState<TData>(\n state: CominsTableState<TData>,\n sort: CominsSortState | null,\n) {\n return setCominsSortModel(state, sort ? [sort] : []);\n}\n\nexport function setCominsSortModel<TData>(\n state: CominsTableState<TData>,\n sortModel: CominsSortModel,\n) {\n const nextSortModel = normalizeSortModel(state.columns, sortModel);\n const nextSort = nextSortModel[0] ?? null;\n\n if (areSortModelsEqual(state.sortModel, nextSortModel)) {\n return state;\n }\n\n return {\n ...state,\n sort: nextSort,\n sortModel: nextSortModel,\n };\n}\n\nexport function clearCominsSortState<TData>(state: CominsTableState<TData>) {\n return setCominsSortModel(state, []);\n}\n\nexport function setCominsColumnWidth<TData>(\n state: CominsTableState<TData>,\n columnId: string,\n width: number,\n) {\n return {\n ...state,\n columnState: {\n ...state.columnState,\n [columnId]: {\n ...state.columnState[columnId],\n width,\n },\n },\n };\n}\n\nexport function setCominsColumnHidden<TData>(\n state: CominsTableState<TData>,\n columnId: string,\n hidden: boolean,\n) {\n return {\n ...state,\n columnState: {\n ...state.columnState,\n [columnId]: {\n ...state.columnState[columnId],\n hidden,\n },\n },\n };\n}\n\nexport function setCominsColumnGroupHidden<TData>(\n state: CominsTableState<TData>,\n groupId: string,\n hidden: boolean,\n) {\n if (!findColumnGroupById(state.columnGroups, groupId)) {\n return state;\n }\n\n return {\n ...state,\n columnGroupState: {\n ...state.columnGroupState,\n [groupId]: {\n ...state.columnGroupState[groupId],\n hidden,\n },\n },\n };\n}\n\nfunction getColumnWidth<TData>(\n state: CominsTableState<TData>,\n column: CominsTableRuntimeColumn<TData>,\n) {\n return state.columnState[column.id]?.width ?? column.width ?? 100;\n}\n\nfunction getColumnMinWidth<TData>(column: CominsTableRuntimeColumn<TData>) {\n return Math.max(COMINS_MIN_COLUMN_WIDTH, column.minWidth ?? COMINS_MIN_COLUMN_WIDTH);\n}\n\nfunction getColumnMaxWidth<TData>(column: CominsTableRuntimeColumn<TData>) {\n return column.maxWidth ?? Number.POSITIVE_INFINITY;\n}\n\nfunction clampWidth(width: number, minWidth: number, maxWidth: number) {\n return Math.min(maxWidth, Math.max(minWidth, width));\n}\n\nfunction distributeColumnGroupWidths<TData>(\n state: CominsTableState<TData>,\n columns: Array<CominsTableRuntimeColumn<TData>>,\n targetWidth: number,\n) {\n const widths = columns.map((column) =>\n clampWidth(getColumnWidth(state, column), getColumnMinWidth(column), getColumnMaxWidth(column)),\n );\n const active = new Set(columns.map((_column, index) => index));\n const minWidths = columns.map(getColumnMinWidth);\n const maxWidths = columns.map(getColumnMaxWidth);\n const boundedTargetWidth = clampWidth(\n targetWidth,\n minWidths.reduce((sum, width) => sum + width, 0),\n maxWidths.reduce((sum, width) => sum + width, 0),\n );\n\n while (active.size > 0) {\n const currentTotal = widths.reduce((sum, width) => sum + width, 0);\n const delta = boundedTargetWidth - currentTotal;\n\n if (Math.abs(delta) < 0.001) {\n break;\n }\n\n const activeIndexes = [...active];\n const activeWeight = activeIndexes.reduce((sum, index) => sum + Math.max(widths[index] ?? 0, 0), 0);\n let clamped = false;\n\n for (const index of activeIndexes) {\n const width = widths[index] ?? 0;\n const weight = activeWeight > 0 ? width / activeWeight : 1 / activeIndexes.length;\n const nextWidth = width + delta * weight;\n const clampedWidth = clampWidth(nextWidth, minWidths[index] ?? 0, maxWidths[index] ?? Number.POSITIVE_INFINITY);\n\n widths[index] = clampedWidth;\n\n if (Math.abs(clampedWidth - nextWidth) > 0.001) {\n active.delete(index);\n clamped = true;\n }\n }\n\n if (!clamped) {\n break;\n }\n }\n\n return widths;\n}\n\nexport function setCominsColumnGroupWidth<TData>(\n state: CominsTableState<TData>,\n groupId: string,\n width: number,\n) {\n const group = findColumnGroupById(state.columnGroups, groupId);\n\n if (!group || state.columnGroupState[group.id]?.hidden === true) {\n return state;\n }\n\n const childColumns = group.children\n .map((columnId) => findColumn(state, columnId))\n .filter((column): column is CominsTableRuntimeColumn<TData> => Boolean(column))\n .filter((column) => state.columnState[column.id]?.hidden !== true);\n\n if (childColumns.length === 0) {\n return state;\n }\n\n const widths = distributeColumnGroupWidths(state, childColumns, width);\n const columnState = { ...state.columnState };\n\n childColumns.forEach((column, index) => {\n columnState[column.id] = {\n ...columnState[column.id],\n width: widths[index],\n };\n });\n\n return {\n ...state,\n columnState,\n };\n}\n\nfunction doesColumnMoveChangeLockedPositions<TData>(\n state: CominsTableState<TData>,\n nextOrder: readonly string[],\n) {\n const currentIndexByColumnId = new Map(\n state.columnOrder.map((columnId, index) => [columnId, index] as const),\n );\n const nextIndexByColumnId = new Map(\n nextOrder.map((columnId, index) => [columnId, index] as const),\n );\n\n const groupIdByColumnId = getColumnGroupIdMap(state.columnGroups);\n\n for (const column of state.columns) {\n if (\n (\n column.lockPosition ||\n (!groupIdByColumnId.has(column.id) && state.columnState[column.id]?.pinned !== undefined)\n ) &&\n currentIndexByColumnId.get(column.id) !== nextIndexByColumnId.get(column.id)\n ) {\n return true;\n }\n }\n\n for (const group of state.columnGroups) {\n if (!group.lockPosition && state.columnGroupState[group.id]?.pinned === undefined) {\n continue;\n }\n\n const currentPositions = group.children\n .map((columnId) => currentIndexByColumnId.get(columnId))\n .filter((index): index is number => index !== undefined)\n .sort((left, right) => left - right);\n const nextPositions = group.children\n .map((columnId) => nextIndexByColumnId.get(columnId))\n .filter((index): index is number => index !== undefined)\n .sort((left, right) => left - right);\n\n if (\n currentPositions.length !== nextPositions.length ||\n currentPositions.some((index, position) => index !== nextPositions[position])\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function moveCominsColumn<TData>(\n state: CominsTableState<TData>,\n columnId: string,\n targetIndex: number,\n) {\n const sourceColumn = findColumn(state, columnId);\n const sourceGroupId = getColumnGroupIdMap(state.columnGroups).get(columnId);\n\n if (\n !sourceColumn ||\n sourceColumn.lockPosition ||\n (!sourceGroupId && state.columnState[columnId]?.pinned !== undefined)\n ) {\n return state;\n }\n\n const groupIdByColumnId = getColumnGroupIdMap(state.columnGroups);\n\n const current = state.columnOrder.filter((id) => id !== columnId);\n\n if (current.length === state.columnOrder.length) {\n return state;\n }\n\n const nextIndex = Math.max(0, Math.min(targetIndex, current.length));\n\n if (sourceGroupId) {\n const sourceGroup = findColumnGroupById(state.columnGroups, sourceGroupId);\n\n if (!sourceGroup) {\n return state;\n }\n\n const groupChildrenInCurrent = current.filter((id) => sourceGroup.children.includes(id));\n const groupStart = current.findIndex((id) => sourceGroup.children.includes(id));\n const groupEnd = groupStart + groupChildrenInCurrent.length;\n\n if (nextIndex < groupStart || nextIndex > groupEnd) {\n return state;\n }\n } else if (state.columnGroups.length > 0) {\n for (const group of state.columnGroups) {\n const groupChildrenInCurrent = current.filter((id) => group.children.includes(id));\n\n if (groupChildrenInCurrent.length === 0) {\n continue;\n }\n\n const groupStart = current.findIndex((id) => group.children.includes(id));\n const groupEnd = groupStart + groupChildrenInCurrent.length;\n\n if (nextIndex > groupStart && nextIndex < groupEnd) {\n return state;\n }\n }\n }\n\n current.splice(nextIndex, 0, columnId);\n\n if (doesColumnMoveChangeLockedPositions(state, current)) {\n return state;\n }\n\n if (current.every((id, index) => id === state.columnOrder[index])) {\n return state;\n }\n\n return { ...state, columnOrder: current };\n}\n\nexport function moveCominsColumnGroup<TData>(\n state: CominsTableState<TData>,\n groupId: string,\n targetIndex: number,\n) {\n const group = findColumnGroupById(state.columnGroups, groupId);\n\n if (\n !group ||\n group.lockPosition ||\n state.columnGroupState[groupId]?.pinned !== undefined\n ) {\n return state;\n }\n\n const groupChildren = state.columnOrder.filter((id) => group.children.includes(id));\n\n if (groupChildren.length === 0) {\n return state;\n }\n\n const current = state.columnOrder.filter((id) => !group.children.includes(id));\n const nextIndex = Math.max(0, Math.min(targetIndex, current.length));\n const nextOrder = [...current.slice(0, nextIndex), ...groupChildren, ...current.slice(nextIndex)];\n\n if (doesColumnMoveChangeLockedPositions(state, nextOrder)) {\n return state;\n }\n\n if (nextOrder.every((id, index) => id === state.columnOrder[index])) {\n return state;\n }\n\n return { ...state, columnOrder: nextOrder };\n}\n\nexport function serializeCominsColumnLayout<TData>(state: CominsTableState<TData>): CominsColumnLayout {\n const groups =\n state.columnGroups.length === 0\n ? undefined\n : Object.fromEntries(state.columnGroups.map((group) => [group.id, { ...state.columnGroupState[group.id] }]));\n\n return {\n columns: { ...state.columnState },\n ...(groups ? { groups } : {}),\n order: [...state.columnOrder],\n };\n}\n\nexport function applyCominsColumnLayout<TData>(state: CominsTableState<TData>, layout: CominsColumnLayout) {\n return {\n ...state,\n columnOrder: normalizeColumnOrder(state.columns, layout, state.columnGroups),\n columnGroupState: normalizeColumnGroupState(state.columnGroups, layout),\n columnState: normalizeColumnState(state.columns, layout),\n };\n}\n\nexport function selectRow<TData>(\n state: CominsTableState<TData>,\n rowId: CominsRowId,\n options: CominsRowSelectionOptions = {},\n) {\n const current = state.selection.rowIds;\n const selected = current.includes(rowId);\n const rowIds = options.multi\n ? options.toggle && selected\n ? current.filter((id) => id !== rowId)\n : selected\n ? current\n : [...current, rowId]\n : options.toggle && selected\n ? []\n : [rowId];\n\n return {\n ...state,\n selection: {\n ...state.selection,\n rowIds,\n },\n };\n}\n\nexport function selectRows<TData>(state: CominsTableState<TData>, rowIds: readonly CominsRowId[]) {\n return {\n ...state,\n selection: {\n ...state.selection,\n rowIds: [...rowIds],\n },\n };\n}\n\nexport function selectCell<TData>(state: CominsTableState<TData>, cell: CominsCellAddress) {\n return {\n ...state,\n selection: {\n ...state.selection,\n cell,\n range: null,\n },\n };\n}\n\nexport function selectCellRange<TData>(state: CominsTableState<TData>, range: CominsCellRange) {\n return {\n ...state,\n selection: {\n ...state.selection,\n cell: range.focus,\n range,\n },\n };\n}\n\nexport function clearCominsCellRange<TData>(state: CominsTableState<TData>) {\n return {\n ...state,\n selection: {\n ...state.selection,\n range: null,\n },\n };\n}\n\nexport function clearCominsSelection<TData>(state: CominsTableState<TData>) {\n return {\n ...state,\n selection: createEmptySelection(),\n };\n}\n\nexport function isCominsRowSelected<TData>(state: CominsTableState<TData>, rowId: CominsRowId) {\n return state.selection.rowIds.includes(rowId);\n}\n\nexport function isCominsCellSelected<TData>(state: CominsTableState<TData>, cell: CominsCellAddress) {\n return state.selection.cell?.rowId === cell.rowId && state.selection.cell.columnId === cell.columnId;\n}\n\nexport function getCominsSelectedCellRange<TData>(\n state: CominsTableState<TData>,\n range: CominsCellRange | null = state.selection.range,\n rowIds: readonly CominsRowId[] = state.rowIds,\n) {\n if (!range) {\n return [];\n }\n\n const visibleColumns = getCominsVisibleColumns(state);\n const bounds = getCellRangeBounds(state, range, rowIds);\n\n if (!bounds) {\n return [];\n }\n\n const cells: CominsCellAddress[] = [];\n\n for (let rowIndex = bounds.rowStart; rowIndex <= bounds.rowEnd; rowIndex += 1) {\n const rowId = bounds.rowIds[rowIndex];\n\n if (rowId === undefined) {\n continue;\n }\n\n for (let columnIndex = bounds.columnStart; columnIndex <= bounds.columnEnd; columnIndex += 1) {\n const column = visibleColumns[columnIndex];\n\n if (column) {\n cells.push({ columnId: column.id, rowId });\n }\n }\n }\n\n return cells;\n}\n\nexport function isCominsCellInSelectedRange<TData>(\n state: CominsTableState<TData>,\n cell: CominsCellAddress,\n rowIds: readonly CominsRowId[] = state.rowIds,\n) {\n return getCominsSelectedCellRange(state, state.selection.range, rowIds).some(\n (selected) => selected.rowId === cell.rowId && selected.columnId === cell.columnId,\n );\n}\n\nexport function getCominsVisibleColumns<TData>(state: CominsTableState<TData>) {\n const groupIdByColumnId = getColumnGroupIdMap(state.columnGroups);\n const groupById = new Map(state.columnGroups.map((group) => [group.id, group]));\n const emittedGroups = new Set<string>();\n const blocks: Array<{\n columns: Array<CominsTableRuntimeColumn<TData>>;\n pinned?: CominsColumnPinned;\n }> = [];\n\n for (const columnId of state.columnOrder) {\n const column = findColumn(state, columnId);\n\n if (!column || state.columnState[column.id]?.hidden === true) {\n continue;\n }\n\n const groupId = groupIdByColumnId.get(column.id);\n\n if (!groupId) {\n blocks.push({ columns: [column], pinned: state.columnState[column.id]?.pinned });\n continue;\n }\n\n if (emittedGroups.has(groupId) || state.columnGroupState[groupId]?.hidden === true) {\n continue;\n }\n\n const group = groupById.get(groupId);\n\n if (!group) {\n continue;\n }\n\n const columns = state.columnOrder\n .filter((currentId) => group.children.includes(currentId))\n .map((currentId) => findColumn(state, currentId))\n .filter((current): current is CominsTableRuntimeColumn<TData> =>\n Boolean(current) && state.columnState[current!.id]?.hidden !== true,\n );\n\n if (columns.length > 0) {\n blocks.push({ columns, pinned: state.columnGroupState[groupId]?.pinned });\n }\n\n emittedGroups.add(groupId);\n }\n\n return [\"left\", undefined, \"right\"].flatMap((pinned) =>\n blocks\n .filter((block) => block.pinned === pinned)\n .flatMap((block) => block.columns),\n );\n}\n\nexport function getCominsHeaderRows<TData>(state: CominsTableState<TData>): Array<Array<CominsHeaderCell<TData>>> {\n const visibleColumns = getCominsVisibleColumns(state);\n\n if (state.columnGroups.length === 0) {\n return [\n visibleColumns.map((column) => ({\n colSpan: 1,\n column,\n columnId: column.id,\n kind: \"column\",\n rowSpan: 1,\n })),\n ];\n }\n\n const visibleColumnIds = new Set(visibleColumns.map((column) => column.id));\n const groupIdByColumnId = getColumnGroupIdMap(state.columnGroups);\n const groupById = new Map(state.columnGroups.map((group) => [group.id, group]));\n const emittedGroups = new Set<string>();\n const parentRow: Array<CominsHeaderCell<TData>> = [];\n const childRow: Array<CominsHeaderCell<TData>> = [];\n\n for (const column of visibleColumns) {\n const columnId = column.id;\n\n const groupId = groupIdByColumnId.get(columnId);\n\n if (!groupId) {\n parentRow.push({\n colSpan: 1,\n column,\n columnId: column.id,\n kind: \"column\",\n rowSpan: 2,\n });\n continue;\n }\n\n if (emittedGroups.has(groupId)) {\n continue;\n }\n\n const group = groupById.get(groupId);\n\n if (!group) {\n continue;\n }\n\n const visibleGroupColumns = visibleColumns.filter((currentColumn) =>\n group.children.includes(currentColumn.id),\n );\n\n if (visibleGroupColumns.length === 0) {\n emittedGroups.add(groupId);\n continue;\n }\n\n parentRow.push({\n colSpan: visibleGroupColumns.length,\n group,\n groupId,\n kind: \"group\",\n rowSpan: 1,\n });\n childRow.push(\n ...visibleGroupColumns.map((currentColumn) => ({\n colSpan: 1 as const,\n column: currentColumn,\n columnId: currentColumn.id,\n groupId,\n kind: \"column\" as const,\n rowSpan: 1 as const,\n })),\n );\n emittedGroups.add(groupId);\n }\n\n return [parentRow, childRow];\n}\n\nexport function getCominsSortedRowIndexes<TData>(\n state: CominsTableState<TData>,\n sourceIndexes: readonly number[] = state.rows.map((_row, index) => index),\n) {\n const indexes = [...sourceIndexes];\n\n if (state.sortModel.length === 0) {\n return indexes;\n }\n\n return [...indexes].sort((leftIndex, rightIndex) => {\n const leftRow = state.rows[leftIndex]!;\n const rightRow = state.rows[rightIndex]!;\n\n for (const rule of state.sortModel) {\n const column = findColumn(state, rule.columnId);\n\n if (!column?.sort) {\n continue;\n }\n\n const leftValue = getCominsCellValue(state, leftRow, column.id);\n const rightValue = getCominsCellValue(state, rightRow, column.id);\n const result =\n typeof column.sort === \"function\"\n ? column.sort(leftValue, rightValue, leftRow, rightRow)\n : defaultCompare(leftValue, rightValue);\n\n if (result !== 0) {\n return rule.direction === \"desc\" ? result * -1 : result;\n }\n }\n\n return leftIndex - rightIndex;\n });\n}\n\nexport function sortCominsRows<TData>(\n state: CominsTableState<TData>,\n sort: CominsSortState | null,\n) {\n const sortedState = setCominsSortState(state, sort);\n const indexes = getCominsSortedRowIndexes(sortedState);\n const rows = indexes.map((index) => sortedState.rows[index]!);\n\n return withRows(sortedState, rows);\n}\n\nexport function getCominsPageRows<TData>(\n state: CominsTableState<TData>,\n pagination: Partial<CominsPaginationState> = {},\n) {\n const pageIndex = pagination.pageIndex ?? state.pagination.pageIndex;\n const pageSize = pagination.pageSize ?? state.pagination.pageSize;\n const start = Math.max(0, pageIndex) * Math.max(1, pageSize);\n const indexes = getCominsSortedRowIndexes(state).slice(start, start + Math.max(1, pageSize));\n\n return indexes.map((index) => state.rows[index]!);\n}\n\nexport function getCominsVirtualRows<TData>(\n state: CominsTableState<TData>,\n { overscan = 2, rowHeight, scrollTop, viewportHeight }: CominsVirtualRowsOptions,\n): CominsVirtualRows<TData> {\n const safeRowHeight = Math.max(1, rowHeight);\n const rowIndexes = getCominsSortedRowIndexes(state);\n const totalRows = rowIndexes.length;\n const totalHeight = totalRows * safeRowHeight;\n const startIndex = Math.max(0, Math.floor(Math.max(0, scrollTop) / safeRowHeight) - Math.max(0, overscan));\n const endIndex = Math.min(\n totalRows,\n Math.ceil((Math.max(0, scrollTop) + Math.max(0, viewportHeight)) / safeRowHeight) + Math.max(0, overscan),\n );\n const topSpacerHeight = startIndex * safeRowHeight;\n\n return {\n bottomSpacerHeight: Math.max(0, totalHeight - topSpacerHeight - (endIndex - startIndex) * safeRowHeight),\n endIndex,\n rows: rowIndexes.slice(startIndex, endIndex).map((index) => state.rows[index]!),\n startIndex,\n topSpacerHeight,\n totalHeight,\n };\n}\n\nexport function moveCominsRow<TData>(\n state: CominsTableState<TData>,\n rowId: CominsRowId,\n targetIndex: number,\n) {\n const currentIndex = findRowIndex(state, rowId);\n\n if (currentIndex < 0) {\n return state;\n }\n\n const rows = [...state.rows];\n const [row] = rows.splice(currentIndex, 1);\n\n if (row === undefined) {\n return state;\n }\n\n rows.splice(Math.max(0, Math.min(targetIndex, rows.length)), 0, row);\n\n return withRows(state, rows);\n}\n\nexport type CominsRowGroupMoveOptions<TData> = {\n getRowGroupId: (row: TData, dataIndex: number) => CominsRowId;\n setRowGroupId?: (params: {\n fromGroupId: CominsRowId;\n row: TData;\n rowId: CominsRowId;\n toGroupId: CominsRowId;\n }) => TData;\n sourceRowId: CominsRowId;\n targetGroupId: CominsRowId;\n targetRowId?: CominsRowId;\n};\n\nexport function moveCominsRowToGroup<TData>(\n state: CominsTableState<TData>,\n options: CominsRowGroupMoveOptions<TData>,\n) {\n const sourceIndex = findRowIndex(state, options.sourceRowId);\n const targetRowIndex = options.targetRowId === undefined\n ? -1\n : findRowIndex(state, options.targetRowId);\n\n if (\n sourceIndex < 0 ||\n options.targetRowId === options.sourceRowId ||\n (options.targetRowId !== undefined && targetRowIndex < 0)\n ) {\n return state;\n }\n\n const sourceRow = state.rows[sourceIndex];\n\n if (sourceRow === undefined) {\n return state;\n }\n\n const fromGroupId = options.getRowGroupId(sourceRow, sourceIndex);\n const membershipChanged = fromGroupId !== options.targetGroupId;\n\n if (membershipChanged && typeof options.setRowGroupId !== \"function\") {\n return state;\n }\n\n if (targetRowIndex >= 0) {\n const targetRow = state.rows[targetRowIndex];\n\n if (\n targetRow === undefined ||\n options.getRowGroupId(targetRow, targetRowIndex) !== options.targetGroupId\n ) {\n return state;\n }\n }\n\n const movedRow = membershipChanged\n ? options.setRowGroupId!({\n fromGroupId,\n row: sourceRow,\n rowId: options.sourceRowId,\n toGroupId: options.targetGroupId,\n })\n : sourceRow;\n const rows = [...state.rows];\n rows.splice(sourceIndex, 1);\n let targetIndex: number;\n\n if (options.targetRowId !== undefined) {\n targetIndex = Math.max(0, Math.min(targetRowIndex, rows.length));\n } else {\n let lastTargetIndex = -1;\n\n rows.forEach((row, index) => {\n if (options.getRowGroupId(row, index) === options.targetGroupId) {\n lastTargetIndex = index;\n }\n });\n targetIndex = lastTargetIndex < 0 ? rows.length : lastTargetIndex + 1;\n }\n\n rows.splice(targetIndex, 0, movedRow);\n\n return withRows(state, rows);\n}\n\nexport function getCominsCellValue<TData>(\n state: CominsTableState<TData>,\n row: TData,\n columnId: string,\n) {\n const column = findColumn(state, columnId);\n\n return column ? getNestedFieldValue(row, column.field) : undefined;\n}\n\nexport function formatCominsCellValue<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n) {\n const value = getCominsCellValue(state, row, column.id);\n\n if (column.cell?.format) {\n return column.cell.format(createCellComponentParams(state, row, rowId, column));\n }\n\n return value == null ? \"\" : String(value);\n}\n\nexport function isCominsCellDisabled<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n) {\n const props = resolveCellProps(state, row, rowId, column);\n\n return props?.disabled !== undefined && resolveGuard(props.disabled, createCellComponentParams(state, row, rowId, column)) === true;\n}\n\nexport function getCominsCellClassName<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n) {\n const params = createCellComponentParams(state, row, rowId, column);\n const className = resolveCellProps(state, row, rowId, column)?.className;\n\n return typeof className === \"function\" ? className(params) : className;\n}\n\nexport function getCominsCellStyle<TData>(\n state: CominsTableState<TData>,\n row: TData,\n rowId: CominsRowId,\n column: CominsTableRuntimeColumn<TData>,\n) {\n const params = createCellComponentParams(state, row, rowId, column);\n const style = resolveCellProps(state, row, rowId, column)?.style;\n\n return typeof style === \"function\" ? style(params) : style;\n}\n\nexport function copyCominsRow<TData>(state: CominsTableState<TData>, rowId: CominsRowId): CominsCopiedRow<TData> {\n const row = state.rows[findRowIndex(state, rowId)];\n\n if (row === undefined) {\n throw new Error(`Cannot copy missing row: ${String(rowId)}`);\n }\n\n return {\n kind: \"row\",\n row,\n text: JSON.stringify(row),\n };\n}\n\nexport function pasteCominsRow<TData>(\n state: CominsTableState<TData>,\n copied: CominsCopiedRow<TData>,\n options: CominsPasteRowOptions<TData>,\n) {\n if (options.mode === \"append\") {\n const rowId = options.getNewRowId?.(copied.row);\n const row = rowId === undefined ? copied.row : assignGeneratedRowId(copied.row, rowId);\n\n return addCominsRows(state, [row]);\n }\n\n if (options.mode === \"insert-after\") {\n const targetIndex = findRowIndex(state, options.targetRowId);\n\n if (targetIndex < 0) {\n return state;\n }\n\n const sourceRowId = state.getRowId(copied.row, targetIndex);\n const rowId = options.getPastedRowId?.(copied.row) ?? createCopiedRowId(state.rowIds, sourceRowId);\n const row = assignGeneratedRowId(copied.row, rowId);\n const rows = [...state.rows];\n rows.splice(targetIndex + 1, 0, row);\n\n return withRows(state, rows);\n }\n\n return updateCominsRows(state, [\n {\n id: options.targetRowId,\n patch: assignGeneratedRowId(copied.row, options.targetRowId) as Partial<TData>,\n },\n ]);\n}\n\nexport function copyCominsCell<TData>(\n state: CominsTableState<TData>,\n { columnId, rowId }: CominsCellAddress,\n): CominsCopiedCell | null {\n const row = state.rows[findRowIndex(state, rowId)];\n const column = findColumn(state, columnId);\n\n if (!column || !canUseCellClipboard(state, row, rowId, column, \"copy\")) {\n return null;\n }\n\n const value = getCominsCellValue(state, row!, columnId);\n\n return {\n kind: \"cell\",\n text: value == null ? \"\" : String(value),\n value,\n };\n}\n\nexport function pasteCominsCell<TData>(\n state: CominsTableState<TData>,\n { columnId, rowId }: CominsCellAddress,\n copied: CominsCopiedCell | null,\n) {\n const column = findColumn(state, columnId);\n const row = state.rows[findRowIndex(state, rowId)];\n\n if (!copied || !column || !canUseCellClipboard(state, row, rowId, column, \"paste\")) {\n return state;\n }\n\n return updateCominsRows(state, [\n {\n id: rowId,\n patch: (currentRow) => setNestedFieldValue(currentRow, column.field, copied.value),\n },\n ]);\n}\n\nexport function copyCominsCellRange<TData>(\n state: CominsTableState<TData>,\n range: CominsCellRange | null = state.selection.range,\n rowIds: readonly CominsRowId[] = state.rowIds,\n): CominsCopiedCellRange | null {\n if (!range) {\n return null;\n }\n\n const bounds = getCellRangeBounds(state, range, rowIds);\n\n if (!bounds) {\n return null;\n }\n\n const copiedRows: CominsCopiedCellRangeCell[][] = [];\n\n for (let rowIndex = bounds.rowStart; rowIndex <= bounds.rowEnd; rowIndex += 1) {\n const rowId = bounds.rowIds[rowIndex];\n const dataIndex = rowId === undefined ? -1 : findRowIndex(state, rowId);\n const row = state.rows[dataIndex];\n const copiedCells: CominsCopiedCellRangeCell[] = [];\n\n for (let columnIndex = bounds.columnStart; columnIndex <= bounds.columnEnd; columnIndex += 1) {\n const column = bounds.visibleColumns[columnIndex];\n\n if (row === undefined || rowId === undefined || !column || !canUseCellClipboard(state, row, rowId, column, \"copy\")) {\n copiedCells.push(null);\n continue;\n }\n\n const value = getCominsCellValue(state, row, column.id);\n copiedCells.push({\n columnId: column.id,\n text: value == null ? \"\" : String(value),\n value,\n });\n }\n\n copiedRows.push(copiedCells);\n }\n\n return {\n kind: \"cell-range\",\n rows: copiedRows,\n text: copiedRows.map((row) => row.map((cell) => cell?.text ?? \"\").join(\"\\t\")).join(\"\\n\"),\n };\n}\n\nexport function pasteCominsCellRange<TData>(\n state: CominsTableState<TData>,\n target: CominsCellAddress,\n copied: CominsCopiedCellRange | null,\n rowIds: readonly CominsRowId[] = state.rowIds,\n) {\n if (!copied) {\n return state;\n }\n\n const visibleColumns = getCominsVisibleColumns(state);\n const targetRowIndex = rowIds.indexOf(target.rowId);\n const targetColumnIndex = visibleColumns.findIndex((column) => column.id === target.columnId);\n const rows = [...state.rows];\n\n if (targetRowIndex < 0 || targetColumnIndex < 0) {\n return state;\n }\n\n let changed = false;\n\n copied.rows.forEach((copiedRow, rowOffset) => {\n const rowId = rowIds[targetRowIndex + rowOffset];\n const rowIndex = rowId === undefined ? -1 : findRowIndex(state, rowId);\n const row = rows[rowIndex];\n\n if (row === undefined || rowId === undefined) {\n return;\n }\n\n copiedRow.forEach((copiedCell, columnOffset) => {\n const column = visibleColumns[targetColumnIndex + columnOffset];\n\n if (!copiedCell || !column || !canUseCellClipboard(state, row, rowId, column, \"paste\")) {\n return;\n }\n\n rows[rowIndex] = setNestedFieldValue(rows[rowIndex]!, column.field, copiedCell.value);\n changed = true;\n });\n });\n\n return changed ? withRows(state, rows) : state;\n}\n\nexport function fillCominsCellRange<TData>(\n state: CominsTableState<TData>,\n { source, target }: CominsFillCellRangeOptions,\n) {\n const copied = copyCominsCell(state, source);\n\n if (!copied) {\n return state;\n }\n\n return getCominsSelectedCellRange(state, target).reduce(\n (currentState, cell) => pasteCominsCell(currentState, cell, copied),\n state,\n );\n}\n\nfunction normalizeCominsExportColumns<TData>({\n columnOrder,\n columns,\n}: Pick<CominsExportRowsOptions<TData>, \"columnOrder\" | \"columns\">) {\n if (!columnOrder?.length) {\n return columns;\n }\n\n const columnsById = new Map(columns.map((column) => [column.id, column]));\n\n return columnOrder\n .map((id) => columnsById.get(id))\n .filter((column): column is CominsExportColumn<TData> => Boolean(column));\n}\n\nfunction stringifyCominsExportValue(value: unknown) {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") {\n return String(value);\n }\n\n return JSON.stringify(value);\n}\n\nfunction escapeCominsCsvCell(value: unknown) {\n const text = stringifyCominsExportValue(value);\n\n return /[\",\\r\\n]/u.test(text) ? `\"${text.replaceAll('\"', '\"\"')}\"` : text;\n}\n\nfunction getCominsExportHeader<TData>(column: CominsExportColumn<TData>, headerOverrides?: Record<string, string>) {\n if (column.id && headerOverrides?.[column.id] !== undefined) {\n return headerOverrides[column.id];\n }\n\n return column.label ?? column.id ?? \"\";\n}\n\nfunction getCominsExportValue<TData>(\n column: CominsExportColumn<TData>,\n row: TData,\n rowIndex: number,\n valueSource: CominsExportValueSource,\n) {\n if (valueSource === \"formatted\" && column.format) {\n return column.format(row, rowIndex);\n }\n\n return column.value(row, rowIndex);\n}\n\nexport function exportCominsRowsToCsv<TData>({\n columnOrder,\n columns,\n headerOverrides,\n rows,\n valueSource = \"raw\",\n}: CominsExportRowsOptions<TData>) {\n const exportColumns = normalizeCominsExportColumns({ columnOrder, columns });\n const lines = [\n exportColumns.map((column) => escapeCominsCsvCell(getCominsExportHeader(column, headerOverrides))).join(\",\"),\n ...rows.map((row, rowIndex) =>\n exportColumns.map((column) => escapeCominsCsvCell(getCominsExportValue(column, row, rowIndex, valueSource))).join(\",\"),\n ),\n ];\n\n return lines.join(\"\\n\");\n}\n\nexport function exportCominsRowsToJson<TData>({\n columnOrder,\n columns,\n headerOverrides,\n rows,\n valueSource = \"raw\",\n}: CominsExportRowsOptions<TData>) {\n const exportColumns = normalizeCominsExportColumns({ columnOrder, columns });\n const data = rows.map((row, rowIndex) =>\n Object.fromEntries(\n exportColumns.map((column) => [\n getCominsExportHeader(column, headerOverrides),\n getCominsExportValue(column, row, rowIndex, valueSource),\n ]),\n ),\n );\n\n return JSON.stringify(data, null, 2);\n}\n"],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  import type React from "react";
2
+ import type { CominsColumnFilterConfig } from "./filtering";
3
+ import { type CominsColumnPinned } from "./column-pinning";
4
+ export type { CominsColumnPinned } from "./column-pinning";
2
5
  export type CominsRowId = string | number;
3
6
  export type CominsTableDensity = "comfortable" | "compact" | "spacious";
4
7
  export type CominsTableTheme = {
@@ -226,6 +229,7 @@ export type CominsTableHeaderConfig<TData, TValue = unknown> = {
226
229
  export type CominsTableColumn<TData, TValue = unknown> = {
227
230
  cell?: CominsTableCellConfig<TData, TValue>;
228
231
  field: string;
232
+ filter?: CominsColumnFilterConfig<TData, TValue>;
229
233
  header?: CominsTableHeaderConfig<TData, TValue>;
230
234
  hidden?: boolean;
231
235
  id?: string;
@@ -233,6 +237,7 @@ export type CominsTableColumn<TData, TValue = unknown> = {
233
237
  lockPosition?: boolean;
234
238
  maxWidth?: number;
235
239
  minWidth?: number;
240
+ pinned?: CominsColumnPinned;
236
241
  sort?: boolean | ((left: TValue, right: TValue, leftRow: TData, rightRow: TData) => number);
237
242
  width?: number;
238
243
  };
@@ -242,6 +247,7 @@ export type CominsTableColumnGroup = {
242
247
  id: string;
243
248
  label: React.ReactNode;
244
249
  lockPosition?: boolean;
250
+ pinned?: CominsColumnPinned;
245
251
  };
246
252
  export type CominsTableRuntimeColumn<TData, TValue = unknown> = Omit<CominsTableColumn<TData, TValue>, "id"> & {
247
253
  id: string;
@@ -258,10 +264,12 @@ export type CominsEventColumn<TData, TValue = unknown> = {
258
264
  };
259
265
  export type CominsColumnRuntimeState = {
260
266
  hidden?: boolean;
267
+ pinned?: CominsColumnPinned;
261
268
  width?: number;
262
269
  };
263
270
  export type CominsColumnGroupRuntimeState = {
264
271
  hidden?: boolean;
272
+ pinned?: CominsColumnPinned;
265
273
  };
266
274
  export type CominsColumnLayout = {
267
275
  columns: Record<string, CominsColumnRuntimeState>;
@@ -482,6 +490,7 @@ export declare function setCominsColumnWidth<TData>(state: CominsTableState<TDat
482
490
  columnState: {
483
491
  [x: string]: CominsColumnRuntimeState | {
484
492
  hidden?: boolean;
493
+ pinned?: CominsColumnPinned;
485
494
  width: number;
486
495
  };
487
496
  };
@@ -502,6 +511,7 @@ export declare function setCominsColumnHidden<TData>(state: CominsTableState<TDa
502
511
  theme: CominsTableTheme;
503
512
  columnState: {
504
513
  [x: string]: CominsColumnRuntimeState | {
514
+ pinned?: CominsColumnPinned;
505
515
  width?: number;
506
516
  hidden: boolean;
507
517
  };
@@ -646,15 +656,28 @@ export declare function clearCominsSelection<TData>(state: CominsTableState<TDat
646
656
  };
647
657
  export declare function isCominsRowSelected<TData>(state: CominsTableState<TData>, rowId: CominsRowId): boolean;
648
658
  export declare function isCominsCellSelected<TData>(state: CominsTableState<TData>, cell: CominsCellAddress): boolean;
649
- export declare function getCominsSelectedCellRange<TData>(state: CominsTableState<TData>, range?: CominsCellRange | null): CominsCellAddress[];
650
- export declare function isCominsCellInSelectedRange<TData>(state: CominsTableState<TData>, cell: CominsCellAddress): boolean;
659
+ export declare function getCominsSelectedCellRange<TData>(state: CominsTableState<TData>, range?: CominsCellRange | null, rowIds?: readonly CominsRowId[]): CominsCellAddress[];
660
+ export declare function isCominsCellInSelectedRange<TData>(state: CominsTableState<TData>, cell: CominsCellAddress, rowIds?: readonly CominsRowId[]): boolean;
651
661
  export declare function getCominsVisibleColumns<TData>(state: CominsTableState<TData>): CominsTableRuntimeColumn<TData, unknown>[];
652
662
  export declare function getCominsHeaderRows<TData>(state: CominsTableState<TData>): Array<Array<CominsHeaderCell<TData>>>;
653
- export declare function getCominsSortedRowIndexes<TData>(state: CominsTableState<TData>): number[];
663
+ export declare function getCominsSortedRowIndexes<TData>(state: CominsTableState<TData>, sourceIndexes?: readonly number[]): number[];
654
664
  export declare function sortCominsRows<TData>(state: CominsTableState<TData>, sort: CominsSortState | null): CominsTableState<TData>;
655
665
  export declare function getCominsPageRows<TData>(state: CominsTableState<TData>, pagination?: Partial<CominsPaginationState>): NonNullable<TData>[];
656
666
  export declare function getCominsVirtualRows<TData>(state: CominsTableState<TData>, { overscan, rowHeight, scrollTop, viewportHeight }: CominsVirtualRowsOptions): CominsVirtualRows<TData>;
657
667
  export declare function moveCominsRow<TData>(state: CominsTableState<TData>, rowId: CominsRowId, targetIndex: number): CominsTableState<TData>;
668
+ export type CominsRowGroupMoveOptions<TData> = {
669
+ getRowGroupId: (row: TData, dataIndex: number) => CominsRowId;
670
+ setRowGroupId?: (params: {
671
+ fromGroupId: CominsRowId;
672
+ row: TData;
673
+ rowId: CominsRowId;
674
+ toGroupId: CominsRowId;
675
+ }) => TData;
676
+ sourceRowId: CominsRowId;
677
+ targetGroupId: CominsRowId;
678
+ targetRowId?: CominsRowId;
679
+ };
680
+ export declare function moveCominsRowToGroup<TData>(state: CominsTableState<TData>, options: CominsRowGroupMoveOptions<TData>): CominsTableState<TData>;
658
681
  export declare function getCominsCellValue<TData>(state: CominsTableState<TData>, row: TData, columnId: string): unknown;
659
682
  export declare function formatCominsCellValue<TData>(state: CominsTableState<TData>, row: TData, rowId: CominsRowId, column: CominsTableRuntimeColumn<TData>): React.ReactNode;
660
683
  export declare function isCominsCellDisabled<TData>(state: CominsTableState<TData>, row: TData, rowId: CominsRowId, column: CominsTableRuntimeColumn<TData>): boolean;
@@ -664,8 +687,8 @@ export declare function copyCominsRow<TData>(state: CominsTableState<TData>, row
664
687
  export declare function pasteCominsRow<TData>(state: CominsTableState<TData>, copied: CominsCopiedRow<TData>, options: CominsPasteRowOptions<TData>): CominsTableState<TData>;
665
688
  export declare function copyCominsCell<TData>(state: CominsTableState<TData>, { columnId, rowId }: CominsCellAddress): CominsCopiedCell | null;
666
689
  export declare function pasteCominsCell<TData>(state: CominsTableState<TData>, { columnId, rowId }: CominsCellAddress, copied: CominsCopiedCell | null): CominsTableState<TData>;
667
- export declare function copyCominsCellRange<TData>(state: CominsTableState<TData>, range?: CominsCellRange | null): CominsCopiedCellRange | null;
668
- export declare function pasteCominsCellRange<TData>(state: CominsTableState<TData>, target: CominsCellAddress, copied: CominsCopiedCellRange | null): CominsTableState<TData>;
690
+ export declare function copyCominsCellRange<TData>(state: CominsTableState<TData>, range?: CominsCellRange | null, rowIds?: readonly CominsRowId[]): CominsCopiedCellRange | null;
691
+ export declare function pasteCominsCellRange<TData>(state: CominsTableState<TData>, target: CominsCellAddress, copied: CominsCopiedCellRange | null, rowIds?: readonly CominsRowId[]): CominsTableState<TData>;
669
692
  export declare function fillCominsCellRange<TData>(state: CominsTableState<TData>, { source, target }: CominsFillCellRangeOptions): CominsTableState<TData>;
670
693
  export declare function exportCominsRowsToCsv<TData>({ columnOrder, columns, headerOverrides, rows, valueSource, }: CominsExportRowsOptions<TData>): string;
671
694
  export declare function exportCominsRowsToJson<TData>({ columnOrder, columns, headerOverrides, rows, valueSource, }: CominsExportRowsOptions<TData>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}