@economic/taco 2.45.0-alpha.7 → 2.45.0-alpha.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/dist/components/Alert/Alert.d.ts +1 -1
  2. package/dist/components/Icon/components/Experiment.d.ts +3 -0
  3. package/dist/components/Icon/components/index.d.ts +1 -1
  4. package/dist/components/Input/Input.d.ts +1 -1
  5. package/dist/components/Menu/components/Item.d.ts +1 -1
  6. package/dist/components/Menu/components/Link.d.ts +1 -1
  7. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  8. package/dist/components/Select2/components/Option.d.ts +2 -2
  9. package/dist/components/Select2/components/Search.d.ts +1 -1
  10. package/dist/components/Table3/features/useEditingState.d.ts +1 -1
  11. package/dist/components/Table3/features/useTableEditing.d.ts +2 -2
  12. package/dist/components/Tag/Tag.d.ts +1 -1
  13. package/dist/esm/index.css +10 -2
  14. package/dist/esm/packages/taco/src/components/Alert/Alert.js +2 -0
  15. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
  16. package/dist/esm/packages/taco/src/components/Banner/util.js +5 -0
  17. package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +3 -1
  19. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  20. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -0
  21. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  22. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js +20 -0
  23. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js.map +1 -0
  24. package/dist/esm/packages/taco/src/components/Icon/components/index.js +2 -0
  25. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +1 -1
  27. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +10 -4
  29. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +3 -1
  31. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +16 -8
  33. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +47 -30
  35. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +5 -8
  37. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +3 -4
  39. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  40. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  41. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  42. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +1 -1
  43. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
  44. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +1 -1
  45. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
  46. package/dist/esm/packages/taco/src/primitives/Button.js +1 -6
  47. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  48. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +9 -2
  49. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
  50. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +1 -0
  51. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  52. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
  53. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
  54. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +6 -2
  55. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  56. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +7 -1
  57. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
  58. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +8 -3
  59. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
  60. package/dist/esm/packages/taco/src/types.js.map +1 -1
  61. package/dist/esm/packages/taco/src/utils/dom.js +12 -1
  62. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  63. package/dist/esm/packages/taco/src/utils/keyboard.js +5 -2
  64. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  65. package/dist/esm/packages/taco/src/utils/tailwind.js +2 -0
  66. package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
  67. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  68. package/dist/index.css +10 -2
  69. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
  70. package/dist/taco.cjs.development.js +170 -79
  71. package/dist/taco.cjs.development.js.map +1 -1
  72. package/dist/taco.cjs.production.min.js +1 -1
  73. package/dist/taco.cjs.production.min.js.map +1 -1
  74. package/dist/types.d.ts +1 -1
  75. package/dist/utils/keyboard.d.ts +1 -1
  76. package/package.json +2 -2
@@ -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 if (editing.temporaryRows.length) {\n tableMeta.rowActive.setRowActiveIndex(undefined);\n setTimeout(() => editing.createRowButtonRef.current?.focus(), 50);\n }\n\n editing.discardChanges(rowId, table);\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","enableRowActions","isEditing","rowActions","_","rowId","table","tableMeta","options","meta","EditingActionsMenu","hasChanges","hasErrors","hasRowErrors","onDiscard","rowActive","setRowActiveIndex","undefined","setTimeout","_editing$createRowBut","createRowButtonRef","current","focus","discardChanges","saveChanges","then","e","Promise","reject","isLastRow","rowActiveIndex","virtualiserPaddingEndOffset","hasTemporaryRowErrors","useTable","useTableEditingListener","instance","renderer","scrollToIndex","useEffect","toggleEditing","enabled","createRow"],"mappings":"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"}
1
+ {"version":3,"file":"useTable3.js","sources":["../../../../../../../src/components/Table3/useTable3.tsx"],"sourcesContent":["import React from 'react';\nimport { RowData, Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionsMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\nimport { useTableRenderOptions } from '../../primitives/Table/Core/types';\n\nexport const RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(\n props.enableEditing,\n props.onEditingSave,\n props.onEditingChange,\n props.onEditingCreate,\n props.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","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":";;;;;;;;MAYaA,SAAS,GAAG;EACrBC,GAAG,EAAEC,GAAG;EACRC,IAAI,EAAEC;;SAaMC,SAASA,CAAQC,KAAyB,EAAEC,GAAyB;EACjF,MAAMC,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,MAAMC,eAAe,GAAGR,OAAO,CAACS,SAAS,IAAI,CAAC,CAACX,KAAK,CAACO,eAAe;;EAGpE,MAAMK,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,MAAMK,aAAa,GAAuB;IACtC,GAAGrB,KAAK;IACRY,IAAI;IACJU,gBAAgB,EAAEpB,OAAO,CAACqB,SAAS,GAAG,IAAI,GAAGvB,KAAK,CAACsB,gBAAgB;;IAEnEE,UAAU,EAAEtB,OAAO,CAACqB,SAAS,GACtB,CACG,CAACE,CAAC,EAAEC,KAAK,EAAEC,KAAwB;MAC/B,MAAMC,SAAS,GAAGD,KAAK,CAACE,OAAO,CAACC,IAA6B;MAC7D,oBACIjB,6BAACkB,kBAAkB;QACfC,UAAU,EAAE9B,OAAO,CAAC8B,UAAU,CAACN,KAAK,CAAC;QACrCO,SAAS,EAAE/B,OAAO,CAACgC,YAAY,CAACR,KAAK,CAAC;QACtCS,SAAS,EAAEA;UACPjC,OAAO,CAACkC,cAAc,CAACV,KAAK,EAAEC,KAAK,CAAC;UAEpC,IAAIzB,OAAO,CAACa,aAAa,CAACC,MAAM,EAAE;YAC9BqB,qBAAqB,CAAC;cAAA,IAAAC,qBAAA;cAAA,QAAAA,qBAAA,GAAMpC,OAAO,CAACqC,kBAAkB,CAACC,OAAO,cAAAF,qBAAA,uBAAlCA,qBAAA,CAAoCG,KAAK,EAAE;cAAC;;SAE/E;QACDpC,aAAa;UAAA;mCACHH,OAAO,CAACwC,WAAW,CAACf,KAAK,EAAED,KAAK,CAAC,EAAAiB,IAAA;WAC1C,QAAAC,CAAA;YAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;;;QACDG,SAAS,EAAE,CAACrC,eAAe,IAAIkB,SAAS,CAACoB,SAAS,CAACC,cAAc,KAAKrB,SAAS,CAACZ,MAAM,GAAG;QAC3F;KAET,CACgC,GACrChB,KAAK,CAACwB;GACf;EACD,MAAMM,IAAI,GAAG;IAAE5B;GAAS;EAExB,MAAM2B,OAAO,GAA0B;IACnCqB,2BAA2B,EACvBlD,KAAK,CAACI,aAAa,IAAIJ,KAAK,CAACO,eAAe,GAAIL,OAAO,CAACiD,qBAAqB,EAAE,GAAG,GAAG,GAAG,CAAC,GAAI;GACpG;EAED,MAAMxB,KAAK,GAAGyB,QAAQ,CAAoB/B,aAAa,EAAEpB,GAAG,EAAEP,SAAS,EAAEoC,IAAI,EAAED,OAAO,CAAC;;EAGvFwB,uBAAuB,CAAQ1B,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC1B,GAAG,EAAE0B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,CAAC;EAEvF3C,cAAK,CAAC4C,SAAS,CAAC;IACZ,IAAI9B,KAAK,CAAC1B,GAAG,CAACuC,OAAO,EAAE;MAClBb,KAAK,CAAC1B,GAAG,CAACuC,OAAqB,CAACc,QAAQ,CAACI,aAAa,GAAIC,OAA4B,IACnFhC,KAAK,CAACG,IAAI,CAAC5B,OAAO,CAACwD,aAAa,CAACC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAKzD,OAAO,IAAI,CAACA,OAAO,EAAGyB,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,CAAC;MAEpH,IAAIxD,KAAK,CAACO,eAAe,EAAE;QACtBoB,KAAK,CAAC1B,GAAG,CAACuC,OAAqB,CAACc,QAAQ,CAACM,SAAS,GAAIjE,GAAY,IAC/DgC,KAAK,CAACG,IAAI,CAAC5B,OAAO,CAAC0D,SAAS,CAACjC,KAAK,CAAC2B,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,CAACC,aAAa,EAAE7D,GAAqB,CAAC;;;GAGhH,EAAE,CAACgC,KAAK,CAAC1B,GAAG,CAACuC,OAAO,CAAC,CAAC;EAEvB,OAAOb,KAAK;AAChB;;;;"}
@@ -1,11 +1,11 @@
1
1
  import React__default from 'react';
2
2
  import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
3
3
 
4
- const useGlobalKeyDown = (shortcut, handler) => {
4
+ const useGlobalKeyDown = (shortcut, handler, element) => {
5
5
  React__default.useEffect(() => {
6
6
  let handleKeyDown;
7
7
  if (shortcut) {
8
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
8
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
9
9
  document.addEventListener('keydown', handleKeyDown);
10
10
  }
11
11
  return () => {
@@ -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) => {\n React.useEffect(() => {\n let handleKeyDown: (event: KeyboardEvent | React.KeyboardEvent) => void;\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":";;;MAGaA,gBAAgB,GAAGA,CAC5BC,QAAoD,EACpDC,OAAuC;EAEvCC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAmE;IAEvE,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;;;;"}
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: (event: KeyboardEvent | React.KeyboardEvent) => void;\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":";;;MAGaA,gBAAgB,GAAGA,CAC5BC,QAAoD,EACpDC,OAAuC,EACvCC,OAA4B;EAE5BC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAmE;IAEvE,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;;;;"}
@@ -5,7 +5,7 @@ function useLazyEffect(effect, deps) {
5
5
  const readyRef = React__default.useRef(false);
6
6
  React__default.useEffect(() => {
7
7
  if (readyRef.current) {
8
- effect();
8
+ return effect();
9
9
  } else {
10
10
  readyRef.current = true;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useLazyEffect.js","sources":["../../../../../../src/hooks/useLazyEffect.ts"],"sourcesContent":["import React from 'react';\n\n// augments useEffect to not run on the initial mount\nexport function useLazyEffect(effect: React.EffectCallback, deps?: React.DependencyList | undefined) {\n const readyRef = React.useRef(false);\n\n React.useEffect(() => {\n if (readyRef.current) {\n effect();\n } else {\n readyRef.current = true;\n }\n }, deps);\n}\n"],"names":["useLazyEffect","effect","deps","readyRef","React","useRef","useEffect","current"],"mappings":";;AAEA;SACgBA,aAAaA,CAACC,MAA4B,EAAEC,IAAuC;EAC/F,MAAMC,QAAQ,GAAGC,cAAK,CAACC,MAAM,CAAC,KAAK,CAAC;EAEpCD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAIH,QAAQ,CAACI,OAAO,EAAE;MAClBN,MAAM,EAAE;KACX,MAAM;MACHE,QAAQ,CAACI,OAAO,GAAG,IAAI;;GAE9B,EAAEL,IAAI,CAAC;AACZ;;;;"}
1
+ {"version":3,"file":"useLazyEffect.js","sources":["../../../../../../src/hooks/useLazyEffect.ts"],"sourcesContent":["import React from 'react';\n\n// augments useEffect to not run on the initial mount\nexport function useLazyEffect(effect: React.EffectCallback, deps?: React.DependencyList | undefined) {\n const readyRef = React.useRef(false);\n\n React.useEffect(() => {\n if (readyRef.current) {\n return effect();\n } else {\n readyRef.current = true;\n }\n }, deps);\n}\n"],"names":["useLazyEffect","effect","deps","readyRef","React","useRef","useEffect","current"],"mappings":";;AAEA;SACgBA,aAAaA,CAACC,MAA4B,EAAEC,IAAuC;EAC/F,MAAMC,QAAQ,GAAGC,cAAK,CAACC,MAAM,CAAC,KAAK,CAAC;EAEpCD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAIH,QAAQ,CAACI,OAAO,EAAE;MAClB,OAAON,MAAM,EAAE;KAClB,MAAM;MACHE,QAAQ,CAACI,OAAO,GAAG,IAAI;;GAE9B,EAAEL,IAAI,CAAC;AACZ;;;;"}
@@ -17,7 +17,7 @@ const BubbleSelect = props => {
17
17
  if (prevValue !== value && setValue) {
18
18
  if (Array.isArray(value)) {
19
19
  value.forEach(v => {
20
- const option = select.querySelector(`option[value='${v}']`);
20
+ const option = select.querySelector(`option[value='${CSS.escape(v)}']`);
21
21
  if (option) {
22
22
  option.selected = true;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSelect.js","sources":["../../../../../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\nimport { usePreviousValue } from '../hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current!;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${v}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["BubbleSelect","props","value","selectProps","ref","React","useRef","prevValue","usePreviousValue","useEffect","select","current","descriptor","Object","getOwnPropertyDescriptor","window","HTMLSelectElement","prototype","setValue","set","Array","isArray","forEach","v","option","querySelector","selected","call","event","Event","bubbles","dispatchEvent","defaultValue","style","display"],"mappings":";;;AAGA;MACaA,YAAY,GAAIC,KAAoD;EAC7E,MAAM;IAAEC,KAAK;IAAE,GAAGC;GAAa,GAAGF,KAAK;EACvC,MAAMG,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAoB,IAAI,CAAC;EACjD,MAAMC,SAAS,GAAGC,gBAAgB,CAACN,KAAK,CAAC;;EAGzCG,cAAK,CAACI,SAAS,CAAC;IACZ,MAAMC,MAAM,GAAGN,GAAG,CAACO,OAAQ;IAC3B,MAAMC,UAAU,GAAGC,MAAM,CAACC,wBAAwB,CAACC,MAAM,CAACC,iBAAiB,CAACC,SAAS,EAAE,OAAO,CAAuB;IACrH,MAAMC,QAAQ,GAAGN,UAAU,CAACO,GAAG;IAE/B,IAAIZ,SAAS,KAAKL,KAAK,IAAIgB,QAAQ,EAAE;MACjC,IAAIE,KAAK,CAACC,OAAO,CAACnB,KAAK,CAAC,EAAE;QACtBA,KAAK,CAACoB,OAAO,CAACC,CAAC;UACX,MAAMC,MAAM,GAA6Bd,MAAM,CAACe,aAAa,CAAC,iBAAiBF,CAAC,IAAI,CAAC;UAErF,IAAIC,MAAM,EAAE;YACRA,MAAM,CAACE,QAAQ,GAAG,IAAI;;SAE7B,CAAC;OACL,MAAM;QACHR,QAAQ,CAACS,IAAI,CAACjB,MAAM,EAAER,KAAK,CAAC;;MAGhC,MAAM0B,KAAK,GAAG,IAAIC,KAAK,CAAC,QAAQ,EAAE;QAAEC,OAAO,EAAE;OAAM,CAAC;MACpDpB,MAAM,CAACqB,aAAa,CAACH,KAAK,CAAC;;GAElC,EAAE,CAACrB,SAAS,EAAEL,KAAK,CAAC,CAAC;;;;;;;;;;EAWtB,oBAAOG,yDAAYF,WAAW;IAAE6B,YAAY,EAAE9B,KAAK;IAAEE,GAAG,EAAEA,GAAG;IAAE6B,KAAK,EAAE;MAAEC,OAAO,EAAE;;KAAY;AACjG;;;;"}
1
+ {"version":3,"file":"BubbleSelect.js","sources":["../../../../../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\nimport { usePreviousValue } from '../hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current!;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${CSS.escape(v)}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["BubbleSelect","props","value","selectProps","ref","React","useRef","prevValue","usePreviousValue","useEffect","select","current","descriptor","Object","getOwnPropertyDescriptor","window","HTMLSelectElement","prototype","setValue","set","Array","isArray","forEach","v","option","querySelector","CSS","escape","selected","call","event","Event","bubbles","dispatchEvent","defaultValue","style","display"],"mappings":";;;AAGA;MACaA,YAAY,GAAIC,KAAoD;EAC7E,MAAM;IAAEC,KAAK;IAAE,GAAGC;GAAa,GAAGF,KAAK;EACvC,MAAMG,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAoB,IAAI,CAAC;EACjD,MAAMC,SAAS,GAAGC,gBAAgB,CAACN,KAAK,CAAC;;EAGzCG,cAAK,CAACI,SAAS,CAAC;IACZ,MAAMC,MAAM,GAAGN,GAAG,CAACO,OAAQ;IAC3B,MAAMC,UAAU,GAAGC,MAAM,CAACC,wBAAwB,CAACC,MAAM,CAACC,iBAAiB,CAACC,SAAS,EAAE,OAAO,CAAuB;IACrH,MAAMC,QAAQ,GAAGN,UAAU,CAACO,GAAG;IAE/B,IAAIZ,SAAS,KAAKL,KAAK,IAAIgB,QAAQ,EAAE;MACjC,IAAIE,KAAK,CAACC,OAAO,CAACnB,KAAK,CAAC,EAAE;QACtBA,KAAK,CAACoB,OAAO,CAACC,CAAC;UACX,MAAMC,MAAM,GAA6Bd,MAAM,CAACe,aAAa,CAAC,iBAAiBC,GAAG,CAACC,MAAM,CAACJ,CAAC,CAAC,IAAI,CAAC;UAEjG,IAAIC,MAAM,EAAE;YACRA,MAAM,CAACI,QAAQ,GAAG,IAAI;;SAE7B,CAAC;OACL,MAAM;QACHV,QAAQ,CAACW,IAAI,CAACnB,MAAM,EAAER,KAAK,CAAC;;MAGhC,MAAM4B,KAAK,GAAG,IAAIC,KAAK,CAAC,QAAQ,EAAE;QAAEC,OAAO,EAAE;OAAM,CAAC;MACpDtB,MAAM,CAACuB,aAAa,CAACH,KAAK,CAAC;;GAElC,EAAE,CAACvB,SAAS,EAAEL,KAAK,CAAC,CAAC;;;;;;;;;;EAWtB,oBAAOG,yDAAYF,WAAW;IAAE+B,YAAY,EAAEhC,KAAK;IAAEE,GAAG,EAAEA,GAAG;IAAE+B,KAAK,EAAE;MAAEC,OAAO,EAAE;;KAAY;AACjG;;;;"}
@@ -14,13 +14,8 @@ const Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
14
14
  useGlobalKeyDown(shortcut, event => {
15
15
  var _internalRef$current;
16
16
  event === null || event === void 0 ? void 0 : event.preventDefault();
17
- const dialog = document.querySelector('[role="dialog"]');
18
- // Don't trigger the click on the button if it is outside of the dialog
19
- if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
20
- return;
21
- }
22
17
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
23
- });
18
+ }, internalRef.current);
24
19
  const Tag = props.href ? 'a' : 'button';
25
20
  return /*#__PURE__*/createElement(Tag, Object.assign({}, otherProps, {
26
21
  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(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","type","otherProps","internalRef","useMergedRef","useGlobalKeyDown","event","preventDefault","dialog","document","querySelector","contains","current","_internalRef$current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;MAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAMA,CAACE,KAAkB,EAAEC,GAAqD;EACrH,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI,GAAG,QAAQ;IAAE,GAAGC;GAAY,GAAGN,KAAK;EAC5E,MAAMO,WAAW,GAAGC,YAAY,CAAwCP,GAAG,CAAC;EAE5EQ,gBAAgB,CAACN,QAAQ,EAAEO,KAAK;;IAC5BA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,cAAc,EAAE;IACvB,MAAMC,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,MAAMC,GAAG,GAAGnB,KAAK,CAACoB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIrB,cAACoB,GAAG,oBACIb,UAAU;IACdc,IAAI,EAAElB,QAAQ,GAAGmB,SAAS,GAAGrB,KAAK,CAACoB,IAAI;qBACxBlB,QAAQ,GAAG,MAAM,GAAGmB,SAAS;IAC5CnB,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEe,GAAG,KAAK,GAAG,GAAGf,MAAM,GAAGiB,SAAS;IACxChB,IAAI,EAAEc,GAAG,KAAK,GAAG,GAAGd,IAAI,GAAGgB,SAAS;IACpCpB,GAAG,EAAEM;MACJR,QAAc,CAACuB,KAAK,CAACtB,KAAK,CAACuB,QAAQ,CAAC,GAAG,CAAC,GACnCxB,QAAc,CAACyB,GAAG,CAACxB,KAAK,CAACuB,QAAQ,EAAEE,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAG1B,4BAAO0B,KAAK,CAAQ,GAAGA,KAAM,CAAC,GACvGzB,KAAK,CAACuB,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(\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","type","otherProps","internalRef","useMergedRef","useGlobalKeyDown","event","preventDefault","_internalRef$current","current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;MAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAMA,CAACE,KAAkB,EAAEC,GAAqD;EACrH,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI,GAAG,QAAQ;IAAE,GAAGC;GAAY,GAAGN,KAAK;EAC5E,MAAMO,WAAW,GAAGC,YAAY,CAAwCP,GAAG,CAAC;EAE5EQ,gBAAgB,CACZN,QAAQ,EACRO,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,MAAME,GAAG,GAAGf,KAAK,CAACgB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIjB,cAACgB,GAAG,oBACIT,UAAU;IACdU,IAAI,EAAEd,QAAQ,GAAGe,SAAS,GAAGjB,KAAK,CAACgB,IAAI;qBACxBd,QAAQ,GAAG,MAAM,GAAGe,SAAS;IAC5Cf,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEW,GAAG,KAAK,GAAG,GAAGX,MAAM,GAAGa,SAAS;IACxCZ,IAAI,EAAEU,GAAG,KAAK,GAAG,GAAGV,IAAI,GAAGY,SAAS;IACpChB,GAAG,EAAEM;MACJR,QAAc,CAACmB,KAAK,CAAClB,KAAK,CAACmB,QAAQ,CAAC,GAAG,CAAC,GACnCpB,QAAc,CAACqB,GAAG,CAACpB,KAAK,CAACmB,QAAQ,EAAEE,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAGtB,4BAAOsB,KAAK,CAAQ,GAAGA,KAAM,CAAC,GACvGrB,KAAK,CAACmB,QAAQ,CAClB;AAEd,CAAC;;;;"}
@@ -1,22 +1,29 @@
1
1
  import React__default from 'react';
2
2
 
3
3
  function EmptyStateBody(props) {
4
+ var _ref$current, _ref$current$parentNo;
4
5
  const {
5
6
  emptyState: Placeholder,
6
7
  isReady,
7
8
  reason,
8
9
  ...attributes
9
10
  } = props;
11
+ const ref = React__default.useRef(null);
10
12
  if (!isReady) {
11
13
  return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
12
14
  className: "!auto-rows-fr"
13
15
  }));
14
16
  }
15
17
  return /*#__PURE__*/React__default.createElement("tbody", Object.assign({}, attributes, {
16
- className: "!auto-rows-fr"
18
+ ref: ref,
19
+ className: "!auto-rows-fr",
20
+ "data-taco": "empty-state"
17
21
  }), /*#__PURE__*/React__default.createElement("tr", {
18
- className: "!auto-rows-fr"
22
+ className: "!auto-rows-fr "
19
23
  }, /*#__PURE__*/React__default.createElement("td", {
24
+ style: {
25
+ maxWidth: ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$parentNo = _ref$current.parentNode) === null || _ref$current$parentNo === void 0 ? void 0 : _ref$current$parentNo.clientWidth
26
+ },
20
27
  className: "col-span-full !border-0 !p-0 hover:!bg-white"
21
28
  }, Placeholder ? /*#__PURE__*/React__default.createElement(Placeholder, {
22
29
  reason: reason
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\nimport { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} className=\"!auto-rows-fr\">\n <tr className=\"!auto-rows-fr\">\n <td className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["EmptyStateBody","props","emptyState","Placeholder","isReady","reason","attributes","React","className","undefined"],"mappings":";;SASgBA,cAAcA,CAACC,KAAsB;EACjD,MAAM;IAAEC,UAAU,EAAEC,WAAW;IAAEC,OAAO;IAAEC,MAAM;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAEzE,IAAI,CAACG,OAAO,EAAE;IACV,oBAAOG,wDAAWD,UAAU;MAAEE,SAAS,EAAC;OAAkB;;EAG9D,oBACID,wDAAWD,UAAU;IAAEE,SAAS,EAAC;mBAC7BD;IAAIC,SAAS,EAAC;kBACVD;IAAIC,SAAS,EAAC;KACTL,WAAW,gBAAGI,6BAACJ,WAAW;IAACE,MAAM,EAAEA;IAAU,GAAGI,SAAS,CACzD,CACJ,CACD;AAEhB;;;;"}
1
+ {"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\nimport { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr \">\n <td\n style={{ maxWidth: (ref?.current?.parentNode as Element)?.clientWidth }}\n className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["EmptyStateBody","props","emptyState","Placeholder","isReady","reason","attributes","ref","React","useRef","className","style","maxWidth","_ref$current","current","_ref$current$parentNo","parentNode","clientWidth","undefined"],"mappings":";;SASgBA,cAAcA,CAACC,KAAsB;;EACjD,MAAM;IAAEC,UAAU,EAAEC,WAAW;IAAEC,OAAO;IAAEC,MAAM;IAAE,GAAGC;GAAY,GAAGL,KAAK;EACzE,MAAMM,GAAG,GAAGC,cAAK,CAACC,MAAM,CAA0B,IAAI,CAAC;EAEvD,IAAI,CAACL,OAAO,EAAE;IACV,oBAAOI,wDAAWF,UAAU;MAAEI,SAAS,EAAC;OAAkB;;EAG9D,oBACIF,wDAAWF,UAAU;IAAEC,GAAG,EAAEA,GAAG;IAAEG,SAAS,EAAC,eAAe;iBAAW;mBACjEF;IAAIE,SAAS,EAAC;kBACVF;IACIG,KAAK,EAAE;MAAEC,QAAQ,EAAGL,GAAG,aAAHA,GAAG,wBAAAM,YAAA,GAAHN,GAAG,CAAEO,OAAO,cAAAD,YAAA,wBAAAE,qBAAA,GAAZF,YAAA,CAAcG,UAAsB,cAAAD,qBAAA,uBAApCA,qBAAA,CAAsCE;KAAa;IACvEP,SAAS,EAAC;KACTP,WAAW,gBAAGK,6BAACL,WAAW;IAACE,MAAM,EAAEA;IAAU,GAAGa,SAAS,CACzD,CACJ,CACD;AAEhB;;;;"}
@@ -15,6 +15,7 @@ function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE)
15
15
  const _temp = function () {
16
16
  if (typeof loadPage === 'function') {
17
17
  return Promise.resolve(loadPage(...args)).then(function () {
18
+ setLoadedStatus(TableServerLoadAllState.Incomplete);
18
19
  setReady(true);
19
20
  });
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadAllState, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading(\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pageSize = DEFAULT_PAGE_SIZE\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loadAllStatus, setLoadedStatus] = React.useState<TableServerLoadAllState>(TableServerLoadAllState.Incomplete);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoadedStatus(TableServerLoadAllState.Loading);\n await loadAll(...args);\n setLoadedStatus(TableServerLoadAllState.Completed);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (loadAllStatus === TableServerLoadAllState.Incomplete) {\n await _loadAll?.(...args);\n }\n };\n }\n\n return {\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loadAllStatus,\n pageSize,\n };\n}\n"],"names":["useTableServerLoading","loadPage","loadAll","pageSize","DEFAULT_PAGE_SIZE","isEnabled","isReady","setReady","React","useState","loadAllStatus","setLoadedStatus","TableServerLoadAllState","Incomplete","_loadPage","_loadAll","_loadAllIfNeeded","args","Promise","resolve","then","_temp","e","reject","Loading","Completed","_temp2","_loadAll2","_temp3","loadAllIfNeeded"],"mappings":";;;;SAIgBA,qBAAqBA,CACjCC,QAAqC,EACrCC,OAAmC,EACnCC,QAAQ,GAAGC,iBAAiB;EAE5B,MAAMC,SAAS,GAAG,CAAC,CAACJ,QAAQ,IAAI,CAAC,CAACC,OAAO;EACzC,MAAM,CAACI,OAAO,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACC,aAAa,EAAEC,eAAe,CAAC,GAAGH,cAAK,CAACC,QAAQ,CAA0BG,uBAAuB,CAACC,UAAU,CAAC;EAEpH,IAAIC,SAAiD;EACrD,IAAIC,QAA+C;EACnD,IAAIC,gBAAuD;EAE3D,IAAI,OAAOf,QAAQ,KAAK,UAAU,EAAE;IAChCa,SAAS,aAAU,GAAGG,IAAI;MAAA;;cAClB,OAAOhB,QAAQ,KAAK,UAAU;YAAA,OAAAiB,OAAA,CAAAC,OAAA,CACxBlB,QAAQ,CAAC,GAAGgB,IAAI,CAAC,EAAAG,IAAA;cACvBb,QAAQ,CAAC,IAAI,CAAC;;;;QAAC,OAAAW,OAAA,CAAAC,OAAA,CAAAE,KAAA,IAAAA,KAAA,CAAAD,IAAA,GAAAC,KAAA,CAAAD,IAAA;OAEtB,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;;EAGL,IAAI,OAAOpB,OAAO,KAAK,UAAU,EAAE;IAC/Ba,QAAQ,aAAU,GAAGE,IAAI;MAAA;;cACjB,OAAOf,OAAO,KAAK,UAAU;YAC7BS,eAAe,CAACC,uBAAuB,CAACY,OAAO,CAAC;YAAC,OAAAN,OAAA,CAAAC,OAAA,CAC3CjB,OAAO,CAAC,GAAGe,IAAI,CAAC,EAAAG,IAAA;cACtBT,eAAe,CAACC,uBAAuB,CAACa,SAAS,CAAC;cAClDlB,QAAQ,CAAC,IAAI,CAAC;;;;QAAC,OAAAW,OAAA,CAAAC,OAAA,CAAAO,MAAA,IAAAA,MAAA,CAAAN,IAAA,GAAAM,MAAA,CAAAN,IAAA;OAEtB,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;IAEDN,gBAAgB,aAAU,GAAGC,IAAI;MAAA;;cACzBP,aAAa,KAAKE,uBAAuB,CAACC,UAAU;YAAA,IAAAc,SAAA;YAAA,OAAAT,OAAA,CAAAC,OAAA,EAAAQ,SAAA,GAC9CZ,QAAQ,cAAAY,SAAA,uBAARA,SAAA,CAAW,GAAGV,IAAI,CAAC,EAAAG,IAAA;;;QAAA,OAAAF,OAAA,CAAAC,OAAA,CAAAS,MAAA,IAAAA,MAAA,CAAAR,IAAA,GAAAQ,MAAA,CAAAR,IAAA;OAEhC,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;;EAGL,OAAO;IACHjB,SAAS;IACTC,OAAO;IACPL,QAAQ,EAAEa,SAAS;IACnBZ,OAAO,EAAEa,QAAQ;IACjBc,eAAe,EAAEb,gBAAgB;IACjCN,aAAa;IACbP;GACH;AACL;;;;"}
1
+ {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadAllState, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading(\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pageSize = DEFAULT_PAGE_SIZE\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loadAllStatus, setLoadedStatus] = React.useState<TableServerLoadAllState>(TableServerLoadAllState.Incomplete);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setLoadedStatus(TableServerLoadAllState.Incomplete);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoadedStatus(TableServerLoadAllState.Loading);\n await loadAll(...args);\n setLoadedStatus(TableServerLoadAllState.Completed);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (loadAllStatus === TableServerLoadAllState.Incomplete) {\n await _loadAll?.(...args);\n }\n };\n }\n\n return {\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loadAllStatus,\n pageSize,\n };\n}\n"],"names":["useTableServerLoading","loadPage","loadAll","pageSize","DEFAULT_PAGE_SIZE","isEnabled","isReady","setReady","React","useState","loadAllStatus","setLoadedStatus","TableServerLoadAllState","Incomplete","_loadPage","_loadAll","_loadAllIfNeeded","args","Promise","resolve","then","_temp","e","reject","Loading","Completed","_temp2","_loadAll2","_temp3","loadAllIfNeeded"],"mappings":";;;;SAIgBA,qBAAqBA,CACjCC,QAAqC,EACrCC,OAAmC,EACnCC,QAAQ,GAAGC,iBAAiB;EAE5B,MAAMC,SAAS,GAAG,CAAC,CAACJ,QAAQ,IAAI,CAAC,CAACC,OAAO;EACzC,MAAM,CAACI,OAAO,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACC,aAAa,EAAEC,eAAe,CAAC,GAAGH,cAAK,CAACC,QAAQ,CAA0BG,uBAAuB,CAACC,UAAU,CAAC;EAEpH,IAAIC,SAAiD;EACrD,IAAIC,QAA+C;EACnD,IAAIC,gBAAuD;EAE3D,IAAI,OAAOf,QAAQ,KAAK,UAAU,EAAE;IAChCa,SAAS,aAAU,GAAGG,IAAI;MAAA;;cAClB,OAAOhB,QAAQ,KAAK,UAAU;YAAA,OAAAiB,OAAA,CAAAC,OAAA,CACxBlB,QAAQ,CAAC,GAAGgB,IAAI,CAAC,EAAAG,IAAA;cACvBT,eAAe,CAACC,uBAAuB,CAACC,UAAU,CAAC;cACnDN,QAAQ,CAAC,IAAI,CAAC;;;;QAAC,OAAAW,OAAA,CAAAC,OAAA,CAAAE,KAAA,IAAAA,KAAA,CAAAD,IAAA,GAAAC,KAAA,CAAAD,IAAA;OAEtB,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;;EAGL,IAAI,OAAOpB,OAAO,KAAK,UAAU,EAAE;IAC/Ba,QAAQ,aAAU,GAAGE,IAAI;MAAA;;cACjB,OAAOf,OAAO,KAAK,UAAU;YAC7BS,eAAe,CAACC,uBAAuB,CAACY,OAAO,CAAC;YAAC,OAAAN,OAAA,CAAAC,OAAA,CAC3CjB,OAAO,CAAC,GAAGe,IAAI,CAAC,EAAAG,IAAA;cACtBT,eAAe,CAACC,uBAAuB,CAACa,SAAS,CAAC;cAClDlB,QAAQ,CAAC,IAAI,CAAC;;;;QAAC,OAAAW,OAAA,CAAAC,OAAA,CAAAO,MAAA,IAAAA,MAAA,CAAAN,IAAA,GAAAM,MAAA,CAAAN,IAAA;OAEtB,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;IAEDN,gBAAgB,aAAU,GAAGC,IAAI;MAAA;;cACzBP,aAAa,KAAKE,uBAAuB,CAACC,UAAU;YAAA,IAAAc,SAAA;YAAA,OAAAT,OAAA,CAAAC,OAAA,EAAAQ,SAAA,GAC9CZ,QAAQ,cAAAY,SAAA,uBAARA,SAAA,CAAW,GAAGV,IAAI,CAAC,EAAAG,IAAA;;;QAAA,OAAAF,OAAA,CAAAC,OAAA,CAAAS,MAAA,IAAAA,MAAA,CAAAR,IAAA,GAAAQ,MAAA,CAAAR,IAAA;OAEhC,QAAAE,CAAA;QAAA,OAAAJ,OAAA,CAAAK,MAAA,CAAAD,CAAA;;;;EAGL,OAAO;IACHjB,SAAS;IACTC,OAAO;IACPL,QAAQ,EAAEa,SAAS;IACnBZ,OAAO,EAAEa,QAAQ;IACjBc,eAAe,EAAEb,gBAAgB;IACjCN,aAAa;IACbP;GACH;AACL;;;;"}
@@ -12,7 +12,8 @@ function useTableFontSizeListener(table) {
12
12
  table.setColumnSizing(sizes => {
13
13
  return Object.fromEntries(Object.entries(sizes).map(([columnName, prevColumnSize]) => {
14
14
  var _column$columnDef$min;
15
- const column = table.getColumn(columnName);
15
+ // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505
16
+ const column = table.getAllColumns().find(x => x.id === columnName);
16
17
  if (isInternalColumn(columnName)) {
17
18
  var _column$getSize;
18
19
  return [columnName, (_column$getSize = column === null || column === void 0 ? void 0 : column.getSize()) !== null && _column$getSize !== void 0 ? _column$getSize : prevColumnSize];
@@ -1 +1 @@
1
- {"version":3,"file":"useTableFontSizeListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\nimport { getCellMinWidth, isInternalColumn } from '../util/columns';\n\nexport function useTableFontSizeListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const previousFontSizeRef = React.useRef(meta.fontSize.size);\n\n useLazyEffect(() => {\n const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);\n const globalMinSize = getCellMinWidth(meta.fontSize.size);\n\n table.setColumnSizing(sizes => {\n return Object.fromEntries(\n Object.entries(sizes).map(([columnName, prevColumnSize]) => {\n const column = table.getColumn(columnName);\n\n if (isInternalColumn(columnName)) {\n return [columnName, column?.getSize() ?? prevColumnSize];\n }\n\n // Prevents width value in the setting to go below the minColumnSize\n const minColumnSize = column?.columnDef.minSize ?? globalMinSize;\n const newSize = Math.max(minColumnSize, prevColumnSize + cellWidthDifference);\n return [columnName, newSize];\n })\n );\n });\n previousFontSizeRef.current = meta.fontSize.size;\n }, [meta.fontSize.size]);\n}\n\nfunction getCellWidthDifference(fontSizeKey: string) {\n switch (fontSizeKey) {\n case `${FontSizes.small}-${FontSizes.medium}`:\n case `${FontSizes.medium}-${FontSizes.large}`:\n return 8;\n\n case `${FontSizes.medium}-${FontSizes.small}`:\n case `${FontSizes.large}-${FontSizes.medium}`:\n return -8;\n\n case `${FontSizes.small}-${FontSizes.large}`:\n return 16;\n\n case `${FontSizes.large}-${FontSizes.small}`:\n return -16;\n\n default:\n return 0;\n }\n}\n"],"names":["useTableFontSizeListener","table","meta","options","previousFontSizeRef","React","useRef","fontSize","size","useLazyEffect","cellWidthDifference","getCellWidthDifference","current","globalMinSize","getCellMinWidth","setColumnSizing","sizes","Object","fromEntries","entries","map","columnName","prevColumnSize","column","getColumn","isInternalColumn","_column$getSize","getSize","minColumnSize","_column$columnDef$min","columnDef","minSize","newSize","Math","max","fontSizeKey","FontSizes","small","medium","large"],"mappings":";;;;;SAMgBA,wBAAwBA,CAAkBC,KAAwB;EAC9E,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,MAAME,mBAAmB,GAAGC,cAAK,CAACC,MAAM,CAACJ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;EAE5DC,aAAa,CAAC;IACV,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,GAAGP,mBAAmB,CAACQ,OAAO,IAAIV,IAAI,CAACK,QAAQ,CAACC,IAAI,EAAE,CAAC;IAC1G,MAAMK,aAAa,GAAGC,eAAe,CAACZ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;IAEzDP,KAAK,CAACc,eAAe,CAACC,KAAK;MACvB,OAAOC,MAAM,CAACC,WAAW,CACrBD,MAAM,CAACE,OAAO,CAACH,KAAK,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,UAAU,EAAEC,cAAc,CAAC;;QACnD,MAAMC,MAAM,GAAGtB,KAAK,CAACuB,SAAS,CAACH,UAAU,CAAC;QAE1C,IAAII,gBAAgB,CAACJ,UAAU,CAAC,EAAE;UAAA,IAAAK,eAAA;UAC9B,OAAO,CAACL,UAAU,GAAAK,eAAA,GAAEH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,OAAO,EAAE,cAAAD,eAAA,cAAAA,eAAA,GAAIJ,cAAc,CAAC;;;QAI5D,MAAMM,aAAa,IAAAC,qBAAA,GAAGN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,SAAS,CAACC,OAAO,cAAAF,qBAAA,cAAAA,qBAAA,GAAIhB,aAAa;QAChE,MAAMmB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACN,aAAa,EAAEN,cAAc,GAAGZ,mBAAmB,CAAC;QAC7E,OAAO,CAACW,UAAU,EAAEW,OAAO,CAAC;OAC/B,CAAC,CACL;KACJ,CAAC;IACF5B,mBAAmB,CAACQ,OAAO,GAAGV,IAAI,CAACK,QAAQ,CAACC,IAAI;GACnD,EAAE,CAACN,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC,CAAC;AAC5B;AAEA,SAASG,sBAAsBA,CAACwB,WAAmB;EAC/C,QAAQA,WAAW;IACf,KAAK,GAAGC,SAAS,CAACC,KAAK,IAAID,SAAS,CAACE,MAAM,EAAE;IAC7C,KAAK,GAAGF,SAAS,CAACE,MAAM,IAAIF,SAAS,CAACG,KAAK,EAAE;MACzC,OAAO,CAAC;IAEZ,KAAK,GAAGH,SAAS,CAACE,MAAM,IAAIF,SAAS,CAACC,KAAK,EAAE;IAC7C,KAAK,GAAGD,SAAS,CAACG,KAAK,IAAIH,SAAS,CAACE,MAAM,EAAE;MACzC,OAAO,CAAC,CAAC;IAEb,KAAK,GAAGF,SAAS,CAACC,KAAK,IAAID,SAAS,CAACG,KAAK,EAAE;MACxC,OAAO,EAAE;IAEb,KAAK,GAAGH,SAAS,CAACG,KAAK,IAAIH,SAAS,CAACC,KAAK,EAAE;MACxC,OAAO,CAAC,EAAE;IAEd;MACI,OAAO,CAAC;;AAEpB;;;;"}
1
+ {"version":3,"file":"useTableFontSizeListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\nimport { getCellMinWidth, isInternalColumn } from '../util/columns';\n\nexport function useTableFontSizeListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const previousFontSizeRef = React.useRef(meta.fontSize.size);\n\n useLazyEffect(() => {\n const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);\n const globalMinSize = getCellMinWidth(meta.fontSize.size);\n\n table.setColumnSizing(sizes => {\n return Object.fromEntries(\n Object.entries(sizes).map(([columnName, prevColumnSize]) => {\n // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n const column = table.getAllColumns().find(x => x.id === columnName);\n\n if (isInternalColumn(columnName)) {\n return [columnName, column?.getSize() ?? prevColumnSize];\n }\n\n // Prevents width value in the setting to go below the minColumnSize\n const minColumnSize = column?.columnDef.minSize ?? globalMinSize;\n const newSize = Math.max(minColumnSize, prevColumnSize + cellWidthDifference);\n return [columnName, newSize];\n })\n );\n });\n previousFontSizeRef.current = meta.fontSize.size;\n }, [meta.fontSize.size]);\n}\n\nfunction getCellWidthDifference(fontSizeKey: string) {\n switch (fontSizeKey) {\n case `${FontSizes.small}-${FontSizes.medium}`:\n case `${FontSizes.medium}-${FontSizes.large}`:\n return 8;\n\n case `${FontSizes.medium}-${FontSizes.small}`:\n case `${FontSizes.large}-${FontSizes.medium}`:\n return -8;\n\n case `${FontSizes.small}-${FontSizes.large}`:\n return 16;\n\n case `${FontSizes.large}-${FontSizes.small}`:\n return -16;\n\n default:\n return 0;\n }\n}\n"],"names":["useTableFontSizeListener","table","meta","options","previousFontSizeRef","React","useRef","fontSize","size","useLazyEffect","cellWidthDifference","getCellWidthDifference","current","globalMinSize","getCellMinWidth","setColumnSizing","sizes","Object","fromEntries","entries","map","columnName","prevColumnSize","column","getAllColumns","find","x","id","isInternalColumn","_column$getSize","getSize","minColumnSize","_column$columnDef$min","columnDef","minSize","newSize","Math","max","fontSizeKey","FontSizes","small","medium","large"],"mappings":";;;;;SAMgBA,wBAAwBA,CAAkBC,KAAwB;EAC9E,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,MAAME,mBAAmB,GAAGC,cAAK,CAACC,MAAM,CAACJ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;EAE5DC,aAAa,CAAC;IACV,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,GAAGP,mBAAmB,CAACQ,OAAO,IAAIV,IAAI,CAACK,QAAQ,CAACC,IAAI,EAAE,CAAC;IAC1G,MAAMK,aAAa,GAAGC,eAAe,CAACZ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;IAEzDP,KAAK,CAACc,eAAe,CAACC,KAAK;MACvB,OAAOC,MAAM,CAACC,WAAW,CACrBD,MAAM,CAACE,OAAO,CAACH,KAAK,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,UAAU,EAAEC,cAAc,CAAC;;;QAEnD,MAAMC,MAAM,GAAGtB,KAAK,CAACuB,aAAa,EAAE,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKN,UAAU,CAAC;QAEnE,IAAIO,gBAAgB,CAACP,UAAU,CAAC,EAAE;UAAA,IAAAQ,eAAA;UAC9B,OAAO,CAACR,UAAU,GAAAQ,eAAA,GAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,OAAO,EAAE,cAAAD,eAAA,cAAAA,eAAA,GAAIP,cAAc,CAAC;;;QAI5D,MAAMS,aAAa,IAAAC,qBAAA,GAAGT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU,SAAS,CAACC,OAAO,cAAAF,qBAAA,cAAAA,qBAAA,GAAInB,aAAa;QAChE,MAAMsB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACN,aAAa,EAAET,cAAc,GAAGZ,mBAAmB,CAAC;QAC7E,OAAO,CAACW,UAAU,EAAEc,OAAO,CAAC;OAC/B,CAAC,CACL;KACJ,CAAC;IACF/B,mBAAmB,CAACQ,OAAO,GAAGV,IAAI,CAACK,QAAQ,CAACC,IAAI;GACnD,EAAE,CAACN,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC,CAAC;AAC5B;AAEA,SAASG,sBAAsBA,CAAC2B,WAAmB;EAC/C,QAAQA,WAAW;IACf,KAAK,GAAGC,SAAS,CAACC,KAAK,IAAID,SAAS,CAACE,MAAM,EAAE;IAC7C,KAAK,GAAGF,SAAS,CAACE,MAAM,IAAIF,SAAS,CAACG,KAAK,EAAE;MACzC,OAAO,CAAC;IAEZ,KAAK,GAAGH,SAAS,CAACE,MAAM,IAAIF,SAAS,CAACC,KAAK,EAAE;IAC7C,KAAK,GAAGD,SAAS,CAACG,KAAK,IAAIH,SAAS,CAACE,MAAM,EAAE;MACzC,OAAO,CAAC,CAAC;IAEb,KAAK,GAAGF,SAAS,CAACC,KAAK,IAAID,SAAS,CAACG,KAAK,EAAE;MACxC,OAAO,EAAE;IAEb,KAAK,GAAGH,SAAS,CAACG,KAAK,IAAIH,SAAS,CAACC,KAAK,EAAE;MACxC,OAAO,CAAC,EAAE;IAEd;MACI,OAAO,CAAC;;AAEpB;;;;"}
@@ -37,9 +37,13 @@ const dataTypes = {
37
37
  if (value === undefined) {
38
38
  return '';
39
39
  }
40
- return new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
40
+ const formatter = new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
41
41
  minimumFractionDigits: 2
42
- }).format(Number(value));
42
+ });
43
+ const decimalSeperator = formatter.format(1.1).substring(1, 2);
44
+ const localisedValue = formatter.format(Number(value));
45
+ const localisedValueWithoutThousandsSeperator = decimalSeperator === '.' ? localisedValue.replace(',', '') : localisedValue.replace('.', '');
46
+ return [localisedValue, localisedValueWithoutThousandsSeperator];
43
47
  }
44
48
  }
45
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dataTypes.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\nimport * as date from '../../../../utils/date';\nimport { TableColumnAlignment, TableColumnDataType, TableFilterComparator } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nexport type TableDataType<TType = unknown> = {\n align?: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n getDisplayValue?: (value: any, options?: { localization: Localization }) => string;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n number: {\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n datetime: {\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, options) => {\n return date.format(value, options?.localization?.formatting.date) ?? '';\n },\n },\n boolean: {\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // advanced\n amount: {\n align: 'right',\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: number | bigint | string, options) => {\n if (value === undefined) {\n return '';\n }\n\n return new Intl.NumberFormat(options?.localization?.locale, { minimumFractionDigits: 2 }).format(Number(value));\n },\n },\n};\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":["dataTypes","auto","sortingFn","filterComparators","TableFilterComparator","Contains","DoesNotContain","IsEqualTo","IsNotEqualTo","IsEmpty","IsNotEmpty","text","number","IsGreaterThan","IsLessThan","IsGreaterThanOrEqualTo","IsLessThanOrEqualTo","IsBetween","datetime","getDisplayValue","value","options","_date$format","date","_options$localization","localization","formatting","boolean","amount","align","undefined","Intl","NumberFormat","_options$localization2","locale","minimumFractionDigits","format","Number","getDataTypeProperties","dataType","_dataTypes"],"mappings":";;;AAYA,MAAMA,SAAS,GAAwD;EACnEC,IAAI,EAAE;IACFC,SAAS,EAAE,MAAM;IACjBC,iBAAiB,EAAE,CACfC,qBAAqB,CAACC,QAAQ,EAC9BD,qBAAqB,CAACE,cAAc,EACpCF,qBAAqB,CAACG,SAAS,EAC/BH,qBAAqB,CAACI,YAAY,EAClCJ,qBAAqB,CAACK,OAAO,EAC7BL,qBAAqB,CAACM,UAAU;GAEvC;;EAEDC,IAAI,EAAE;IACFT,SAAS,EAAE,cAAc;IACzBC,iBAAiB,EAAE,CACfC,qBAAqB,CAACC,QAAQ,EAC9BD,qBAAqB,CAACE,cAAc,EACpCF,qBAAqB,CAACG,SAAS,EAC/BH,qBAAqB,CAACI,YAAY,EAClCJ,qBAAqB,CAACK,OAAO,EAC7BL,qBAAqB,CAACM,UAAU;GAEvC;EACDE,MAAM,EAAE;IACJV,SAAS,EAAE,OAAO;IAClBC,iBAAiB,EAAE,CACfC,qBAAqB,CAACG,SAAS,EAC/BH,qBAAqB,CAACI,YAAY,EAClCJ,qBAAqB,CAACS,aAAa,EACnCT,qBAAqB,CAACU,UAAU,EAChCV,qBAAqB,CAACW,sBAAsB,EAC5CX,qBAAqB,CAACY,mBAAmB,EACzCZ,qBAAqB,CAACa,SAAS,EAC/Bb,qBAAqB,CAACK,OAAO,EAC7BL,qBAAqB,CAACM,UAAU;GAEvC;EACDQ,QAAQ,EAAE;IACNhB,SAAS,EAAE,UAAU;IACrBC,iBAAiB,EAAE,CACfC,qBAAqB,CAACG,SAAS,EAC/BH,qBAAqB,CAACI,YAAY,EAClCJ,qBAAqB,CAACS,aAAa,EACnCT,qBAAqB,CAACU,UAAU,EAChCV,qBAAqB,CAACW,sBAAsB,EAC5CX,qBAAqB,CAACY,mBAAmB,EACzCZ,qBAAqB,CAACa,SAAS,EAC/Bb,qBAAqB,CAACK,OAAO,EAC7BL,qBAAqB,CAACM,UAAU,CACnC;IACDS,eAAe,EAAEA,CAACC,KAAoB,EAAEC,OAAO;;MAC3C,QAAAC,YAAA,GAAOC,MAAW,CAACH,KAAK,EAAEC,OAAO,aAAPA,OAAO,wBAAAG,qBAAA,GAAPH,OAAO,CAAEI,YAAY,cAAAD,qBAAA,uBAArBA,qBAAA,CAAuBE,UAAU,CAACH,IAAI,CAAC,cAAAD,YAAA,cAAAA,YAAA,GAAI,EAAE;;GAE9E;EACDK,OAAO,EAAE;IACLzB,SAAS,EAAE,OAAO;IAClBC,iBAAiB,EAAE,CAACC,qBAAqB,CAACG,SAAS,EAAEH,qBAAqB,CAACI,YAAY;GAC1F;;EAEDoB,MAAM,EAAE;IACJC,KAAK,EAAE,OAAO;IACd3B,SAAS,EAAE,OAAO;IAClBC,iBAAiB,EAAE,CACfC,qBAAqB,CAACG,SAAS,EAC/BH,qBAAqB,CAACI,YAAY,EAClCJ,qBAAqB,CAACS,aAAa,EACnCT,qBAAqB,CAACU,UAAU,EAChCV,qBAAqB,CAACW,sBAAsB,EAC5CX,qBAAqB,CAACY,mBAAmB,EACzCZ,qBAAqB,CAACa,SAAS,EAC/Bb,qBAAqB,CAACK,OAAO,EAC7BL,qBAAqB,CAACM,UAAU,CACnC;IACDS,eAAe,EAAEA,CAACC,KAA+B,EAAEC,OAAO;;MACtD,IAAID,KAAK,KAAKU,SAAS,EAAE;QACrB,OAAO,EAAE;;MAGb,OAAO,IAAIC,IAAI,CAACC,YAAY,CAACX,OAAO,aAAPA,OAAO,wBAAAY,sBAAA,GAAPZ,OAAO,CAAEI,YAAY,cAAAQ,sBAAA,uBAArBA,sBAAA,CAAuBC,MAAM,EAAE;QAAEC,qBAAqB,EAAE;OAAG,CAAC,CAACC,MAAM,CAACC,MAAM,CAACjB,KAAK,CAAC,CAAC;;;CAG1H;SAEekB,qBAAqBA,CAAkBC,QAAyC;;EAC5F,QAAAC,UAAA,GAAQxC,SAAS,CAACuC,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,MAAM,CAAC,cAAAC,UAAA,cAAAA,UAAA,GAAIxC,SAAS,CAACW,IAAI;AAC3D;;;;"}
1
+ {"version":3,"file":"dataTypes.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\nimport * as date from '../../../../utils/date';\nimport { TableColumnAlignment, TableColumnDataType, TableFilterComparator } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nexport type TableDataType<TType = unknown> = {\n align?: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n getDisplayValue?: (value: any, options?: { localization: Localization }) => string | string[];\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n number: {\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n datetime: {\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, options) => {\n return date.format(value, options?.localization?.formatting.date) ?? '';\n },\n },\n boolean: {\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // advanced\n amount: {\n align: 'right',\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: number | bigint | string, options) => {\n if (value === undefined) {\n return '';\n }\n\n const formatter = new Intl.NumberFormat(options?.localization?.locale, { minimumFractionDigits: 2 });\n const decimalSeperator = formatter.format(1.1).substring(1, 2);\n\n const localisedValue = formatter.format(Number(value));\n const localisedValueWithoutThousandsSeperator =\n decimalSeperator === '.' ? localisedValue.replace(',', '') : localisedValue.replace('.', '');\n\n return [localisedValue, localisedValueWithoutThousandsSeperator];\n },\n },\n};\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":["dataTypes","auto","sortingFn","filterComparators","TableFilterComparator","Contains","DoesNotContain","IsEqualTo","IsNotEqualTo","IsEmpty","IsNotEmpty","text","number","IsGreaterThan","IsLessThan","IsGreaterThanOrEqualTo","IsLessThanOrEqualTo","IsBetween","datetime","getDisplayValue","value","options","_date$format","date","_options$localization","localization","formatting","boolean","amount","align","undefined","formatter","Intl","NumberFormat","_options$localization2","locale","minimumFractionDigits","decimalSeperator","format","substring","localisedValue","Number","localisedValueWithoutThousandsSeperator","replace","getDataTypeProperties","dataType","_dataTypes"],"mappings":"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"}
@@ -18,7 +18,13 @@ function isMatched(searchQuery, cellValue, dataType, localization) {
18
18
  const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, {
19
19
  localization
20
20
  });
21
- if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
21
+ if (Array.isArray(cellDisplayValue)) {
22
+ for (const displayValue of cellDisplayValue) {
23
+ if (isWeakContains(displayValue, searchQuery)) {
24
+ return true;
25
+ }
26
+ }
27
+ } else if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
22
28
  return true;
23
29
  }
24
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { isWeakContains } from './filtering';\nimport { getDataTypeProperties } from './dataTypes';\nimport { TableColumnDataType } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nconst flattenCellValue = (cellValue: object | string) => {\n return typeof cellValue === 'object' ? Object.values(cellValue).map(flattenCellValue) : cellValue;\n};\n\nexport function isMatched<TType = unknown>(\n searchQuery: string,\n cellValue: any,\n dataType: TableColumnDataType | undefined,\n localization: Localization\n) {\n if (typeof cellValue === 'object') {\n return flattenCellValue(cellValue)\n .flat(Infinity)\n .find(y => isWeakContains(y, searchQuery));\n } else {\n const cellValueAsString = String(cellValue ?? '');\n\n if (cellValueAsString !== undefined && isWeakContains(cellValueAsString, searchQuery)) {\n return true;\n } else {\n const dataTypeProperties = getDataTypeProperties<TType>(dataType);\n\n if (dataTypeProperties.getDisplayValue) {\n const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, { localization });\n\n if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {\n return true;\n }\n }\n }\n }\n\n return false;\n}\n\nexport function globalFilterFn<TType = unknown>(\n row: ReactTableRow<TType>,\n columnId: string,\n searchQuery: string,\n localization: Localization\n) {\n try {\n if (row.original) {\n const cellValue = row.original[columnId];\n const dataType = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta?.dataType;\n return isMatched(searchQuery, cellValue, dataType, localization);\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n\nexport function resetHighlightedColumnIndexes<TType = unknown>(\n searchQuery: string | undefined,\n table: ReactTable<TType>,\n localization: Localization\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let firstRowIndex: undefined | number;\n\n if (searchQuery) {\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n const rowGrouping = table.getState().grouping;\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n let allowSearch = true;\n\n if (rowGrouping?.length) {\n // if it's the grouped row, only allow search of the grouped column - because that's all that's visible\n if (row.getIsGrouped()) {\n allowSearch = column.getIsGrouped();\n }\n // otherwise for other rows, don't search the grouped column - because it isn't visible\n else if (rowGrouping.includes(column.id)) {\n allowSearch = false;\n }\n }\n\n if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {\n const cellValue = get(row.original, column.id);\n const dataType = column.columnDef.meta?.dataType;\n\n if (isMatched(searchQuery, cellValue, dataType, localization)) {\n indexes.push([rowIndex, columnIndex]);\n }\n }\n } catch (e) {\n //\n }\n });\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0][0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n if (firstRowIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["flattenCellValue","cellValue","Object","values","map","isMatched","searchQuery","dataType","localization","flat","Infinity","find","y","isWeakContains","cellValueAsString","String","undefined","dataTypeProperties","getDataTypeProperties","getDisplayValue","cellDisplayValue","globalFilterFn","row","columnId","original","_row$_getAllCellsByCo","_row$_getAllCellsByCo2","_getAllCellsByColumnId","column","columnDef","meta","resetHighlightedColumnIndexes","table","tableMeta","options","firstRowIndex","indexes","columns","getVisibleLeafColumns","rowGrouping","getState","grouping","getRowModel","rows","forEach","rowIndex","columnIndex","allowSearch","length","getIsGrouped","includes","id","getIsVisible","enableGlobalFilter","_column$columnDef$met","get","push","e","search","setHighlightedColumnIndexes","setCurrentHighlightColumnIndex","rowActive","setRowActiveIndex"],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { isWeakContains } from './filtering';\nimport { getDataTypeProperties } from './dataTypes';\nimport { TableColumnDataType } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nconst flattenCellValue = (cellValue: object | string) => {\n return typeof cellValue === 'object' ? Object.values(cellValue).map(flattenCellValue) : cellValue;\n};\n\nexport function isMatched<TType = unknown>(\n searchQuery: string,\n cellValue: any,\n dataType: TableColumnDataType | undefined,\n localization: Localization\n) {\n if (typeof cellValue === 'object') {\n return flattenCellValue(cellValue)\n .flat(Infinity)\n .find(y => isWeakContains(y, searchQuery));\n } else {\n const cellValueAsString = String(cellValue ?? '');\n\n if (cellValueAsString !== undefined && isWeakContains(cellValueAsString, searchQuery)) {\n return true;\n } else {\n const dataTypeProperties = getDataTypeProperties<TType>(dataType);\n\n if (dataTypeProperties.getDisplayValue) {\n const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, { localization });\n\n if (Array.isArray(cellDisplayValue)) {\n for (const displayValue of cellDisplayValue) {\n if (isWeakContains(displayValue, searchQuery)) {\n return true;\n }\n }\n } else if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {\n return true;\n }\n }\n }\n }\n\n return false;\n}\n\nexport function globalFilterFn<TType = unknown>(\n row: ReactTableRow<TType>,\n columnId: string,\n searchQuery: string,\n localization: Localization\n) {\n try {\n if (row.original) {\n const cellValue = row.original[columnId];\n const dataType = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta?.dataType;\n return isMatched(searchQuery, cellValue, dataType, localization);\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n\nexport function resetHighlightedColumnIndexes<TType = unknown>(\n searchQuery: string | undefined,\n table: ReactTable<TType>,\n localization: Localization\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let firstRowIndex: undefined | number;\n\n if (searchQuery) {\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n const rowGrouping = table.getState().grouping;\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n let allowSearch = true;\n\n if (rowGrouping?.length) {\n // if it's the grouped row, only allow search of the grouped column - because that's all that's visible\n if (row.getIsGrouped()) {\n allowSearch = column.getIsGrouped();\n }\n // otherwise for other rows, don't search the grouped column - because it isn't visible\n else if (rowGrouping.includes(column.id)) {\n allowSearch = false;\n }\n }\n\n if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {\n const cellValue = get(row.original, column.id);\n const dataType = column.columnDef.meta?.dataType;\n\n if (isMatched(searchQuery, cellValue, dataType, localization)) {\n indexes.push([rowIndex, columnIndex]);\n }\n }\n } catch (e) {\n //\n }\n });\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0][0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n if (firstRowIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["flattenCellValue","cellValue","Object","values","map","isMatched","searchQuery","dataType","localization","flat","Infinity","find","y","isWeakContains","cellValueAsString","String","undefined","dataTypeProperties","getDataTypeProperties","getDisplayValue","cellDisplayValue","Array","isArray","displayValue","globalFilterFn","row","columnId","original","_row$_getAllCellsByCo","_row$_getAllCellsByCo2","_getAllCellsByColumnId","column","columnDef","meta","resetHighlightedColumnIndexes","table","tableMeta","options","firstRowIndex","indexes","columns","getVisibleLeafColumns","rowGrouping","getState","grouping","getRowModel","rows","forEach","rowIndex","columnIndex","allowSearch","length","getIsGrouped","includes","id","getIsVisible","enableGlobalFilter","_column$columnDef$met","get","push","e","search","setHighlightedColumnIndexes","setCurrentHighlightColumnIndex","rowActive","setRowActiveIndex"],"mappings":"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"}
@@ -102,10 +102,15 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
102
102
  column.cell = info => renderer(info.getValue(), info.row.original);
103
103
  } else if (dataTypeProperties.getDisplayValue) {
104
104
  const dataTypeRenderer = value => {
105
- var _dataTypeProperties$g, _dataTypeProperties$g2;
106
- return (_dataTypeProperties$g = (_dataTypeProperties$g2 = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g2 === void 0 ? void 0 : _dataTypeProperties$g2.call(dataTypeProperties, value, {
105
+ var _dataTypeProperties$g;
106
+ const displayValue = (_dataTypeProperties$g = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g === void 0 ? void 0 : _dataTypeProperties$g.call(dataTypeProperties, value, {
107
107
  localization
108
- })) !== null && _dataTypeProperties$g !== void 0 ? _dataTypeProperties$g : value;
108
+ });
109
+ if (Array.isArray(displayValue)) {
110
+ var _displayValue$;
111
+ return (_displayValue$ = displayValue[0]) !== null && _displayValue$ !== void 0 ? _displayValue$ : value;
112
+ }
113
+ return displayValue !== null && displayValue !== void 0 ? displayValue : value;
109
114
  };
110
115
  column.cell = info => dataTypeRenderer(info.getValue());
111
116
  column.meta.renderer = dataTypeRenderer;