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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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":"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"}
@@ -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) {