@economic/taco 2.49.0-server.1 → 2.49.0-server.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/dist/components/Table3/features/useEditingState.d.ts +3 -3
  2. package/dist/components/Table3/features/useTableEditing.d.ts +3 -3
  3. package/dist/components/Table3/types.d.ts +2 -0
  4. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +6 -1
  5. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  6. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
  7. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  8. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +1 -0
  9. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +29 -18
  11. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +6 -7
  13. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +1 -1
  15. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  16. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  17. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  18. package/dist/esm/packages/taco/src/index.js +1 -1
  19. package/dist/esm/packages/taco/src/primitives/Button.js +6 -1
  20. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  21. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +1 -2
  22. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  23. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +1 -2
  24. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  25. package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
  26. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  27. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +17 -10
  28. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  29. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  30. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  31. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
  32. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  33. package/dist/esm/packages/taco/src/utils/keyboard.js +2 -5
  34. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  35. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  36. package/dist/primitives/Table/types.d.ts +0 -5
  37. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
  38. package/dist/taco.cjs.development.js +80 -59
  39. package/dist/taco.cjs.development.js.map +1 -1
  40. package/dist/taco.cjs.production.min.js +1 -1
  41. package/dist/taco.cjs.production.min.js.map +1 -1
  42. package/dist/utils/keyboard.d.ts +1 -1
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadAllState, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading(\n length: number,\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loadAllStatus, setLoadedStatus] = React.useState<TableServerLoadAllState>(TableServerLoadAllState.Incomplete);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setLoadedStatus(TableServerLoadAllState.Incomplete);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoadedStatus(TableServerLoadAllState.Loading);\n await loadAll(...args);\n setLoadedStatus(TableServerLoadAllState.Completed);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (loadAllStatus === TableServerLoadAllState.Incomplete) {\n await _loadAll?.(...args);\n }\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loadAllStatus,\n pageSize,\n pageCount,\n _experimentalDataLoader2,\n };\n}\n"],"names":["useTableServerLoading","length","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","DEFAULT_PAGE_SIZE","isEnabled","_React$useState","React","useState","isReady","setReady","_React$useState2","TableServerLoadAllState","Incomplete","loadAllStatus","setLoadedStatus","_loadPage","_loadAll","_loadAllIfNeeded","_len","arguments","args","Array","_key","Promise","resolve","apply","then","_temp","e","reject","_len2","_key2","Loading","Completed","_temp2","_len3","_key3","_loadAll2","_temp3","pageCount","Math","ceil","loadAllIfNeeded"],"mappings":"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"}
1
+ {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n _experimentalDataLoader2,\n };\n}\n"],"names":["useTableServerLoading","length","data","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","DEFAULT_PAGE_SIZE","isEnabled","_React$useState","React","useState","isReady","setReady","_React$useState2","loading","setLoading","hasLoadedAll","useMemo","_data$some","some","call","x","undefined","_loadPage","_loadAll","_loadAllIfNeeded","_len","arguments","args","Array","_key","Promise","resolve","apply","then","_temp","e","reject","_len2","_key2","_temp2","_len3","_key3","_loadAll2","_temp3","pageCount","Math","ceil","loadAllIfNeeded"],"mappings":"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"}
@@ -26,7 +26,7 @@ function useTableSearchListener(table) {
26
26
  if (meta.search.isEnabled) {
27
27
  resetHighlightedColumnIndexes(query, table, localization);
28
28
  }
29
- }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
29
+ }, [meta.server.loading, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
30
30
  }
31
31
 
32
32
  export { useTableSearchListener };
@@ -1 +1 @@
1
- {"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { useLocalization } from '../../../../components/Provider/Localization';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { getHiddenColumns } from '../util/columns';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const localization = useLocalization();\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const query = 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.loadAllStatus,\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":["useTableSearchListener","table","meta","options","localization","useLocalization","hiddenColumns","getHiddenColumns","getState","columnVisibility","query","globalFilter","useLazyEffect","search","isEnabled","currentFilter","requestAnimationFrame","resetGlobalFilter","setGlobalFilter","handleSearch","enableGlobalFilter","length","resetHighlightedColumnIndexes","server","loadAllStatus","getRowModel","rows","JSON","stringify","sorting"],"mappings":";;;;;SAMgBA,sBAAsBA,CAAkBC,KAAwB;EAC5E,IAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,IAAME,YAAY,GAAGC,eAAe,EAAE;EACtC,IAAMC,aAAa,GAAGC,gBAAgB,CAACN,KAAK,CAACO,QAAQ,EAAE,CAACC,gBAAgB,CAAC;EACzE,IAAMC,KAAK,GAAGT,KAAK,CAACO,QAAQ,EAAE,CAACG,YAAY;;EAG3CC,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvB,IAAMC,aAAa,GAAGL,KAAK;MAC3BM,qBAAqB,CAAC;QAClBf,KAAK,CAACgB,iBAAiB,EAAE;QACzBhB,KAAK,CAACiB,eAAe,CAACH,aAAa,CAAC;OACvC,CAAC;MAEF,IAAIb,IAAI,CAACW,MAAM,CAACM,YAAY,IAAIjB,IAAI,CAACW,MAAM,CAACO,kBAAkB,IAAIV,KAAK,EAAE;QACrER,IAAI,CAACW,MAAM,CAACM,YAAY,CAACT,KAAK,EAAEJ,aAAa,CAAC;;;GAGzD,EAAE,CAACA,aAAa,CAACe,MAAM,CAAC,CAAC;;EAG1BT,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvBQ,6BAA6B,CAACZ,KAAK,EAAET,KAAK,EAAEG,YAAY,CAAC;;GAEhE,EAAE,CACCF,IAAI,CAACqB,MAAM,CAACC,aAAa,EACzBtB,IAAI,CAACW,MAAM,CAACC,SAAS,EACrBZ,IAAI,CAACW,MAAM,CAACO,kBAAkB,EAC9BnB,KAAK,CAACwB,WAAW,EAAE,CAACC,IAAI,CAACL,MAAM,EAC/BX,KAAK,EACLiB,IAAI,CAACC,SAAS,CAAC3B,KAAK,CAACO,QAAQ,EAAE,CAACqB,OAAO,CAAC,CAC3C,CAAC;AACN;;;;"}
1
+ {"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { useLocalization } from '../../../../components/Provider/Localization';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { getHiddenColumns } from '../util/columns';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const localization = useLocalization();\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const query = 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":["useTableSearchListener","table","meta","options","localization","useLocalization","hiddenColumns","getHiddenColumns","getState","columnVisibility","query","globalFilter","useLazyEffect","search","isEnabled","currentFilter","requestAnimationFrame","resetGlobalFilter","setGlobalFilter","handleSearch","enableGlobalFilter","length","resetHighlightedColumnIndexes","server","loading","getRowModel","rows","JSON","stringify","sorting"],"mappings":";;;;;SAMgBA,sBAAsBA,CAAkBC,KAAwB;EAC5E,IAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,IAAME,YAAY,GAAGC,eAAe,EAAE;EACtC,IAAMC,aAAa,GAAGC,gBAAgB,CAACN,KAAK,CAACO,QAAQ,EAAE,CAACC,gBAAgB,CAAC;EACzE,IAAMC,KAAK,GAAGT,KAAK,CAACO,QAAQ,EAAE,CAACG,YAAY;;EAG3CC,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvB,IAAMC,aAAa,GAAGL,KAAK;MAC3BM,qBAAqB,CAAC;QAClBf,KAAK,CAACgB,iBAAiB,EAAE;QACzBhB,KAAK,CAACiB,eAAe,CAACH,aAAa,CAAC;OACvC,CAAC;MAEF,IAAIb,IAAI,CAACW,MAAM,CAACM,YAAY,IAAIjB,IAAI,CAACW,MAAM,CAACO,kBAAkB,IAAIV,KAAK,EAAE;QACrER,IAAI,CAACW,MAAM,CAACM,YAAY,CAACT,KAAK,EAAEJ,aAAa,CAAC;;;GAGzD,EAAE,CAACA,aAAa,CAACe,MAAM,CAAC,CAAC;;EAG1BT,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvBQ,6BAA6B,CAACZ,KAAK,EAAET,KAAK,EAAEG,YAAY,CAAC;;GAEhE,EAAE,CACCF,IAAI,CAACqB,MAAM,CAACC,OAAO,EACnBtB,IAAI,CAACW,MAAM,CAACC,SAAS,EACrBZ,IAAI,CAACW,MAAM,CAACO,kBAAkB,EAC9BnB,KAAK,CAACwB,WAAW,EAAE,CAACC,IAAI,CAACL,MAAM,EAC/BX,KAAK,EACLiB,IAAI,CAACC,SAAS,CAAC3B,KAAK,CAACO,QAAQ,EAAE,CAACqB,OAAO,CAAC,CAC3C,CAAC;AACN;;;;"}
@@ -66,7 +66,7 @@ function useTableManager(props, meta, internalColumns) {
66
66
  var rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
67
67
  var rowSelection = useTableRowSelection(!!options.enableRowSelection);
68
68
  var search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
69
- var server = useTableServerLoading(length, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
69
+ var server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
70
70
  // TODO: memoise
71
71
  // convert jsx column components into valid table columns
72
72
  var _mapTableChildrenToCo = mapTableChildrenToColumns(props, settings, options, internalColumns, localization),
@@ -1 +1 @@
1
- {"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\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 { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\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 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 printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\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 interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\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 renderer?: TableColumnRenderer<TValue, TData>;\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 = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\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 );\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);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\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 rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(\n length,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\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 // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\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);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\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":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","_useTableSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","settings","setSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","onChangeSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","_mapTableChildrenToCo","mapTableChildrenToColumns","columns","defaultState","_objectWithoutPropertiesLoose","_excluded","initialState","useReactTableInitialState","instance","useReactTable","_extends","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":"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"}
1
+ {"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\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 { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\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 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 printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\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 interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\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 renderer?: TableColumnRenderer<TValue, TData>;\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 = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\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 );\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);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\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 rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\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 // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\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);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\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":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","_useTableSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","settings","setSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","onChangeSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","_mapTableChildrenToCo","mapTableChildrenToColumns","columns","defaultState","_objectWithoutPropertiesLoose","_excluded","initialState","useReactTableInitialState","instance","useReactTable","_extends","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA;AACA,IAAMA,mBAAmB,GAAG,EAAE;SAEdC,eAAeA,CAC3BC,KAAwB,EACxBC,IAA6C,EAC7CC,eAAuD;;EAEvD,IAAMC,YAAY,GAAGC,eAAe,EAAE;;EAEtC,IAAMC,MAAM,GAAGL,KAAK,CAACM,EAAE,CAACC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;;EAEzC,IAAMC,OAAO,GAAGC,qBAAqB,CAACT,KAAK,CAAC;;EAG5C,IAAAU,iBAAA,GAAgCC,gBAAgB,CAC5CH,OAAO,CAACI,kBAAkB,EAC1BP,MAAM,EACNL,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,gBAAgB,CACzB;IALMC,QAAQ,GAAAL,iBAAA;IAAEM,WAAW,GAAAN,iBAAA;;EAQ5B,IAAMO,IAAI,IAAAC,WAAA,GAAGlB,KAAK,CAACiB,IAAI,cAAAC,WAAA,cAAAA,WAAA,GAAIpB,mBAAmB;EAC9C,IAAMqB,MAAM,IAAAC,aAAA,GAAGpB,KAAK,CAACmB,MAAM,cAAAC,aAAA,cAAAA,aAAA,GAAIH,IAAI,CAACE,MAAM;;EAG1C,IAAME,cAAc,GAAGC,sBAAsB,CAACd,OAAO,CAACe,oBAAoB,CAAC;EAC3E,IAAMC,cAAc,GAAGC,sBAAsB,CAACjB,OAAO,CAACkB,oBAAoB,CAAC;EAC3E,IAAMC,QAAQ,GAAGC,gBAAgB,CAACpB,OAAO,CAACqB,cAAc,EAAEd,QAAQ,CAACY,QAAQ,CAAC;EAC5E,IAAMG,MAAM,GAAGC,cAAc,CAACvB,OAAO,CAACwB,YAAY,CAAC;EACnD,IAAMC,QAAQ,GAAGC,gBAAgB,CAAC1B,OAAO,CAAC2B,cAAc,EAAE9B,MAAM,CAAC;EACjE,IAAM+B,SAAS,GAAGC,iBAAiB,CAAC7B,OAAO,CAAC8B,eAAe,EAAEtC,KAAK,CAACuC,qBAAqB,CAAC;EACzF,IAAMC,UAAU,GAAGC,kBAAkB,CAAQjC,OAAO,CAACkC,gBAAgB,EAAE1C,KAAK,CAACwC,UAAU,EAAExC,KAAK,CAAC2C,gBAAgB,CAAC;EAChH,IAAMC,QAAQ,GAAGC,gBAAgB,CAAQrC,OAAO,CAACsC,cAAc,EAAE9C,KAAK,CAAC+C,UAAU,CAAC;EAClF,IAAMC,OAAO,GAAGC,eAAe,CAAQzC,OAAO,CAAC0C,aAAa,IAAI,EAACjD,IAAI,aAAJA,IAAI,gBAAAkD,aAAA,GAAJlD,IAAI,CAAEmD,OAAO,cAAAD,aAAA,eAAbA,aAAA,CAAeE,SAAS,GAAErD,KAAK,CAACsD,SAAS,CAAC;EAC3G,IAAMC,OAAO,GAAGC,eAAe,CAAQhD,OAAO,CAACiD,aAAa,EAAEzD,KAAK,CAAC0D,SAAS,CAAC;EAC9E,IAAMC,YAAY,GAAGC,oBAAoB,CACrCpD,OAAO,CAACqD,kBAAkB,EAC1BrD,OAAO,CAACsD,qBAAqB,EAC7B9D,KAAK,CAAC+D,oBAAoB,CAC7B;EACD,IAAMC,OAAO,GAAGC,eAAe,CAACzD,OAAO,CAAC0D,aAAa,EAAElE,KAAK,CAACmE,SAAS,CAAC;EACvE,IAAMC,SAAS,GAAGC,iBAAiB,CAACrE,KAAK,CAACsE,kBAAkB,CAAC;EAC7D,IAAMC,SAAS,GAAGC,iBAAiB,CAAChE,OAAO,CAACiE,eAAe,EAAE1D,QAAQ,CAACwD,SAAS,CAAC;EAChF,IAAMG,YAAY,GAAGC,oBAAoB,CAAC,CAAC,CAACnE,OAAO,CAACoE,kBAAkB,CAAC;EACvE,IAAMC,MAAM,GAAGC,cAAc,CAACtE,OAAO,CAACuE,YAAY,EAAE/E,KAAK,CAACgF,cAAc,EAAEjE,QAAQ,CAACkE,+BAA+B,CAAC;EACnH,IAAMC,MAAM,GAAGC,qBAAqB,CAChChE,MAAM,EACNF,IAAI,EACJjB,KAAK,CAACoF,QAAQ,EACdpF,KAAK,CAACqF,OAAO,EACbrF,KAAK,CAACsF,KAAK,EACXtF,KAAK,CAACuF,QAAQ,EACdvF,KAAK,CAACwF,wBAAwB,CACjC;;;EAID,IAAAC,qBAAA,GAAqCC,yBAAyB,CAC1D1F,KAAK,EACLe,QAAQ,EACRP,OAAO,EACPN,eAAe,EACfC,YAAY,CACf;IANOwF,OAAO,GAAAF,qBAAA,CAAPE,OAAO;IAAKC,YAAY,GAAAC,6BAAA,CAAAJ,qBAAA,EAAAK,SAAA;;EAShC,IAAMC,YAAY,GAAGC,yBAAyB,CAAQhG,KAAK,EAAE2F,OAAO,EAAE5E,QAAQ,EAAE6E,YAAY,CAAC;;EAG7F,IAAMK,QAAQ,GAAGC,aAAa,CAAAC,QAAA;IAC1BlF,IAAI,EAAJA,IAAI;IACJ0E,OAAO,EAAPA,OAAO;;IAEPI,YAAY,EAAZA,YAAY;IACZK,eAAe,EAAEA,eAAe;KAE7BC,0BAA0B,CAAQ7F,OAAO,EAAER,KAAK,EAAEG,YAAY,CAAC;;IAElEmG,kBAAkB,EAAEzB,MAAM,CAACyB,kBAAkB;;IAE7CrG,IAAI,EAAAkG,QAAA,KAEGlG,IAAI;MACPoB,cAAc,EAAdA,cAAc;MACdG,cAAc,EAAdA,cAAc;MACdG,QAAQ,EAARA,QAAQ;MACRG,MAAM,EAANA,MAAM;MACNX,MAAM,EAANA,MAAM;MACNc,QAAQ,EAARA,QAAQ;MACRO,UAAU,EAAEA,UAAiB;MAC7BJ,SAAS,EAATA,SAAS;MACTQ,QAAQ,EAAEA,QAAe;MACzBI,OAAO,EAAPA,OAAO;MACPO,OAAO,EAAEA,OAAc;MACvBI,YAAY,EAAEA,YAAmB;MACjC4C,mBAAmB,EAAEvG,KAAK,CAACuG,mBAAmB;MAC9CvC,OAAO,EAAPA,OAAO;MACPI,SAAS,EAAEA,SAAgB;MAC3BG,SAAS,EAATA,SAAS;MACTG,YAAY,EAAZA,YAAY;MACZG,MAAM,EAANA,MAAM;MACNK,MAAM,EAANA;;IAEP,CAAC;;EAGFsB,oBAAoB,CAACP,QAAQ,CAAC;EAC9BQ,sBAAsB,CAACR,QAAQ,EAAEjG,KAAK,CAAC0G,cAAc,CAAC;EACtDC,wBAAwB,CAACV,QAAQ,CAAC;EAClCW,yBAAyB,CAACX,QAAQ,CAAC;EACnCY,4BAA4B,CAACZ,QAAQ,EAAEjG,KAAK,CAAC8G,WAAW,CAAC;EACzDC,sBAAsB,CAACd,QAAQ,CAAC;EAChCe,6BAA6B,CAACf,QAAQ,EAAEf,MAAM,CAACE,QAAQ,CAAC;EACxD6B,wBAAwB,CAAChB,QAAQ,EAAEjF,WAAW,CAAC;EAC/CkG,yBAAyB,CAACjB,QAAQ,EAAEjG,KAAK,CAACmH,SAAS,CAAC;EACpDC,uBAAuB,CAACnB,QAAQ,EAAEjG,KAAK,CAACqH,YAAY,CAAC;EAErD,OAAO;IACH/G,EAAE,EAAED,MAAM;IACV4F,QAAQ,EAARA,QAAQ;IACRhG,IAAI,GAAAqH,qBAAA,GAAGrB,QAAQ,CAACzF,OAAO,CAACP,IAAI,cAAAqH,qBAAA,cAAAA,qBAAA,GAAI,EAAoC;IACpEC,KAAK,EAAEtB,QAAQ,CAACuB,QAAQ;GAC3B;AACL;;;;"}
@@ -17,15 +17,12 @@ function shouldTriggerShortcut(event, key) {
17
17
  }
18
18
  return event.key.toLowerCase() === keyOptions.key.toLowerCase();
19
19
  }
20
- function createShortcutKeyDownHandler(key, handler, stopPropagation, element) {
20
+ function createShortcutKeyDownHandler(key, handler, stopPropagation) {
21
21
  if (stopPropagation === void 0) {
22
22
  stopPropagation = true;
23
23
  }
24
24
  return function (event) {
25
- var dialog = document.querySelector('[role="dialog"]');
26
- var isOutsideDialog = element && dialog && !dialog.contains(element);
27
- if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
28
- ) {
25
+ if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
29
26
  return;
30
27
  }
31
28
  var condition = shouldTriggerShortcut(event, key);
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\nimport { isElementInteractive } from './dom';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true,\n element?: HTMLElement | null\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n const dialog = document.querySelector('[role=\"dialog\"]');\n const isOutsideDialog = element && dialog && !dialog.contains(element);\n\n if (\n (event.target !== event.currentTarget &&\n isElementInteractive(event.target as HTMLElement) &&\n !isPressingMetaKey(event)) ||\n isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog\n ) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isPressingMetaKey","event","isMacOs","metaKey","ctrlKey","shouldTriggerShortcut","key","keyOptions","meta","shift","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","element","dialog","document","querySelector","isOutsideDialog","contains","target","currentTarget","isElementInteractive","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent","includes"],"mappings":";;SAKgBA,iBAAiBA,CAAcC,KAA6C;EACxF,OAAOC,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO;AACpD;SAEgBC,qBAAqBA,CACjCJ,KAA6C,EAC7CK,GAAmC;EAEnC,IAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG,EAAHA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAG,CAACD,KAAK,CAACE,OAAO,GAAG,CAACF,KAAK,CAACG,OAAO,CAAC,IAChE,CAACG,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKG,UAAU,CAACE,KAAK,IAAI,CAACR,KAAK,CAACS,QAAQ,IAAMH,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIR,KAAK,CAACS,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOT,KAAK,CAACK,GAAG,CAACK,WAAW,EAAE,KAAKJ,UAAU,CAACD,GAAG,CAACK,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCN,GAAmC,EACnCO,OAAgE,EAChEC,eAAe,EACfC,OAA4B;MAD5BD,eAAe;IAAfA,eAAe,GAAG,IAAI;;EAGtB,OAAO,UAAUb,KAA6C;IAC1D,IAAMe,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;IACxD,IAAMC,eAAe,GAAGJ,OAAO,IAAIC,MAAM,IAAI,CAACA,MAAM,CAACI,QAAQ,CAACL,OAAO,CAAC;IAEtE,IACKd,KAAK,CAACoB,MAAM,KAAKpB,KAAK,CAACqB,aAAa,IACjCC,oBAAoB,CAACtB,KAAK,CAACoB,MAAqB,CAAC,IACjD,CAACrB,iBAAiB,CAACC,KAAK,CAAC,IAC7BkB,eAAe;MACjB;MACE;;IAGJ,IAAMK,SAAS,GAAGnB,qBAAqB,CAACJ,KAAK,EAAEK,GAAG,CAAC;IAEnD,IAAIkB,SAAS,EAAE;MACX,IAAIV,eAAe,EAAE;QAAA,IAAAW,qBAAA;;QAEjBxB,KAAK,CAACa,eAAe,EAAE;;QAEtB,CAAAW,qBAAA,GAAAxB,KAAuB,CAACyB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAA1B,MAAoD;;MAGzDY,OAAO,CAACZ,KAAK,CAAC;;GAErB;AACL;IAEaC,OAAO,GAAG,SAAVA,OAAOA;EAAA,IAAA0B,OAAA;EAAA,QAAAA,OAAA,GAASC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\nimport { isElementInteractive } from './dom';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (\n event.target !== event.currentTarget &&\n isElementInteractive(event.target as HTMLElement) &&\n !isPressingMetaKey(event)\n ) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isPressingMetaKey","event","isMacOs","metaKey","ctrlKey","shouldTriggerShortcut","key","keyOptions","meta","shift","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","target","currentTarget","isElementInteractive","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent","includes"],"mappings":";;SAKgBA,iBAAiBA,CAAcC,KAA6C;EACxF,OAAOC,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO;AACpD;SAEgBC,qBAAqBA,CACjCJ,KAA6C,EAC7CK,GAAmC;EAEnC,IAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG,EAAHA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAG,CAACD,KAAK,CAACE,OAAO,GAAG,CAACF,KAAK,CAACG,OAAO,CAAC,IAChE,CAACG,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKG,UAAU,CAACE,KAAK,IAAI,CAACR,KAAK,CAACS,QAAQ,IAAMH,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIR,KAAK,CAACS,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOT,KAAK,CAACK,GAAG,CAACK,WAAW,EAAE,KAAKJ,UAAU,CAACD,GAAG,CAACK,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCN,GAAmC,EACnCO,OAAgE,EAChEC,eAAe;MAAfA,eAAe;IAAfA,eAAe,GAAG,IAAI;;EAEtB,OAAO,UAAUb,KAA6C;IAC1D,IACIA,KAAK,CAACc,MAAM,KAAKd,KAAK,CAACe,aAAa,IACpCC,oBAAoB,CAAChB,KAAK,CAACc,MAAqB,CAAC,IACjD,CAACf,iBAAiB,CAACC,KAAK,CAAC,EAC3B;MACE;;IAGJ,IAAMiB,SAAS,GAAGb,qBAAqB,CAACJ,KAAK,EAAEK,GAAG,CAAC;IAEnD,IAAIY,SAAS,EAAE;MACX,IAAIJ,eAAe,EAAE;QAAA,IAAAK,qBAAA;;QAEjBlB,KAAK,CAACa,eAAe,EAAE;;QAEtB,CAAAK,qBAAA,GAAAlB,KAAuB,CAACmB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAApB,MAAoD;;MAGzDY,OAAO,CAACZ,KAAK,CAAC;;GAErB;AACL;IAEaC,OAAO,GAAG,SAAVA,OAAOA;EAAA,IAAAoB,OAAA;EAAA,QAAAA,OAAA,GAASC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
@@ -1,2 +1,2 @@
1
1
  import { KeyDownHandlerOptions } from '../utils/keyboard';
2
- export declare const useGlobalKeyDown: (shortcut: string | KeyDownHandlerOptions | undefined, handler: (event: KeyboardEvent) => void, element?: HTMLElement | null | undefined) => void;
2
+ export declare const useGlobalKeyDown: (shortcut: string | KeyDownHandlerOptions | undefined, handler: (event: KeyboardEvent) => void) => void;
@@ -90,11 +90,6 @@ export declare type TableScrollToIndexHandler = (index: number, options?: {
90
90
  }) => void;
91
91
  export declare type TableServerLoadPageHandler = (pageIndex: number, sorting: TableColumnSort[], filters: TableColumnFilter[], search: string | undefined, hiddenColumns: string[]) => Promise<void>;
92
92
  export declare type TableServerLoadAllHandler = (sorting: TableColumnSort[], filters: TableColumnFilter[], search: string | undefined, hiddenColumns: string[]) => Promise<void>;
93
- export declare enum TableServerLoadAllState {
94
- Incomplete = 0,
95
- Loading = 1,
96
- Completed = 2
97
- }
98
93
  export declare type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;
99
94
  export declare type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;
100
95
  export declare type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];
@@ -1,12 +1,12 @@
1
- import { TableServerLoadAllHandler, TableServerLoadAllState, TableServerLoadPageHandler } from '../../types';
2
- export declare function useTableServerLoading(length: number, loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
1
+ import { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';
2
+ export declare function useTableServerLoading<TType = unknown>(length: number, data: TType[], loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
3
3
  pages: number[] | undefined;
4
4
  isEnabled: boolean;
5
5
  isReady: boolean;
6
6
  loadPage: TableServerLoadPageHandler | undefined;
7
7
  loadAll: TableServerLoadAllHandler | undefined;
8
8
  loadAllIfNeeded: TableServerLoadAllHandler | undefined;
9
- loadAllStatus: TableServerLoadAllState;
9
+ loading: boolean;
10
10
  pageSize: number;
11
11
  pageCount: number;
12
12
  _experimentalDataLoader2: boolean;
@@ -4453,15 +4453,12 @@ function shouldTriggerShortcut(event, key) {
4453
4453
  }
4454
4454
  return event.key.toLowerCase() === keyOptions.key.toLowerCase();
4455
4455
  }
4456
- function createShortcutKeyDownHandler(key, handler, stopPropagation, element) {
4456
+ function createShortcutKeyDownHandler(key, handler, stopPropagation) {
4457
4457
  if (stopPropagation === void 0) {
4458
4458
  stopPropagation = true;
4459
4459
  }
4460
4460
  return function (event) {
4461
- var dialog = document.querySelector('[role="dialog"]');
4462
- var isOutsideDialog = element && dialog && !dialog.contains(element);
4463
- if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
4464
- ) {
4461
+ if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
4465
4462
  return;
4466
4463
  }
4467
4464
  var condition = shouldTriggerShortcut(event, key);
@@ -4482,11 +4479,11 @@ var isMacOs = function isMacOs() {
4482
4479
  return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
4483
4480
  };
4484
4481
 
4485
- var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler, element) {
4482
+ var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler) {
4486
4483
  React__default.useEffect(function () {
4487
4484
  var handleKeyDown;
4488
4485
  if (shortcut) {
4489
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
4486
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
4490
4487
  document.addEventListener('keydown', handleKeyDown);
4491
4488
  }
4492
4489
  return function () {
@@ -4509,8 +4506,13 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4509
4506
  useGlobalKeyDown(shortcut, function (event) {
4510
4507
  var _internalRef$current;
4511
4508
  event === null || event === void 0 ? void 0 : event.preventDefault();
4509
+ var dialog = document.querySelector('[role="dialog"]');
4510
+ // Don't trigger the click on the button if it is outside of the dialog
4511
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
4512
+ return;
4513
+ }
4512
4514
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
4513
- }, internalRef.current);
4515
+ });
4514
4516
  var Tag = props.href ? 'a' : 'button';
4515
4517
  return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
4516
4518
  href: disabled ? undefined : props.href,
@@ -8537,12 +8539,17 @@ var Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref) {
8537
8539
  if (child.props.shortcut) {
8538
8540
  shortcuts.push(createShortcutKeyDownHandler(child.props.shortcut, function (event) {
8539
8541
  event.preventDefault();
8542
+ var dialog = document.querySelector('[role="dialog"]');
8543
+ // Don't trigger the shortcut if it is outside of the dialog
8544
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
8545
+ return;
8546
+ }
8540
8547
  menu === null || menu === void 0 ? void 0 : menu.open();
8541
8548
  setTimeout(function () {
8542
8549
  var _childrenRefs$current, _childrenRefs$current2;
8543
8550
  return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
8544
8551
  }, 1);
8545
- }, true, childrenRefs.current[index].current));
8552
+ }));
8546
8553
  }
8547
8554
  });
8548
8555
  shortcuts.forEach(function (handler) {
@@ -10235,11 +10242,6 @@ var fixedForwardRef = React__default.forwardRef;
10235
10242
  TableFilterComparator[TableFilterComparator["HasAllOf"] = 12] = "HasAllOf";
10236
10243
  TableFilterComparator[TableFilterComparator["HasNoneOf"] = 13] = "HasNoneOf";
10237
10244
  })(exports.TableFilterComparator || (exports.TableFilterComparator = {}));
10238
- (function (TableServerLoadAllState) {
10239
- TableServerLoadAllState[TableServerLoadAllState["Incomplete"] = 0] = "Incomplete";
10240
- TableServerLoadAllState[TableServerLoadAllState["Loading"] = 1] = "Loading";
10241
- TableServerLoadAllState[TableServerLoadAllState["Completed"] = 2] = "Completed";
10242
- })(exports.TableServerLoadAllState || (exports.TableServerLoadAllState = {}));
10243
10245
 
10244
10246
  var dataTypes = {
10245
10247
  auto: {
@@ -11973,7 +11975,7 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11973
11975
  }, invalidate];
11974
11976
  }
11975
11977
 
11976
- function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
11978
+ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
11977
11979
  if (pageSize === void 0) {
11978
11980
  pageSize = DEFAULT_PAGE_SIZE;
11979
11981
  }
@@ -11984,9 +11986,18 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
11984
11986
  var _React$useState = React__default.useState(false),
11985
11987
  isReady = _React$useState[0],
11986
11988
  setReady = _React$useState[1];
11987
- var _React$useState2 = React__default.useState(exports.TableServerLoadAllState.Incomplete),
11988
- loadAllStatus = _React$useState2[0],
11989
- setLoadedStatus = _React$useState2[1];
11989
+ var _React$useState2 = React__default.useState(false),
11990
+ loading = _React$useState2[0],
11991
+ setLoading = _React$useState2[1];
11992
+ var hasLoadedAll = React__default.useMemo(function () {
11993
+ var _data$some;
11994
+ if (data.length !== length || !!((_data$some = data.some) !== null && _data$some !== void 0 && _data$some.call(data, function (x) {
11995
+ return x === undefined;
11996
+ }))) {
11997
+ return false;
11998
+ }
11999
+ return true;
12000
+ }, [data, length]);
11990
12001
  var _loadPage;
11991
12002
  var _loadAll;
11992
12003
  var _loadAllIfNeeded;
@@ -11999,7 +12010,6 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
11999
12010
  var _temp = function () {
12000
12011
  if (typeof loadPage === 'function') {
12001
12012
  return Promise.resolve(loadPage.apply(void 0, args)).then(function () {
12002
- setLoadedStatus(exports.TableServerLoadAllState.Incomplete);
12003
12013
  setReady(true);
12004
12014
  });
12005
12015
  }
@@ -12018,9 +12028,9 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12018
12028
  try {
12019
12029
  var _temp2 = function () {
12020
12030
  if (typeof loadAll === 'function') {
12021
- setLoadedStatus(exports.TableServerLoadAllState.Loading);
12031
+ setLoading(true);
12022
12032
  return Promise.resolve(loadAll.apply(void 0, args)).then(function () {
12023
- setLoadedStatus(exports.TableServerLoadAllState.Completed);
12033
+ setLoading(false);
12024
12034
  setReady(true);
12025
12035
  });
12026
12036
  }
@@ -12036,7 +12046,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12036
12046
  }
12037
12047
  try {
12038
12048
  var _temp3 = function () {
12039
- if (loadAllStatus === exports.TableServerLoadAllState.Incomplete) {
12049
+ if (!hasLoadedAll) {
12040
12050
  var _loadAll2;
12041
12051
  return Promise.resolve((_loadAll2 = _loadAll) === null || _loadAll2 === void 0 ? void 0 : _loadAll2.apply(void 0, args)).then(function () {});
12042
12052
  }
@@ -12055,7 +12065,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12055
12065
  loadPage: _loadPage,
12056
12066
  loadAll: _loadAll,
12057
12067
  loadAllIfNeeded: _loadAllIfNeeded,
12058
- loadAllStatus: loadAllStatus,
12068
+ loading: loading,
12059
12069
  pageSize: pageSize,
12060
12070
  pageCount: pageCount,
12061
12071
  _experimentalDataLoader2: _experimentalDataLoader2
@@ -12269,7 +12279,7 @@ function useTableSearchListener(table) {
12269
12279
  if (meta.search.isEnabled) {
12270
12280
  resetHighlightedColumnIndexes(query, table, localization);
12271
12281
  }
12272
- }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
12282
+ }, [meta.server.loading, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
12273
12283
  }
12274
12284
 
12275
12285
  function useTableSettingsListener(table, onChangeSettings) {
@@ -12427,7 +12437,7 @@ function useTableManager(props, meta, internalColumns) {
12427
12437
  var rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
12428
12438
  var rowSelection = useTableRowSelection(!!options.enableRowSelection);
12429
12439
  var search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
12430
- var server = useTableServerLoading(length, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
12440
+ var server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
12431
12441
  // TODO: memoise
12432
12442
  // convert jsx column components into valid table columns
12433
12443
  var _mapTableChildrenToCo = mapTableChildrenToColumns(props, settings, options, internalColumns, localization),
@@ -13332,7 +13342,7 @@ function Header$4(context) {
13332
13342
  className: "hover:border-blue !-mt-px",
13333
13343
  checked: isAllRowsSelected,
13334
13344
  indeterminate: isSomeRowsSelected && !isAllRowsSelected,
13335
- loading: tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
13345
+ loading: tableMeta.server.loading,
13336
13346
  onChange: handleChange
13337
13347
  }));
13338
13348
  }
@@ -14974,7 +14984,7 @@ function Search$1(props) {
14974
14984
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
14975
14985
  findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
14976
14986
  findTotal: (_tableMeta$search$hig2 = (_tableMeta$search$hig3 = tableMeta.search.highlightedColumnIndexes) === null || _tableMeta$search$hig3 === void 0 ? void 0 : _tableMeta$search$hig3.length) !== null && _tableMeta$search$hig2 !== void 0 ? _tableMeta$search$hig2 : null,
14977
- loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
14987
+ loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading,
14978
14988
  name: "table-search",
14979
14989
  onClickFindPrevious: handlePreviousResult,
14980
14990
  onClickFindNext: handleNextResult,
@@ -19823,7 +19833,28 @@ function reducer$2(state, action) {
19823
19833
  return state;
19824
19834
  }
19825
19835
  }
19826
- function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator) {
19836
+ function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator) {
19837
+ var discardChanges = function discardChanges(rowId, table) {
19838
+ try {
19839
+ // remove any new rows from pinned state before discarding them
19840
+ table.resetRowPinning(true);
19841
+ dispatch({
19842
+ type: 'removeRow',
19843
+ rowId: rowId,
19844
+ payload: {
19845
+ rowIdentityAccessor: rowIdentityAccessor
19846
+ }
19847
+ });
19848
+ var _temp8 = function () {
19849
+ if (typeof handleDiscard === 'function') {
19850
+ return Promise.resolve(handleDiscard()).then(function () {});
19851
+ }
19852
+ }();
19853
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
19854
+ } catch (e) {
19855
+ return Promise.reject(e);
19856
+ }
19857
+ };
19827
19858
  var saveChanges = function saveChanges(table, rowId) {
19828
19859
  if (rowId === void 0) {
19829
19860
  rowId = undefined;
@@ -19845,12 +19876,13 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
19845
19876
  function _temp6(_result) {
19846
19877
  return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
19847
19878
  // cleanup changes, we don't need them after saving
19848
- discardChanges(rowId, table);
19849
- // show the saved status, then remove it after a delay
19850
- setRowStatus(rowId, 'saved');
19851
- setTimeout(function () {
19852
- setRowStatus(rowId, undefined);
19853
- }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
19879
+ return Promise.resolve(discardChanges(rowId, table)).then(function () {
19880
+ // show the saved status, then remove it after a delay
19881
+ setRowStatus(rowId, 'saved');
19882
+ setTimeout(function () {
19883
+ setRowStatus(rowId, undefined);
19884
+ }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
19885
+ });
19854
19886
  });
19855
19887
  }
19856
19888
  var rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
@@ -20128,17 +20160,6 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
20128
20160
  function hasChanges(rowId) {
20129
20161
  return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
20130
20162
  }
20131
- function discardChanges(rowId, table) {
20132
- // remove any new rows from pinned state before discarding them
20133
- table.resetRowPinning(true);
20134
- dispatch({
20135
- type: 'removeRow',
20136
- rowId: rowId,
20137
- payload: {
20138
- rowIdentityAccessor: rowIdentityAccessor
20139
- }
20140
- });
20141
- }
20142
20163
  return {
20143
20164
  // row
20144
20165
  getRowValue: getRowValue,
@@ -20165,7 +20186,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
20165
20186
  };
20166
20187
  }
20167
20188
 
20168
- function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
20189
+ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, handleDiscard, rowIdentityAccessor, validator) {
20169
20190
  var createRow = function createRow(table, scrollToIndex, row) {
20170
20191
  try {
20171
20192
  var _temp2 = function _temp2(_result) {
@@ -20184,12 +20205,11 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
20184
20205
  // wait until set states have run
20185
20206
  requestAnimationFrame(function () {
20186
20207
  toggleEditing(true, table, scrollToIndex, false);
20187
- table.setRowPinning(function (currentState) {
20188
- var _ref, _currentState$bottom;
20189
- return _extends({}, currentState, {
20190
- bottom: (_ref = (_currentState$bottom = currentState.bottom) !== null && _currentState$bottom !== void 0 ? _currentState$bottom : []) === null || _ref === void 0 ? void 0 : _ref.concat(newRowId)
20208
+ setTimeout(function () {
20209
+ requestAnimationFrame(function () {
20210
+ return table.getRow(newRowId).pin('bottom');
20191
20211
  });
20192
- });
20212
+ }, 150);
20193
20213
  });
20194
20214
  }
20195
20215
  } catch (error) {
@@ -20233,7 +20253,7 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
20233
20253
  var _React$useState3 = React__default.useState(undefined),
20234
20254
  lastFocusedCellIndex = _React$useState3[0],
20235
20255
  setLastFocusedCellIndex = _React$useState3[1];
20236
- var pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
20256
+ var pendingChangesFns = usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator);
20237
20257
  function toggleEditing(enabled, table, scrollToIndex, doSave) {
20238
20258
  if (doSave === void 0) {
20239
20259
  doSave = true;
@@ -20518,7 +20538,7 @@ function EditingControlCell(props) {
20518
20538
  var _cellRef$current;
20519
20539
  return typeof type === 'function' && !!((_cellRef$current = cellRef.current) !== null && _cellRef$current !== void 0 && _cellRef$current.querySelector('[data-taco="Select2"],[data-taco="switch"],[data-taco="checkbox"]'));
20520
20540
  }, [cellRef.current]);
20521
- var handleChange = function handleChange(nextValue) {
20541
+ var handleChange = React__default.useCallback(function (nextValue) {
20522
20542
  if (nextValue !== value) {
20523
20543
  tableMeta.editing.setCellValue(cell, rowIndex, nextValue);
20524
20544
  if (hasNonTextControl) {
@@ -20527,17 +20547,17 @@ function EditingControlCell(props) {
20527
20547
  });
20528
20548
  }
20529
20549
  }
20530
- };
20531
- function blur() {
20550
+ }, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value]);
20551
+ var blur = React__default.useCallback(function blur() {
20532
20552
  tableMeta.editing.toggleDetailedMode(false);
20533
20553
  tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
20534
- }
20535
- var handleBlur = function handleBlur(event) {
20554
+ }, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex]);
20555
+ var handleBlur = React__default.useCallback(function (event) {
20536
20556
  if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
20537
20557
  return;
20538
20558
  }
20539
20559
  blur();
20540
- };
20560
+ }, [blur]);
20541
20561
  // ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)
20542
20562
  React__default.useEffect(function () {
20543
20563
  var ref = cellRef.current;
@@ -20935,7 +20955,7 @@ var RENDERERS$1 = {
20935
20955
  cell: Cell$5
20936
20956
  };
20937
20957
  function useTable3(props, ref) {
20938
- var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.rowIdentityAccessor, props.validator);
20958
+ var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.onEditingDiscard, props.rowIdentityAccessor, props.validator);
20939
20959
  var creationEnabled = editing.isEnabled && !!props.onEditingCreate;
20940
20960
  // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state
20941
20961
  var data = React__default.useMemo(function () {
@@ -21048,6 +21068,7 @@ function Alert$1(props) {
21048
21068
  // Add space before and after `messageAnd` text
21049
21069
  links.push(" " + validationTexts.alert.messageAnd + " ");
21050
21070
  }
21071
+ // note: if this row click functionality is removed, indexes can be removed from useEditingState
21051
21072
  var handleClick = function handleClick() {
21052
21073
  // if row is visible
21053
21074
  if (pendingChangeWithError.index > -1) {