@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
@@ -3,7 +3,7 @@ import { extends as _extends } from '../../../../../../_virtual/_rollupPluginBab
3
3
  import { isTemporaryRow } from '../util/editing.js';
4
4
  import { usePendingChangesState } from './useEditingState.js';
5
5
 
6
- function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
6
+ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, handleDiscard, rowIdentityAccessor, validator) {
7
7
  var createRow = function createRow(table, scrollToIndex, row) {
8
8
  try {
9
9
  var _temp2 = function _temp2(_result) {
@@ -22,12 +22,11 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
22
22
  // wait until set states have run
23
23
  requestAnimationFrame(function () {
24
24
  toggleEditing(true, table, scrollToIndex, false);
25
- table.setRowPinning(function (currentState) {
26
- var _ref, _currentState$bottom;
27
- return _extends({}, currentState, {
28
- bottom: (_ref = (_currentState$bottom = currentState.bottom) !== null && _currentState$bottom !== void 0 ? _currentState$bottom : []) === null || _ref === void 0 ? void 0 : _ref.concat(newRowId)
25
+ setTimeout(function () {
26
+ requestAnimationFrame(function () {
27
+ return table.getRow(newRowId).pin('bottom');
29
28
  });
30
- });
29
+ }, 150);
31
30
  });
32
31
  }
33
32
  } catch (error) {
@@ -71,7 +70,7 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
71
70
  var _React$useState3 = React__default.useState(undefined),
72
71
  lastFocusedCellIndex = _React$useState3[0],
73
72
  setLastFocusedCellIndex = _React$useState3[1];
74
- var pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
73
+ var pendingChangesFns = usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator);
75
74
  function toggleEditing(enabled, table, scrollToIndex, doSave) {
76
75
  if (doSave === void 0) {
77
76
  doSave = true;
@@ -1 +1 @@
1
- {"version":3,"file":"useTableEditing.js","sources":["../../../../../../../../src/components/Table3/features/useTableEditing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport {\n Table3EditingChangeHandler,\n Table3EditingCreateHandler,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n} from '../types';\nimport { usePendingChangesState } from './useEditingState';\nimport { isTemporaryRow } from '../util/editing';\n\nexport function useTableEditing<TType = unknown>(\n isEnabled = false,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n handleCreate: Table3EditingCreateHandler<TType> | undefined,\n rowIdentityAccessor: keyof TType | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n // used to switch the table into editing mode\n const [isEditing, setEditing] = React.useState(false);\n\n // used to switch the editing between \"detailed\" mode\n const [isDetailedMode, toggleDetailedMode] = React.useState(false);\n\n // used to contain ref to the create button\n const createRowButtonRef = React.useRef<HTMLButtonElement>(null);\n\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const [lastFocusedCellIndex, setLastFocusedCellIndex] = React.useState<number | undefined>(undefined);\n\n const pendingChangesFns = usePendingChangesState<TType>(\n handleSave,\n handleChange,\n rowIdentityAccessor as keyof TType,\n validator\n );\n\n function toggleEditing<T extends TType>(\n enabled: React.SetStateAction<boolean>,\n table: ReactTable<T>,\n scrollToIndex: (index: number) => void,\n doSave = true\n ) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (enabled) {\n const index = tableMeta.rowActive.rowActiveIndex ?? 0;\n\n if (tableMeta.rowActive.rowActiveIndex === undefined) {\n tableMeta.rowActive.setRowActiveIndex(index);\n }\n\n if (!isTemporaryRow(table.getRowModel().rows[index]?.id)) {\n scrollToIndex(index);\n }\n } else if (!enabled) {\n // reset detailed mode\n toggleDetailedMode(false);\n // reset the last index back to the first focusable element, when editing gets turned off\n setLastFocusedCellIndex(undefined);\n }\n\n setEditing(enabled);\n\n if (doSave) {\n pendingChangesFns.saveChanges(table);\n }\n }\n\n async function createRow<T extends TType>(table: ReactTable<T>, scrollToIndex: (index: number) => void, row?: Partial<T>) {\n if (!handleCreate) {\n return;\n }\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const saved = await tableMeta.editing.saveChanges(\n table,\n table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]?.id\n );\n\n if (!saved) {\n return;\n }\n }\n\n const changeset = row ?? handleCreate();\n\n try {\n if (changeset) {\n // set the active row to the new row before toggling editing on\n const temporaryRows = tableMeta.editing.temporaryRows as TType[];\n const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;\n\n const newRowId = pendingChangesFns.insertTemporaryRow(changeset, nextRowIndex);\n\n // reset before changing row otherwise the cell changes and validation might run\n setLastFocusedCellIndex(undefined);\n // set the active row to the new row before toggling editing on\n tableMeta.rowActive.setRowActiveIndex(nextRowIndex);\n\n // wait until set states have run\n requestAnimationFrame(() => {\n toggleEditing(true, table, scrollToIndex, false);\n table.setRowPinning(currentState => ({\n ...currentState,\n bottom: (currentState.bottom ?? [])?.concat(newRowId),\n }));\n });\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n return {\n isEnabled,\n isEditing,\n isDetailedMode,\n toggleDetailedMode: isEnabled ? toggleDetailedMode : () => undefined,\n toggleEditing: isEnabled ? toggleEditing : () => undefined,\n lastFocusedCellIndex,\n setLastFocusedCellIndex,\n createRow,\n createRowButtonRef,\n ...pendingChangesFns,\n };\n}\n"],"names":["useTableEditing","isEnabled","handleSave","handleChange","handleCreate","rowIdentityAccessor","validator","createRow","table","scrollToIndex","row","changeset","temporaryRows","tableMeta","editing","nextRowIndex","length","newRowId","pendingChangesFns","insertTemporaryRow","setLastFocusedCellIndex","undefined","rowActive","setRowActiveIndex","requestAnimationFrame","toggleEditing","setRowPinning","currentState","_ref","_currentState$bottom","_extends","bottom","concat","error","console","_exit","Promise","resolve","options","meta","_temp","rowActiveIndex","_table$getRowModel$ro2","saveChanges","getRowModel","rows","id","then","saved","_temp2","e","reject","_React$useState","React","useState","isEditing","setEditing","_React$useState2","isDetailedMode","toggleDetailedMode","createRowButtonRef","useRef","_React$useState3","lastFocusedCellIndex","usePendingChangesState","enabled","doSave","_tableMeta$rowActive$","_table$getRowModel$ro","index","isTemporaryRow"],"mappings":"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"}
1
+ {"version":3,"file":"useTableEditing.js","sources":["../../../../../../../../src/components/Table3/features/useTableEditing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport {\n Table3EditingChangeHandler,\n Table3EditingCreateHandler,\n Table3EditingDiscardHandler,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n} from '../types';\nimport { usePendingChangesState } from './useEditingState';\nimport { isTemporaryRow } from '../util/editing';\n\nexport function useTableEditing<TType = unknown>(\n isEnabled = false,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n handleCreate: Table3EditingCreateHandler<TType> | undefined,\n handleDiscard: Table3EditingDiscardHandler | undefined,\n rowIdentityAccessor: keyof TType | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n // used to switch the table into editing mode\n const [isEditing, setEditing] = React.useState(false);\n\n // used to switch the editing between \"detailed\" mode\n const [isDetailedMode, toggleDetailedMode] = React.useState(false);\n\n // used to contain ref to the create button\n const createRowButtonRef = React.useRef<HTMLButtonElement>(null);\n\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const [lastFocusedCellIndex, setLastFocusedCellIndex] = React.useState<number | undefined>(undefined);\n\n const pendingChangesFns = usePendingChangesState<TType>(\n handleSave,\n handleChange,\n handleDiscard,\n rowIdentityAccessor as keyof TType,\n validator\n );\n\n function toggleEditing<T extends TType>(\n enabled: React.SetStateAction<boolean>,\n table: ReactTable<T>,\n scrollToIndex: (index: number) => void,\n doSave = true\n ) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (enabled) {\n const index = tableMeta.rowActive.rowActiveIndex ?? 0;\n\n if (tableMeta.rowActive.rowActiveIndex === undefined) {\n tableMeta.rowActive.setRowActiveIndex(index);\n }\n\n if (!isTemporaryRow(table.getRowModel().rows[index]?.id)) {\n scrollToIndex(index);\n }\n } else if (!enabled) {\n // reset detailed mode\n toggleDetailedMode(false);\n // reset the last index back to the first focusable element, when editing gets turned off\n setLastFocusedCellIndex(undefined);\n }\n\n setEditing(enabled);\n\n if (doSave) {\n pendingChangesFns.saveChanges(table);\n }\n }\n\n async function createRow<T extends TType>(table: ReactTable<T>, scrollToIndex: (index: number) => void, row?: Partial<T>) {\n if (!handleCreate) {\n return;\n }\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const saved = await tableMeta.editing.saveChanges(\n table,\n table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]?.id\n );\n\n if (!saved) {\n return;\n }\n }\n\n const changeset = row ?? handleCreate();\n\n try {\n if (changeset) {\n // set the active row to the new row before toggling editing on\n const temporaryRows = tableMeta.editing.temporaryRows as TType[];\n const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;\n\n const newRowId = pendingChangesFns.insertTemporaryRow(changeset, nextRowIndex);\n\n // reset before changing row otherwise the cell changes and validation might run\n setLastFocusedCellIndex(undefined);\n // set the active row to the new row before toggling editing on\n tableMeta.rowActive.setRowActiveIndex(nextRowIndex);\n\n // wait until set states have run\n requestAnimationFrame(() => {\n toggleEditing(true, table, scrollToIndex, false);\n setTimeout(() => {\n requestAnimationFrame(() => table.getRow(newRowId).pin('bottom'));\n }, 150);\n });\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n return {\n isEnabled,\n isEditing,\n isDetailedMode,\n toggleDetailedMode: isEnabled ? toggleDetailedMode : () => undefined,\n toggleEditing: isEnabled ? toggleEditing : () => undefined,\n lastFocusedCellIndex,\n setLastFocusedCellIndex,\n createRow,\n createRowButtonRef,\n ...pendingChangesFns,\n };\n}\n"],"names":["useTableEditing","isEnabled","handleSave","handleChange","handleCreate","handleDiscard","rowIdentityAccessor","validator","createRow","table","scrollToIndex","row","changeset","temporaryRows","tableMeta","editing","nextRowIndex","length","newRowId","pendingChangesFns","insertTemporaryRow","setLastFocusedCellIndex","undefined","rowActive","setRowActiveIndex","requestAnimationFrame","toggleEditing","setTimeout","getRow","pin","error","console","_exit","Promise","resolve","options","meta","_temp","rowActiveIndex","_table$getRowModel$ro2","saveChanges","getRowModel","rows","id","then","saved","_temp2","e","reject","_React$useState","React","useState","isEditing","setEditing","_React$useState2","isDetailedMode","toggleDetailedMode","createRowButtonRef","useRef","_React$useState3","lastFocusedCellIndex","usePendingChangesState","enabled","doSave","_tableMeta$rowActive$","_table$getRowModel$ro","index","isTemporaryRow","_extends"],"mappings":"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"}
@@ -12,7 +12,7 @@ var RENDERERS = {
12
12
  cell: Cell
13
13
  };
14
14
  function useTable3(props, ref) {
15
- var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.rowIdentityAccessor, props.validator);
15
+ var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.onEditingDiscard, props.rowIdentityAccessor, props.validator);
16
16
  var creationEnabled = editing.isEnabled && !!props.onEditingCreate;
17
17
  // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state
18
18
  var data = React__default.useMemo(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"useTable3.js","sources":["../../../../../../../src/components/Table3/useTable3.tsx"],"sourcesContent":["import React from 'react';\nimport { RowData, Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionsMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\nimport { useTableRenderOptions } from '../../primitives/Table/Core/types';\n\nexport const RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(\n props.enableEditing,\n props.onEditingSave,\n props.onEditingChange,\n props.onEditingCreate,\n props.rowIdentityAccessor,\n props.validator\n );\n const creationEnabled = editing.isEnabled && !!props.onEditingCreate;\n\n // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state\n const data: TType[] = React.useMemo(() => {\n if (editing.temporaryRows.length) {\n return (props.data ?? []).concat(editing.temporaryRows as TType[]);\n }\n\n return props.data;\n }, [JSON.stringify(props.data), editing.temporaryRows.length]);\n\n const extendedProps: Table3Props<TType> = {\n ...props,\n data,\n enableRowActions: editing.isEditing ? true : props.enableRowActions,\n // Display EditingActionMenu instead of row actions while editing\n rowActions: editing.isEditing\n ? ([\n (_, rowId, table: ReactTable<TType>) => {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n return (\n <EditingActionsMenu\n hasChanges={editing.hasChanges(rowId)}\n hasErrors={editing.hasRowErrors(rowId)}\n onDiscard={() => {\n editing.discardChanges(rowId, table);\n\n if (editing.temporaryRows.length) {\n requestAnimationFrame(() => editing.createRowButtonRef.current?.focus());\n }\n }}\n onEditingSave={async () => {\n await editing.saveChanges(table, rowId);\n }}\n isLastRow={!creationEnabled && tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1}\n />\n );\n },\n ] as TableRowActionRenderer<TType>[])\n : props.rowActions,\n };\n const meta = { editing };\n\n const options: useTableRenderOptions = {\n virtualiserPaddingEndOffset:\n props.enableEditing && props.onEditingCreate ? (editing.hasTemporaryRowErrors() ? 1.4 : 1) : 0,\n };\n\n const table = useTable<TType, Table3Meta>(extendedProps, ref, RENDERERS, meta, options);\n\n // listeners\n useTableEditingListener<TType>(table.instance, table.ref, table.renderer.scrollToIndex);\n\n React.useEffect(() => {\n if (table.ref.current) {\n (table.ref.current as Table3Ref).instance.toggleEditing = (enabled: boolean | undefined) =>\n table.meta.editing.toggleEditing(enabled ?? (editing => !editing), table.instance, table.renderer.scrollToIndex);\n\n if (props.onEditingCreate) {\n (table.ref.current as Table3Ref).instance.createRow = (row: unknown) =>\n table.meta.editing.createRow(table.instance, table.renderer.scrollToIndex, row as Partial<TType>);\n }\n }\n }, [table.ref.current]);\n\n return table;\n}\n"],"names":["RENDERERS","row","Row","cell","Cell","useTable3","props","ref","editing","useTableEditing","enableEditing","onEditingSave","onEditingChange","onEditingCreate","rowIdentityAccessor","validator","creationEnabled","isEnabled","data","React","useMemo","temporaryRows","length","_props$data","concat","JSON","stringify","extendedProps","_extends","enableRowActions","isEditing","rowActions","_","rowId","table","tableMeta","options","meta","EditingActionsMenu","hasChanges","hasErrors","hasRowErrors","onDiscard","discardChanges","requestAnimationFrame","_editing$createRowBut","createRowButtonRef","current","focus","saveChanges","then","e","Promise","reject","isLastRow","rowActive","rowActiveIndex","virtualiserPaddingEndOffset","hasTemporaryRowErrors","useTable","useTableEditingListener","instance","renderer","scrollToIndex","useEffect","toggleEditing","enabled","createRow"],"mappings":"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"}
1
+ {"version":3,"file":"useTable3.js","sources":["../../../../../../../src/components/Table3/useTable3.tsx"],"sourcesContent":["import React from 'react';\nimport { RowData, Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionsMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\nimport { useTableRenderOptions } from '../../primitives/Table/Core/types';\n\nexport const RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(\n props.enableEditing,\n props.onEditingSave,\n props.onEditingChange,\n props.onEditingCreate,\n props.onEditingDiscard,\n props.rowIdentityAccessor,\n props.validator\n );\n const creationEnabled = editing.isEnabled && !!props.onEditingCreate;\n\n // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state\n const data: TType[] = React.useMemo(() => {\n if (editing.temporaryRows.length) {\n return (props.data ?? []).concat(editing.temporaryRows as TType[]);\n }\n\n return props.data;\n }, [JSON.stringify(props.data), editing.temporaryRows.length]);\n\n const extendedProps: Table3Props<TType> = {\n ...props,\n data,\n enableRowActions: editing.isEditing ? true : props.enableRowActions,\n // Display EditingActionMenu instead of row actions while editing\n rowActions: editing.isEditing\n ? ([\n (_, rowId, table: ReactTable<TType>) => {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n return (\n <EditingActionsMenu\n hasChanges={editing.hasChanges(rowId)}\n hasErrors={editing.hasRowErrors(rowId)}\n onDiscard={() => {\n editing.discardChanges(rowId, table);\n\n if (editing.temporaryRows.length) {\n requestAnimationFrame(() => editing.createRowButtonRef.current?.focus());\n }\n }}\n onEditingSave={async () => {\n await editing.saveChanges(table, rowId);\n }}\n isLastRow={!creationEnabled && tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1}\n />\n );\n },\n ] as TableRowActionRenderer<TType>[])\n : props.rowActions,\n };\n const meta = { editing };\n\n const options: useTableRenderOptions = {\n virtualiserPaddingEndOffset:\n props.enableEditing && props.onEditingCreate ? (editing.hasTemporaryRowErrors() ? 1.4 : 1) : 0,\n };\n\n const table = useTable<TType, Table3Meta>(extendedProps, ref, RENDERERS, meta, options);\n\n // listeners\n useTableEditingListener<TType>(table.instance, table.ref, table.renderer.scrollToIndex);\n\n React.useEffect(() => {\n if (table.ref.current) {\n (table.ref.current as Table3Ref).instance.toggleEditing = (enabled: boolean | undefined) =>\n table.meta.editing.toggleEditing(enabled ?? (editing => !editing), table.instance, table.renderer.scrollToIndex);\n\n if (props.onEditingCreate) {\n (table.ref.current as Table3Ref).instance.createRow = (row: unknown) =>\n table.meta.editing.createRow(table.instance, table.renderer.scrollToIndex, row as Partial<TType>);\n }\n }\n }, [table.ref.current]);\n\n return table;\n}\n"],"names":["RENDERERS","row","Row","cell","Cell","useTable3","props","ref","editing","useTableEditing","enableEditing","onEditingSave","onEditingChange","onEditingCreate","onEditingDiscard","rowIdentityAccessor","validator","creationEnabled","isEnabled","data","React","useMemo","temporaryRows","length","_props$data","concat","JSON","stringify","extendedProps","_extends","enableRowActions","isEditing","rowActions","_","rowId","table","tableMeta","options","meta","EditingActionsMenu","hasChanges","hasErrors","hasRowErrors","onDiscard","discardChanges","requestAnimationFrame","_editing$createRowBut","createRowButtonRef","current","focus","saveChanges","then","e","Promise","reject","isLastRow","rowActive","rowActiveIndex","virtualiserPaddingEndOffset","hasTemporaryRowErrors","useTable","useTableEditingListener","instance","renderer","scrollToIndex","useEffect","toggleEditing","enabled","createRow"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import React__default from 'react';
2
2
  import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
3
3
 
4
- var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler, element) {
4
+ var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler) {
5
5
  React__default.useEffect(function () {
6
6
  var handleKeyDown;
7
7
  if (shortcut) {
8
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
8
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
9
9
  document.addEventListener('keydown', handleKeyDown);
10
10
  }
11
11
  return function () {
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void,\n element?: HTMLElement | null\n) => {\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(\n shortcut,\n handler as (event: KeyboardEvent | React.KeyboardEvent) => void,\n false,\n element\n );\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut, handler]);\n};\n"],"names":["useGlobalKeyDown","shortcut","handler","element","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;IAGaA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACzBC,QAAoD,EACpDC,OAAuC,EACvCC,OAA4B;EAE5BC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAa;IAEjB,IAAIL,QAAQ,EAAE;MACVK,aAAa,GAAGC,4BAA4B,CACxCN,QAAQ,EACRC,OAA+D,EAC/D,KAAK,EACLC,OAAO,CACV;MAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;;IAGvD,OAAO;MACH,IAAIA,aAAa,EAAE;QACfE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;;KAE7D;GACJ,EAAE,CAACL,QAAQ,EAAEC,OAAO,CAAC,CAAC;AAC3B;;;;"}
1
+ {"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void\n) => {\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(\n shortcut,\n handler as (event: KeyboardEvent | React.KeyboardEvent) => void,\n false\n );\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut, handler]);\n};\n"],"names":["useGlobalKeyDown","shortcut","handler","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;IAGaA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACzBC,QAAoD,EACpDC,OAAuC;EAEvCC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAa;IAEjB,IAAIJ,QAAQ,EAAE;MACVI,aAAa,GAAGC,4BAA4B,CACxCL,QAAQ,EACRC,OAA+D,EAC/D,KAAK,CACR;MAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;;IAGvD,OAAO;MACH,IAAIA,aAAa,EAAE;QACfE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;;KAE7D;GACJ,EAAE,CAACJ,QAAQ,EAAEC,OAAO,CAAC,CAAC;AAC3B;;;;"}
@@ -53,7 +53,7 @@ export { Progress } from './components/Progress/Progress.js';
53
53
  export { ToastProvider, useToast } from './components/Toast/Toaster.js';
54
54
  export { Provider, TacoContext } from './components/Provider/Provider.js';
55
55
  export { FontSizes, fixedForwardRef } from './types.js';
56
- export { TableFilterComparator, TableServerLoadAllState } from './primitives/Table/types.js';
56
+ export { TableFilterComparator } from './primitives/Table/types.js';
57
57
  export { DEFAULT_PAGE_SIZE, useTableDataLoader } from './primitives/Table/useTableDataLoader.js';
58
58
  export { useLazyEffect } from './hooks/useLazyEffect.js';
59
59
  export { SearchInput } from './components/SearchInput/SearchInput.js';
@@ -15,8 +15,13 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
15
15
  useGlobalKeyDown(shortcut, function (event) {
16
16
  var _internalRef$current;
17
17
  event === null || event === void 0 ? void 0 : event.preventDefault();
18
+ var dialog = document.querySelector('[role="dialog"]');
19
+ // Don't trigger the click on the button if it is outside of the dialog
20
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
21
+ return;
22
+ }
18
23
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
19
- }, internalRef.current);
24
+ });
20
25
  var Tag = props.href ? 'a' : 'button';
21
26
  return /*#__PURE__*/createElement(Tag, Object.assign({}, otherProps, {
22
27
  href: disabled ? undefined : props.href,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(\n shortcut,\n event => {\n event?.preventDefault();\n internalRef.current?.click();\n },\n internalRef.current\n );\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button","React","props","ref","disabled","shortcut","target","_props$type","type","otherProps","_objectWithoutPropertiesLoose","_excluded","internalRef","useMergedRef","useGlobalKeyDown","event","preventDefault","_internalRef$current","current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;;;IAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAMA,CAACE,KAAkB,EAAEC,GAAqD;EACrH,IAAQC,QAAQ,GAAuDF,KAAK,CAApEE,QAAQ;IAAEC,QAAQ,GAA6CH,KAAK,CAA1DG,QAAQ;IAAEC,MAAM,GAAqCJ,KAAK,CAAhDI,MAAM;IAAAC,WAAA,GAAqCL,KAAK,CAAxCM,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,QAAQ,GAAAA,WAAA;IAAKE,UAAU,GAAAC,6BAAA,CAAKR,KAAK,EAAAS,SAAA;EAC5E,IAAMC,WAAW,GAAGC,YAAY,CAAwCV,GAAG,CAAC;EAE5EW,gBAAgB,CACZT,QAAQ,EACR,UAAAU,KAAK;;IACDA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,cAAc,EAAE;IACvB,CAAAC,oBAAA,GAAAL,WAAW,CAACM,OAAO,cAAAD,oBAAA,uBAAnBA,oBAAA,CAAqBE,KAAK,EAAE;GAC/B,EACDP,WAAW,CAACM,OAAO,CACtB;EAED,IAAME,GAAG,GAAGlB,KAAK,CAACmB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIpB,cAACmB,GAAG,oBACIX,UAAU;IACdY,IAAI,EAAEjB,QAAQ,GAAGkB,SAAS,GAAGpB,KAAK,CAACmB,IAAI;qBACxBjB,QAAQ,GAAG,MAAM,GAAGkB,SAAS;IAC5ClB,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEc,GAAG,KAAK,GAAG,GAAGd,MAAM,GAAGgB,SAAS;IACxCd,IAAI,EAAEY,GAAG,KAAK,GAAG,GAAGZ,IAAI,GAAGc,SAAS;IACpCnB,GAAG,EAAES;MACJX,QAAc,CAACsB,KAAK,CAACrB,KAAK,CAACsB,QAAQ,CAAC,GAAG,CAAC,GACnCvB,QAAc,CAACwB,GAAG,CAACvB,KAAK,CAACsB,QAAQ,EAAE,UAAAE,KAAK;IAAA,OAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAGzB,4BAAOyB,KAAK,CAAQ,GAAGA,KAAK;GAAC,CAAC,GACvGxB,KAAK,CAACsB,QAAQ,CAClB;AAEd,CAAC;;;;"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button","React","props","ref","disabled","shortcut","target","_props$type","type","otherProps","_objectWithoutPropertiesLoose","_excluded","internalRef","useMergedRef","useGlobalKeyDown","event","preventDefault","dialog","document","querySelector","contains","current","_internalRef$current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;;;IAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAMA,CAACE,KAAkB,EAAEC,GAAqD;EACrH,IAAQC,QAAQ,GAAuDF,KAAK,CAApEE,QAAQ;IAAEC,QAAQ,GAA6CH,KAAK,CAA1DG,QAAQ;IAAEC,MAAM,GAAqCJ,KAAK,CAAhDI,MAAM;IAAAC,WAAA,GAAqCL,KAAK,CAAxCM,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,QAAQ,GAAAA,WAAA;IAAKE,UAAU,GAAAC,6BAAA,CAAKR,KAAK,EAAAS,SAAA;EAC5E,IAAMC,WAAW,GAAGC,YAAY,CAAwCV,GAAG,CAAC;EAE5EW,gBAAgB,CAACT,QAAQ,EAAE,UAAAU,KAAK;;IAC5BA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,cAAc,EAAE;IACvB,IAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;;IAGxD,IAAIF,MAAM,IAAI,EAACA,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEG,QAAQ,CAACR,WAAW,CAACS,OAAO,CAAC,GAAE;MAClD;;IAGJ,CAAAC,oBAAA,GAAAV,WAAW,CAACS,OAAO,cAAAC,oBAAA,uBAAnBA,oBAAA,CAAqBC,KAAK,EAAE;GAC/B,CAAC;EAEF,IAAMC,GAAG,GAAGtB,KAAK,CAACuB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIxB,cAACuB,GAAG,oBACIf,UAAU;IACdgB,IAAI,EAAErB,QAAQ,GAAGsB,SAAS,GAAGxB,KAAK,CAACuB,IAAI;qBACxBrB,QAAQ,GAAG,MAAM,GAAGsB,SAAS;IAC5CtB,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEkB,GAAG,KAAK,GAAG,GAAGlB,MAAM,GAAGoB,SAAS;IACxClB,IAAI,EAAEgB,GAAG,KAAK,GAAG,GAAGhB,IAAI,GAAGkB,SAAS;IACpCvB,GAAG,EAAES;MACJX,QAAc,CAAC0B,KAAK,CAACzB,KAAK,CAAC0B,QAAQ,CAAC,GAAG,CAAC,GACnC3B,QAAc,CAAC4B,GAAG,CAAC3B,KAAK,CAAC0B,QAAQ,EAAE,UAAAE,KAAK;IAAA,OAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAG7B,4BAAO6B,KAAK,CAAQ,GAAGA,KAAK;GAAC,CAAC,GACvG5B,KAAK,CAAC0B,QAAQ,CAClB;AAEd,CAAC;;;;"}
@@ -4,7 +4,6 @@ import { Tooltip } from '../../../../../../components/Tooltip/Tooltip.js';
4
4
  import { useLocalization } from '../../../../../../components/Provider/Localization.js';
5
5
  import { Checkbox } from '../../../../../../components/Checkbox/Checkbox.js';
6
6
  import { Shortcut } from '../../../../../../components/Shortcut/Shortcut.js';
7
- import { TableServerLoadAllState } from '../../../../types.js';
8
7
  import { getHiddenColumns } from '../../../../useTableManager/util/columns.js';
9
8
  import { RowContext } from '../../Row/RowContext.js';
10
9
 
@@ -41,7 +40,7 @@ function Header(context) {
41
40
  className: "hover:border-blue !-mt-px",
42
41
  checked: isAllRowsSelected,
43
42
  indeterminate: isSomeRowsSelected && !isAllRowsSelected,
44
- loading: tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading,
43
+ loading: tableMeta.server.loading,
45
44
  onChange: handleChange
46
45
  }));
47
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n RowSelectionState,\n} from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { Checkbox } from '../../../../../../components/Checkbox/Checkbox';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { TableServerLoadAllState } from '../../../../types';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const isAllRowsSelected = table.getIsAllRowsSelected();\n const isSomeRowsSelected = table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table.columns.select.deselectAll : texts.table.columns.select.selectAll;\n\n const handleChange = async (checked: boolean) => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n table.toggleAllRowsSelected(checked);\n };\n\n return (\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !-mt-px\"\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected && !isAllRowsSelected}\n loading={tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading}\n onChange={handleChange}\n />\n </Tooltip>\n );\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { row, table } = context;\n const { hideInternalColumns, rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (hideInternalColumns || (table.options.enableGrouping && table.getState().grouping?.length && !row.getIsGrouped())) {\n return null;\n }\n\n const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();\n const canSelect = row.getCanSelect();\n const title = isSelected ? texts.table.columns.select.deselect : texts.table.columns.select.select;\n\n const handleClick = async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (row.getIsGrouped()) {\n row.subRows.forEach(row => row.toggleSelected());\n } else if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0, rowIndex);\n\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);\n table.setRowSelection((currentRowSelection: RowSelectionState) => ({\n ...currentRowSelection,\n ...selectedRows.filter(row => row.getCanSelect()).reduce((state, row) => ({ ...state, [row.id]: true }), {}),\n }));\n } else {\n row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <Tooltip\n hidden={!canSelect}\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n disabled={!canSelect}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n </Tooltip>\n );\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!px-1',\n },\n};\n"],"names":["Header","context","_useLocalization","useLocalization","texts","table","tableMeta","options","meta","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","columns","select","deselectAll","selectAll","handleChange","checked","toggleAllRowsSelected","_temp","server","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","undefined","then","_temp2","e","reject","React","Tooltip","Checkbox","className","indeterminate","loading","loadAllStatus","TableServerLoadAllState","Loading","onChange","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","_useLocalization2","row","_React$useContext","useContext","RowContext","hideInternalColumns","rowIndex","enableGrouping","_table$getState$group","grouping","length","getIsGrouped","isSelected","getIsAllSubRowsSelected","getIsSelected","canSelect","getCanSelect","deselect","handleClick","event","rowSelection","lastSelectedRowIndex","current","index","stopPropagation","_temp6","subRows","forEach","toggleSelected","_temp8","shiftKey","_tableMeta$rowSelecti","_temp4","selectedRows","getRowModel","rows","slice","setRowSelection","currentRowSelection","_extends","filter","reduce","state","_extends2","id","_toggleBetween","_temp3","_temp7","hidden","Shortcut","keys","onClick","disabled","renderer","header","size","align","enableSearch","headerClassName"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n RowSelectionState,\n} from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { Checkbox } from '../../../../../../components/Checkbox/Checkbox';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const isAllRowsSelected = table.getIsAllRowsSelected();\n const isSomeRowsSelected = table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table.columns.select.deselectAll : texts.table.columns.select.selectAll;\n\n const handleChange = async (checked: boolean) => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n table.toggleAllRowsSelected(checked);\n };\n\n return (\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !-mt-px\"\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected && !isAllRowsSelected}\n loading={tableMeta.server.loading}\n onChange={handleChange}\n />\n </Tooltip>\n );\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { row, table } = context;\n const { hideInternalColumns, rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (hideInternalColumns || (table.options.enableGrouping && table.getState().grouping?.length && !row.getIsGrouped())) {\n return null;\n }\n\n const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();\n const canSelect = row.getCanSelect();\n const title = isSelected ? texts.table.columns.select.deselect : texts.table.columns.select.select;\n\n const handleClick = async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (row.getIsGrouped()) {\n row.subRows.forEach(row => row.toggleSelected());\n } else if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0, rowIndex);\n\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);\n table.setRowSelection((currentRowSelection: RowSelectionState) => ({\n ...currentRowSelection,\n ...selectedRows.filter(row => row.getCanSelect()).reduce((state, row) => ({ ...state, [row.id]: true }), {}),\n }));\n } else {\n row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <Tooltip\n hidden={!canSelect}\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n disabled={!canSelect}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n </Tooltip>\n );\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!px-1',\n },\n};\n"],"names":["Header","context","_useLocalization","useLocalization","texts","table","tableMeta","options","meta","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","columns","select","deselectAll","selectAll","handleChange","checked","toggleAllRowsSelected","_temp","server","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","undefined","then","_temp2","e","reject","React","Tooltip","Checkbox","className","indeterminate","loading","onChange","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","_useLocalization2","row","_React$useContext","useContext","RowContext","hideInternalColumns","rowIndex","enableGrouping","_table$getState$group","grouping","length","getIsGrouped","isSelected","getIsAllSubRowsSelected","getIsSelected","canSelect","getCanSelect","deselect","handleClick","event","rowSelection","lastSelectedRowIndex","current","index","stopPropagation","_temp6","subRows","forEach","toggleSelected","_temp8","shiftKey","_tableMeta$rowSelecti","_temp4","selectedRows","getRowModel","rows","slice","setRowSelection","currentRowSelection","_extends","filter","reduce","state","_extends2","id","_toggleBetween","_temp3","_temp7","hidden","Shortcut","keys","onClick","disabled","renderer","header","size","align","enableSearch","headerClassName"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import React__default from 'react';
2
2
  import { useLocalization } from '../../../../../../../components/Provider/Localization.js';
3
3
  import { Switch } from '../../../../../../../components/Switch/Switch.js';
4
- import { TableServerLoadAllState } from '../../../../../types.js';
5
4
  import { getHiddenColumns } from '../../../../../useTableManager/util/columns.js';
6
5
  import { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2.js';
7
6
 
@@ -116,7 +115,7 @@ function Search(props) {
116
115
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
117
116
  findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
118
117
  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,
119
- loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading,
118
+ loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading,
120
119
  name: "table-search",
121
120
  onClickFindPrevious: handlePreviousResult,
122
121
  onClickFindNext: handleNextResult,
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2';\nimport { Switch } from '../../../../../../../components/Switch/Switch';\nimport { TableRef, TableServerLoadAllState } from '../../../../../types';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const query = table.getState().globalFilter;\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n React.useEffect(() => {\n if (tableMeta.search.highlightedColumnIndexes.length) {\n scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);\n }\n }, [tableMeta.search.highlightedColumnIndexes.length]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n // the old data loader doesn't have server side search\n undefined,\n hiddenColumns\n );\n }\n };\n\n const [loading, setLoading] = React.useState(false);\n\n const searchTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleChange = (query: any) => {\n table.setGlobalFilter(String(query ?? ''));\n\n if (tableMeta.search.enableGlobalFilter && tableMeta.search.handleSearch) {\n clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setLoading(true);\n tableMeta.search.handleSearch?.(query, hiddenColumns).then(() => {\n setLoading(false);\n });\n }, 150);\n }\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.setEnableGlobalFilter(enabled, table);\n requestAnimationFrame(() => ref.current?.focus());\n\n if (tableMeta.search.handleSearch) {\n setLoading(true);\n tableMeta.search.handleSearch(enabled ? query : undefined, hiddenColumns).then(() => {\n setLoading(false);\n });\n }\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table.search.excludeUnmatchedResults}\n checked={!!table.options.enableGlobalFilter}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape' && tableMeta.search.currentHighlightColumnIndex !== undefined) {\n const [rowIndex, cellIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowIndex !== undefined && cellIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n `tbody > tr[data-row-index=\"${rowIndex}\"] > td[data-cell-index=\"${cellIndex}\"]`\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n }\n };\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes?.length ?? null}\n loading={\n tableMeta.server._experimentalDataLoader2\n ? loading\n : tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading\n }\n name=\"table-search\"\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={texts.table.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n showTotal={!tableMeta.server._experimentalDataLoader2}\n value={query}\n />\n </>\n );\n}\n"],"names":["Search","props","scrollToIndex","table","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","tableMeta","options","meta","query","getState","globalFilter","scrollTo","rowIndex","align","hiddenColumns","getHiddenColumns","columnVisibility","useEffect","search","highlightedColumnIndexes","length","handleFocus","server","loadAllIfNeeded","_experimentalDataLoader2","Promise","resolve","sorting","columnFilters","undefined","then","_temp","e","reject","_React$useState","useState","loading","setLoading","searchTimeoutRef","handleChange","setGlobalFilter","String","enableGlobalFilter","handleSearch","clearTimeout","current","setTimeout","_tableMeta$search$han","_tableMeta$search","call","handleToggleExcludeUnmatchedResults","enabled","setEnableGlobalFilter","requestAnimationFrame","_ref$current","focus","handleNextResult","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","excludeUnmatchedResults","checked","onChange","handleKeyDown","event","key","_tableMeta$search$hig","cellIndex","rowActive","setRowActiveIndex","cell","_tableRef$current","querySelector","_cell$focus","SearchInput2","findCurrent","findTotal","_tableMeta$search$hig2","_tableMeta$search$hig3","loadAllStatus","TableServerLoadAllState","Loading","name","onClickFindPrevious","onClickFindNext","onFocus","onKeyDown","placeholder","settingsContent","shortcut","shift","showTotal","value"],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2';\nimport { Switch } from '../../../../../../../components/Switch/Switch';\nimport { TableRef } from '../../../../../types';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const query = table.getState().globalFilter;\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n React.useEffect(() => {\n if (tableMeta.search.highlightedColumnIndexes.length) {\n scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);\n }\n }, [tableMeta.search.highlightedColumnIndexes.length]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n // the old data loader doesn't have server side search\n undefined,\n hiddenColumns\n );\n }\n };\n\n const [loading, setLoading] = React.useState(false);\n\n const searchTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleChange = (query: any) => {\n table.setGlobalFilter(String(query ?? ''));\n\n if (tableMeta.search.enableGlobalFilter && tableMeta.search.handleSearch) {\n clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setLoading(true);\n tableMeta.search.handleSearch?.(query, hiddenColumns).then(() => {\n setLoading(false);\n });\n }, 150);\n }\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.setEnableGlobalFilter(enabled, table);\n requestAnimationFrame(() => ref.current?.focus());\n\n if (tableMeta.search.handleSearch) {\n setLoading(true);\n tableMeta.search.handleSearch(enabled ? query : undefined, hiddenColumns).then(() => {\n setLoading(false);\n });\n }\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table.search.excludeUnmatchedResults}\n checked={!!table.options.enableGlobalFilter}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape' && tableMeta.search.currentHighlightColumnIndex !== undefined) {\n const [rowIndex, cellIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowIndex !== undefined && cellIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n `tbody > tr[data-row-index=\"${rowIndex}\"] > td[data-cell-index=\"${cellIndex}\"]`\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n }\n };\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes?.length ?? null}\n loading={tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading}\n name=\"table-search\"\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={texts.table.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n showTotal={!tableMeta.server._experimentalDataLoader2}\n value={query}\n />\n </>\n );\n}\n"],"names":["Search","props","scrollToIndex","table","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","tableMeta","options","meta","query","getState","globalFilter","scrollTo","rowIndex","align","hiddenColumns","getHiddenColumns","columnVisibility","useEffect","search","highlightedColumnIndexes","length","handleFocus","server","loadAllIfNeeded","_experimentalDataLoader2","Promise","resolve","sorting","columnFilters","undefined","then","_temp","e","reject","_React$useState","useState","loading","setLoading","searchTimeoutRef","handleChange","setGlobalFilter","String","enableGlobalFilter","handleSearch","clearTimeout","current","setTimeout","_tableMeta$search$han","_tableMeta$search","call","handleToggleExcludeUnmatchedResults","enabled","setEnableGlobalFilter","requestAnimationFrame","_ref$current","focus","handleNextResult","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","excludeUnmatchedResults","checked","onChange","handleKeyDown","event","key","_tableMeta$search$hig","cellIndex","rowActive","setRowActiveIndex","cell","_tableRef$current","querySelector","_cell$focus","SearchInput2","findCurrent","findTotal","_tableMeta$search$hig2","_tableMeta$search$hig3","name","onClickFindPrevious","onClickFindNext","onFocus","onKeyDown","placeholder","settingsContent","shortcut","shift","showTotal","value"],"mappings":"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"}
@@ -16,12 +16,6 @@ var TableFilterComparator;
16
16
  TableFilterComparator[TableFilterComparator["HasAllOf"] = 12] = "HasAllOf";
17
17
  TableFilterComparator[TableFilterComparator["HasNoneOf"] = 13] = "HasNoneOf";
18
18
  })(TableFilterComparator || (TableFilterComparator = {}));
19
- var TableServerLoadAllState;
20
- (function (TableServerLoadAllState) {
21
- TableServerLoadAllState[TableServerLoadAllState["Incomplete"] = 0] = "Incomplete";
22
- TableServerLoadAllState[TableServerLoadAllState["Loading"] = 1] = "Loading";
23
- TableServerLoadAllState[TableServerLoadAllState["Completed"] = 2] = "Completed";
24
- })(TableServerLoadAllState || (TableServerLoadAllState = {}));
25
19
 
26
- export { TableFilterComparator, TableServerLoadAllState };
20
+ export { TableFilterComparator };
27
21
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../../../src/primitives/Table/types.ts"],"sourcesContent":["import {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { FontSize, FontSizes, StringWithAutocompleteOptions, ValueOf } from '../../types';\nimport { MenuItemProps } from '../../components/Menu/components/Item';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsEmpty,\n IsNotEmpty,\n IsLessThanOrEqualTo,\n IsGreaterThanOrEqualTo,\n HasAnyOf,\n HasAllOf,\n HasNoneOf,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'number'\n | 'datetime'\n | 'boolean'\n // advanced\n | 'amount';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRenderer<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererAggregate<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement> | ((instance: HTMLElement | null | undefined) => void);\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | ReactTableBuiltInSortingFn\n | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (row: TType, internalRowId: string) => JSX.Element | null;\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void>;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void>;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void>;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined,\n hiddenColumns: string[]\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined,\n hiddenColumns: string[]\n) => Promise<void>;\nexport enum TableServerLoadAllState {\n Incomplete,\n Loading,\n Completed,\n}\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => JSX.Element | null;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n};\n\nexport type TableChild = JSX.Element | boolean | null | undefined;\n\nexport type TableCommonProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n rowIdentityAccessor?: keyof TType;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n toolbarPanel?: JSX.Element;\n\n // handlers\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n};\n\nexport interface TableClientProps<TType = unknown> extends TableCommonProps<TType> {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n\n // experimental\n _experimentalDataLoader2?: never;\n}\n\nexport interface TableServerProps<TType = unknown> extends TableCommonProps<TType> {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n\n // experimental\n _experimentalDataLoader2?: boolean;\n}\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnProps<TType = unknown> = ValueOf<{\n [Key in keyof TType]: {\n accessor?: Key;\n id: StringWithAutocompleteOptions<Key>;\n // renderers\n renderer?: TableColumnRenderer<TType, TType[Key]>;\n /** Renderer to use if the cell is an aggregate cell and part of a grouped row */\n aggregate?: TableColumnRendererAggregate<TType, TType[Key]>;\n control?: TableColumnRendererControl<TType>;\n footer?: TableColumnRendererFooter<TType>;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n}>;\n\nexport type TableGroupProps = {\n children: (JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator","TableServerLoadAllState"],"mappings":"AAwBA;IACYA;AAAZ,WAAYA,qBAAqB;EAC7BA,yEAAQ;EACRA,qFAAc;EACdA,2EAAS;EACTA,iFAAY;EACZA,mFAAa;EACbA,6EAAU;EACVA,2EAAS;EACTA,uEAAO;EACPA,6EAAU;EACVA,+FAAmB;EACnBA,sGAAsB;EACtBA,0EAAQ;EACRA,0EAAQ;EACRA,4EAAS;AACb,CAAC,EAfWA,qBAAqB,KAArBA,qBAAqB;IA2HrBC;AAAZ,WAAYA,uBAAuB;EAC/BA,iFAAU;EACVA,2EAAO;EACPA,+EAAS;AACb,CAAC,EAJWA,uBAAuB,KAAvBA,uBAAuB;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../../../src/primitives/Table/types.ts"],"sourcesContent":["import {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { FontSize, FontSizes, StringWithAutocompleteOptions, ValueOf } from '../../types';\nimport { MenuItemProps } from '../../components/Menu/components/Item';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsEmpty,\n IsNotEmpty,\n IsLessThanOrEqualTo,\n IsGreaterThanOrEqualTo,\n HasAnyOf,\n HasAllOf,\n HasNoneOf,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'number'\n | 'datetime'\n | 'boolean'\n // advanced\n | 'amount';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRenderer<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererAggregate<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement> | ((instance: HTMLElement | null | undefined) => void);\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | ReactTableBuiltInSortingFn\n | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (row: TType, internalRowId: string) => JSX.Element | null;\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void>;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void>;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void>;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined,\n hiddenColumns: string[]\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined,\n hiddenColumns: string[]\n) => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => JSX.Element | null;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n};\n\nexport type TableChild = JSX.Element | boolean | null | undefined;\n\nexport type TableCommonProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n rowIdentityAccessor?: keyof TType;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n toolbarPanel?: JSX.Element;\n\n // handlers\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n};\n\nexport interface TableClientProps<TType = unknown> extends TableCommonProps<TType> {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n\n // experimental\n _experimentalDataLoader2?: never;\n}\n\nexport interface TableServerProps<TType = unknown> extends TableCommonProps<TType> {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n\n // experimental\n _experimentalDataLoader2?: boolean;\n}\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnProps<TType = unknown> = ValueOf<{\n [Key in keyof TType]: {\n accessor?: Key;\n id: StringWithAutocompleteOptions<Key>;\n // renderers\n renderer?: TableColumnRenderer<TType, TType[Key]>;\n /** Renderer to use if the cell is an aggregate cell and part of a grouped row */\n aggregate?: TableColumnRendererAggregate<TType, TType[Key]>;\n control?: TableColumnRendererControl<TType>;\n footer?: TableColumnRendererFooter<TType>;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n}>;\n\nexport type TableGroupProps = {\n children: (JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":"AAwBA;IACYA;AAAZ,WAAYA,qBAAqB;EAC7BA,yEAAQ;EACRA,qFAAc;EACdA,2EAAS;EACTA,iFAAY;EACZA,mFAAa;EACbA,6EAAU;EACVA,2EAAS;EACTA,uEAAO;EACPA,6EAAU;EACVA,+FAAmB;EACnBA,sGAAsB;EACtBA,0EAAQ;EACRA,0EAAQ;EACRA,4EAAS;AACb,CAAC,EAfWA,qBAAqB,KAArBA,qBAAqB;;;;"}
@@ -1,8 +1,7 @@
1
1
  import React__default from 'react';
2
- import { TableServerLoadAllState } from '../../types.js';
3
2
  import { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader.js';
4
3
 
5
- function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
4
+ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
6
5
  if (pageSize === void 0) {
7
6
  pageSize = DEFAULT_PAGE_SIZE;
8
7
  }
@@ -13,9 +12,18 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
13
12
  var _React$useState = React__default.useState(false),
14
13
  isReady = _React$useState[0],
15
14
  setReady = _React$useState[1];
16
- var _React$useState2 = React__default.useState(TableServerLoadAllState.Incomplete),
17
- loadAllStatus = _React$useState2[0],
18
- setLoadedStatus = _React$useState2[1];
15
+ var _React$useState2 = React__default.useState(false),
16
+ loading = _React$useState2[0],
17
+ setLoading = _React$useState2[1];
18
+ var hasLoadedAll = React__default.useMemo(function () {
19
+ var _data$some;
20
+ if (data.length !== length || !!((_data$some = data.some) !== null && _data$some !== void 0 && _data$some.call(data, function (x) {
21
+ return x === undefined;
22
+ }))) {
23
+ return false;
24
+ }
25
+ return true;
26
+ }, [data, length]);
19
27
  var _loadPage;
20
28
  var _loadAll;
21
29
  var _loadAllIfNeeded;
@@ -28,7 +36,6 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
28
36
  var _temp = function () {
29
37
  if (typeof loadPage === 'function') {
30
38
  return Promise.resolve(loadPage.apply(void 0, args)).then(function () {
31
- setLoadedStatus(TableServerLoadAllState.Incomplete);
32
39
  setReady(true);
33
40
  });
34
41
  }
@@ -47,9 +54,9 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
47
54
  try {
48
55
  var _temp2 = function () {
49
56
  if (typeof loadAll === 'function') {
50
- setLoadedStatus(TableServerLoadAllState.Loading);
57
+ setLoading(true);
51
58
  return Promise.resolve(loadAll.apply(void 0, args)).then(function () {
52
- setLoadedStatus(TableServerLoadAllState.Completed);
59
+ setLoading(false);
53
60
  setReady(true);
54
61
  });
55
62
  }
@@ -65,7 +72,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
65
72
  }
66
73
  try {
67
74
  var _temp3 = function () {
68
- if (loadAllStatus === TableServerLoadAllState.Incomplete) {
75
+ if (!hasLoadedAll) {
69
76
  var _loadAll2;
70
77
  return Promise.resolve((_loadAll2 = _loadAll) === null || _loadAll2 === void 0 ? void 0 : _loadAll2.apply(void 0, args)).then(function () {});
71
78
  }
@@ -84,7 +91,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
84
91
  loadPage: _loadPage,
85
92
  loadAll: _loadAll,
86
93
  loadAllIfNeeded: _loadAllIfNeeded,
87
- loadAllStatus: loadAllStatus,
94
+ loading: loading,
88
95
  pageSize: pageSize,
89
96
  pageCount: pageCount,
90
97
  _experimentalDataLoader2: _experimentalDataLoader2