@economic/taco 14.1.0-EC-86083-poc-array-return.0 → 14.1.0-EC-86083-poc-array-return.1

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.
Files changed (32) hide show
  1. package/dist/components/Table3/useTable3.cjs.map +1 -1
  2. package/dist/components/Table3/useTable3.js.map +1 -1
  3. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs +4 -4
  4. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  5. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +1 -1
  6. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  7. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs +12 -5
  8. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
  9. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js +11 -4
  10. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  11. package/dist/primitives/Table/types.cjs.map +1 -1
  12. package/dist/primitives/Table/types.d.ts +8 -1
  13. package/dist/primitives/Table/types.js.map +1 -1
  14. package/dist/primitives/Table/useTableManager/features/useTableRowActions.cjs +1 -5
  15. package/dist/primitives/Table/useTableManager/features/useTableRowActions.cjs.map +1 -1
  16. package/dist/primitives/Table/useTableManager/features/useTableRowActions.d.ts +0 -1
  17. package/dist/primitives/Table/useTableManager/features/useTableRowActions.js +1 -5
  18. package/dist/primitives/Table/useTableManager/features/useTableRowActions.js.map +1 -1
  19. package/dist/primitives/Table/useTableManager/util/presets.cjs +2 -2
  20. package/dist/primitives/Table/useTableManager/util/presets.cjs.map +1 -1
  21. package/dist/primitives/Table/useTableManager/util/presets.js +1 -1
  22. package/dist/primitives/Table/useTableManager/util/presets.js.map +1 -1
  23. package/dist/primitives/Table/useTableManager/util/rowActions.cjs +7 -0
  24. package/dist/primitives/Table/useTableManager/util/rowActions.cjs.map +1 -0
  25. package/dist/primitives/Table/useTableManager/util/rowActions.d.ts +1 -0
  26. package/dist/primitives/Table/useTableManager/util/rowActions.js +7 -0
  27. package/dist/primitives/Table/useTableManager/util/rowActions.js.map +1 -0
  28. package/dist/primitives/Table/useTableManager/util/setup.cjs +2 -2
  29. package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
  30. package/dist/primitives/Table/useTableManager/util/setup.js +1 -1
  31. package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
  32. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { IconName, MenuItemProps } from '@/components';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '@/types';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetPagination: () => Promise<void>;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.Ref<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\n\nexport type TableRowActionConfig<TArg = unknown> = {\n key: string;\n /** aria-label, and the label shown when this action overflows into the \"more\" menu */\n name: string;\n /** Overrides the on-row tooltip text; falls back to `name` when omitted */\n tooltip?: string;\n icon: IconName;\n shortcut?: string | KeyDownHandlerOptions;\n /** Visible but inert -- to hide the action entirely, omit it from the returned array instead */\n disabled?: boolean;\n onClick: (arg: TArg, event: React.MouseEvent) => void;\n};\n// A declarative alternative to an array of renderers: one function computing the whole per-row action\n// list, receiving the same helpers as TableRowActionRenderer\nexport type TableRowActionConfigRenderer<TType = unknown> = (\n row: TType,\n helpers: Parameters<TableRowActionRenderer<TType>>[1]\n) => TableRowActionConfig<TType>[];\nexport type TableRowActionConfigGroupRenderer<TType = unknown> = (rows: TType[]) => TableRowActionConfig<TType[]>[];\n\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\n// discards the currently loaded pages and loads the first page again, using the last used\n// sorting, filters, hidden columns and search\nexport type TableServerResetPaginationHandler = () => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>;\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[] | TableRowActionConfigGroupRenderer<TType>;\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n resetPagination?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType;\n selectedRows?: never;\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n resetPagination?: TableServerResetPaginationHandler;\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType;\n selectedRows?: never;\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n resetPagination?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n resetPagination?: TableServerResetPaginationHandler;\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":"AA4BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { IconName, MenuItemProps } from '@/components';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '@/types';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetPagination: () => Promise<void>;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.Ref<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n /** Column id of the cell that most recently held focus in the row, e.g. for actions that duplicate the row and restore the user's position */\n lastFocusedCellId?: string;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\n\nexport type TableRowActionConfig<TArg = unknown> = {\n key: string;\n /** aria-label, and the label shown when this action overflows into the \"more\" menu */\n name: string;\n /** Overrides the on-row tooltip text; falls back to `name` when omitted */\n tooltip?: string;\n icon: IconName;\n shortcut?: string | KeyDownHandlerOptions;\n /** Visible but inert; to hide the action entirely, omit it from the returned array instead */\n disabled?: boolean;\n /**\n * Extra data-* attributes rendered on the action and carried onto its overflow menu item,\n * e.g. analytics or test hooks. Keys may be given with or without the data- prefix\n */\n data?: Record<string, string>;\n onClick: (arg: TArg, event: React.MouseEvent) => void;\n};\n// A declarative alternative to an array of renderers: one function computing the whole per-row action\n// list, receiving the same helpers as TableRowActionRenderer\nexport type TableRowActionConfigRenderer<TType = unknown> = (\n row: TType,\n helpers: Parameters<TableRowActionRenderer<TType>>[1]\n) => TableRowActionConfig<TType>[];\nexport type TableRowActionConfigGroupRenderer<TType = unknown> = (rows: TType[]) => TableRowActionConfig<TType[]>[];\n\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\n// discards the currently loaded pages and loads the first page again, using the last used\n// sorting, filters, hidden columns and search\nexport type TableServerResetPaginationHandler = () => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>;\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[] | TableRowActionConfigGroupRenderer<TType>;\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n resetPagination?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType;\n selectedRows?: never;\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n resetPagination?: TableServerResetPaginationHandler;\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType;\n selectedRows?: never;\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n resetPagination?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n resetPagination?: TableServerResetPaginationHandler;\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":"AA4BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;"}
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const DEFAULT_ROW_ACTIONS_LENGTH = 4;
4
- function hasRowActions(rowActions) {
5
- return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;
6
- }
7
4
  function useTableRowActions(isEnabled = false, rowActions, rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH) {
8
5
  return {
9
6
  isEnabled,
10
7
  rowActions: isEnabled ? rowActions : void 0,
11
- // a function's count is unknowable statically -- clamp against the configured max (see useTableStyleGrid.ts)
8
+ // a function's count is unknowable statically, so clamp against the configured max (see useTableStyleGrid.ts)
12
9
  rowActionsLength: rowActions ? Array.isArray(rowActions) ? Math.min(rowActions.length, rowActionsLength) : rowActionsLength : 0
13
10
  };
14
11
  }
15
- exports.hasRowActions = hasRowActions;
16
12
  exports.useTableRowActions = useTableRowActions;
17
13
  //# sourceMappingURL=useTableRowActions.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowActions.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowActions.ts"],"sourcesContent":["import type { TableRowActionConfigRenderer, TableRowActionRenderer } from '../../types';\n\nconst DEFAULT_ROW_ACTIONS_LENGTH = 4;\n\n// a config-style function's .length is its arity, not an action count -- always check presence through here\nexport function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(\n rowActions: TActions | undefined\n): rowActions is TActions {\n return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;\n}\n\nexport function useTableRowActions<TType = unknown>(\n isEnabled = false,\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>,\n rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH\n) {\n return {\n isEnabled,\n rowActions: isEnabled ? rowActions : undefined,\n // a function's count is unknowable statically -- clamp against the configured max (see useTableStyleGrid.ts)\n rowActionsLength: rowActions\n ? Array.isArray(rowActions)\n ? Math.min(rowActions.length, rowActionsLength)\n : rowActionsLength\n : 0,\n };\n}\n"],"names":[],"mappings":";;AAEA,MAAM,6BAA6B;AAG5B,SAAS,cACZ,YACsB;AACtB,SAAO,MAAM,QAAQ,UAAU,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC;AACjE;AAEO,SAAS,mBACZ,YAAY,OACZ,YACA,mBAAmB,4BACrB;AACE,SAAO;AAAA,IACH;AAAA,IACA,YAAY,YAAY,aAAa;AAAA;AAAA,IAErC,kBAAkB,aACZ,MAAM,QAAQ,UAAU,IACpB,KAAK,IAAI,WAAW,QAAQ,gBAAgB,IAC5C,mBACJ;AAAA,EAAA;AAEd;;;"}
1
+ {"version":3,"file":"useTableRowActions.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowActions.ts"],"sourcesContent":["import type { TableRowActionConfigRenderer, TableRowActionRenderer } from '../../types';\n\nconst DEFAULT_ROW_ACTIONS_LENGTH = 4;\n\nexport function useTableRowActions<TType = unknown>(\n isEnabled = false,\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>,\n rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH\n) {\n return {\n isEnabled,\n rowActions: isEnabled ? rowActions : undefined,\n // a function's count is unknowable statically, so clamp against the configured max (see useTableStyleGrid.ts)\n rowActionsLength: rowActions\n ? Array.isArray(rowActions)\n ? Math.min(rowActions.length, rowActionsLength)\n : rowActionsLength\n : 0,\n };\n}\n"],"names":[],"mappings":";;AAEA,MAAM,6BAA6B;AAE5B,SAAS,mBACZ,YAAY,OACZ,YACA,mBAAmB,4BACrB;AACE,SAAO;AAAA,IACH;AAAA,IACA,YAAY,YAAY,aAAa;AAAA;AAAA,IAErC,kBAAkB,aACZ,MAAM,QAAQ,UAAU,IACpB,KAAK,IAAI,WAAW,QAAQ,gBAAgB,IAC5C,mBACJ;AAAA,EAAA;AAEd;;"}
@@ -1,5 +1,4 @@
1
1
  import { TableRowActionConfigRenderer, TableRowActionRenderer } from '../../types';
2
- export declare function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(rowActions: TActions | undefined): rowActions is TActions;
3
2
  export declare function useTableRowActions<TType = unknown>(isEnabled?: boolean, rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>, rowActionsLength?: number): {
4
3
  isEnabled: boolean;
5
4
  rowActions: TableRowActionConfigRenderer<TType> | TableRowActionRenderer<TType>[] | undefined;
@@ -1,17 +1,13 @@
1
1
  const DEFAULT_ROW_ACTIONS_LENGTH = 4;
2
- function hasRowActions(rowActions) {
3
- return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;
4
- }
5
2
  function useTableRowActions(isEnabled = false, rowActions, rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH) {
6
3
  return {
7
4
  isEnabled,
8
5
  rowActions: isEnabled ? rowActions : void 0,
9
- // a function's count is unknowable statically -- clamp against the configured max (see useTableStyleGrid.ts)
6
+ // a function's count is unknowable statically, so clamp against the configured max (see useTableStyleGrid.ts)
10
7
  rowActionsLength: rowActions ? Array.isArray(rowActions) ? Math.min(rowActions.length, rowActionsLength) : rowActionsLength : 0
11
8
  };
12
9
  }
13
10
  export {
14
- hasRowActions,
15
11
  useTableRowActions
16
12
  };
17
13
  //# sourceMappingURL=useTableRowActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowActions.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowActions.ts"],"sourcesContent":["import type { TableRowActionConfigRenderer, TableRowActionRenderer } from '../../types';\n\nconst DEFAULT_ROW_ACTIONS_LENGTH = 4;\n\n// a config-style function's .length is its arity, not an action count -- always check presence through here\nexport function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(\n rowActions: TActions | undefined\n): rowActions is TActions {\n return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;\n}\n\nexport function useTableRowActions<TType = unknown>(\n isEnabled = false,\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>,\n rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH\n) {\n return {\n isEnabled,\n rowActions: isEnabled ? rowActions : undefined,\n // a function's count is unknowable statically -- clamp against the configured max (see useTableStyleGrid.ts)\n rowActionsLength: rowActions\n ? Array.isArray(rowActions)\n ? Math.min(rowActions.length, rowActionsLength)\n : rowActionsLength\n : 0,\n };\n}\n"],"names":[],"mappings":"AAEA,MAAM,6BAA6B;AAG5B,SAAS,cACZ,YACsB;AACtB,SAAO,MAAM,QAAQ,UAAU,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC;AACjE;AAEO,SAAS,mBACZ,YAAY,OACZ,YACA,mBAAmB,4BACrB;AACE,SAAO;AAAA,IACH;AAAA,IACA,YAAY,YAAY,aAAa;AAAA;AAAA,IAErC,kBAAkB,aACZ,MAAM,QAAQ,UAAU,IACpB,KAAK,IAAI,WAAW,QAAQ,gBAAgB,IAC5C,mBACJ;AAAA,EAAA;AAEd;"}
1
+ {"version":3,"file":"useTableRowActions.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowActions.ts"],"sourcesContent":["import type { TableRowActionConfigRenderer, TableRowActionRenderer } from '../../types';\n\nconst DEFAULT_ROW_ACTIONS_LENGTH = 4;\n\nexport function useTableRowActions<TType = unknown>(\n isEnabled = false,\n rowActions?: TableRowActionRenderer<TType>[] | TableRowActionConfigRenderer<TType>,\n rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH\n) {\n return {\n isEnabled,\n rowActions: isEnabled ? rowActions : undefined,\n // a function's count is unknowable statically, so clamp against the configured max (see useTableStyleGrid.ts)\n rowActionsLength: rowActions\n ? Array.isArray(rowActions)\n ? Math.min(rowActions.length, rowActionsLength)\n : rowActionsLength\n : 0,\n };\n}\n"],"names":[],"mappings":"AAEA,MAAM,6BAA6B;AAE5B,SAAS,mBACZ,YAAY,OACZ,YACA,mBAAmB,4BACrB;AACE,SAAO;AAAA,IACH;AAAA,IACA,YAAY,YAAY,aAAa;AAAA;AAAA,IAErC,kBAAkB,aACZ,MAAM,QAAQ,UAAU,IACpB,KAAK,IAAI,WAAW,QAAQ,gBAAgB,IAC5C,mBACJ;AAAA,EAAA;AAEd;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useTableRowActions = require("../features/useTableRowActions.cjs");
3
+ const rowActions = require("./rowActions.cjs");
4
4
  const DEFAULT_PRESET = {
5
5
  // react-table built-in
6
6
  enableFiltering: false,
@@ -136,7 +136,7 @@ function getTableFeaturePreset(props) {
136
136
  enableFooter: props.enableFooter ?? presetOptions.enableFooter,
137
137
  enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,
138
138
  enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,
139
- enableRowActions: enableRowActions && useTableRowActions.hasRowActions(props.rowActions),
139
+ enableRowActions: enableRowActions && rowActions.hasRowActions(props.rowActions),
140
140
  // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,
141
141
  // and not just result of the condition
142
142
  enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,
@@ -1 +1 @@
1
- {"version":3,"file":"presets.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/presets.ts"],"sourcesContent":["import type { TableFeatureProps, TablePreset, TableProps } from '../../types';\nimport { hasRowActions } from '../features/useTableRowActions';\n\nconst DEFAULT_PRESET: TableFeatureProps = {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: false,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: false,\n enableSaveSettingsLocally: true,\n};\n\nconst presets: Record<TablePreset, TableFeatureProps> = {\n // View/edit/create on page\n complex: {\n // react-table built-in\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnResizing: true,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: true,\n enableFontSize: true,\n enableFooter: true,\n enablePrinting: true,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View/create in dialog\n list: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View in card or dialog\n simple: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: false,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n};\n\nexport function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps<TType> {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;\n\n const enableRowActions = props.enableRowActions ?? presetOptions.enableRowActions;\n const enableRowClick = props.enableRowClick ?? presetOptions.enableRowClick;\n const enableRowDrag = props.enableRowDrag ?? presetOptions.enableRowDrag;\n const enableRowDrop = props.enableRowDrop ?? presetOptions.enableRowDrop;\n const enableRowGoto = props.enableRowGoto ?? presetOptions.enableRowGoto;\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowExpansionAll = props.enableRowExpansionAll ?? presetOptions.enableRowExpansionAll;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n\n return {\n // react-table built-in\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableRowExpansion: enableRowExpansion && !!props.rowExpansionRenderer,\n enableRowSelection: !!props.onRowSelect && enableRowSelection,\n\n // custom -- common between all table types\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enableFooter: props.enableFooter ?? presetOptions.enableFooter,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,\n enableRowActions: enableRowActions && hasRowActions(props.rowActions),\n // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,\n // and not just result of the condition\n enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,\n enableRowDrag: enableRowDrag && !!props.onRowDrag,\n enableRowDrop: enableRowDrop && !!props.onRowDrop,\n enableRowGoto: enableRowGoto && !!props.onRowGoto,\n enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableSaveSettings: props.enableSaveSettings ?? presetOptions.enableSaveSettings,\n enableSaveSettingsLocally: props.enableSaveSettingsLocally ?? presetOptions.enableSaveSettingsLocally,\n };\n}\n"],"names":["hasRowActions"],"mappings":"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"}
1
+ {"version":3,"file":"presets.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/presets.ts"],"sourcesContent":["import type { TableFeatureProps, TablePreset, TableProps } from '../../types';\n\nimport { hasRowActions } from './rowActions';\n\nconst DEFAULT_PRESET: TableFeatureProps = {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: false,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: false,\n enableSaveSettingsLocally: true,\n};\n\nconst presets: Record<TablePreset, TableFeatureProps> = {\n // View/edit/create on page\n complex: {\n // react-table built-in\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnResizing: true,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: true,\n enableFontSize: true,\n enableFooter: true,\n enablePrinting: true,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View/create in dialog\n list: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View in card or dialog\n simple: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: false,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n};\n\nexport function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps<TType> {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;\n\n const enableRowActions = props.enableRowActions ?? presetOptions.enableRowActions;\n const enableRowClick = props.enableRowClick ?? presetOptions.enableRowClick;\n const enableRowDrag = props.enableRowDrag ?? presetOptions.enableRowDrag;\n const enableRowDrop = props.enableRowDrop ?? presetOptions.enableRowDrop;\n const enableRowGoto = props.enableRowGoto ?? presetOptions.enableRowGoto;\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowExpansionAll = props.enableRowExpansionAll ?? presetOptions.enableRowExpansionAll;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n\n return {\n // react-table built-in\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableRowExpansion: enableRowExpansion && !!props.rowExpansionRenderer,\n enableRowSelection: !!props.onRowSelect && enableRowSelection,\n\n // custom -- common between all table types\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enableFooter: props.enableFooter ?? presetOptions.enableFooter,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,\n enableRowActions: enableRowActions && hasRowActions(props.rowActions),\n // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,\n // and not just result of the condition\n enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,\n enableRowDrag: enableRowDrag && !!props.onRowDrag,\n enableRowDrop: enableRowDrop && !!props.onRowDrop,\n enableRowGoto: enableRowGoto && !!props.onRowGoto,\n enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableSaveSettings: props.enableSaveSettings ?? presetOptions.enableSaveSettings,\n enableSaveSettingsLocally: props.enableSaveSettingsLocally ?? presetOptions.enableSaveSettingsLocally,\n };\n}\n"],"names":["hasRowActions"],"mappings":";;;AAIA,MAAM,iBAAoC;AAAA;AAAA,EAEtC,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA;AAAA,EAGpB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,2BAA2B;AAC/B;AAEA,MAAM,UAAkD;AAAA;AAAA,EAEpD,SAAS;AAAA;AAAA,IAEL,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,oBAAoB;AAAA;AAAA,IAGpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,2BAA2B;AAAA,EAAA;AAAA;AAAA,EAG/B,MAAM;AAAA;AAAA,IAEF,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,oBAAoB;AAAA;AAAA,IAGpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,2BAA2B;AAAA,EAAA;AAAA;AAAA,EAG/B,QAAQ;AAAA;AAAA,IAEJ,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,oBAAoB;AAAA;AAAA,IAGpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,2BAA2B;AAAA,EAAA;AAEnC;AAEO,SAAS,sBAAuC,OAAoD;AACvG,QAAM,gBAAgB,MAAM,SAAS,QAAQ,MAAM,MAAM,IAAI;AAE7D,QAAM,mBAAmB,MAAM,oBAAoB,cAAc;AACjE,QAAM,iBAAiB,MAAM,kBAAkB,cAAc;AAC7D,QAAM,gBAAgB,MAAM,iBAAiB,cAAc;AAC3D,QAAM,gBAAgB,MAAM,iBAAiB,cAAc;AAC3D,QAAM,gBAAgB,MAAM,iBAAiB,cAAc;AAC3D,QAAM,qBAAqB,MAAM,sBAAsB,cAAc;AACrE,QAAM,wBAAwB,MAAM,yBAAyB,cAAc;AAC3E,QAAM,qBAAqB,MAAM,sBAAsB,cAAc;AAErE,SAAO;AAAA;AAAA,IAEH,iBAAiB,MAAM,mBAAmB,cAAc;AAAA,IACxD,cAAc,MAAM,gBAAgB,cAAc;AAAA,IAClD,eAAe,MAAM,iBAAiB,cAAc;AAAA,IACpD,sBAAsB,MAAM,wBAAwB,cAAc;AAAA,IAClE,oBAAoB,MAAM,sBAAsB,cAAc;AAAA,IAC9D,sBAAsB,MAAM,wBAAwB,cAAc;AAAA,IAClE,oBAAoB,sBAAsB,CAAC,CAAC,MAAM;AAAA,IAClD,oBAAoB,CAAC,CAAC,MAAM,eAAe;AAAA;AAAA,IAG3C,sBAAsB,MAAM,wBAAwB,cAAc;AAAA,IAClE,gBAAgB,MAAM,kBAAkB,cAAc;AAAA,IACtD,cAAc,MAAM,gBAAgB,cAAc;AAAA,IAClD,gBAAgB,MAAM,kBAAkB,cAAc;AAAA,IACtD,iBAAiB,MAAM,mBAAmB,cAAc;AAAA,IACxD,kBAAkB,oBAAoBA,yBAAc,MAAM,UAAU;AAAA;AAAA;AAAA,IAGpE,gBAAgB,kBAAkB,CAAC,CAAC,MAAM,aAAa,iBAAiB;AAAA,IACxE,eAAe,iBAAiB,CAAC,CAAC,MAAM;AAAA,IACxC,eAAe,iBAAiB,CAAC,CAAC,MAAM;AAAA,IACxC,eAAe,iBAAiB,CAAC,CAAC,MAAM;AAAA,IACxC,uBAAuB,sBAAsB,yBAAyB,CAAC,CAAC,MAAM;AAAA,IAC9E,iBAAiB,MAAM,mBAAmB,cAAc;AAAA,IACxD,oBAAoB,MAAM,sBAAsB,cAAc;AAAA,IAC9D,2BAA2B,MAAM,6BAA6B,cAAc;AAAA,EAAA;AAEpF;;"}
@@ -1,4 +1,4 @@
1
- import { hasRowActions } from "../features/useTableRowActions.js";
1
+ import { hasRowActions } from "./rowActions.js";
2
2
  const DEFAULT_PRESET = {
3
3
  // react-table built-in
4
4
  enableFiltering: false,
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sources":["../../../../../src/primitives/Table/useTableManager/util/presets.ts"],"sourcesContent":["import type { TableFeatureProps, TablePreset, TableProps } from '../../types';\nimport { hasRowActions } from '../features/useTableRowActions';\n\nconst DEFAULT_PRESET: TableFeatureProps = {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: false,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: false,\n enableSaveSettingsLocally: true,\n};\n\nconst presets: Record<TablePreset, TableFeatureProps> = {\n // View/edit/create on page\n complex: {\n // react-table built-in\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnResizing: true,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: true,\n enableFontSize: true,\n enableFooter: true,\n enablePrinting: true,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View/create in dialog\n list: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View in card or dialog\n simple: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: false,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n};\n\nexport function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps<TType> {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;\n\n const enableRowActions = props.enableRowActions ?? presetOptions.enableRowActions;\n const enableRowClick = props.enableRowClick ?? presetOptions.enableRowClick;\n const enableRowDrag = props.enableRowDrag ?? presetOptions.enableRowDrag;\n const enableRowDrop = props.enableRowDrop ?? presetOptions.enableRowDrop;\n const enableRowGoto = props.enableRowGoto ?? presetOptions.enableRowGoto;\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowExpansionAll = props.enableRowExpansionAll ?? presetOptions.enableRowExpansionAll;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n\n return {\n // react-table built-in\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableRowExpansion: enableRowExpansion && !!props.rowExpansionRenderer,\n enableRowSelection: !!props.onRowSelect && enableRowSelection,\n\n // custom -- common between all table types\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enableFooter: props.enableFooter ?? presetOptions.enableFooter,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,\n enableRowActions: enableRowActions && hasRowActions(props.rowActions),\n // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,\n // and not just result of the condition\n enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,\n enableRowDrag: enableRowDrag && !!props.onRowDrag,\n enableRowDrop: enableRowDrop && !!props.onRowDrop,\n enableRowGoto: enableRowGoto && !!props.onRowGoto,\n enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableSaveSettings: props.enableSaveSettings ?? presetOptions.enableSaveSettings,\n enableSaveSettingsLocally: props.enableSaveSettingsLocally ?? presetOptions.enableSaveSettingsLocally,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sources":["../../../../../src/primitives/Table/useTableManager/util/presets.ts"],"sourcesContent":["import type { TableFeatureProps, TablePreset, TableProps } from '../../types';\n\nimport { hasRowActions } from './rowActions';\n\nconst DEFAULT_PRESET: TableFeatureProps = {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: false,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: false,\n enableSaveSettingsLocally: true,\n};\n\nconst presets: Record<TablePreset, TableFeatureProps> = {\n // View/edit/create on page\n complex: {\n // react-table built-in\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnResizing: true,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: true,\n enableFontSize: true,\n enableFooter: true,\n enablePrinting: true,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View/create in dialog\n list: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: true,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n // View in card or dialog\n simple: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowExpansionAll: true,\n enableRowSelection: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: false,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n enableSaveSettingsLocally: true,\n },\n};\n\nexport function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps<TType> {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;\n\n const enableRowActions = props.enableRowActions ?? presetOptions.enableRowActions;\n const enableRowClick = props.enableRowClick ?? presetOptions.enableRowClick;\n const enableRowDrag = props.enableRowDrag ?? presetOptions.enableRowDrag;\n const enableRowDrop = props.enableRowDrop ?? presetOptions.enableRowDrop;\n const enableRowGoto = props.enableRowGoto ?? presetOptions.enableRowGoto;\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowExpansionAll = props.enableRowExpansionAll ?? presetOptions.enableRowExpansionAll;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n\n return {\n // react-table built-in\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableRowExpansion: enableRowExpansion && !!props.rowExpansionRenderer,\n enableRowSelection: !!props.onRowSelect && enableRowSelection,\n\n // custom -- common between all table types\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enableFooter: props.enableFooter ?? presetOptions.enableFooter,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,\n enableRowActions: enableRowActions && hasRowActions(props.rowActions),\n // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,\n // and not just result of the condition\n enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,\n enableRowDrag: enableRowDrag && !!props.onRowDrag,\n enableRowDrop: enableRowDrop && !!props.onRowDrop,\n enableRowGoto: enableRowGoto && !!props.onRowGoto,\n enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableSaveSettings: props.enableSaveSettings ?? presetOptions.enableSaveSettings,\n enableSaveSettingsLocally: props.enableSaveSettingsLocally ?? presetOptions.enableSaveSettingsLocally,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function hasRowActions(rowActions) {
4
+ return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;
5
+ }
6
+ exports.hasRowActions = hasRowActions;
7
+ //# sourceMappingURL=rowActions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowActions.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/rowActions.ts"],"sourcesContent":["// a config-style function's .length is its arity, not an action count; always check presence through here\nexport function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(\n rowActions: TActions | undefined\n): rowActions is TActions {\n return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;\n}\n"],"names":[],"mappings":";;AACO,SAAS,cACZ,YACsB;AACtB,SAAO,MAAM,QAAQ,UAAU,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC;AACjE;;"}
@@ -0,0 +1 @@
1
+ export declare function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(rowActions: TActions | undefined): rowActions is TActions;
@@ -0,0 +1,7 @@
1
+ function hasRowActions(rowActions) {
2
+ return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;
3
+ }
4
+ export {
5
+ hasRowActions
6
+ };
7
+ //# sourceMappingURL=rowActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowActions.js","sources":["../../../../../src/primitives/Table/useTableManager/util/rowActions.ts"],"sourcesContent":["// a config-style function's .length is its arity, not an action count; always check presence through here\nexport function hasRowActions<TActions extends readonly unknown[] | ((...args: never[]) => unknown)>(\n rowActions: TActions | undefined\n): rowActions is TActions {\n return Array.isArray(rowActions) ? rowActions.length > 0 : !!rowActions;\n}\n"],"names":[],"mappings":"AACO,SAAS,cACZ,YACsB;AACtB,SAAO,MAAM,QAAQ,UAAU,IAAI,WAAW,SAAS,IAAI,CAAC,CAAC;AACjE;"}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const reactTable = require("@tanstack/react-table");
4
4
  const get = require("lodash/get");
5
5
  const React = require("react");
6
- const useTableRowActions = require("../features/useTableRowActions.cjs");
7
6
  const columns = require("./columns.cjs");
8
7
  const dataTypes = require("./dataTypes.cjs");
9
8
  const filtering = require("./filtering.cjs");
9
+ const rowActions = require("./rowActions.cjs");
10
10
  const search = require("./search.cjs");
11
11
  const settings = require("./settings.cjs");
12
12
  const sorting = require("./sorting.cjs");
@@ -212,7 +212,7 @@ function mapTableChildrenToColumns(props, settings2, options, internalColumns, l
212
212
  const column = createInternalColumn("__drag", internalColumns.rowDrag, defaultSizing);
213
213
  columns2.unshift(column);
214
214
  }
215
- if (options.enableRowActions && useTableRowActions.hasRowActions(props.rowActions) && internalColumns.rowActions) {
215
+ if (options.enableRowActions && rowActions.hasRowActions(props.rowActions) && internalColumns.rowActions) {
216
216
  const column = createInternalColumn("__actions", internalColumns.rowActions, defaultSizing);
217
217
  columns2.push(column);
218
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import type {\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Table as ReactTableInstance,\n CellContext as ReactTableCellContext,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport {\n createColumnHelper,\n expandRows,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getMemoOptions,\n getSortedRowModel,\n memo,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport React from 'react';\n\nimport type { Localization } from '@/components';\n\nimport type { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { hasRowActions } from '../features/useTableRowActions';\nimport type { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\n\nimport { CELL_MIN_WIDTH, ensureOrdering, freezeUptoExternalColumn, unfreezeAllExternalColumns } from './columns';\nimport { getDataTypeProperties } from './dataTypes';\nimport { columnFilterFn } from './filtering';\nimport { globalFilterFn } from './search';\nimport { ignoreInternalColumns } from './settings';\nimport { getSortingFn } from './sorting';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactNode,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId: keyof TType | undefined,\n localization: Localization\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = CELL_MIN_WIDTH[settings.fontSize ?? 'medium'] ?? CELL_MIN_WIDTH.medium,\n sort,\n sortFn,\n ...meta\n } = child.props;\n\n // always have an id, if none is defined use the accessor (at least one has to be defined)\n const id = untypedId ?? (accessorKey as string);\n\n const dataTypeProperties = getDataTypeProperties<TType>(child.props.dataType);\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n // dot notated accessors will throw if they return null or undefined, so use accessorFn (instead of accessorKey) to avoid that\n accessorFn: row => get(row, accessorKey as string),\n // The header can be either a string or a React.JSX.Element, but react-table expects it to be a string or a\n // renderer function, so `() => header` ensures compatibility when header is a React.JSX.Element.\n // If we just pass `() => header`, then we will loose truncation for string headers.\n header: typeof header === 'string' ? header : () => header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n align: meta.align ?? dataTypeProperties.align,\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n },\n };\n\n const formattedValueRenderer = (value: any, row: TType) => {\n const displayValue = dataTypeProperties.getDisplayValue?.(value, row, {\n dataTypeOptions: meta.dataTypeOptions as any,\n localization,\n });\n const safeValue = value !== undefined && value !== null ? String(value) : value;\n\n if (Array.isArray(displayValue)) {\n return displayValue[0] ?? safeValue;\n }\n\n return displayValue ?? safeValue;\n };\n\n const rendererArgs = (info: ReactTableCellContext<TType, any>): any => ({\n row: info.row.original,\n get value() {\n return info.getValue();\n },\n get formattedValue() {\n return formattedValueRenderer(info.getValue(), info.row.original);\n },\n });\n\n // renderers - use defined renderers first, then fall back to data type renderers (if there is one)\n if (typeof renderer === 'function') {\n column.cell = info => renderer(rendererArgs(info));\n } else {\n column.cell = info => formattedValueRenderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original === undefined ? [] : row.original)));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(rendererArgs(info));\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns: useTableManagerInternalColumns<TType> | undefined,\n localization: Localization\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowSelection && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && hasRowActions(props.rowActions) && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\n// react-table skips expansion entirely while nothing is expanded, which would also stop row groups from\n// expanding and hide every row inside them. group rows are always expanded (see getIsRowExpanded below),\n// so when grouping we expand regardless of the row expansion state.\nfunction getRowGroupExpandedRowModel<TType = unknown>() {\n return (table: ReactTableInstance<TType>) =>\n memo(\n () => [table.getState().expanded, table.getPreExpandedRowModel()] as const,\n (_expanded, rowModel) => (rowModel.rows.length ? expandRows(rowModel) : rowModel),\n getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel')\n );\n}\n\nexport function configureReactTableOptions<TType = unknown>(\n options: TableFeatureProps<TType>,\n props: TableProps<TType>,\n localization: Localization\n) {\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof options.enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (options.enableRowSelection as (row: TType) => boolean)(row.original)\n : options.enableRowSelection;\n\n let getRowId;\n\n if (props.rowIdentityAccessor) {\n getRowId = (originalRow: TType | undefined, index: number) => {\n if (originalRow) {\n return String(originalRow[props.rowIdentityAccessor as keyof TType]);\n }\n\n return String(index);\n };\n }\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableGrouping: true,\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n // users can't customise row pinning, so it can just be always enabled\n enableRowPinning: true,\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: props.defaultRowGroupColumnId ? getRowGroupExpandedRowModel<TType>() : getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n // group rows are expanded by grouping, not by row expansion, so their state is fixed - returning\n // undefined for data rows lets react-table fall back to the row expansion state for them\n getIsRowExpanded: ((row: ReactTableRow<TType>) => (row.getIsGrouped() ? true : undefined)) as (\n row: ReactTableRow<TType>\n ) => boolean,\n getRowId,\n groupedColumnMode: false,\n keepPinnedRows: false,\n };\n\n if (options.enableRowExpansion) {\n // Prevent expansion state from resetting when data changes (e.g., after editing)\n tableOptions.autoResetExpanded = false;\n }\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) => {\n const meta = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta;\n return columnFilterFn(row.original, row.getValue(columnId), meta, filter, localization);\n },\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = (row: ReactTableRow<TType>, columnId: string, searchQuery: any) =>\n globalFilterFn(row, columnId, searchQuery, localization);\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) =>\n column.columnDef.meta?.enableSearch !== false && column.getIsVisible();\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n if (props._experimentalDataLoader2) {\n tableOptions.manualFiltering = true;\n } else {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = (column: ReactTableColumnDef<TType>) =>\n columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n const lastPinnedColumn = columnPinning.left.at(-1);\n\n if (lastPinnedColumn !== undefined) {\n columnPinning.left = freezeUptoExternalColumn(columnOrder.indexOf(lastPinnedColumn), columnOrder);\n }\n } else if (props.defaultColumnFreezingIndex === undefined) {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n } else {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n }\n\n const columnSizing = {\n ...defaults.defaultSizing,\n ...props.defaultSettings?.columnSizing,\n ...persistedSettings.columnSizing,\n };\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(columnSizing),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : (props.defaultSettings?.sorting ?? defaults.defaultSorting),\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["columns","settings","createColumnHelper","child","CELL_MIN_WIDTH","getDataTypeProperties","getSortingFn","hasRowActions","memo","expandRows","getMemoOptions","getExpandedRowModel","getGroupedRowModel","getFilteredRowModel","columnFilterFn","globalFilterFn","getSortedRowModel","ensureOrdering","freezeUptoExternalColumn","unfreezeAllExternalColumns","ignoreInternalColumns"],"mappings":"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"}
1
+ {"version":3,"file":"setup.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import type {\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Table as ReactTableInstance,\n CellContext as ReactTableCellContext,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport {\n createColumnHelper,\n expandRows,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getMemoOptions,\n getSortedRowModel,\n memo,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport React from 'react';\n\nimport type { Localization } from '@/components';\n\nimport type { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport type { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\n\nimport { CELL_MIN_WIDTH, ensureOrdering, freezeUptoExternalColumn, unfreezeAllExternalColumns } from './columns';\nimport { getDataTypeProperties } from './dataTypes';\nimport { columnFilterFn } from './filtering';\nimport { hasRowActions } from './rowActions';\nimport { globalFilterFn } from './search';\nimport { ignoreInternalColumns } from './settings';\nimport { getSortingFn } from './sorting';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactNode,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId: keyof TType | undefined,\n localization: Localization\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = CELL_MIN_WIDTH[settings.fontSize ?? 'medium'] ?? CELL_MIN_WIDTH.medium,\n sort,\n sortFn,\n ...meta\n } = child.props;\n\n // always have an id, if none is defined use the accessor (at least one has to be defined)\n const id = untypedId ?? (accessorKey as string);\n\n const dataTypeProperties = getDataTypeProperties<TType>(child.props.dataType);\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n // dot notated accessors will throw if they return null or undefined, so use accessorFn (instead of accessorKey) to avoid that\n accessorFn: row => get(row, accessorKey as string),\n // The header can be either a string or a React.JSX.Element, but react-table expects it to be a string or a\n // renderer function, so `() => header` ensures compatibility when header is a React.JSX.Element.\n // If we just pass `() => header`, then we will loose truncation for string headers.\n header: typeof header === 'string' ? header : () => header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n align: meta.align ?? dataTypeProperties.align,\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n },\n };\n\n const formattedValueRenderer = (value: any, row: TType) => {\n const displayValue = dataTypeProperties.getDisplayValue?.(value, row, {\n dataTypeOptions: meta.dataTypeOptions as any,\n localization,\n });\n const safeValue = value !== undefined && value !== null ? String(value) : value;\n\n if (Array.isArray(displayValue)) {\n return displayValue[0] ?? safeValue;\n }\n\n return displayValue ?? safeValue;\n };\n\n const rendererArgs = (info: ReactTableCellContext<TType, any>): any => ({\n row: info.row.original,\n get value() {\n return info.getValue();\n },\n get formattedValue() {\n return formattedValueRenderer(info.getValue(), info.row.original);\n },\n });\n\n // renderers - use defined renderers first, then fall back to data type renderers (if there is one)\n if (typeof renderer === 'function') {\n column.cell = info => renderer(rendererArgs(info));\n } else {\n column.cell = info => formattedValueRenderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original === undefined ? [] : row.original)));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(rendererArgs(info));\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns: useTableManagerInternalColumns<TType> | undefined,\n localization: Localization\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowSelection && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && hasRowActions(props.rowActions) && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\n// react-table skips expansion entirely while nothing is expanded, which would also stop row groups from\n// expanding and hide every row inside them. group rows are always expanded (see getIsRowExpanded below),\n// so when grouping we expand regardless of the row expansion state.\nfunction getRowGroupExpandedRowModel<TType = unknown>() {\n return (table: ReactTableInstance<TType>) =>\n memo(\n () => [table.getState().expanded, table.getPreExpandedRowModel()] as const,\n (_expanded, rowModel) => (rowModel.rows.length ? expandRows(rowModel) : rowModel),\n getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel')\n );\n}\n\nexport function configureReactTableOptions<TType = unknown>(\n options: TableFeatureProps<TType>,\n props: TableProps<TType>,\n localization: Localization\n) {\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof options.enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (options.enableRowSelection as (row: TType) => boolean)(row.original)\n : options.enableRowSelection;\n\n let getRowId;\n\n if (props.rowIdentityAccessor) {\n getRowId = (originalRow: TType | undefined, index: number) => {\n if (originalRow) {\n return String(originalRow[props.rowIdentityAccessor as keyof TType]);\n }\n\n return String(index);\n };\n }\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableGrouping: true,\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n // users can't customise row pinning, so it can just be always enabled\n enableRowPinning: true,\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: props.defaultRowGroupColumnId ? getRowGroupExpandedRowModel<TType>() : getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n // group rows are expanded by grouping, not by row expansion, so their state is fixed - returning\n // undefined for data rows lets react-table fall back to the row expansion state for them\n getIsRowExpanded: ((row: ReactTableRow<TType>) => (row.getIsGrouped() ? true : undefined)) as (\n row: ReactTableRow<TType>\n ) => boolean,\n getRowId,\n groupedColumnMode: false,\n keepPinnedRows: false,\n };\n\n if (options.enableRowExpansion) {\n // Prevent expansion state from resetting when data changes (e.g., after editing)\n tableOptions.autoResetExpanded = false;\n }\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) => {\n const meta = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta;\n return columnFilterFn(row.original, row.getValue(columnId), meta, filter, localization);\n },\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = (row: ReactTableRow<TType>, columnId: string, searchQuery: any) =>\n globalFilterFn(row, columnId, searchQuery, localization);\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) =>\n column.columnDef.meta?.enableSearch !== false && column.getIsVisible();\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n if (props._experimentalDataLoader2) {\n tableOptions.manualFiltering = true;\n } else {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = (column: ReactTableColumnDef<TType>) =>\n columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n const lastPinnedColumn = columnPinning.left.at(-1);\n\n if (lastPinnedColumn !== undefined) {\n columnPinning.left = freezeUptoExternalColumn(columnOrder.indexOf(lastPinnedColumn), columnOrder);\n }\n } else if (props.defaultColumnFreezingIndex === undefined) {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n } else {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n }\n\n const columnSizing = {\n ...defaults.defaultSizing,\n ...props.defaultSettings?.columnSizing,\n ...persistedSettings.columnSizing,\n };\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(columnSizing),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : (props.defaultSettings?.sorting ?? defaults.defaultSorting),\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["columns","settings","createColumnHelper","child","CELL_MIN_WIDTH","getDataTypeProperties","getSortingFn","hasRowActions","memo","expandRows","getMemoOptions","getExpandedRowModel","getGroupedRowModel","getFilteredRowModel","columnFilterFn","globalFilterFn","getSortedRowModel","ensureOrdering","freezeUptoExternalColumn","unfreezeAllExternalColumns","ignoreInternalColumns"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { getGroupedRowModel, getExpandedRowModel, getFilteredRowModel, getSortedRowModel, createColumnHelper, memo, expandRows, getMemoOptions } from "@tanstack/react-table";
2
2
  import get from "lodash/get";
3
3
  import React__default from "react";
4
- import { hasRowActions } from "../features/useTableRowActions.js";
5
4
  import { ensureOrdering, freezeUptoExternalColumn, unfreezeAllExternalColumns, CELL_MIN_WIDTH } from "./columns.js";
6
5
  import { getDataTypeProperties } from "./dataTypes.js";
7
6
  import { columnFilterFn } from "./filtering.js";
7
+ import { hasRowActions } from "./rowActions.js";
8
8
  import { globalFilterFn } from "./search.js";
9
9
  import { ignoreInternalColumns } from "./settings.js";
10
10
  import { getSortingFn } from "./sorting.js";