@economic/taco 14.1.1 → 14.2.0-tanstack-virtual-update.0
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.
- package/dist/charts/components/Area/AreaChart.cjs +2 -2
- package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
- package/dist/charts/components/Area/AreaChart.js +2 -2
- package/dist/charts/components/Area/AreaChart.js.map +1 -1
- package/dist/charts/components/Bar/BarChart.cjs +1 -1
- package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
- package/dist/charts/components/Bar/BarChart.js +1 -1
- package/dist/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/charts/components/Line/LineChart.cjs +1 -1
- package/dist/charts/components/Line/LineChart.cjs.map +1 -1
- package/dist/charts/components/Line/LineChart.js +1 -1
- package/dist/charts/components/Line/LineChart.js.map +1 -1
- package/dist/components/Datepicker/Datepicker.cjs +4 -14
- package/dist/components/Datepicker/Datepicker.cjs.map +1 -1
- package/dist/components/Datepicker/Datepicker.js +4 -14
- package/dist/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/components/HoverCard/HoverCard.cjs +4 -20
- package/dist/components/HoverCard/HoverCard.cjs.map +1 -1
- package/dist/components/HoverCard/HoverCard.js +5 -21
- package/dist/components/HoverCard/HoverCard.js.map +1 -1
- package/dist/components/Popover/Popover.cjs +12 -3
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -0
- package/dist/components/Popover/Popover.js +14 -5
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/util.cjs +2 -2
- package/dist/components/Popover/util.cjs.map +1 -1
- package/dist/components/Popover/util.d.ts +1 -1
- package/dist/components/Popover/util.js +2 -2
- package/dist/components/Popover/util.js.map +1 -1
- package/dist/components/Provider/Localization.cjs +3 -0
- package/dist/components/Provider/Localization.cjs.map +1 -1
- package/dist/components/Provider/Localization.d.ts +6 -0
- package/dist/components/Provider/Localization.js +3 -0
- package/dist/components/Provider/Localization.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Cell.cjs +3 -2
- package/dist/components/Table3/components/Columns/Cell/Cell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Cell.js +3 -2
- package/dist/components/Table3/components/Columns/Cell/Cell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs +6 -5
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +6 -5
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +9 -8
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +9 -8
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.cjs +2 -1
- package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.js +2 -1
- package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.cjs +2 -1
- package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.js +2 -1
- package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs +2 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.js +2 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
- package/dist/components/Table3/components/Row/Row.cjs +2 -1
- package/dist/components/Table3/components/Row/Row.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Row.js +2 -1
- package/dist/components/Table3/components/Row/Row.js.map +1 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs +2 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs.map +1 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.js +2 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
- package/dist/components/Table3/features/useEditingState.cjs +3 -2
- package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
- package/dist/components/Table3/features/useEditingState.js +3 -2
- package/dist/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/components/Table3/features/useTableEditing.cjs +4 -3
- package/dist/components/Table3/features/useTableEditing.cjs.map +1 -1
- package/dist/components/Table3/features/useTableEditing.js +4 -3
- package/dist/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.cjs +2 -1
- package/dist/components/Table3/listeners/useTableEditingListener.cjs.map +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.js +2 -1
- package/dist/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/components/Toggletip/Toggletip.cjs +85 -0
- package/dist/components/Toggletip/Toggletip.cjs.map +1 -0
- package/dist/components/Toggletip/Toggletip.d.ts +13 -0
- package/dist/components/Toggletip/Toggletip.js +68 -0
- package/dist/components/Toggletip/Toggletip.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.cjs +3 -19
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +3 -19
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/primitives/ArrowTip/ArrowTip.cjs +43 -0
- package/dist/primitives/ArrowTip/ArrowTip.cjs.map +1 -0
- package/dist/primitives/ArrowTip/ArrowTip.d.ts +10 -0
- package/dist/primitives/ArrowTip/ArrowTip.js +26 -0
- package/dist/primitives/ArrowTip/ArrowTip.js.map +1 -0
- package/dist/primitives/BareButton/BareButton.cjs +28 -0
- package/dist/primitives/BareButton/BareButton.cjs.map +1 -0
- package/dist/primitives/BareButton/BareButton.d.ts +7 -0
- package/dist/primitives/BareButton/BareButton.js +11 -0
- package/dist/primitives/BareButton/BareButton.js.map +1 -0
- package/dist/primitives/Table/Core/components/Body/Body.cjs +5 -5
- package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Body/Body.js +6 -6
- package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs +2 -2
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js +2 -2
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs +2 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +2 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +6 -5
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js +6 -5
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js +3 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.cjs +3 -2
- package/dist/primitives/Table/Core/components/Footer/Footer.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.js +3 -2
- package/dist/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.cjs +2 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.js +2 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.cjs +9 -8
- package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.js +9 -8
- package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs +6 -5
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +2 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.cjs +3 -2
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +3 -2
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/primitives/Table/Core/components/Row/Row.cjs +2 -2
- package/dist/primitives/Table/Core/components/Row/Row.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Row/Row.js +2 -2
- package/dist/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.cjs +6 -6
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.js +6 -6
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +2 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs +1 -1
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js +2 -2
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRef.cjs +3 -2
- package/dist/primitives/Table/Core/features/useTableRef.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRef.js +3 -2
- package/dist/primitives/Table/Core/features/useTableRef.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.cjs +13 -12
- package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.js +3 -2
- package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyle.cjs +2 -1
- package/dist/primitives/Table/Core/features/useTableStyle.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyle.d.ts +857 -857
- package/dist/primitives/Table/Core/features/useTableStyle.js +2 -1
- package/dist/primitives/Table/Core/features/useTableStyle.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs +2 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.js +2 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs +2 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js +2 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs +5 -5
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js +2 -2
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.cjs +4 -3
- package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs +4 -4
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +2 -2
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.cjs +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs +5 -4
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js +2 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.cjs +3 -1
- package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.js +3 -1
- package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/rows.cjs +8 -1
- package/dist/primitives/Table/useTableManager/util/rows.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/rows.d.ts +2 -1
- package/dist/primitives/Table/useTableManager/util/rows.js +9 -2
- package/dist/primitives/Table/useTableManager/util/rows.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.cjs +2 -1
- package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.js +2 -1
- package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/settings.cjs +2 -1
- package/dist/primitives/Table/useTableManager/util/settings.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/settings.js +2 -1
- package/dist/primitives/Table/useTableManager/util/settings.js.map +1 -1
- package/dist/utils/tailwind.cjs +4 -0
- package/dist/utils/tailwind.cjs.map +1 -1
- package/dist/utils/tailwind.d.ts +4 -0
- package/dist/utils/tailwind.js +4 -0
- package/dist/utils/tailwind.js.map +1 -1
- package/package.json +6 -6
- package/dist/components/Popover/Primitives.cjs +0 -44
- package/dist/components/Popover/Primitives.cjs.map +0 -1
- package/dist/components/Popover/Primitives.d.ts +0 -2
- package/dist/components/Popover/Primitives.js +0 -27
- package/dist/components/Popover/Primitives.js.map +0 -1
- /package/dist/components/Icon/config/{index-template.d.cts → index-template.d.ts} +0 -0
- /package/dist/components/Icon/config/{svgr.config.d.cts → svgr.config.d.ts} +0 -0
- /package/dist/components/Icon/config/{template.d.cts → template.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSearchListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableSearchListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\nimport { useLazyEffect } from '@/hooks/useLazyEffect';\n\nimport { getHiddenColumns } from '../util/columns';\nimport { getTableMeta } from '../util/rows';\nimport { resetHighlightedColumnIndexes } from '../util/search';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = getTableMeta(table);\n const localization = useLocalization();\n\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n const query = React.useDeferredValue(table.getState().globalFilter);\n\n // Need to re-run search when columns are getting shown/hidden.\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n const currentFilter = query;\n requestAnimationFrame(() => {\n table.resetGlobalFilter();\n table.setGlobalFilter(currentFilter);\n });\n\n if (meta.search.handleSearch && meta.search.enableGlobalFilter && query) {\n meta.search.handleSearch(query, hiddenColumns);\n }\n }\n }, [hiddenColumns.length]);\n\n // recalculates highlighted indexes whenever something important changes\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n resetHighlightedColumnIndexes(query, table, localization);\n }\n }, [\n meta.server.loading,\n meta.search.isEnabled,\n meta.search.enableGlobalFilter,\n table.getRowModel().rows.length,\n query,\n JSON.stringify(table.getState().sorting),\n ]);\n}\n"],"names":["React"],"mappings":";;;;;;AAUO,SAAS,uBAAwC,OAA0B;AAC9E,QAAM,OAAO,aAAa,KAAK;AAC/B,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,iBAAiB,MAAM,SAAA,EAAW,gBAAgB;AAExE,QAAM,QAAQA,eAAM,iBAAiB,MAAM,SAAA,EAAW,YAAY;AAGlE,gBAAc,MAAM;AAChB,QAAI,KAAK,OAAO,WAAW;AACvB,YAAM,gBAAgB;AACtB,4BAAsB,MAAM;AACxB,cAAM,kBAAA;AACN,cAAM,gBAAgB,aAAa;AAAA,MACvC,CAAC;AAED,UAAI,KAAK,OAAO,gBAAgB,KAAK,OAAO,sBAAsB,OAAO;AACrE,aAAK,OAAO,aAAa,OAAO,aAAa;AAAA,MACjD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,cAAc,MAAM,CAAC;AAGzB,gBAAc,MAAM;AAChB,QAAI,KAAK,OAAO,WAAW;AACvB,oCAA8B,OAAO,OAAO,YAAY;AAAA,IAC5D;AAAA,EACJ,GAAG;AAAA,IACC,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,MAAM,cAAc,KAAK;AAAA,IACzB;AAAA,IACA,KAAK,UAAU,MAAM,SAAA,EAAW,OAAO;AAAA,EAAA,CAC1C;AACL;"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const columns = require("../util/columns.cjs");
|
|
5
|
+
const rows = require("../util/rows.cjs");
|
|
5
6
|
function useTableServerLoadingListener(table, loadPage) {
|
|
6
|
-
const meta = table
|
|
7
|
+
const meta = rows.getTableMeta(table);
|
|
7
8
|
React.useEffect(() => {
|
|
8
9
|
if (loadPage) {
|
|
9
10
|
const sorting = table.getState().sorting;
|
package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableServerLoadingListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableServerLoadingListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableServerLoadPageHandler } from '../../types';\nimport { getHiddenColumns } from '../util/columns';\nimport { getTableMeta } from '../util/rows';\n\nexport function useTableServerLoadingListener<TType = unknown>(table: ReactTable<TType>, loadPage?: TableServerLoadPageHandler) {\n const meta = getTableMeta(table);\n\n // trigger load of the first pages on mount\n React.useEffect(() => {\n if (loadPage) {\n const sorting = table.getState().sorting;\n const columnFilters = table.getState().columnFilters;\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const search = meta.search.enableGlobalFilter ? table.getState().globalFilter : undefined;\n\n loadPage(0, sorting, columnFilters, hiddenColumns, search);\n\n if (meta.server._experimentalDataLoader2) {\n loadPage(1, sorting, columnFilters, hiddenColumns, search);\n }\n }\n }, []);\n}\n"],"names":["getTableMeta","getHiddenColumns"],"mappings":";;;;;AAOO,SAAS,8BAA+C,OAA0B,UAAuC;AAC5H,QAAM,OAAOA,KAAAA,aAAa,KAAK;AAG/B,QAAM,UAAU,MAAM;AAClB,QAAI,UAAU;AACV,YAAM,UAAU,MAAM,SAAA,EAAW;AACjC,YAAM,gBAAgB,MAAM,SAAA,EAAW;AACvC,YAAM,gBAAgBC,QAAAA,iBAAiB,MAAM,SAAA,EAAW,gBAAgB;AACxE,YAAM,SAAS,KAAK,OAAO,qBAAqB,MAAM,SAAA,EAAW,eAAe;AAEhF,eAAS,GAAG,SAAS,eAAe,eAAe,MAAM;AAEzD,UAAI,KAAK,OAAO,0BAA0B;AACtC,iBAAS,GAAG,SAAS,eAAe,eAAe,MAAM;AAAA,MAC7D;AAAA,IACJ;AAAA,EACJ,GAAG,CAAA,CAAE;AACT;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React__default from "react";
|
|
2
2
|
import { getHiddenColumns } from "../util/columns.js";
|
|
3
|
+
import { getTableMeta } from "../util/rows.js";
|
|
3
4
|
function useTableServerLoadingListener(table, loadPage) {
|
|
4
|
-
const meta = table
|
|
5
|
+
const meta = getTableMeta(table);
|
|
5
6
|
React__default.useEffect(() => {
|
|
6
7
|
if (loadPage) {
|
|
7
8
|
const sorting = table.getState().sorting;
|
package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableServerLoadingListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableServerLoadingListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableServerLoadPageHandler } from '../../types';\nimport { getHiddenColumns } from '../util/columns';\nimport { getTableMeta } from '../util/rows';\n\nexport function useTableServerLoadingListener<TType = unknown>(table: ReactTable<TType>, loadPage?: TableServerLoadPageHandler) {\n const meta = getTableMeta(table);\n\n // trigger load of the first pages on mount\n React.useEffect(() => {\n if (loadPage) {\n const sorting = table.getState().sorting;\n const columnFilters = table.getState().columnFilters;\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const search = meta.search.enableGlobalFilter ? table.getState().globalFilter : undefined;\n\n loadPage(0, sorting, columnFilters, hiddenColumns, search);\n\n if (meta.server._experimentalDataLoader2) {\n loadPage(1, sorting, columnFilters, hiddenColumns, search);\n }\n }\n }, []);\n}\n"],"names":["React"],"mappings":";;;AAOO,SAAS,8BAA+C,OAA0B,UAAuC;AAC5H,QAAM,OAAO,aAAa,KAAK;AAG/BA,iBAAM,UAAU,MAAM;AAClB,QAAI,UAAU;AACV,YAAM,UAAU,MAAM,SAAA,EAAW;AACjC,YAAM,gBAAgB,MAAM,SAAA,EAAW;AACvC,YAAM,gBAAgB,iBAAiB,MAAM,SAAA,EAAW,gBAAgB;AACxE,YAAM,SAAS,KAAK,OAAO,qBAAqB,MAAM,SAAA,EAAW,eAAe;AAEhF,eAAS,GAAG,SAAS,eAAe,eAAe,MAAM;AAEzD,UAAI,KAAK,OAAO,0BAA0B;AACtC,iBAAS,GAAG,SAAS,eAAe,eAAe,MAAM;AAAA,MAC7D;AAAA,IACJ;AAAA,EACJ,GAAG,CAAA,CAAE;AACT;"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
|
+
const rows = require("../util/rows.cjs");
|
|
4
5
|
const settings = require("../util/settings.cjs");
|
|
5
6
|
function useTableSettingsListener(table, onChangeSettings) {
|
|
6
|
-
const meta = table
|
|
7
|
+
const meta = rows.getTableMeta(table);
|
|
7
8
|
const state = table.getState();
|
|
8
9
|
React.useEffect(() => {
|
|
9
10
|
let handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSettingsListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableSettingsListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableSettingsHandler } from '../../types';\nimport { getTableMeta } from '../util/rows';\nimport { getSettings } from '../util/settings';\n\nexport function useTableSettingsListener<TType = unknown>(\n table: ReactTable<TType>,\n onChangeSettings: TableSettingsHandler | undefined\n) {\n const meta = getTableMeta(table);\n const state = table.getState();\n\n React.useEffect(() => {\n let handler: NodeJS.Timeout;\n\n if (typeof onChangeSettings === 'function') {\n handler = setTimeout(() => {\n // some settings shouldn't be persisted, but we comment them out here to highlight the intention\n onChangeSettings(getSettings(table));\n }, 250);\n }\n\n return () => clearTimeout(handler);\n }, [\n //state.columnFilters,\n state.columnOrder,\n state.columnPinning,\n state.columnSizing,\n state.columnVisibility,\n table.options.enableGlobalFilter,\n meta.fontSize.size,\n //state.grouping,\n meta.rowHeight.height,\n //state.globalFilter,\n state.sorting,\n ]);\n}\n"],"names":["getTableMeta","getSettings"],"mappings":";;;;;AAOO,SAAS,yBACZ,OACA,kBACF;AACE,QAAM,OAAOA,KAAAA,aAAa,KAAK;AAC/B,QAAM,QAAQ,MAAM,SAAA;AAEpB,QAAM,UAAU,MAAM;AAClB,QAAI;AAEJ,QAAI,OAAO,qBAAqB,YAAY;AACxC,gBAAU,WAAW,MAAM;AAEvB,yBAAiBC,SAAAA,YAAY,KAAK,CAAC;AAAA,MACvC,GAAG,GAAG;AAAA,IACV;AAEA,WAAO,MAAM,aAAa,OAAO;AAAA,EACrC,GAAG;AAAA;AAAA,IAEC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,QAAQ;AAAA,IACd,KAAK,SAAS;AAAA;AAAA,IAEd,KAAK,UAAU;AAAA;AAAA,IAEf,MAAM;AAAA,EAAA,CACT;AACL;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React__default from "react";
|
|
2
|
+
import { getTableMeta } from "../util/rows.js";
|
|
2
3
|
import { getSettings } from "../util/settings.js";
|
|
3
4
|
function useTableSettingsListener(table, onChangeSettings) {
|
|
4
|
-
const meta = table
|
|
5
|
+
const meta = getTableMeta(table);
|
|
5
6
|
const state = table.getState();
|
|
6
7
|
React__default.useEffect(() => {
|
|
7
8
|
let handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSettingsListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableSettingsListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableSettingsHandler } from '../../types';\nimport { getTableMeta } from '../util/rows';\nimport { getSettings } from '../util/settings';\n\nexport function useTableSettingsListener<TType = unknown>(\n table: ReactTable<TType>,\n onChangeSettings: TableSettingsHandler | undefined\n) {\n const meta = getTableMeta(table);\n const state = table.getState();\n\n React.useEffect(() => {\n let handler: NodeJS.Timeout;\n\n if (typeof onChangeSettings === 'function') {\n handler = setTimeout(() => {\n // some settings shouldn't be persisted, but we comment them out here to highlight the intention\n onChangeSettings(getSettings(table));\n }, 250);\n }\n\n return () => clearTimeout(handler);\n }, [\n //state.columnFilters,\n state.columnOrder,\n state.columnPinning,\n state.columnSizing,\n state.columnVisibility,\n table.options.enableGlobalFilter,\n meta.fontSize.size,\n //state.grouping,\n meta.rowHeight.height,\n //state.globalFilter,\n state.sorting,\n ]);\n}\n"],"names":["React"],"mappings":";;;AAOO,SAAS,yBACZ,OACA,kBACF;AACE,QAAM,OAAO,aAAa,KAAK;AAC/B,QAAM,QAAQ,MAAM,SAAA;AAEpBA,iBAAM,UAAU,MAAM;AAClB,QAAI;AAEJ,QAAI,OAAO,qBAAqB,YAAY;AACxC,gBAAU,WAAW,MAAM;AAEvB,yBAAiB,YAAY,KAAK,CAAC;AAAA,MACvC,GAAG,GAAG;AAAA,IACV;AAEA,WAAO,MAAM,aAAa,OAAO;AAAA,EACrC,GAAG;AAAA;AAAA,IAEC,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,QAAQ;AAAA,IACd,KAAK,SAAS;AAAA;AAAA,IAEd,KAAK,UAAU;AAAA;AAAA,IAEf,MAAM;AAAA,EAAA,CACT;AACL;"}
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const keyboard = require("../../../../utils/keyboard.cjs");
|
|
5
|
+
const rows = require("../util/rows.cjs");
|
|
5
6
|
function useTableShortcutsListener(table, tableRef, shortcuts, localShortcuts = false) {
|
|
6
|
-
const meta = table
|
|
7
|
-
const rows = table.getRowModel().rows;
|
|
7
|
+
const meta = rows.getTableMeta(table);
|
|
8
|
+
const rows$1 = table.getRowModel().rows;
|
|
8
9
|
const listenerTarget = localShortcuts ? tableRef.current : document;
|
|
9
10
|
React.useEffect(() => {
|
|
10
11
|
const shortcutKeys = Object.keys(shortcuts ?? {});
|
|
11
12
|
const globalHandlers = [];
|
|
12
13
|
if (shortcuts && shortcutKeys.length && meta.rowActive.rowActiveIndex !== void 0) {
|
|
13
|
-
const rowActive = rows[meta.rowActive.rowActiveIndex];
|
|
14
|
+
const rowActive = rows$1[meta.rowActive.rowActiveIndex];
|
|
14
15
|
if (rowActive) {
|
|
15
16
|
shortcutKeys.forEach((key) => {
|
|
16
17
|
const handler = shortcuts[key];
|
|
@@ -47,7 +48,7 @@ function useTableShortcutsListener(table, tableRef, shortcuts, localShortcuts =
|
|
|
47
48
|
listenerTarget?.removeEventListener("keydown", handler);
|
|
48
49
|
});
|
|
49
50
|
};
|
|
50
|
-
}, [shortcuts, meta.rowActive.rowActiveIndex, rows.length]);
|
|
51
|
+
}, [shortcuts, meta.rowActive.rowActiveIndex, rows$1.length]);
|
|
51
52
|
}
|
|
52
53
|
exports.useTableShortcutsListener = useTableShortcutsListener;
|
|
53
54
|
//# sourceMappingURL=useTableShortcutsListener.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableShortcutsListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableShortcutsListener.cjs","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport type { TableRef, TableShortcutHandlerFn, TableShortcutHandlerObject, TableShortcuts } from '../../types';\nimport { getTableMeta } from '../util/rows';\n\nexport function useTableShortcutsListener<TType = unknown>(\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n shortcuts: TableShortcuts<TType> | undefined,\n localShortcuts = false\n) {\n const meta = getTableMeta(table);\n const rows = table.getRowModel().rows;\n const listenerTarget = localShortcuts ? tableRef.current : document;\n\n React.useEffect(() => {\n const shortcutKeys = Object.keys(shortcuts ?? {});\n const globalHandlers: Array<(event: KeyboardEvent) => void> = [];\n\n // convert the shortcut into the correct format to register it\n if (shortcuts && shortcutKeys.length && meta.rowActive.rowActiveIndex !== undefined) {\n const rowActive = rows[meta.rowActive.rowActiveIndex];\n\n if (rowActive) {\n shortcutKeys.forEach(key => {\n const handler = shortcuts[key];\n\n let keyDownHandler: TableShortcutHandlerFn<TType>;\n let keyDownHandlerOptions: KeyDownHandlerOptions;\n\n if (typeof handler === 'function') {\n keyDownHandler = handler;\n keyDownHandlerOptions = {\n key,\n };\n } else {\n const handlerObject = handler as TableShortcutHandlerObject<TType>;\n keyDownHandler = handlerObject.handler;\n keyDownHandlerOptions = {\n key,\n meta: handlerObject.meta,\n shift: handlerObject.shift,\n };\n }\n\n globalHandlers.push(\n createShortcutKeyDownHandler(keyDownHandlerOptions, event => {\n event.preventDefault();\n keyDownHandler(rowActive.original);\n })\n );\n });\n }\n }\n\n globalHandlers.forEach(handler => {\n listenerTarget?.addEventListener('keydown', handler as EventListener);\n });\n\n return () => {\n globalHandlers.forEach(handler => {\n listenerTarget?.removeEventListener('keydown', handler as EventListener);\n });\n };\n }, [shortcuts, meta.rowActive.rowActiveIndex, rows.length]);\n}\n"],"names":["getTableMeta","rows","createShortcutKeyDownHandler"],"mappings":";;;;;AASO,SAAS,0BACZ,OACA,UACA,WACA,iBAAiB,OACnB;AACE,QAAM,OAAOA,KAAAA,aAAa,KAAK;AAC/B,QAAMC,SAAO,MAAM,YAAA,EAAc;AACjC,QAAM,iBAAiB,iBAAiB,SAAS,UAAU;AAE3D,QAAM,UAAU,MAAM;AAClB,UAAM,eAAe,OAAO,KAAK,aAAa,CAAA,CAAE;AAChD,UAAM,iBAAwD,CAAA;AAG9D,QAAI,aAAa,aAAa,UAAU,KAAK,UAAU,mBAAmB,QAAW;AACjF,YAAM,YAAYA,OAAK,KAAK,UAAU,cAAc;AAEpD,UAAI,WAAW;AACX,qBAAa,QAAQ,CAAA,QAAO;AACxB,gBAAM,UAAU,UAAU,GAAG;AAE7B,cAAI;AACJ,cAAI;AAEJ,cAAI,OAAO,YAAY,YAAY;AAC/B,6BAAiB;AACjB,oCAAwB;AAAA,cACpB;AAAA,YAAA;AAAA,UAER,OAAO;AACH,kBAAM,gBAAgB;AACtB,6BAAiB,cAAc;AAC/B,oCAAwB;AAAA,cACpB;AAAA,cACA,MAAM,cAAc;AAAA,cACpB,OAAO,cAAc;AAAA,YAAA;AAAA,UAE7B;AAEA,yBAAe;AAAA,YACXC,sCAA6B,uBAAuB,CAAA,UAAS;AACzD,oBAAM,eAAA;AACN,6BAAe,UAAU,QAAQ;AAAA,YACrC,CAAC;AAAA,UAAA;AAAA,QAET,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,mBAAe,QAAQ,CAAA,YAAW;AAC9B,sBAAgB,iBAAiB,WAAW,OAAwB;AAAA,IACxE,CAAC;AAED,WAAO,MAAM;AACT,qBAAe,QAAQ,CAAA,YAAW;AAC9B,wBAAgB,oBAAoB,WAAW,OAAwB;AAAA,MAC3E,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,UAAU,gBAAgBD,OAAK,MAAM,CAAC;AAC9D;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React__default from "react";
|
|
2
2
|
import { createShortcutKeyDownHandler } from "../../../../utils/keyboard.js";
|
|
3
|
+
import { getTableMeta } from "../util/rows.js";
|
|
3
4
|
function useTableShortcutsListener(table, tableRef, shortcuts, localShortcuts = false) {
|
|
4
|
-
const meta = table
|
|
5
|
+
const meta = getTableMeta(table);
|
|
5
6
|
const rows = table.getRowModel().rows;
|
|
6
7
|
const listenerTarget = localShortcuts ? tableRef.current : document;
|
|
7
8
|
React__default.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableShortcutsListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.ts"],"sourcesContent":["import type { Table as ReactTable
|
|
1
|
+
{"version":3,"file":"useTableShortcutsListener.js","sources":["../../../../../src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.ts"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport type { TableRef, TableShortcutHandlerFn, TableShortcutHandlerObject, TableShortcuts } from '../../types';\nimport { getTableMeta } from '../util/rows';\n\nexport function useTableShortcutsListener<TType = unknown>(\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n shortcuts: TableShortcuts<TType> | undefined,\n localShortcuts = false\n) {\n const meta = getTableMeta(table);\n const rows = table.getRowModel().rows;\n const listenerTarget = localShortcuts ? tableRef.current : document;\n\n React.useEffect(() => {\n const shortcutKeys = Object.keys(shortcuts ?? {});\n const globalHandlers: Array<(event: KeyboardEvent) => void> = [];\n\n // convert the shortcut into the correct format to register it\n if (shortcuts && shortcutKeys.length && meta.rowActive.rowActiveIndex !== undefined) {\n const rowActive = rows[meta.rowActive.rowActiveIndex];\n\n if (rowActive) {\n shortcutKeys.forEach(key => {\n const handler = shortcuts[key];\n\n let keyDownHandler: TableShortcutHandlerFn<TType>;\n let keyDownHandlerOptions: KeyDownHandlerOptions;\n\n if (typeof handler === 'function') {\n keyDownHandler = handler;\n keyDownHandlerOptions = {\n key,\n };\n } else {\n const handlerObject = handler as TableShortcutHandlerObject<TType>;\n keyDownHandler = handlerObject.handler;\n keyDownHandlerOptions = {\n key,\n meta: handlerObject.meta,\n shift: handlerObject.shift,\n };\n }\n\n globalHandlers.push(\n createShortcutKeyDownHandler(keyDownHandlerOptions, event => {\n event.preventDefault();\n keyDownHandler(rowActive.original);\n })\n );\n });\n }\n }\n\n globalHandlers.forEach(handler => {\n listenerTarget?.addEventListener('keydown', handler as EventListener);\n });\n\n return () => {\n globalHandlers.forEach(handler => {\n listenerTarget?.removeEventListener('keydown', handler as EventListener);\n });\n };\n }, [shortcuts, meta.rowActive.rowActiveIndex, rows.length]);\n}\n"],"names":["React"],"mappings":";;;AASO,SAAS,0BACZ,OACA,UACA,WACA,iBAAiB,OACnB;AACE,QAAM,OAAO,aAAa,KAAK;AAC/B,QAAM,OAAO,MAAM,YAAA,EAAc;AACjC,QAAM,iBAAiB,iBAAiB,SAAS,UAAU;AAE3DA,iBAAM,UAAU,MAAM;AAClB,UAAM,eAAe,OAAO,KAAK,aAAa,CAAA,CAAE;AAChD,UAAM,iBAAwD,CAAA;AAG9D,QAAI,aAAa,aAAa,UAAU,KAAK,UAAU,mBAAmB,QAAW;AACjF,YAAM,YAAY,KAAK,KAAK,UAAU,cAAc;AAEpD,UAAI,WAAW;AACX,qBAAa,QAAQ,CAAA,QAAO;AACxB,gBAAM,UAAU,UAAU,GAAG;AAE7B,cAAI;AACJ,cAAI;AAEJ,cAAI,OAAO,YAAY,YAAY;AAC/B,6BAAiB;AACjB,oCAAwB;AAAA,cACpB;AAAA,YAAA;AAAA,UAER,OAAO;AACH,kBAAM,gBAAgB;AACtB,6BAAiB,cAAc;AAC/B,oCAAwB;AAAA,cACpB;AAAA,cACA,MAAM,cAAc;AAAA,cACpB,OAAO,cAAc;AAAA,YAAA;AAAA,UAE7B;AAEA,yBAAe;AAAA,YACX,6BAA6B,uBAAuB,CAAA,UAAS;AACzD,oBAAM,eAAA;AACN,6BAAe,UAAU,QAAQ;AAAA,YACrC,CAAC;AAAA,UAAA;AAAA,QAET,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,mBAAe,QAAQ,CAAA,YAAW;AAC9B,sBAAgB,iBAAiB,WAAW,OAAwB;AAAA,IACxE,CAAC;AAED,WAAO,MAAM;AACT,qBAAe,QAAQ,CAAA,YAAW;AAC9B,wBAAgB,oBAAoB,WAAW,OAAwB;AAAA,MAC3E,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,UAAU,gBAAgB,KAAK,MAAM,CAAC;AAC9D;"}
|
|
@@ -32,6 +32,7 @@ const useTableSettingsListener = require("./listeners/useTableSettingsListener.c
|
|
|
32
32
|
const useTableShortcutsListener = require("./listeners/useTableShortcutsListener.cjs");
|
|
33
33
|
const useTableSortingListener = require("./listeners/useTableSortingListener.cjs");
|
|
34
34
|
const presets = require("./util/presets.cjs");
|
|
35
|
+
const rows = require("./util/rows.cjs");
|
|
35
36
|
const setup = require("./util/setup.cjs");
|
|
36
37
|
const Localization = require("../../../components/Provider/Localization.cjs");
|
|
37
38
|
const DEFAULT_EMPTY_ARRAY = [];
|
|
@@ -160,7 +161,8 @@ function useTableManager(props, ref, meta, internalColumns) {
|
|
|
160
161
|
return {
|
|
161
162
|
id: safeId,
|
|
162
163
|
instance,
|
|
163
|
-
|
|
164
|
+
// TMeta is a consumer extension the runtime can't verify, so it stays asserted
|
|
165
|
+
meta: rows.getTableMeta(instance),
|
|
164
166
|
state: instance.getState()
|
|
165
167
|
};
|
|
166
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableManager.cjs","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n // <TData> because the renderer types are tied to the row type via TableRowActionHelpers['table']\n rowActions: ReturnType<typeof useTableRowActions<TData>>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["useLocalization","getTableFeaturePreset","useTableSettings","useTableColumnFreezing","useTableColumnOrdering","useTableFontSize","useTableFooter","useTablePrinting","useTableRowActive","useTableRowActions","useTableRowClick","useTableRowDrag","useTableRowDrop","useTableRowExpansion","useTableRowGoto","useTableRowGroups","useTableRowHeight","useTableRowSelection","useTableSearch","useTableServerLoading","mapTableChildrenToColumns","useReactTableInitialState","useReactTable","getCoreRowModel","configureReactTableOptions","useTableDataListener","useTableFilterListener","useTableFontSizeListener","useTableRowActiveListener","useTableRowHeightListener","useTableRowSelectionListener","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","useTableSortingListener"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTableManager.cjs","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { getTableMeta } from './util/rows';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n // <TData> because the renderer types are tied to the row type via TableRowActionHelpers['table']\n rowActions: ReturnType<typeof useTableRowActions<TData>>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n // TMeta is a consumer extension the runtime can't verify, so it stays asserted\n meta: getTableMeta(instance) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["useLocalization","getTableFeaturePreset","useTableSettings","useTableColumnFreezing","useTableColumnOrdering","useTableFontSize","useTableFooter","useTablePrinting","useTableRowActive","useTableRowActions","useTableRowClick","useTableRowDrag","useTableRowDrop","useTableRowExpansion","useTableRowGoto","useTableRowGroups","useTableRowHeight","useTableRowSelection","useTableSearch","useTableServerLoading","mapTableChildrenToColumns","useReactTableInitialState","useReactTable","getCoreRowModel","configureReactTableOptions","useTableDataListener","useTableFilterListener","useTableFontSizeListener","useTableRowActiveListener","useTableRowHeightListener","useTableRowSelectionListener","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","useTableSortingListener","getTableMeta"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ import { useTableSettingsListener } from "./listeners/useTableSettingsListener.j
|
|
|
30
30
|
import { useTableShortcutsListener } from "./listeners/useTableShortcutsListener.js";
|
|
31
31
|
import { useTableSortingListener } from "./listeners/useTableSortingListener.js";
|
|
32
32
|
import { getTableFeaturePreset } from "./util/presets.js";
|
|
33
|
+
import { getTableMeta } from "./util/rows.js";
|
|
33
34
|
import { mapTableChildrenToColumns, useReactTableInitialState, configureReactTableOptions } from "./util/setup.js";
|
|
34
35
|
import { useLocalization } from "../../../components/Provider/Localization.js";
|
|
35
36
|
const DEFAULT_EMPTY_ARRAY = [];
|
|
@@ -158,7 +159,8 @@ function useTableManager(props, ref, meta, internalColumns) {
|
|
|
158
159
|
return {
|
|
159
160
|
id: safeId,
|
|
160
161
|
instance,
|
|
161
|
-
|
|
162
|
+
// TMeta is a consumer extension the runtime can't verify, so it stays asserted
|
|
163
|
+
meta: getTableMeta(instance),
|
|
162
164
|
state: instance.getState()
|
|
163
165
|
};
|
|
164
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableManager.js","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n // <TData> because the renderer types are tied to the row type via TableRowActionHelpers['table']\n rowActions: ReturnType<typeof useTableRowActions<TData>>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTableManager.js","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { getTableMeta } from './util/rows';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n // <TData> because the renderer types are tied to the row type via TableRowActionHelpers['table']\n rowActions: ReturnType<typeof useTableRowActions<TData>>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n // TMeta is a consumer extension the runtime can't verify, so it stays asserted\n meta: getTableMeta(instance) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function getTableMeta(table) {
|
|
4
|
+
if (!table.options.meta) {
|
|
5
|
+
throw new Error("Table requires table meta");
|
|
6
|
+
}
|
|
7
|
+
return table.options.meta;
|
|
8
|
+
}
|
|
3
9
|
function getReachableRowCount(table) {
|
|
4
|
-
const tableMeta = table
|
|
10
|
+
const tableMeta = getTableMeta(table);
|
|
5
11
|
const isFilteringActive = table.options.enableGlobalFilter && table.getState().globalFilter;
|
|
6
12
|
return isFilteringActive ? table.getRowModel().rows.length + table.getBottomRows().length : tableMeta.length + table.getBottomRows().length;
|
|
7
13
|
}
|
|
8
14
|
exports.getReachableRowCount = getReachableRowCount;
|
|
15
|
+
exports.getTableMeta = getTableMeta;
|
|
9
16
|
//# sourceMappingURL=rows.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/rows.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\n/**\n * Returns the number of reachable rows. Uses filtered count when search filtering is active,\n * otherwise uses total dataset length to support virtualization. Includes bottom rows.\n */\nexport function getReachableRowCount<TType = unknown>(table: ReactTable<TType>): number {\n const tableMeta = table
|
|
1
|
+
{"version":3,"file":"rows.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/rows.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\n// meta is always provided by useTableManager, so a missing one is an invariant violation, not a real state\nexport function getTableMeta<TType = unknown>(table: ReactTable<TType>): ReactTableMeta<TType> {\n if (!table.options.meta) {\n throw new Error('Table requires table meta');\n }\n\n return table.options.meta;\n}\n\n/**\n * Returns the number of reachable rows. Uses filtered count when search filtering is active,\n * otherwise uses total dataset length to support virtualization. Includes bottom rows.\n */\nexport function getReachableRowCount<TType = unknown>(table: ReactTable<TType>): number {\n const tableMeta = getTableMeta(table);\n const isFilteringActive = table.options.enableGlobalFilter && table.getState().globalFilter;\n\n return isFilteringActive\n ? table.getRowModel().rows.length + table.getBottomRows().length\n : tableMeta.length + table.getBottomRows().length;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,aAA8B,OAAiD;AAC3F,MAAI,CAAC,MAAM,QAAQ,MAAM;AACrB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC/C;AAEA,SAAO,MAAM,QAAQ;AACzB;AAMO,SAAS,qBAAsC,OAAkC;AACpF,QAAM,YAAY,aAAa,KAAK;AACpC,QAAM,oBAAoB,MAAM,QAAQ,sBAAsB,MAAM,WAAW;AAE/E,SAAO,oBACD,MAAM,YAAA,EAAc,KAAK,SAAS,MAAM,cAAA,EAAgB,SACxD,UAAU,SAAS,MAAM,gBAAgB;AACnD;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Table as ReactTable } from '@tanstack/react-table';
|
|
1
|
+
import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';
|
|
2
|
+
export declare function getTableMeta<TType = unknown>(table: ReactTable<TType>): ReactTableMeta<TType>;
|
|
2
3
|
/**
|
|
3
4
|
* Returns the number of reachable rows. Uses filtered count when search filtering is active,
|
|
4
5
|
* otherwise uses total dataset length to support virtualization. Includes bottom rows.
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
function getTableMeta(table) {
|
|
2
|
+
if (!table.options.meta) {
|
|
3
|
+
throw new Error("Table requires table meta");
|
|
4
|
+
}
|
|
5
|
+
return table.options.meta;
|
|
6
|
+
}
|
|
1
7
|
function getReachableRowCount(table) {
|
|
2
|
-
const tableMeta = table
|
|
8
|
+
const tableMeta = getTableMeta(table);
|
|
3
9
|
const isFilteringActive = table.options.enableGlobalFilter && table.getState().globalFilter;
|
|
4
10
|
return isFilteringActive ? table.getRowModel().rows.length + table.getBottomRows().length : tableMeta.length + table.getBottomRows().length;
|
|
5
11
|
}
|
|
6
12
|
export {
|
|
7
|
-
getReachableRowCount
|
|
13
|
+
getReachableRowCount,
|
|
14
|
+
getTableMeta
|
|
8
15
|
};
|
|
9
16
|
//# sourceMappingURL=rows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.js","sources":["../../../../../src/primitives/Table/useTableManager/util/rows.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\n/**\n * Returns the number of reachable rows. Uses filtered count when search filtering is active,\n * otherwise uses total dataset length to support virtualization. Includes bottom rows.\n */\nexport function getReachableRowCount<TType = unknown>(table: ReactTable<TType>): number {\n const tableMeta = table
|
|
1
|
+
{"version":3,"file":"rows.js","sources":["../../../../../src/primitives/Table/useTableManager/util/rows.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\n// meta is always provided by useTableManager, so a missing one is an invariant violation, not a real state\nexport function getTableMeta<TType = unknown>(table: ReactTable<TType>): ReactTableMeta<TType> {\n if (!table.options.meta) {\n throw new Error('Table requires table meta');\n }\n\n return table.options.meta;\n}\n\n/**\n * Returns the number of reachable rows. Uses filtered count when search filtering is active,\n * otherwise uses total dataset length to support virtualization. Includes bottom rows.\n */\nexport function getReachableRowCount<TType = unknown>(table: ReactTable<TType>): number {\n const tableMeta = getTableMeta(table);\n const isFilteringActive = table.options.enableGlobalFilter && table.getState().globalFilter;\n\n return isFilteringActive\n ? table.getRowModel().rows.length + table.getBottomRows().length\n : tableMeta.length + table.getBottomRows().length;\n}\n"],"names":[],"mappings":"AAGO,SAAS,aAA8B,OAAiD;AAC3F,MAAI,CAAC,MAAM,QAAQ,MAAM;AACrB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC/C;AAEA,SAAO,MAAM,QAAQ;AACzB;AAMO,SAAS,qBAAsC,OAAkC;AACpF,QAAM,YAAY,aAAa,KAAK;AACpC,QAAM,oBAAoB,MAAM,QAAQ,sBAAsB,MAAM,WAAW;AAE/E,SAAO,oBACD,MAAM,YAAA,EAAc,KAAK,SAAS,MAAM,cAAA,EAAgB,SACxD,UAAU,SAAS,MAAM,gBAAgB;AACnD;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const dataTypes = require("./dataTypes.cjs");
|
|
4
4
|
const filtering = require("./filtering.cjs");
|
|
5
|
+
const rows = require("./rows.cjs");
|
|
5
6
|
const flattenCellValue = (cellValue) => {
|
|
6
7
|
return typeof cellValue === "object" ? Object.values(cellValue).map((val) => flattenCellValue(val)) : cellValue;
|
|
7
8
|
};
|
|
@@ -54,7 +55,7 @@ function globalFilterFn(row, columnId, searchQuery, localization) {
|
|
|
54
55
|
return false;
|
|
55
56
|
}
|
|
56
57
|
function resetHighlightedColumnIndexes(searchQuery, table, localization, moveActiveRowToFirstMatch = true) {
|
|
57
|
-
const tableMeta = table
|
|
58
|
+
const tableMeta = rows.getTableMeta(table);
|
|
58
59
|
let firstRowIndex;
|
|
59
60
|
if (searchQuery) {
|
|
60
61
|
const indexes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import type { Table as ReactTable,
|
|
1
|
+
{"version":3,"file":"search.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import type { Table as ReactTable, Row as ReactTableRow } from '@tanstack/react-table';\n\nimport type { Localization } from '@/components';\n\nimport type { TableColumnDataType, TableColumnDataTypeOptions } from '../../types';\n\nimport { getDataTypeProperties } from './dataTypes';\nimport { isWeakContains } from './filtering';\nimport { getTableMeta } from './rows';\n\nconst flattenCellValue = (cellValue: object | string): any => {\n return typeof cellValue === 'object' ? Object.values(cellValue).map(val => flattenCellValue(val)) : cellValue;\n};\n\nexport function isMatched<TType = unknown>(\n query: any,\n cellValue: any,\n rowValue: TType,\n dataType: TableColumnDataType | undefined,\n dataTypeOptions: TableColumnDataTypeOptions | undefined,\n localization: Localization,\n matcher: (left: any, right: any) => boolean = isWeakContains\n) {\n if (typeof cellValue === 'object') {\n return flattenCellValue(cellValue)\n .flat(Infinity)\n .find((y: any) => matcher(y, query));\n }\n const dataTypeProperties = getDataTypeProperties<TType>(dataType);\n\n if (dataTypeProperties.getDisplayValue) {\n const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, rowValue, {\n dataTypeOptions,\n localization,\n });\n\n if (Array.isArray(cellDisplayValue)) {\n return cellDisplayValue.some(cdv => matcher(cdv, query));\n }\n\n if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, query)) {\n return true;\n }\n } else {\n const cellValueAsString = String(cellValue ?? '');\n\n if (cellValueAsString !== undefined && matcher(cellValueAsString, query)) {\n return true;\n }\n }\n\n if (typeof query !== typeof cellValue && dataTypeProperties.parse) {\n const parsedQuery = dataTypeProperties.parse(query, localization.locale);\n\n if (parsedQuery !== undefined && matcher(cellValue, parsedQuery)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function globalFilterFn<TType = unknown>(\n row: ReactTableRow<TType>,\n columnId: string,\n searchQuery: string,\n localization: Localization\n) {\n try {\n if (row.original) {\n const cellValue = row.getValue(columnId);\n const columnMeta = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta;\n\n return isMatched<TType>(\n searchQuery,\n cellValue,\n row.original,\n columnMeta?.dataType,\n columnMeta?.dataTypeOptions,\n localization\n );\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n\nexport function resetHighlightedColumnIndexes<TType = unknown>(\n searchQuery: string | undefined,\n table: ReactTable<TType>,\n localization: Localization,\n // When typing a search we want to jump to the first match. But when this runs to recompute highlights after\n // an edit is saved, moving the active row would yank focus to the top of the list\n moveActiveRowToFirstMatch = true\n) {\n const tableMeta = getTableMeta(table);\n let firstRowIndex: undefined | number;\n\n if (searchQuery) {\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n const rowGrouping = table.getState().grouping;\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n let allowSearch = true;\n\n if (rowGrouping?.length) {\n // if it's the grouped row, only allow search of the grouped column - because that's all that's visible\n if (row.getIsGrouped()) {\n allowSearch = column.getIsGrouped();\n }\n // otherwise for other rows, don't search the grouped column - because it isn't visible\n else if (rowGrouping.includes(column.id)) {\n allowSearch = false;\n }\n }\n\n if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {\n const cellValue = row.getValue(column.id);\n const dataType = column.columnDef.meta?.dataType;\n const dataTypeOptions = column.columnDef.meta?.dataTypeOptions;\n\n if (isMatched<TType>(searchQuery, cellValue, row.original, dataType, dataTypeOptions, localization)) {\n indexes.push([rowIndex, columnIndex]);\n }\n }\n } catch {\n //\n }\n });\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0]?.[0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n if (firstRowIndex !== undefined && moveActiveRowToFirstMatch) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["isWeakContains","getDataTypeProperties","getTableMeta"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getDataTypeProperties } from "./dataTypes.js";
|
|
2
2
|
import { isWeakContains } from "./filtering.js";
|
|
3
|
+
import { getTableMeta } from "./rows.js";
|
|
3
4
|
const flattenCellValue = (cellValue) => {
|
|
4
5
|
return typeof cellValue === "object" ? Object.values(cellValue).map((val) => flattenCellValue(val)) : cellValue;
|
|
5
6
|
};
|
|
@@ -52,7 +53,7 @@ function globalFilterFn(row, columnId, searchQuery, localization) {
|
|
|
52
53
|
return false;
|
|
53
54
|
}
|
|
54
55
|
function resetHighlightedColumnIndexes(searchQuery, table, localization, moveActiveRowToFirstMatch = true) {
|
|
55
|
-
const tableMeta = table
|
|
56
|
+
const tableMeta = getTableMeta(table);
|
|
56
57
|
let firstRowIndex;
|
|
57
58
|
if (searchQuery) {
|
|
58
59
|
const indexes = [];
|