comins-table 0.1.8 → 0.1.10

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-D01wEe-7.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 cells?: CominsCellAddress[];\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 CominsCellSelectionOptions = {\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 cells: [],\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\nfunction areCellAddressesEqual(left: CominsCellAddress, right: CominsCellAddress) {\n return left.rowId === right.rowId && left.columnId === right.columnId;\n}\n\nexport function selectCell<TData>(\n state: CominsTableState<TData>,\n cell: CominsCellAddress,\n options: CominsCellSelectionOptions = {},\n) {\n const current = state.selection.cells ?? (state.selection.cell ? [state.selection.cell] : []);\n const selected = current.some((candidate) => areCellAddressesEqual(candidate, cell));\n const cells = options.multi\n ? options.toggle && selected\n ? current.filter((candidate) => !areCellAddressesEqual(candidate, cell))\n : selected\n ? current\n : [...current, cell]\n : options.toggle && selected\n ? []\n : [cell];\n const activeCell = cells.some((candidate) => areCellAddressesEqual(candidate, cell))\n ? cell\n : (cells.at(-1) ?? null);\n\n return {\n ...state,\n selection: {\n ...state.selection,\n cell: activeCell,\n cells,\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 cells: [],\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 const selectedCells = state.selection.cells;\n\n if (selectedCells && selectedCells.length > 0) {\n return selectedCells.some((candidate) => areCellAddressesEqual(candidate, cell));\n }\n\n return state.selection.cell !== null && areCellAddressesEqual(state.selection.cell, cell);\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
@@ -282,6 +282,7 @@ export type CominsPaginationState = {
282
282
  };
283
283
  export type CominsSelectionState = {
284
284
  cell: CominsCellAddress | null;
285
+ cells?: CominsCellAddress[];
285
286
  range: CominsCellRange | null;
286
287
  rowIds: CominsRowId[];
287
288
  };
@@ -405,6 +406,10 @@ export type CominsRowSelectionOptions = {
405
406
  multi?: boolean;
406
407
  toggle?: boolean;
407
408
  };
409
+ export type CominsCellSelectionOptions = {
410
+ multi?: boolean;
411
+ toggle?: boolean;
412
+ };
408
413
  export type CominsFillCellRangeOptions = {
409
414
  source: CominsCellAddress;
410
415
  target: CominsCellRange;
@@ -554,6 +559,7 @@ export declare function selectRow<TData>(state: CominsTableState<TData>, rowId:
554
559
  theme: CominsTableTheme;
555
560
  selection: {
556
561
  cell: CominsCellAddress | null;
562
+ cells?: CominsCellAddress[];
557
563
  range: CominsCellRange | null;
558
564
  rowIds: CominsRowId[];
559
565
  };
@@ -574,11 +580,12 @@ export declare function selectRows<TData>(state: CominsTableState<TData>, rowIds
574
580
  theme: CominsTableTheme;
575
581
  selection: {
576
582
  cell: CominsCellAddress | null;
583
+ cells?: CominsCellAddress[];
577
584
  range: CominsCellRange | null;
578
585
  rowIds: CominsRowId[];
579
586
  };
580
587
  };
581
- export declare function selectCell<TData>(state: CominsTableState<TData>, cell: CominsCellAddress): {
588
+ export declare function selectCell<TData>(state: CominsTableState<TData>, cell: CominsCellAddress, options?: CominsCellSelectionOptions): {
582
589
  columnOrder: string[];
583
590
  columnGroups: CominsTableRuntimeColumnGroup[];
584
591
  columnGroupState: Record<string, CominsColumnGroupRuntimeState>;
@@ -594,7 +601,8 @@ export declare function selectCell<TData>(state: CominsTableState<TData>, cell:
594
601
  theme: CominsTableTheme;
595
602
  selection: {
596
603
  rowIds: CominsRowId[];
597
- cell: CominsCellAddress;
604
+ cell: CominsCellAddress | null;
605
+ cells: CominsCellAddress[];
598
606
  range: null;
599
607
  };
600
608
  };
@@ -615,6 +623,7 @@ export declare function selectCellRange<TData>(state: CominsTableState<TData>, r
615
623
  selection: {
616
624
  rowIds: CominsRowId[];
617
625
  cell: CominsCellAddress;
626
+ cells: never[];
618
627
  range: CominsCellRange;
619
628
  };
620
629
  };
@@ -634,6 +643,7 @@ export declare function clearCominsCellRange<TData>(state: CominsTableState<TDat
634
643
  theme: CominsTableTheme;
635
644
  selection: {
636
645
  cell: CominsCellAddress | null;
646
+ cells?: CominsCellAddress[];
637
647
  rowIds: CominsRowId[];
638
648
  range: null;
639
649
  };
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExF,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS,eAAe,EAAE,CAAC;AAEzD,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAC5D,MAAM,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,GAAG,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,KAAK,EAAE,MAAM,IAC/C,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,6BAA6B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,6BAA6B,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,OAAO,IAAI;IACnD,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,6BAA6B,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,6BAA6B,CAAC;CACtC,GACD;IACE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAClE,UAAU,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,KAAK,IAAI;IAC7C,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAChE,MAAM,EAAE,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,GAAG,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACtC,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAClE,MAAM,EAAE,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IACpD,OAAO,GACP,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;IACjG,QAAQ,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACxH,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC;AAEnG,MAAM,MAAM,kBAAkB,CAAC,QAAQ,IACnC,0BAA0B,EAAE,GAC5B,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,0BAA0B,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,oBAAoB,CAAC,QAAQ,IACrC,mBAAmB,EAAE,GACrB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,mBAAmB,EAAE,CAAC,CAAC;AAEnD,MAAM,MAAM,sBAAsB,CAAC,QAAQ,IACvC,KAAK,CAAC,qBAAqB,CAAC,GAC5B,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,2BAA2B,CAAC,QAAQ,IAAI;IAClD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACvF,KAAK,CAAC,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3F,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GACnC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAClC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE1C,MAAM,MAAM,0BAA0B,CAAC,QAAQ,IAAI;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,KAAK,CAAC,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzF,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,QAAQ,IAAI;IACpD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACrE,KAAK,CAAC,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzF,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,QAAQ,IAAI;IACjD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,yBAAyB,CAC/B,QAAQ,EACR,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,6BAA6B,CAAA;KAAE,CACjF,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,QAAQ,IAAI;IAClD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3F,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,QAAQ,IAAI;IAClD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACrE,KAAK,CAAC,EAAE,yBAAyB,CAC/B,QAAQ,EACR,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CACtE,CAAC;IACF,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,QAAQ,IAAI;IACpD,KAAK,CAAC,EAAE,yBAAyB,CAC/B,QAAQ,EACR,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CACxE,CAAC;IACF,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,QAAQ,IAAI;IAChD,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,KACxE,OAAO,GAAG,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACrG,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,QAAQ,GAAG;QAClB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC3C,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE;YAAE,KAAK,EAAE,6BAA6B,CAAA;SAAE,CAAC,CAAC;QAC7E,KAAK,EAAE,6BAA6B,CAAC;KACtC,KACE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3F,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,QAAQ,IAAI;IACvD,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,QAAQ,GAAG;QAClB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACpF,IAAI,EAAE,qBAAqB,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,6BAA6B,CAAC;KACtC,KACE,IAAI,CAAC;IACV,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,QAAQ,GAAG;QAClB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC3C,IAAI,EAAE,qBAAqB,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,6BAA6B,CAAC;KACtC,KACE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,yBAAyB,CAC/B,QAAQ,EACR,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;QACrC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CACF,CAAC;IACF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oCAAoC,KAAK,OAAO,CAAC;IAC1E,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAC3D,2BAA2B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,0BAA0B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACvE,6BAA6B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAC1E,0BAA0B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACvE,2BAA2B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,2BAA2B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,6BAA6B,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAC1E,yBAAyB,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IACzD,2BAA2B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACtE,0BAA0B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrE,6BAA6B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,0BAA0B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrE,2BAA2B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACtE,2BAA2B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACtE,6BAA6B,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACxE,gCAAgC,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhF,MAAM,MAAM,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI,wBAAwB,GACnF,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,MAAM,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI,wBAAwB,GACjF,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,MAAM,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAC3D,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAChF,KAAK,CAAC,EACF,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,GAChC,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAClF,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC7F,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IAC7D,UAAU,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACrF,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IACvD,IAAI,CAAC,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI,IAAI,CAClE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAChC,IAAI,CACL,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,GAAG;IACrF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI;IACvD,UAAU,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,6BAA6B,EAAE,CAAC;IAC9C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAChE,OAAO,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACtD,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC;IACrD,UAAU,EAAE,qBAAqB,CAAC;IAClC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,SAAS,EAAE,oBAAoB,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACrD,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5C,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI;IACnC,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,IAAI;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,IAAI;IAC1C,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,6BAA6B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI,sBAAsB,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC;AAE5F,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,KAAK,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,KAAK,CAAC;AAE1D,MAAM,MAAM,kBAAkB,CAAC,KAAK,IAAI;IACtC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,KAAK,IAAI;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,iBAAiB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,KAAK,IACnC;IACE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,WAAW,CAAC;IAC1C,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,WAAW,CAAC;IAC7C,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AA+hBF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,EAC5C,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAA0B,EAC1B,UAAU,EACV,IAAI,EACJ,UAAiB,EACjB,IAAW,EACX,SAAS,EACT,KAAU,GACX,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAyBxD;AAED,wBAAgB,eAAe,CAAC,KAAK,EACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,WAGnD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,2BAE9F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,2BAE1F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EACpC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,2BAe/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,2BAWrG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,gBAAgB;iBArwBnF,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;eAEV,oBAAoB;gBACnB,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;;oBAlXd,MAAM;kBACR,kBAAkB;gBACpB,KAAK,CAAC,aAAa;;EA8mC5B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO;iBA5wBlF,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;eAEV,oBAAoB;UAEzB,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;EAowBxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC;iBArxB7B,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;YAE5C,WAAW,EAAE;;eAEV,oBAAoB;gBACnB,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;QA6wBnB,SAAS;QACT,QAAQ;;EAGb;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,IAAI,EAAE,eAAe,GAAG,IAAI,2BAG7B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,SAAS,EAAE,eAAe,2BAc3B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,2BAEzE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;iBAh0BA,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;kCAGjC,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;eAEV,oBAAoB;gBACnB,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;;qBAzCd,OAAO;qBACP,kBAAkB;;;;EAu2B5B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO;iBAj1BF,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;kCAGjC,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;eAEV,oBAAoB;gBACnB,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;;qBAxCd,kBAAkB;oBACnB,MAAM;;;;EAu3Bf;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAC9C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,2BAgBhB;AAwED,wBAAgB,yBAAyB,CAAC,KAAK,EAC7C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,2BA+Bd;AAoDD,wBAAgB,gBAAgB,CAAC,KAAK,EACpC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,2BAiEpB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,2BA+BpB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAWrG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB;kBAtoCzF,6BAA6B,EAAE;;kCAIf,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;eAEV,oBAAoB;gBACnB,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;;;EAioCxB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAC7B,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,yBAA8B;iBAnpC1B,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;cAnBjB,iBAAiB,GAAG,IAAI;eACvB,eAAe,GAAG,IAAI;;;EA6qC9B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE;iBA1qCjF,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;cAnBjB,iBAAiB,GAAG,IAAI;eACvB,eAAe,GAAG,IAAI;;;EAurC9B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB;iBAprC1E,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;gBAjBf,WAAW,EAAE;;;;EAisCtB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,eAAe;iBA/rC9E,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;gBAjBf,WAAW,EAAE;;;;EA4sCtB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;iBA1sC3D,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;cAnBjB,iBAAiB,GAAG,IAAI;gBAEtB,WAAW,EAAE;;;EAstCtB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;iBAptC3D,MAAM,EAAE;kBACP,6BAA6B,EAAE;sBAC3B,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC;;iBAElD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC;kCACvB,MAAM,KAAK,WAAW;gBACxC,qBAAqB;YACzB,WAAW,EAAE;;gBAGT,OAAO;UACb,eAAe,GAAG,IAAI;eACjB,eAAe;WACnB,gBAAgB;;EA4sCxB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,WAE5F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,WAElG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAC9C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,KAAK,GAAE,eAAe,GAAG,IAA4B,EACrD,MAAM,GAAE,SAAS,WAAW,EAAiB,uBAgC9C;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAC/C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,IAAI,EAAE,iBAAiB,EACvB,MAAM,GAAE,SAAS,WAAW,EAAiB,WAK9C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,8CAoD5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CA8EhH;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAC7C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,aAAa,GAAE,SAAS,MAAM,EAA2C,YAiC1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAClC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,IAAI,EAAE,eAAe,GAAG,IAAI,2BAO7B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,UAAU,GAAE,OAAO,CAAC,qBAAqB,CAAM,wBAQhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,EAAE,QAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,wBAAwB,GAC/E,iBAAiB,CAAC,KAAK,CAAC,CAoB1B;AAED,wBAAgB,aAAa,CAAC,KAAK,EACjC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,2BAkBpB;AAED,MAAM,MAAM,yBAAyB,CAAC,KAAK,IAAI;IAC7C,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,GAAG,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,WAAW,CAAC;QACnB,SAAS,EAAE,WAAW,CAAC;KACxB,KAAK,KAAK,CAAC;IACZ,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,WAAW,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC,2BAmE1C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,MAAM,WAKjB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,mBASxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,WAKxC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAC1C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,sBAMxC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,mCAMxC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAY/G;AAED,wBAAgB,cAAc,CAAC,KAAK,EAClC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,2BA+BtC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAClC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,GACrC,gBAAgB,GAAG,IAAI,CAezB;AAED,wBAAgB,eAAe,CAAC,KAAK,EACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,EACtC,MAAM,EAAE,gBAAgB,GAAG,IAAI,2BAehC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,KAAK,GAAE,eAAe,GAAG,IAA4B,EACrD,MAAM,GAAE,SAAS,WAAW,EAAiB,GAC5C,qBAAqB,GAAG,IAAI,CA2C9B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,EACpC,MAAM,GAAE,SAAS,WAAW,EAAiB,2BAuC9C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EACvC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,0BAA0B,2BAY/C;AA0DD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,EAC3C,WAAW,EACX,OAAO,EACP,eAAe,EACf,IAAI,EACJ,WAAmB,GACpB,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAUhC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,EAC5C,WAAW,EACX,OAAO,EACP,eAAe,EACf,IAAI,EACJ,WAAmB,GACpB,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAYhC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, R as _, S as v, T as y, U as b, V as x, W as S, X as C, Y as w, Z as T, _ as E, a as D, b as O, c as k, d as A, f as j, g as M, h as N, i as P, j as F, k as I, l as L, m as R, n as z, o as B, p as V, q as H, r as U, s as W, t as G, u as K, v as q, w as J, x as Y, y as X, z as Z } from "./core-BF1H3EEK.js";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, R as _, S as v, T as y, U as b, V as x, W as S, X as C, Y as w, Z as T, _ as E, a as D, b as O, c as k, d as A, f as j, g as M, h as N, i as P, j as F, k as I, l as L, m as R, n as z, o as B, p as V, q as H, r as U, s as W, t as G, u as K, v as q, w as J, x as Y, y as X, z as Z } from "./core-D01wEe-7.js";
2
2
  export { G as addCominsRows, z as applyCominsColumnLayout, U as clearCominsCellRange, P as clearCominsSelection, D as clearCominsSortState, B as copyCominsCell, W as copyCominsCellRange, k as copyCominsRow, L as createCominsTableState, K as deleteCominsRows, A as exportCominsRowsToCsv, j as exportCominsRowsToJson, V as fillCominsCellRange, R as formatCominsCellValue, N as getCominsCellClassName, M as getCominsCellStyle, E as getCominsCellValue, q as getCominsHeaderRows, X as getCominsPageRows, O as getCominsSelectedCellRange, Y as getCominsSortedRowIndexes, v as getCominsVirtualRows, n as getCominsVisibleColumns, J as isCominsCellDisabled, y as isCominsCellInSelectedRange, i as isCominsCellSelected, r as isCominsRowSelected, m as moveCominsColumn, I as moveCominsColumnGroup, e as moveCominsRow, F as moveCominsRowToGroup, f as pasteCominsCell, p as pasteCominsCellRange, h as pasteCominsRow, a as queryCominsRows, c as replaceCominsRows, d as selectCell, _ as selectCellRange, Z as selectRow, t as selectRows, x as serializeCominsColumnLayout, s as setCominsColumnGroupHidden, b as setCominsColumnGroupWidth, S as setCominsColumnHidden, o as setCominsColumnWidth, u as setCominsHeaderVisible, H as setCominsPagination, l as setCominsSortModel, w as setCominsSortState, C as setCominsTableTheme, T as sortCominsRows, g as updateCominsRows };
package/dist/index.d.ts CHANGED
@@ -1,14 +1,26 @@
1
1
  import type React from "react";
2
+ import { type CominsCopyTarget, type CominsSelectedCell } from "./selection-data";
3
+ export type { CominsCopyTarget, CominsSelectedCell, CominsSelectionCopy } from "./selection-data";
4
+ import { type CominsViewportData, type CominsViewportRequest } from "./viewport-data";
5
+ import type { CominsViewportDatasource } from "./use-viewport";
6
+ import { type CominsRowHeight, type CominsRowHeightParams } from "./row-height";
7
+ import { type CominsBeforeTreeRowDragPayload, type CominsTreeRowDragPayload, type CominsAfterTreeRowDragPayload } from "./tree-drag";
2
8
  export * from "./core";
3
9
  export * from "./summary";
4
10
  export * from "./tree";
11
+ export { createCominsViewportData, reduceCominsViewportData } from "./viewport-data";
12
+ export type { CominsViewportData, CominsViewportDataOptions, CominsViewportDataEvent, CominsViewportBlock, CominsViewportRange, CominsViewportRequest, CominsViewportRequestState, CominsViewportRevision, CominsViewportPatch } from "./viewport-data";
13
+ export { useCominsViewport } from "./use-viewport";
14
+ export type { CominsViewportOptions, CominsViewportDatasource } from "./use-viewport";
15
+ export type { CominsRowHeight, CominsRowHeightParams } from "./row-height";
16
+ export type { CominsBeforeTreeRowDragPayload, CominsTreeRowDragPayload, CominsAfterTreeRowDragPayload } from "./tree-drag";
5
17
  export type { CominsColumnFilterConfig, CominsColumnFilterKind, CominsColumnFilterModel, CominsColumnFilterOperator, CominsColumnFilterRule, CominsColumnFilteringConfig, } from "./filtering";
6
18
  export { moveCominsRowGroup } from "./grouping";
7
19
  export type { CominsRowGroupAggregation, CominsRowGroupDropPosition, CominsRowGroupMoveDetails, CominsRowGroupProps, CominsRowGroupRenderParams, CominsRowGroupingConfig, CominsRowGroupingSourceRow, CominsSetRowGroupIdParams, } from "./grouping";
8
20
  export { createCominsTableTransferCoordinator, transferCominsGroupBetweenTables, transferCominsRowBetweenTables, } from "./table-transfer";
9
21
  export type { CominsGroupBetweenTablesInput, CominsRowBetweenTablesInput, CominsTableGroupTransferDetails, CominsTableRowTransferDetails, CominsTableTransferConfig, CominsTableTransferConflict, CominsTableTransferConflictPolicy, CominsTableTransferConflictResolver, CominsTableTransferCoordinator, CominsTableTransferCoordinatorOptions, CominsTableTransferDetails, CominsTableTransferDropPosition, CominsTableTransferEndpoint, CominsTableTransferGroupEndpoint, CominsTableTransferIntent, CominsTableTransferResolvedConflict, CominsTableTransferRejection, CominsTableTransferRejectionFeedback, CominsTableTransferResult, CominsTableTransferRowEndpoint, } from "./table-transfer";
10
22
  import type { CominsTableSummaryConfig } from "./summary";
11
- import type { CominsTreeNode } from "./tree";
23
+ import type { CominsTreeNode, CominsTreeRowDragConfig, CominsTreeMoveDestination, CominsTreeDropPosition } from "./tree";
12
24
  import type { CominsRowGroupingConfig } from "./grouping";
13
25
  import type { CominsColumnFilteringConfig } from "./filtering";
14
26
  import type { CominsTableTransferConfig } from "./table-transfer";
@@ -27,6 +39,34 @@ export type CominsEventRow<TData> = {
27
39
  id: CominsRowId;
28
40
  index: number;
29
41
  };
42
+ export type CominsRowDragTarget = {
43
+ tree?: CominsTreeMoveDestination & {
44
+ position: CominsTreeDropPosition;
45
+ };
46
+ dataIndex?: number;
47
+ groupId?: CominsRowId;
48
+ rowId?: CominsRowId;
49
+ tableId?: string;
50
+ valid: boolean;
51
+ };
52
+ export type CominsBeforeRowDragPayload<TData> = {
53
+ event: React.PointerEvent<HTMLElement>;
54
+ row: CominsEventRow<TData>;
55
+ sourceGroupId?: CominsRowId;
56
+ sourceTableId?: string;
57
+ };
58
+ export type CominsRowDragPayload<TData> = Omit<CominsBeforeRowDragPayload<TData>, "event"> & {
59
+ event: PointerEvent;
60
+ target: CominsRowDragTarget;
61
+ };
62
+ export type CominsRowDragResult = "cancelled" | "moved" | "rejected";
63
+ export type CominsRowDragReason = "blur" | "drop" | "duplicate-id" | "escape" | "invalid-target" | "pointer-cancel" | "stale-target" | "unchanged";
64
+ export type CominsAfterDragRowPayload<TData> = Omit<CominsBeforeRowDragPayload<TData>, "event"> & {
65
+ event: PointerEvent | null;
66
+ reason: CominsRowDragReason;
67
+ result: CominsRowDragResult;
68
+ target?: CominsRowDragTarget;
69
+ };
30
70
  export type CominsRowEventPayload<TData, TEvent = React.MouseEvent<HTMLTableRowElement>> = {
31
71
  event: TEvent;
32
72
  index: number;
@@ -54,6 +94,10 @@ export type CominsRowDetailProps<TData> = {
54
94
  renderRowDetail?: (params: CominsRowDetailParams<TData>) => React.ReactNode;
55
95
  };
56
96
  export type CominsTableRef<TData = unknown> = {
97
+ copySelection: (target?: CominsCopyTarget) => Promise<string | null>;
98
+ getSelectedRows: () => TData[];
99
+ getSelectedCells: () => CominsSelectedCell[];
100
+ getSelection: () => CominsSelectionState;
57
101
  clearSort: () => void;
58
102
  expand: (nodeIds?: readonly CominsRowId[]) => void;
59
103
  expandGroups: (groupIds?: readonly CominsRowId[]) => void;
@@ -77,8 +121,11 @@ export type CominsLazyLoadRequest = {
77
121
  signal: AbortSignal;
78
122
  };
79
123
  type CominsFlatTableBaseProps<TData> = {
124
+ viewportDatasource?: never;
80
125
  "buffer-size"?: number;
81
126
  cellSelection?: boolean;
127
+ rowSelectionOnClick?: boolean;
128
+ clipboard?: boolean;
82
129
  className?: string;
83
130
  columnGroups?: Array<CominsTableColumnGroup>;
84
131
  columns: Array<CominsTableColumn<TData>>;
@@ -112,9 +159,14 @@ type CominsFlatTableBaseProps<TData> = {
112
159
  onKeyDownRow?: (payload: CominsRowKeyboardEventPayload<TData>) => void;
113
160
  onLazyLoad?: (request: CominsLazyLoadRequest) => Promise<void> | void;
114
161
  onLoadMore?: () => void;
162
+ onAfterDragRow?: (payload: CominsAfterDragRowPayload<TData>) => void;
163
+ onBeforeRowDrag?: (payload: CominsBeforeRowDragPayload<TData>) => boolean | void;
164
+ onRowDrag?: (payload: CominsRowDragPayload<TData>) => void;
115
165
  pagination?: Partial<CominsPaginationState>;
116
166
  persistHeaderWhenEmpty?: boolean;
117
167
  rowHeight?: number;
168
+ getRowHeight?: (params: CominsRowHeightParams<TData>) => CominsRowHeight | undefined;
169
+ estimatedRowHeight?: number;
118
170
  rowProps?: CominsTableRowProps<TData>;
119
171
  showColumnMoveHandle?: boolean;
120
172
  showHeader?: boolean;
@@ -189,7 +241,7 @@ type CominsFilteredGroupedTableProps<TData, TGroup> = Omit<CominsGroupedTableBas
189
241
  tableTransfer?: never;
190
242
  };
191
243
  export type CominsTableProps<TData, TGroup = unknown> = (CominsFilteredGroupedTableProps<TData, TGroup> | CominsFilteredTableProps<TData> | CominsGroupedTableProps<TData, TGroup> | CominsUngroupedTableProps<TData>) & CominsRowDetailProps<TData>;
192
- export type CominsTreeTableProps<TData> = Omit<CominsFlatTableBaseProps<TData>, "data" | "columnFiltering" | "getRowId" | "hasMoreRows" | "infiniteScroll" | "infiniteScrollThreshold" | "lazyLoad" | "lazyLoadBatchSize" | "lazyLoadMode" | "lazyLoadThreshold" | "loadingMore" | "onChangeData" | "onLazyLoad" | "onLoadMore" | "pagination" | "rowProps" | "rowGrouping" | "tableTransfer" | "estimatedRowDetailHeight" | "expandedRowIds" | "getRowDetailHeight" | "isRowExpandable" | "onChangeExpandedRowIds" | "renderRowDetail" | "tree"> & {
244
+ export type CominsTreeTableProps<TData> = Omit<CominsFlatTableBaseProps<TData>, "data" | "columnFiltering" | "getRowId" | "hasMoreRows" | "infiniteScroll" | "infiniteScrollThreshold" | "lazyLoad" | "lazyLoadBatchSize" | "lazyLoadMode" | "lazyLoadThreshold" | "loadingMore" | "onChangeData" | "onLazyLoad" | "onLoadMore" | "onAfterDragRow" | "onBeforeRowDrag" | "onRowDrag" | "pagination" | "rowProps" | "rowGrouping" | "tableTransfer" | "estimatedRowDetailHeight" | "expandedRowIds" | "getRowDetailHeight" | "isRowExpandable" | "onChangeExpandedRowIds" | "renderRowDetail" | "tree"> & {
193
245
  data: readonly CominsTreeNode<TData>[];
194
246
  columnFiltering?: never;
195
247
  defaultExpandAll?: boolean;
@@ -205,10 +257,12 @@ export type CominsTreeTableProps<TData> = Omit<CominsFlatTableBaseProps<TData>,
205
257
  onChangeData?: (data: CominsTreeNode<TData>[]) => void;
206
258
  onLazyLoad?: never;
207
259
  onLoadMore?: never;
260
+ onAfterDragRow?: (payload: CominsAfterTreeRowDragPayload<TData>) => void;
261
+ onBeforeRowDrag?: (payload: CominsBeforeTreeRowDragPayload<TData>) => boolean | void;
262
+ onRowDrag?: (payload: CominsTreeRowDragPayload<TData>) => void;
208
263
  pagination?: never;
209
- rowProps?: Omit<CominsTableRowProps<TData>, "draggable"> & {
210
- draggable?: never;
211
- };
264
+ rowProps?: CominsTableRowProps<TData>;
265
+ treeRowDrag?: CominsTreeRowDragConfig<TData>;
212
266
  estimatedRowDetailHeight?: never;
213
267
  expandedRowIds?: never;
214
268
  getRowDetailHeight?: never;
@@ -219,6 +273,26 @@ export type CominsTreeTableProps<TData> = Omit<CominsFlatTableBaseProps<TData>,
219
273
  tableTransfer?: never;
220
274
  tree: true;
221
275
  };
222
- export declare const CominsTable: <TData, TGroup = unknown>(props: (CominsTableProps<TData, TGroup> | CominsTreeTableProps<TData>) & React.RefAttributes<CominsTableRef<TData>>) => React.ReactElement | null;
276
+ export type CominsViewportTableProps<TData> = Omit<CominsFlatTableBaseProps<TData>, "data" | "getRowId" | "onChangeData" | "viewportDatasource" | "virtualized" | "pagination" | "lazyLoad" | "infiniteScroll" | "hasMoreRows" | "loadingMore" | "onLazyLoad" | "onLoadMore" | "summary" | "onBeforeRowDrag" | "onRowDrag" | "onAfterDragRow"> & {
277
+ data: CominsViewportData<TData>;
278
+ viewportDatasource: CominsViewportDatasource;
279
+ getRowId: (row: TData, index: number) => CominsRowId;
280
+ onViewportRequest: (request: CominsViewportRequest) => void | Promise<void>;
281
+ onChangeData?: (data: CominsViewportData<TData>) => void;
282
+ virtualized?: true;
283
+ pagination?: never;
284
+ lazyLoad?: never;
285
+ infiniteScroll?: never;
286
+ hasMoreRows?: never;
287
+ loadingMore?: never;
288
+ onLazyLoad?: never;
289
+ onLoadMore?: never;
290
+ summary?: never;
291
+ rowGrouping?: never;
292
+ columnFiltering?: never;
293
+ tableTransfer?: never;
294
+ renderRowDetail?: never;
295
+ };
296
+ export declare const CominsTable: <TData, TGroup = unknown>(props: (CominsTableProps<TData, TGroup> | CominsTreeTableProps<TData> | CominsViewportTableProps<TData>) & React.RefAttributes<CominsTableRef<TData>>) => React.ReactElement | null;
223
297
  export declare const cominsTablePackage = "comins-table";
224
298
  //# sourceMappingURL=index.d.ts.map