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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/components/Table3/features/useEditingState.d.ts +3 -3
  2. package/dist/components/Table3/features/useTableEditing.d.ts +3 -3
  3. package/dist/components/Table3/types.d.ts +2 -0
  4. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +6 -1
  5. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  6. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
  7. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  8. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +1 -0
  9. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +29 -18
  11. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +6 -7
  13. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +1 -1
  15. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  16. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  17. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  18. package/dist/esm/packages/taco/src/index.js +1 -1
  19. package/dist/esm/packages/taco/src/primitives/Button.js +6 -1
  20. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  21. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +1 -2
  22. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  23. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +1 -2
  24. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  25. package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
  26. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  27. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +17 -10
  28. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  29. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  30. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  31. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
  32. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  33. package/dist/esm/packages/taco/src/utils/keyboard.js +2 -5
  34. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  35. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  36. package/dist/primitives/Table/types.d.ts +0 -5
  37. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
  38. package/dist/taco.cjs.development.js +80 -59
  39. package/dist/taco.cjs.development.js.map +1 -1
  40. package/dist/taco.cjs.production.min.js +1 -1
  41. package/dist/taco.cjs.production.min.js.map +1 -1
  42. package/dist/utils/keyboard.d.ts +1 -1
  43. package/package.json +1 -1
@@ -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":";;;;;;;;;IAYaA,SAAS,GAAG;EACrBC,GAAG,EAAEC,GAAG;EACRC,IAAI,EAAEC;;SAaMC,SAASA,CAAQC,KAAyB,EAAEC,GAAyB;EACjF,IAAMC,OAAO,GAAGC,eAAe,CAC3BH,KAAK,CAACI,aAAa,EACnBJ,KAAK,CAACK,aAAa,EACnBL,KAAK,CAACM,eAAe,EACrBN,KAAK,CAACO,eAAe,EACrBP,KAAK,CAACQ,mBAAmB,EACzBR,KAAK,CAACS,SAAS,CAClB;EACD,IAAMC,eAAe,GAAGR,OAAO,CAACS,SAAS,IAAI,CAAC,CAACX,KAAK,CAACO,eAAe;;EAGpE,IAAMK,IAAI,GAAYC,cAAK,CAACC,OAAO,CAAC;IAChC,IAAIZ,OAAO,CAACa,aAAa,CAACC,MAAM,EAAE;MAAA,IAAAC,WAAA;MAC9B,OAAO,EAAAA,WAAA,GAACjB,KAAK,CAACY,IAAI,cAAAK,WAAA,cAAAA,WAAA,GAAI,EAAE,EAAEC,MAAM,CAAChB,OAAO,CAACa,aAAwB,CAAC;;IAGtE,OAAOf,KAAK,CAACY,IAAI;GACpB,EAAE,CAACO,IAAI,CAACC,SAAS,CAACpB,KAAK,CAACY,IAAI,CAAC,EAAEV,OAAO,CAACa,aAAa,CAACC,MAAM,CAAC,CAAC;EAE9D,IAAMK,aAAa,GAAAC,QAAA,KACZtB,KAAK;IACRY,IAAI,EAAJA,IAAI;IACJW,gBAAgB,EAAErB,OAAO,CAACsB,SAAS,GAAG,IAAI,GAAGxB,KAAK,CAACuB,gBAAgB;;IAEnEE,UAAU,EAAEvB,OAAO,CAACsB,SAAS,GACtB,CACG,UAACE,CAAC,EAAEC,KAAK,EAAEC,KAAwB;MAC/B,IAAMC,SAAS,GAAGD,KAAK,CAACE,OAAO,CAACC,IAA6B;MAC7D,oBACIlB,6BAACmB,kBAAkB;QACfC,UAAU,EAAE/B,OAAO,CAAC+B,UAAU,CAACN,KAAK,CAAC;QACrCO,SAAS,EAAEhC,OAAO,CAACiC,YAAY,CAACR,KAAK,CAAC;QACtCS,SAAS,EAAE,SAAAA;UACPlC,OAAO,CAACmC,cAAc,CAACV,KAAK,EAAEC,KAAK,CAAC;UAEpC,IAAI1B,OAAO,CAACa,aAAa,CAACC,MAAM,EAAE;YAC9BsB,qBAAqB,CAAC;cAAA,IAAAC,qBAAA;cAAA,QAAAA,qBAAA,GAAMrC,OAAO,CAACsC,kBAAkB,CAACC,OAAO,cAAAF,qBAAA,uBAAlCA,qBAAA,CAAoCG,KAAK,EAAE;cAAC;;SAE/E;QACDrC,aAAa;UAAA;mCACHH,OAAO,CAACyC,WAAW,CAACf,KAAK,EAAED,KAAK,CAAC,EAAAiB,IAAA;WAC1C,QAAAC,CAAA;YAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;;;QACDG,SAAS,EAAE,CAACtC,eAAe,IAAImB,SAAS,CAACoB,SAAS,CAACC,cAAc,KAAKrB,SAAS,CAACb,MAAM,GAAG;QAC3F;KAET,CACgC,GACrChB,KAAK,CAACyB;IACf;EACD,IAAMM,IAAI,GAAG;IAAE7B,OAAO,EAAPA;GAAS;EAExB,IAAM4B,OAAO,GAA0B;IACnCqB,2BAA2B,EACvBnD,KAAK,CAACI,aAAa,IAAIJ,KAAK,CAACO,eAAe,GAAIL,OAAO,CAACkD,qBAAqB,EAAE,GAAG,GAAG,GAAG,CAAC,GAAI;GACpG;EAED,IAAMxB,KAAK,GAAGyB,QAAQ,CAAoBhC,aAAa,EAAEpB,GAAG,EAAEP,SAAS,EAAEqC,IAAI,EAAED,OAAO,CAAC;;EAGvFwB,uBAAuB,CAAQ1B,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC3B,GAAG,EAAE2B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,CAAC;EAEvF5C,cAAK,CAAC6C,SAAS,CAAC;IACZ,IAAI9B,KAAK,CAAC3B,GAAG,CAACwC,OAAO,EAAE;MAClBb,KAAK,CAAC3B,GAAG,CAACwC,OAAqB,CAACc,QAAQ,CAACI,aAAa,GAAG,UAACC,OAA4B;QAAA,OACnFhC,KAAK,CAACG,IAAI,CAAC7B,OAAO,CAACyD,aAAa,CAACC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAK,UAAA1D,OAAO;UAAA,OAAI,CAACA,OAAO;WAAG0B,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,CAAC;;MAEpH,IAAIzD,KAAK,CAACO,eAAe,EAAE;QACtBqB,KAAK,CAAC3B,GAAG,CAACwC,OAAqB,CAACc,QAAQ,CAACM,SAAS,GAAG,UAAClE,GAAY;UAAA,OAC/DiC,KAAK,CAACG,IAAI,CAAC7B,OAAO,CAAC2D,SAAS,CAACjC,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,EAAE9D,GAAqB,CAAC;;;;GAGhH,EAAE,CAACiC,KAAK,CAAC3B,GAAG,CAACwC,OAAO,CAAC,CAAC;EAEvB,OAAOb,KAAK;AAChB;;;;"}
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