@elliemae/ds-data-table 3.3.1 → 3.4.0-next.0

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 (121) hide show
  1. package/dist/cjs/DataTableContext.js +2 -16
  2. package/dist/cjs/DataTableContext.js.map +2 -2
  3. package/dist/cjs/DataTableSchema.js +0 -2
  4. package/dist/cjs/DataTableSchema.js.map +2 -2
  5. package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
  6. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  7. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +69 -68
  8. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  9. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +32 -35
  10. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  11. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +13 -18
  12. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  13. package/dist/cjs/addons/Columns/index.js +1 -7
  14. package/dist/cjs/addons/Columns/index.js.map +2 -2
  15. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +1 -3
  16. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  17. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js +1 -3
  18. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  19. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +23 -3
  20. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  21. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +55 -0
  22. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +7 -0
  23. package/dist/cjs/addons/Filters/Components/SelectFilter/{utils.js → SingleCreatableFilter.js} +30 -16
  24. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +7 -0
  25. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +0 -1
  26. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  27. package/dist/cjs/addons/Filters/Components/index.js +2 -0
  28. package/dist/cjs/addons/Filters/Components/index.js.map +2 -2
  29. package/dist/cjs/configs/useRowFlattenization.js +4 -3
  30. package/dist/cjs/configs/useRowFlattenization.js.map +2 -2
  31. package/dist/cjs/configs/useTableColsWithAddons.js +18 -6
  32. package/dist/cjs/configs/useTableColsWithAddons.js.map +2 -2
  33. package/dist/cjs/exported-related/FilterTypes.js +2 -0
  34. package/dist/cjs/exported-related/FilterTypes.js.map +2 -2
  35. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +2 -2
  36. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  37. package/dist/cjs/exported-related/RowRenderer/useRowStyle.js.map +2 -2
  38. package/dist/cjs/helpers/addCellData.js +7 -3
  39. package/dist/cjs/helpers/addCellData.js.map +2 -2
  40. package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +2 -2
  41. package/dist/cjs/index.js +1 -0
  42. package/dist/cjs/index.js.map +2 -2
  43. package/dist/cjs/parts/DropIndicator.js +11 -11
  44. package/dist/cjs/parts/DropIndicator.js.map +2 -2
  45. package/dist/cjs/parts/Filters/index.js +2 -0
  46. package/dist/cjs/parts/Filters/index.js.map +2 -2
  47. package/dist/cjs/parts/HoC/SortableItemContext.js +0 -8
  48. package/dist/cjs/parts/HoC/SortableItemContext.js.map +2 -2
  49. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +2 -2
  50. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  51. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js +2 -1
  52. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js.map +2 -2
  53. package/dist/cjs/parts/RowVariants/types.js.map +1 -1
  54. package/dist/cjs/types/props.js +14 -0
  55. package/dist/cjs/types/props.js.map +2 -2
  56. package/dist/esm/DataTableContext.js +2 -16
  57. package/dist/esm/DataTableContext.js.map +2 -2
  58. package/dist/esm/DataTableSchema.js +0 -2
  59. package/dist/esm/DataTableSchema.js.map +2 -2
  60. package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +2 -2
  61. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  62. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +69 -68
  63. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  64. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +32 -35
  65. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  66. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +14 -19
  67. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  68. package/dist/esm/addons/Columns/index.js +1 -7
  69. package/dist/esm/addons/Columns/index.js.map +2 -2
  70. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +2 -4
  71. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  72. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js +2 -4
  73. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  74. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +24 -4
  75. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  76. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +32 -0
  77. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +7 -0
  78. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +31 -0
  79. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +7 -0
  80. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +0 -1
  81. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  82. package/dist/esm/addons/Filters/Components/index.js +2 -0
  83. package/dist/esm/addons/Filters/Components/index.js.map +2 -2
  84. package/dist/esm/configs/useRowFlattenization.js +4 -3
  85. package/dist/esm/configs/useRowFlattenization.js.map +2 -2
  86. package/dist/esm/configs/useTableColsWithAddons.js +18 -6
  87. package/dist/esm/configs/useTableColsWithAddons.js.map +2 -2
  88. package/dist/esm/exported-related/FilterTypes.js +2 -0
  89. package/dist/esm/exported-related/FilterTypes.js.map +2 -2
  90. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +1 -1
  91. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  92. package/dist/esm/exported-related/RowRenderer/useRowStyle.js.map +1 -1
  93. package/dist/esm/helpers/addCellData.js +7 -3
  94. package/dist/esm/helpers/addCellData.js.map +2 -2
  95. package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +2 -2
  96. package/dist/esm/index.js +1 -0
  97. package/dist/esm/index.js.map +2 -2
  98. package/dist/esm/parts/DropIndicator.js +1 -1
  99. package/dist/esm/parts/DropIndicator.js.map +1 -1
  100. package/dist/esm/parts/Filters/index.js +5 -1
  101. package/dist/esm/parts/Filters/index.js.map +2 -2
  102. package/dist/esm/parts/HoC/SortableItemContext.js +0 -8
  103. package/dist/esm/parts/HoC/SortableItemContext.js.map +2 -2
  104. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +1 -1
  105. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +1 -1
  106. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js +2 -1
  107. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js.map +2 -2
  108. package/dist/esm/types/props.js +10 -0
  109. package/dist/esm/types/props.js.map +3 -3
  110. package/package.json +18 -18
  111. package/dist/cjs/addons/Filters/Components/SelectFilter/components.js +0 -80
  112. package/dist/cjs/addons/Filters/Components/SelectFilter/components.js.map +0 -7
  113. package/dist/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +0 -86
  114. package/dist/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +0 -7
  115. package/dist/cjs/addons/Filters/Components/SelectFilter/utils.js.map +0 -7
  116. package/dist/esm/addons/Filters/Components/SelectFilter/components.js +0 -57
  117. package/dist/esm/addons/Filters/Components/SelectFilter/components.js.map +0 -7
  118. package/dist/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +0 -63
  119. package/dist/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js.map +0 -7
  120. package/dist/esm/addons/Filters/Components/SelectFilter/utils.js +0 -17
  121. package/dist/esm/addons/Filters/Components/SelectFilter/utils.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useMemo, useCallback } from 'react';\nimport { DSCheckbox } from '@elliemae/ds-form';\nimport { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nexport const multiSelectColumn: TypescriptColumn = {\n // Build our multiSelecter column\n id: 'multiSelecter', // Make sure it has an ID\n Header: ({ ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, data, disabledRows },\n allDataFlattened,\n } = ctx;\n\n const selectionKeyCount = Object.keys(selection).length;\n\n const currentGlobalState = useMemo(\n () => (selectionKeyCount > 0 && selectionKeyCount < data.length ? 'mixed' : selectionKeyCount > 0),\n [selectionKeyCount, data],\n );\n\n const newGlobalStateAfterToggle = useMemo(() => {\n // false -- toggles into --> true\n // mixed -- toggles into --> true\n // true -- toggles into --> false\n let newState = false;\n if (currentGlobalState === false || currentGlobalState === 'mixed') newState = true;\n return newState;\n }, [currentGlobalState]);\n\n const newSelection = useMemo(() => {\n if (newGlobalStateAfterToggle) {\n const nextSelection = {};\n allDataFlattened.forEach((datum) => {\n nextSelection[datum.uid] = !disabledRows[datum.uid];\n });\n return nextSelection;\n }\n return {};\n }, [newGlobalStateAfterToggle, allDataFlattened, disabledRows]);\n\n const onChangeHandler = useCallback(\n (e) => {\n onSelectionChange(newSelection, 'All', e);\n },\n [newSelection, onSelectionChange],\n );\n\n const PureHeaderCheckbox = useMemo(\n () => (\n <DSCheckbox\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_CHECKBOX}\n title=\"Toggle All Rows Selected\"\n checked={currentGlobalState}\n onChange={onChangeHandler}\n tabIndex=\"0\"\n style={{ cursor: 'pointer' }}\n />\n ),\n [currentGlobalState, onChangeHandler],\n );\n return PureHeaderCheckbox;\n },\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = selection?.[uid];\n const PureCheckboxCell = useMemo(\n () => (\n <div onClick={(e) => e.stopPropagation()}>\n <DSCheckbox\n data-testid={DATA_TESTID.DATA_TABLE_CHECKBOX}\n title=\"Toggle Row Selected\"\n aria-checked={selectedState}\n aria-disabled={false}\n checked={selectedState}\n onChange={(e) => {\n const newState = !selectedState;\n const newSelection = { ...selection, [uid]: newState }; // we only want true and mixed values\n if (!newState) delete newSelection[uid]; // if newState is false, remove from the new selection\n onSelectionChange(newSelection, uid, e);\n }}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n tabIndex={isRowSelected ? 0 : -1}\n style={{ cursor: 'pointer' }}\n />\n </div>\n ),\n [selectedState, disabledRows, row.uid, cell.ref, isRowSelected, selection, uid, onSelectionChange],\n );\n return PureCheckboxCell;\n },\n textWrap: 'wrap',\n width: 32,\n padding: 7,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4C;AAC5C,qBAA2B;AAE3B,uBAA4B;AAErB,MAAM,oBAAsC;AAAA,EAEjD,IAAI;AAAA,EACJ,QAAQ,CAAC,EAAE,UAAU;AACnB,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW,MAAM;AAAA,MAClD;AAAA,QACE;AAEJ,UAAM,oBAAoB,OAAO,KAAK,SAAS,EAAE;AAEjD,UAAM,qBAAqB,0BACzB,MAAO,oBAAoB,KAAK,oBAAoB,KAAK,SAAS,UAAU,oBAAoB,GAChG,CAAC,mBAAmB,IAAI,CAC1B;AAEA,UAAM,4BAA4B,0BAAQ,MAAM;AAI9C,UAAI,WAAW;AACf,UAAI,uBAAuB,SAAS,uBAAuB;AAAS,mBAAW;AAC/E,aAAO;AAAA,IACT,GAAG,CAAC,kBAAkB,CAAC;AAEvB,UAAM,eAAe,0BAAQ,MAAM;AACjC,UAAI,2BAA2B;AAC7B,cAAM,gBAAgB,CAAC;AACvB,yBAAiB,QAAQ,CAAC,UAAU;AAClC,wBAAc,MAAM,OAAO,CAAC,aAAa,MAAM;AAAA,QACjD,CAAC;AACD,eAAO;AAAA,MACT;AACA,aAAO,CAAC;AAAA,IACV,GAAG,CAAC,2BAA2B,kBAAkB,YAAY,CAAC;AAE9D,UAAM,kBAAkB,8BACtB,CAAC,MAAM;AACL,wBAAkB,cAAc,OAAO,CAAC;AAAA,IAC1C,GACA,CAAC,cAAc,iBAAiB,CAClC;AAEA,UAAM,qBAAqB,0BACzB,MACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,OAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,UAAS;AAAA,MACT,OAAO,EAAE,QAAQ,UAAU;AAAA,KAC7B,GAEF,CAAC,oBAAoB,eAAe,CACtC;AACA,WAAO;AAAA,EACT;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,UAAU;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW;AAAA,QAC1C;AACJ,UAAM,EAAE,QAAQ;AAChB,UAAM,gBAAgB,YAAY;AAClC,UAAM,mBAAmB,0BACvB,MACE,mDAAC;AAAA,MAAI,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,OACrC,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,OAAM;AAAA,MACN,gBAAc;AAAA,MACd,iBAAe;AAAA,MACf,SAAS;AAAA,MACT,UAAU,CAAC,MAAM;AACf,cAAM,WAAW,CAAC;AAClB,cAAM,eAAe,EAAE,GAAG,WAAW,CAAC,MAAM,SAAS;AACrD,YAAI,CAAC;AAAU,iBAAO,aAAa;AACnC,0BAAkB,cAAc,KAAK,CAAC;AAAA,MACxC;AAAA,MACA,UAAU,aAAa,IAAI;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,UAAU,gBAAgB,IAAI;AAAA,MAC9B,OAAO,EAAE,QAAQ,UAAU;AAAA,KAC7B,CACF,GAEF,CAAC,eAAe,cAAc,IAAI,KAAK,KAAK,KAAK,eAAe,WAAW,KAAK,iBAAiB,CACnG;AACA,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AACd;",
4
+ "sourcesContent": ["import React, { useMemo, useCallback } from 'react';\nimport { DSControlledCheckbox } from '@elliemae/ds-controlled-form';\nimport { TypescriptColumn, TypescriptSelection } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nconst stopThePropagation = (e: React.MouseEvent) => e.stopPropagation();\n\nexport const multiSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our multiSelecter column\n id: 'multiSelecter', // Make sure it has an ID\n Header: ({ ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, data, disabledRows },\n allDataFlattened,\n } = ctx;\n\n // We for sure have selection, so we just typecast it for TS reasons\n const dtSelection = selection ?? {};\n\n const selectionKeyCount = Object.keys(dtSelection).length;\n\n const currentGlobalState = useMemo(\n () => (selectionKeyCount > 0 && selectionKeyCount < data.length ? 'mixed' : selectionKeyCount > 0),\n [selectionKeyCount, data],\n );\n\n // global state toggling: false to true, mixed to true, true to false\n const newGlobalStateAfterToggle = useMemo(() => currentGlobalState !== true, [currentGlobalState]);\n\n const newSelection: TypescriptSelection = useMemo(() => {\n if (!newGlobalStateAfterToggle) return {};\n\n return allDataFlattened.reduce<TypescriptSelection>((newSelectionObject, datum) => {\n newSelectionObject[datum.uid] = !disabledRows[datum.uid];\n return newSelectionObject;\n }, {});\n }, [newGlobalStateAfterToggle, allDataFlattened, disabledRows]);\n\n const onChangeHandler = useCallback(\n (e: React.ChangeEvent) => {\n onSelectionChange(newSelection, 'All', e);\n },\n [newSelection, onSelectionChange],\n );\n\n const ariaControls = useMemo(\n () => allDataFlattened.map((datum) => `data-table-checkbox-${datum.uid}`).join(' '),\n [allDataFlattened],\n );\n\n return (\n <DSControlledCheckbox\n aria-controls={ariaControls}\n data-testid={DATA_TESTID.DATA_TABLE_GLOBAL_CHECKBOX}\n aria-label=\"Toggle all rows selected\"\n checked={currentGlobalState}\n onChange={onChangeHandler}\n style={{ cursor: 'pointer' }}\n />\n );\n },\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = selection?.[uid] ?? false;\n\n const onChangeHandler = useCallback(\n (e: React.ChangeEvent) => {\n const newState = !selectedState;\n const newSelection = { ...selection, [uid]: newState }; // we only want true and mixed values\n if (!newState) delete newSelection[uid]; // if newState is false, remove from the new selection\n onSelectionChange(newSelection, uid, e);\n },\n [onSelectionChange, selectedState, selection, uid],\n );\n\n return (\n <div role=\"presentation\" onClick={stopThePropagation}>\n <DSControlledCheckbox\n id={`data-table-checkbox-${uid}`}\n data-testid={DATA_TESTID.DATA_TABLE_CHECKBOX}\n aria-label=\"Toggle row selected\"\n aria-checked={selectedState}\n aria-disabled={false}\n checked={selectedState}\n onChange={onChangeHandler}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n tabIndex={isRowSelected ? 0 : -1}\n style={{ cursor: 'pointer' }}\n />\n </div>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 7,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4C;AAC5C,gCAAqC;AAErC,uBAA4B;AAE5B,MAAM,qBAAqB,CAAC,MAAwB,EAAE,gBAAgB;AAE/D,MAAM,oBAAwD;AAAA,EAEnE,IAAI;AAAA,EACJ,QAAQ,CAAC,EAAE,UAAU;AACnB,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW,MAAM;AAAA,MAClD;AAAA,QACE;AAGJ,UAAM,cAAc,aAAa,CAAC;AAElC,UAAM,oBAAoB,OAAO,KAAK,WAAW,EAAE;AAEnD,UAAM,qBAAqB,0BACzB,MAAO,oBAAoB,KAAK,oBAAoB,KAAK,SAAS,UAAU,oBAAoB,GAChG,CAAC,mBAAmB,IAAI,CAC1B;AAGA,UAAM,4BAA4B,0BAAQ,MAAM,uBAAuB,MAAM,CAAC,kBAAkB,CAAC;AAEjG,UAAM,eAAoC,0BAAQ,MAAM;AACtD,UAAI,CAAC;AAA2B,eAAO,CAAC;AAExC,aAAO,iBAAiB,OAA4B,CAAC,oBAAoB,UAAU;AACjF,2BAAmB,MAAM,OAAO,CAAC,aAAa,MAAM;AACpD,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAAA,IACP,GAAG,CAAC,2BAA2B,kBAAkB,YAAY,CAAC;AAE9D,UAAM,kBAAkB,8BACtB,CAAC,MAAyB;AACxB,wBAAkB,cAAc,OAAO,CAAC;AAAA,IAC1C,GACA,CAAC,cAAc,iBAAiB,CAClC;AAEA,UAAM,eAAe,0BACnB,MAAM,iBAAiB,IAAI,CAAC,UAAU,uBAAuB,MAAM,KAAK,EAAE,KAAK,GAAG,GAClF,CAAC,gBAAgB,CACnB;AAEA,WACE,mDAAC;AAAA,MACC,iBAAe;AAAA,MACf,eAAa,6BAAY;AAAA,MACzB,cAAW;AAAA,MACX,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO,EAAE,QAAQ,UAAU;AAAA,KAC7B;AAAA,EAEJ;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,UAAU;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW;AAAA,QAC1C;AACJ,UAAM,EAAE,QAAQ;AAChB,UAAM,gBAAgB,YAAY,QAAQ;AAE1C,UAAM,kBAAkB,8BACtB,CAAC,MAAyB;AACxB,YAAM,WAAW,CAAC;AAClB,YAAM,eAAe,EAAE,GAAG,WAAW,CAAC,MAAM,SAAS;AACrD,UAAI,CAAC;AAAU,eAAO,aAAa;AACnC,wBAAkB,cAAc,KAAK,CAAC;AAAA,IACxC,GACA,CAAC,mBAAmB,eAAe,WAAW,GAAG,CACnD;AAEA,WACE,mDAAC;AAAA,MAAI,MAAK;AAAA,MAAe,SAAS;AAAA,OAChC,mDAAC;AAAA,MACC,IAAI,uBAAuB;AAAA,MAC3B,eAAa,6BAAY;AAAA,MACzB,cAAW;AAAA,MACX,gBAAc;AAAA,MACd,iBAAe;AAAA,MACf,SAAS;AAAA,MACT,UAAU;AAAA,MACV,UAAU,aAAa,IAAI;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,UAAU,gBAAgB,IAAI;AAAA,MAC9B,OAAO,EAAE,QAAQ,UAAU;AAAA,KAC7B,CACF;AAAA,EAEJ;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AACd;",
6
6
  "names": []
7
7
  }
@@ -26,7 +26,7 @@ __export(ColumnSelectSingle_exports, {
26
26
  module.exports = __toCommonJS(ColumnSelectSingle_exports);
27
27
  var React = __toESM(require("react"));
28
28
  var import_react = __toESM(require("react"));
29
- var import_ds_form = require("@elliemae/ds-form");
29
+ var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
30
30
  var import_ds_system = require("@elliemae/ds-system");
31
31
  var import_constants = require("../../../configs/constants");
32
32
  const CenteredContent = import_ds_system.styled.div`
@@ -36,10 +36,6 @@ const CenteredContent = import_ds_system.styled.div`
36
36
  justify-content: center;
37
37
  align-items: center;
38
38
  `;
39
- const StyledDSRadio = (0, import_ds_system.styled)(import_ds_form.DSRadio)`
40
- padding-bottom: 0;
41
- cursor: pointer;
42
- `;
43
39
  const singleSelectColumn = {
44
40
  id: "singleSelecter",
45
41
  Header: () => /* @__PURE__ */ import_react.default.createElement("div", null),
@@ -48,24 +44,23 @@ const singleSelectColumn = {
48
44
  tableProps: { onSelectionChange, selection, disabledRows }
49
45
  } = ctx;
50
46
  const { uid } = row;
51
- const selectedState = selection?.[uid];
52
- const PureCheckBox = (0, import_react.useMemo)(() => /* @__PURE__ */ import_react.default.createElement(CenteredContent, null, /* @__PURE__ */ import_react.default.createElement(StyledDSRadio, {
53
- containerProps: {
54
- "aria-checked": selectedState,
55
- "aria-disabled": false,
56
- title: "Toggle Row Selected"
57
- },
47
+ const selectedState = !!selection?.[uid];
48
+ const onChangeHandler = (0, import_react.useCallback)((newValue, e) => {
49
+ onSelectionChange({ [uid]: !selectedState }, uid, e);
50
+ }, [onSelectionChange, selectedState, uid]);
51
+ return /* @__PURE__ */ import_react.default.createElement(CenteredContent, null, /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledRadio, {
52
+ "aria-checked": selectedState,
53
+ "aria-disabled": disabledRows[row.uid],
54
+ title: "Toggle row selected",
55
+ "aria-label": "Toggle row selected",
58
56
  checked: selectedState,
59
- onChange: () => {
60
- onSelectionChange(!selectedState ? { [uid]: !selectedState } : {});
61
- },
57
+ onChange: onChangeHandler,
62
58
  "data-testid": import_constants.DATA_TESTID.DATA_TABLE_RADIO,
63
59
  disabled: disabledRows[row.uid],
64
60
  innerRef: cell.ref,
65
- value: "",
61
+ value: uid,
66
62
  tabIndex: isRowSelected ? 0 : -1
67
- })), [selectedState, disabledRows, row.uid, cell.ref, isRowSelected, onSelectionChange, uid]);
68
- return PureCheckBox;
63
+ }));
69
64
  },
70
65
  textWrap: "wrap",
71
66
  width: 32,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useMemo } from 'react';\nimport { DSRadio } from '@elliemae/ds-form';\nimport { styled } from '@elliemae/ds-system';\nimport { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nconst CenteredContent = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\nconst StyledDSRadio = styled(DSRadio)`\n padding-bottom: 0;\n cursor: pointer;\n`;\n\nexport const singleSelectColumn: TypescriptColumn = {\n // Build our singleSelecter column\n id: 'singleSelecter', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = selection?.[uid];\n\n const PureCheckBox = useMemo(\n () => (\n <CenteredContent>\n <StyledDSRadio\n containerProps={{\n 'aria-checked': selectedState,\n 'aria-disabled': false,\n title: 'Toggle Row Selected',\n }}\n checked={selectedState}\n onChange={() => {\n // in single select we only allow one item to be selected\n onSelectionChange(!selectedState ? { [uid]: !selectedState } : {});\n }}\n data-testid={DATA_TESTID.DATA_TABLE_RADIO}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n value=\"\"\n tabIndex={isRowSelected ? 0 : -1}\n />\n </CenteredContent>\n ),\n [selectedState, disabledRows, row.uid, cell.ref, isRowSelected, onSelectionChange, uid],\n );\n return PureCheckBox;\n },\n textWrap: 'wrap',\n width: 32,\n padding: 4,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+B;AAC/B,qBAAwB;AACxB,uBAAuB;AAEvB,uBAA4B;AAE5B,MAAM,kBAAkB,wBAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAO/B,MAAM,gBAAgB,6BAAO,sBAAO;AAAA;AAAA;AAAA;AAK7B,MAAM,qBAAuC;AAAA,EAElD,IAAI;AAAA,EAEJ,QAAQ,MAAM,mDAAC,WAAI;AAAA,EACnB,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,UAAU;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW;AAAA,QAC1C;AACJ,UAAM,EAAE,QAAQ;AAChB,UAAM,gBAAgB,YAAY;AAElC,UAAM,eAAe,0BACnB,MACE,mDAAC,uBACC,mDAAC;AAAA,MACC,gBAAgB;AAAA,QACd,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,OAAO;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT,UAAU,MAAM;AAEd,0BAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;AAAA,MACnE;AAAA,MACA,eAAa,6BAAY;AAAA,MACzB,UAAU,aAAa,IAAI;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,OAAM;AAAA,MACN,UAAU,gBAAgB,IAAI;AAAA,KAChC,CACF,GAEF,CAAC,eAAe,cAAc,IAAI,KAAK,KAAK,KAAK,eAAe,mBAAmB,GAAG,CACxF;AACA,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AACd;",
4
+ "sourcesContent": ["import React, { useCallback } from 'react';\nimport { DSControlledRadio } from '@elliemae/ds-controlled-form';\nimport { styled } from '@elliemae/ds-system';\nimport { TypescriptColumn } from '../../../types/props';\nimport { DATA_TESTID } from '../../../configs/constants';\n\nconst CenteredContent = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\n\nexport const singleSelectColumn: TypescriptColumn<HTMLInputElement> = {\n // Build our singleSelecter column\n id: 'singleSelecter', // Make sure it has an ID\n // The header doesn't need anything for single selection\n Header: () => <div />,\n Cell: ({ cell, row, isRowSelected, ctx }) => {\n const {\n tableProps: { onSelectionChange, selection, disabledRows },\n } = ctx;\n const { uid } = row;\n const selectedState = !!selection?.[uid];\n\n const onChangeHandler = useCallback(\n (newValue: string, e: React.ChangeEvent) => {\n // in single select we only allow one item to be selected\n onSelectionChange({ [uid]: !selectedState }, uid, e);\n },\n [onSelectionChange, selectedState, uid],\n );\n\n return (\n <CenteredContent>\n <DSControlledRadio\n aria-checked={selectedState}\n aria-disabled={disabledRows[row.uid]}\n title=\"Toggle row selected\"\n aria-label=\"Toggle row selected\"\n checked={selectedState}\n onChange={onChangeHandler}\n data-testid={DATA_TESTID.DATA_TABLE_RADIO}\n disabled={disabledRows[row.uid]}\n innerRef={cell.ref}\n value={uid}\n tabIndex={isRowSelected ? 0 : -1}\n />\n </CenteredContent>\n );\n },\n textWrap: 'wrap',\n width: 32,\n padding: 4,\n canResize: false,\n isFocuseable: false,\n disableDnD: true,\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAmC;AACnC,gCAAkC;AAClC,uBAAuB;AAEvB,uBAA4B;AAE5B,MAAM,kBAAkB,wBAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQxB,MAAM,qBAAyD;AAAA,EAEpE,IAAI;AAAA,EAEJ,QAAQ,MAAM,mDAAC,WAAI;AAAA,EACnB,MAAM,CAAC,EAAE,MAAM,KAAK,eAAe,UAAU;AAC3C,UAAM;AAAA,MACJ,YAAY,EAAE,mBAAmB,WAAW;AAAA,QAC1C;AACJ,UAAM,EAAE,QAAQ;AAChB,UAAM,gBAAgB,CAAC,CAAC,YAAY;AAEpC,UAAM,kBAAkB,8BACtB,CAAC,UAAkB,MAAyB;AAE1C,wBAAkB,EAAE,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;AAAA,IACrD,GACA,CAAC,mBAAmB,eAAe,GAAG,CACxC;AAEA,WACE,mDAAC,uBACC,mDAAC;AAAA,MACC,gBAAc;AAAA,MACd,iBAAe,aAAa,IAAI;AAAA,MAChC,OAAM;AAAA,MACN,cAAW;AAAA,MACX,SAAS;AAAA,MACT,UAAU;AAAA,MACV,eAAa,6BAAY;AAAA,MACzB,UAAU,aAAa,IAAI;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,OAAO;AAAA,MACP,UAAU,gBAAgB,IAAI;AAAA,KAChC,CACF;AAAA,EAEJ;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AACd;",
6
6
  "names": []
7
7
  }
@@ -35,11 +35,5 @@ var import_ColumnExpand = require("./ColumnExpand/ColumnExpand");
35
35
  var import_ColumnSelectMultiple = require("./ColumnSelectMultiple/ColumnSelectMultiple");
36
36
  var import_ColumnSelectSingle = require("./ColumnSelectSingle/ColumnSelectSingle");
37
37
  var import_ColumnDragHandle = require("./ColumnDragHandle/ColumnDragHandle");
38
- const INTERNAL_COLUMNS = [
39
- "rowActions",
40
- "expander",
41
- "multiSelecter",
42
- "singleSelecter",
43
- "dragHandleColumn"
44
- ];
38
+ const INTERNAL_COLUMNS = ["rowActions", "expander", "multiSelecter", "singleSelecter", "dragHandleColumn"];
45
39
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/addons/Columns/index.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export { actionColumn } from './ColumnAction/ColumnAction';\nexport { expandRowColumn } from './ColumnExpand/ColumnExpand';\nexport { multiSelectColumn } from './ColumnSelectMultiple/ColumnSelectMultiple';\nexport { singleSelectColumn } from './ColumnSelectSingle/ColumnSelectSingle';\nexport { dragHandleColumn } from './ColumnDragHandle/ColumnDragHandle';\n\nexport const INTERNAL_COLUMNS = [\n 'rowActions',\n 'expander',\n 'multiSelecter',\n 'singleSelecter',\n 'dragHandleColumn',\n];\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,0BAA6B;AAC7B,0BAAgC;AAChC,kCAAkC;AAClC,gCAAmC;AACnC,8BAAiC;AAE1B,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
4
+ "sourcesContent": ["export { actionColumn } from './ColumnAction/ColumnAction';\nexport { expandRowColumn } from './ColumnExpand/ColumnExpand';\nexport { multiSelectColumn } from './ColumnSelectMultiple/ColumnSelectMultiple';\nexport { singleSelectColumn } from './ColumnSelectSingle/ColumnSelectSingle';\nexport { dragHandleColumn } from './ColumnDragHandle/ColumnDragHandle';\n\nexport const INTERNAL_COLUMNS = ['rowActions', 'expander', 'multiSelecter', 'singleSelecter', 'dragHandleColumn'];\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,0BAA6B;AAC7B,0BAAgC;AAChC,kCAAkC;AAClC,gCAAmC;AACnC,8BAAiC;AAE1B,MAAM,mBAAmB,CAAC,cAAc,YAAY,iBAAiB,kBAAkB,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -32,7 +32,6 @@ var import_ds_form_layout_blocks = require("@elliemae/ds-form-layout-blocks");
32
32
  var import_ds_icons = require("@elliemae/ds-icons");
33
33
  var import_exported_related = require("../../../../exported-related");
34
34
  var import_constants = require("../../../../configs/constants");
35
- var import_DataTableContext = __toESM(require("../../../../DataTableContext"));
36
35
  const opts = {
37
36
  prefix: "",
38
37
  suffix: "",
@@ -43,8 +42,7 @@ const opts = {
43
42
  allowNegative: true
44
43
  };
45
44
  const CurrencyRangeFilter = (props) => {
46
- const { column, filterValue = { from: null, to: null }, reduxHeader, onValueChange, innerRef } = props;
47
- const { patchHeader } = (0, import_react.useContext)(import_DataTableContext.default);
45
+ const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;
48
46
  const handleFromChange = (e) => {
49
47
  const nextValue = {
50
48
  ...filterValue,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/CurrencyRangeFilter/index.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\nimport DataTableContext from '../../../../DataTableContext';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: true,\n decimalLimit: 2,\n includeThousandsSeparator: false,\n requireDecimal: true,\n allowNegative: true,\n};\n\nexport const CurrencyRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, onValueChange, innerRef } = props;\n\n const { patchHeader } = useContext(DataTableContext);\n\n const handleFromChange = (e) => {\n const nextValue = {\n ...filterValue,\n from: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const nextValue = {\n ...filterValue,\n to: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n\n const idPreffix = 'datatable-currency-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_CURRENCY_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Min\" inputID={`${idPreffix}-min-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-min-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n autoFocus\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"Max\" inputID={`${idPreffix}-max-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-max-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Currency Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AACrB,qBAAwC;AACxC,mCAAsC;AACtC,sBAA6B;AAC7B,8BAA4C;AAE5C,uBAA4B;AAC5B,8BAA6B;AAE7B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,sBAAwD,CAAC,UAAU;AAC9E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,eAAe,aAAa;AAEjG,QAAM,EAAE,gBAAgB,6BAAW,+BAAgB;AAEnD,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,EAAE,OAAO;AAAA,IACjB;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,IAAI,EAAE,OAAO;AAAA,IACf;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,YAAY;AAClB,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,OAE7B,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,MAC/B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAS;AAAA,MACT,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,GACA,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,CACF;AAAA,IAEF,aAAa,mDAAC,kCAAa;AAAA,IAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,IACjE;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: true,\n decimalLimit: 2,\n includeThousandsSeparator: false,\n requireDecimal: true,\n allowNegative: true,\n};\n\nexport const CurrencyRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const nextValue = {\n ...filterValue,\n from: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const nextValue = {\n ...filterValue,\n to: e.target.value,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n\n const idPreffix = 'datatable-currency-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_CURRENCY_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Min\" inputID={`${idPreffix}-min-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-min-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n autoFocus\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"Max\" inputID={`${idPreffix}-max-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-max-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0.00\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Currency Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,qBAAqB;AACrB,qBAAwC;AACxC,mCAAsC;AACtC,sBAA6B;AAC7B,8BAA4C;AAE5C,uBAA4B;AAE5B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,sBAAwD,CAAC,UAAU;AAC9E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,aAAa,eAAe,aAAa;AAE9G,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,EAAE,OAAO;AAAA,IACjB;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,IAAI,EAAE,OAAO;AAAA,IACf;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,YAAY;AAClB,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,OAE7B,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,MAC/B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAS;AAAA,MACT,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,GACA,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,CACF;AAAA,IAEF,aAAa,mDAAC,kCAAa;AAAA,IAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,IACjE;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -32,7 +32,6 @@ var import_ds_form_layout_blocks = require("@elliemae/ds-form-layout-blocks");
32
32
  var import_ds_icons = require("@elliemae/ds-icons");
33
33
  var import_exported_related = require("../../../../exported-related");
34
34
  var import_constants = require("../../../../configs/constants");
35
- var import_DataTableContext = __toESM(require("../../../../DataTableContext"));
36
35
  const opts = {
37
36
  prefix: "",
38
37
  suffix: "",
@@ -42,8 +41,7 @@ const opts = {
42
41
  allowNegative: true
43
42
  };
44
43
  const NumberRangeFilter = (props) => {
45
- const { column, filterValue = { from: null, to: null }, reduxHeader, onValueChange, innerRef } = props;
46
- const { patchHeader } = (0, import_react.useContext)(import_DataTableContext.default);
44
+ const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;
47
45
  const handleFromChange = (e) => {
48
46
  const from = e.target.value !== "" ? parseInt(e.target.value, 10) : "";
49
47
  const nextValue = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/NumberRangeFilter/index.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\nimport DataTableContext from '../../../../DataTableContext';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, onValueChange, innerRef } = props;\n\n const { patchHeader } = useContext(DataTableContext);\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n autoFocus\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AACrB,qBAAwC;AACxC,mCAAsC;AACtC,sBAA6B;AAC7B,8BAA4C;AAE5C,uBAA4B;AAC5B,8BAA6B;AAE7B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,oBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,eAAe,aAAa;AAEjG,QAAM,EAAE,gBAAgB,6BAAW,+BAAgB;AAEnD,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,OAAO,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AACpE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,KAAK,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AAClE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAM,YAAY;AAClB,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,OAE7B,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,MAC/B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAS;AAAA,MACT,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,GACA,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAO,SAAS,GAAG,kBAAkB,OAAO;AAAA,OACvE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,kBAAkB,OAAO;AAAA,MAChC,OAAO,GAAG,aAAa,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,CACF;AAAA,IAEF,aAAa,mDAAC,kCAAa;AAAA,IAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,IACjE;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n autoFocus\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,qBAAqB;AACrB,qBAAwC;AACxC,mCAAsC;AACtC,sBAA6B;AAC7B,8BAA4C;AAE5C,uBAA4B;AAE5B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,oBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,aAAa,eAAe,aAAa;AAE9G,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,OAAO,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AACpE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,KAAK,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AAClE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAM,YAAY;AAClB,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,OAE7B,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,MAC/B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAS;AAAA,MACT,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,GACA,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAO,SAAS,GAAG,kBAAkB,OAAO;AAAA,OACvE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,kBAAkB,OAAO;AAAA,MAChC,OAAO,GAAG,aAAa,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,CACF;AAAA,IAEF,aAAa,mDAAC,kCAAa;AAAA,IAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,IACjE;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -29,13 +29,14 @@ var import_react = __toESM(require("react"));
29
29
  var import_ds_grid = require("@elliemae/ds-grid");
30
30
  var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
31
31
  var import_ds_icons = require("@elliemae/ds-icons");
32
+ var import_uid = require("uid");
32
33
  var import_exported_related = require("../../../../exported-related");
33
34
  var import_configs = require("../../../../configs");
34
- var import_DataTableContext = __toESM(require("../../../../DataTableContext"));
35
35
  const BaseSelectFilter = (props) => {
36
36
  const {
37
37
  isMulti = false,
38
38
  selectedItems = null,
39
+ creatable = false,
39
40
  column,
40
41
  type,
41
42
  column: { id, filterOptions: userFilterOptions, filterMinWidth },
@@ -43,10 +44,10 @@ const BaseSelectFilter = (props) => {
43
44
  tableProps: { data }
44
45
  },
45
46
  reduxHeader,
47
+ patchHeaderFilterButtonAndMenu,
46
48
  innerRef,
47
49
  onValueChange
48
50
  } = props;
49
- const { patchHeaderFilterButtonAndMenu } = (0, import_react.useContext)(import_DataTableContext.default);
50
51
  const filterOptions = (0, import_react.useMemo)(() => {
51
52
  if (!userFilterOptions) {
52
53
  const automaticFilters = [
@@ -63,12 +64,30 @@ const BaseSelectFilter = (props) => {
63
64
  return userFilterOptions;
64
65
  return userFilterOptions();
65
66
  }, [data, id, userFilterOptions]);
67
+ const [filters, setFilteredOptions] = (0, import_react.useState)(filterOptions);
66
68
  const handleOnChange = (value) => {
67
69
  onValueChange(type, value);
68
70
  if (!isMulti)
69
71
  patchHeaderFilterButtonAndMenu(column.id, true);
70
72
  };
71
- const [filters, setFilteredOptions] = (0, import_react.useState)(filterOptions);
73
+ const handleOnCreate = (label) => {
74
+ if (label.trim() === "") {
75
+ return;
76
+ }
77
+ if (filterOptions.some((item) => item.label === label)) {
78
+ return;
79
+ }
80
+ const newId = (0, import_uid.uid)();
81
+ const newItem = {
82
+ dsId: newId,
83
+ value: newId,
84
+ label,
85
+ type: "option"
86
+ };
87
+ filterOptions.unshift(newItem);
88
+ handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);
89
+ setFilteredOptions(filterOptions);
90
+ };
72
91
  (0, import_react.useEffect)(() => {
73
92
  setFilteredOptions(filterOptions);
74
93
  }, [filterOptions]);
@@ -79,6 +98,7 @@ const BaseSelectFilter = (props) => {
79
98
  inline: true,
80
99
  autoFocus: true,
81
100
  allOptions: filterOptions,
101
+ onCreate: creatable ? handleOnCreate : void 0,
82
102
  filteredOptions: filters,
83
103
  onChange: handleOnChange,
84
104
  selectedValues: selectedItems,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/BaseSelectFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useState, useEffect, useMemo, useCallback, useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\nimport DataTableContext from '../../../../DataTableContext';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isSingle?: boolean;\n isMulti?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n innerRef,\n onValueChange,\n } = props;\n\n const { patchHeaderFilterButtonAndMenu } = useContext(DataTableContext);\n\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const handleOnChange = (value) => {\n onValueChange(type, value);\n if (!isMulti) patchHeaderFilterButtonAndMenu(column.id, true);\n };\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n useEffect(() => {\n setFilteredOptions(filterOptions);\n }, [filterOptions]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n autoFocus\n allOptions={filterOptions}\n filteredOptions={filters}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n onFilter={setFilteredOptions}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA6E;AAC7E,qBAAqB;AACrB,gCAA2B;AAC3B,sBAA6B;AAC7B,8BAA8B;AAE9B,qBAA4B;AAC5B,8BAA6B;AAgBtB,MAAM,mBAAuE,CAAC,UAAU;AAC7F,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA,QAAQ,EAAE,IAAI,eAAe,mBAAmB;AAAA,IAChD,KAAK;AAAA,MACH,YAAY,EAAE;AAAA;AAAA,IAEhB;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,EAAE,mCAAmC,6BAAW,+BAAgB;AAEtE,QAAM,gBAAiC,0BAAQ,MAAM;AAEnD,QAAI,CAAC,mBAAmB;AACtB,YAAM,mBAAmB;AAAA,QACvB,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,QAAQ,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC,QAAQ,QAAQ,MAAS,CAAC;AAAA,MAC5F,EAAE,IAAI,CAAC,SAAU;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT,EAAE;AAEF,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,QAAQ,iBAAiB;AAAG,aAAO;AAE7C,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC;AAEhC,QAAM,iBAAiB,CAAC,UAAU;AAChC,kBAAc,MAAM,KAAK;AACzB,QAAI,CAAC;AAAS,qCAA+B,OAAO,IAAI,IAAI;AAAA,EAC9D;AAEA,QAAM,CAAC,SAAS,sBAAsB,2BAAS,aAAa;AAE5D,8BAAU,MAAM;AACd,uBAAmB,aAAa;AAAA,EAClC,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,SACJ,mDAAC;AAAA,IACC,eACE,UAAU,2BAAY,oCAAoC,2BAAY;AAAA,IAExE,OAAO,EAAE,YAAY,QAAQ,UAAU,YAAY,OAAO,kBAAkB,OAAO,KAAK,SAAS,YAAY;AAAA,KAE7G,mDAAC;AAAA,IACC,QAAM;AAAA,IACN,WAAS;AAAA,IACT,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,eAAe;AAAA,GACjB,CACF;AAGF,QAAM,uBAAuB,MAAM;AACjC,uBAAmB,aAAa;AAAA,EAClC;AACA,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,aAAa,mDAAC,kCAAa;AAAA,IAC3B;AAAA,IACA,WAAU;AAAA,IACV,oBAAoB;AAAA,GACtB;AAEJ;",
4
+ "sourcesContent": ["import React, { useState, useEffect, useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { uid } from 'uid';\nimport { FilterPopover } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isMulti?: boolean;\n creatable?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n creatable = false,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n onValueChange,\n } = props;\n\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n const handleOnChange = (value) => {\n onValueChange(type, value);\n if (!isMulti) patchHeaderFilterButtonAndMenu(column.id, true);\n };\n\n const handleOnCreate = (label: string) => {\n if (label.trim() === '') {\n return;\n }\n if (filterOptions.some((item) => item.label === label)) {\n return;\n }\n const newId = uid();\n const newItem = {\n dsId: newId,\n value: newId,\n label,\n type: 'option',\n };\n filterOptions.unshift(newItem);\n handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);\n setFilteredOptions(filterOptions);\n };\n\n useEffect(() => {\n setFilteredOptions(filterOptions);\n }, [filterOptions]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n autoFocus\n allOptions={filterOptions}\n onCreate={creatable ? handleOnCreate : undefined}\n filteredOptions={filters}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n onFilter={setFilteredOptions}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAoD;AACpD,qBAAqB;AACrB,gCAA2B;AAC3B,sBAA6B;AAC7B,iBAAoB;AACpB,8BAA8B;AAE9B,qBAA4B;AAgBrB,MAAM,mBAAuE,CAAC,UAAU;AAC7F,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,QAAQ,EAAE,IAAI,eAAe,mBAAmB;AAAA,IAChD,KAAK;AAAA,MACH,YAAY,EAAE;AAAA;AAAA,IAEhB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,gBAAiC,0BAAQ,MAAM;AAEnD,QAAI,CAAC,mBAAmB;AACtB,YAAM,mBAAmB;AAAA,QACvB,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,QAAQ,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC,QAAQ,QAAQ,MAAS,CAAC;AAAA,MAC5F,EAAE,IAAI,CAAC,SAAU;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT,EAAE;AAEF,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,QAAQ,iBAAiB;AAAG,aAAO;AAE7C,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC;AAEhC,QAAM,CAAC,SAAS,sBAAsB,2BAAS,aAAa;AAE5D,QAAM,iBAAiB,CAAC,UAAU;AAChC,kBAAc,MAAM,KAAK;AACzB,QAAI,CAAC;AAAS,qCAA+B,OAAO,IAAI,IAAI;AAAA,EAC9D;AAEA,QAAM,iBAAiB,CAAC,UAAkB;AACxC,QAAI,MAAM,KAAK,MAAM,IAAI;AACvB;AAAA,IACF;AACA,QAAI,cAAc,KAAK,CAAC,SAAS,KAAK,UAAU,KAAK,GAAG;AACtD;AAAA,IACF;AACA,UAAM,QAAQ,oBAAI;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,MACA,MAAM;AAAA,IACR;AACA,kBAAc,QAAQ,OAAO;AAC7B,mBAAe,MAAM,QAAQ,aAAa,IAAI,CAAC,GAAG,eAAe,OAAO,IAAI,OAAO;AACnF,uBAAmB,aAAa;AAAA,EAClC;AAEA,8BAAU,MAAM;AACd,uBAAmB,aAAa;AAAA,EAClC,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,SACJ,mDAAC;AAAA,IACC,eACE,UAAU,2BAAY,oCAAoC,2BAAY;AAAA,IAExE,OAAO,EAAE,YAAY,QAAQ,UAAU,YAAY,OAAO,kBAAkB,OAAO,KAAK,SAAS,YAAY;AAAA,KAE7G,mDAAC;AAAA,IACC,QAAM;AAAA,IACN,WAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU,YAAY,iBAAiB;AAAA,IACvC,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,eAAe;AAAA,GACjB,CACF;AAGF,QAAM,uBAAuB,MAAM;AACjC,uBAAmB,aAAa;AAAA,EAClC;AACA,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,aAAa,mDAAC,kCAAa;AAAA,IAC3B;AAAA,IACA,WAAU;AAAA,IACV,oBAAoB;AAAA,GACtB;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var MultiCreatableFilter_exports = {};
23
+ __export(MultiCreatableFilter_exports, {
24
+ MultiCreatableFilter: () => MultiCreatableFilter
25
+ });
26
+ module.exports = __toCommonJS(MultiCreatableFilter_exports);
27
+ var React = __toESM(require("react"));
28
+ var import_react = __toESM(require("react"));
29
+ var import_BaseSelectFilter = require("./BaseSelectFilter");
30
+ var import_exported_related = require("../../../../exported-related");
31
+ var import_constants = require("../../../../configs/constants");
32
+ const MultiCreatableFilter = ({
33
+ column,
34
+ ctx,
35
+ onValueChange,
36
+ patchHeaderFilterButtonAndMenu,
37
+ patchHeader,
38
+ reduxHeader,
39
+ filterValue,
40
+ innerRef
41
+ }) => /* @__PURE__ */ import_react.default.createElement(import_BaseSelectFilter.BaseSelectFilter, {
42
+ creatable: true,
43
+ reduxHeader,
44
+ "data-testid": import_constants.DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER,
45
+ isMulti: true,
46
+ column,
47
+ ctx,
48
+ selectedItems: filterValue ?? [],
49
+ type: import_exported_related.FILTER_TYPES.MULTI_SELECT,
50
+ onValueChange,
51
+ patchHeaderFilterButtonAndMenu,
52
+ patchHeader,
53
+ innerRef
54
+ });
55
+ //# sourceMappingURL=MultiCreatableFilter.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/MultiCreatableFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport { FilterProps } from '../../../../types/props';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const MultiCreatableFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n ctx={ctx}\n selectedItems={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,uBAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC,WAAS;AAAA,EACT;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,SAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,eAAe,eAAe,CAAC;AAAA,EAC/B,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
6
+ "names": []
7
+ }
@@ -19,22 +19,36 @@ var __copyProps = (to, from, except, desc) => {
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var utils_exports = {};
23
- __export(utils_exports, {
24
- focusNextMenuItem: () => focusNextMenuItem,
25
- focusPrevMenuItem: () => focusPrevMenuItem
22
+ var SingleCreatableFilter_exports = {};
23
+ __export(SingleCreatableFilter_exports, {
24
+ SingleCreatableFilter: () => SingleCreatableFilter
26
25
  });
27
- module.exports = __toCommonJS(utils_exports);
26
+ module.exports = __toCommonJS(SingleCreatableFilter_exports);
28
27
  var React = __toESM(require("react"));
28
+ var import_react = __toESM(require("react"));
29
+ var import_BaseSelectFilter = require("./BaseSelectFilter");
30
+ var import_exported_related = require("../../../../exported-related");
29
31
  var import_constants = require("../../../../configs/constants");
30
- const focusNextMenuItem = (e, index) => {
31
- e.preventDefault();
32
- const menuItems = document.querySelectorAll(`[data-testid="${import_constants.DATA_TESTID.DATA_TABLE_SELECT_MENU_ITEM}"]`);
33
- menuItems.item(index + 1)?.focus();
34
- };
35
- const focusPrevMenuItem = (e, index) => {
36
- e.preventDefault();
37
- const menuItems = document.querySelectorAll(`[data-testid="${import_constants.DATA_TESTID.DATA_TABLE_SELECT_MENU_ITEM}"]`);
38
- menuItems.item(index - 1)?.focus();
39
- };
40
- //# sourceMappingURL=utils.js.map
32
+ const SingleCreatableFilter = ({
33
+ column,
34
+ ctx,
35
+ patchHeaderFilterButtonAndMenu,
36
+ patchHeader,
37
+ onValueChange,
38
+ filterValue,
39
+ reduxHeader,
40
+ innerRef
41
+ }) => /* @__PURE__ */ import_react.default.createElement(import_BaseSelectFilter.BaseSelectFilter, {
42
+ creatable: true,
43
+ reduxHeader,
44
+ "data-testid": import_constants.DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER,
45
+ column,
46
+ ctx,
47
+ selectedItems: filterValue,
48
+ type: import_exported_related.FILTER_TYPES.SELECT,
49
+ onValueChange,
50
+ patchHeaderFilterButtonAndMenu,
51
+ patchHeader,
52
+ innerRef
53
+ });
54
+ //# sourceMappingURL=SingleCreatableFilter.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/SingleCreatableFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FilterProps } from '../../../../types/props';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const SingleCreatableFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n ctx={ctx}\n selectedItems={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,8BAAiC;AAEjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,wBAA0D,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC,WAAS;AAAA,EACT;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
6
+ "names": []
7
+ }
@@ -41,7 +41,6 @@ const SingleSelectFilter = ({
41
41
  }) => /* @__PURE__ */ import_react.default.createElement(import_BaseSelectFilter.BaseSelectFilter, {
42
42
  reduxHeader,
43
43
  "data-testid": import_constants.DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER,
44
- isSingle: true,
45
44
  column,
46
45
  ctx,
47
46
  selectedItems: filterValue,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/SingleSelectFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FilterProps } from '../../../../types/props';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const SingleSelectFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n isSingle\n column={column}\n ctx={ctx}\n selectedItems={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,8BAAiC;AAEjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,qBAAuD,CAAC;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,UAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FilterProps } from '../../../../types/props';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const SingleSelectFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n ctx={ctx}\n selectedItems={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,8BAAiC;AAEjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,qBAAuD,CAAC;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
6
6
  "names": []
7
7
  }
@@ -26,4 +26,6 @@ __reExport(Components_exports, require("./CurrencyRangeFilter"), module.exports)
26
26
  __reExport(Components_exports, require("./SelectFilter/SingleSelectFilter"), module.exports);
27
27
  __reExport(Components_exports, require("./SelectFilter/MultiSelectFilter"), module.exports);
28
28
  __reExport(Components_exports, require("./SingleDateFilter"), module.exports);
29
+ __reExport(Components_exports, require("./SelectFilter/SingleCreatableFilter"), module.exports);
30
+ __reExport(Components_exports, require("./SelectFilter/MultiCreatableFilter"), module.exports);
29
31
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/addons/Filters/Components/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export * from './DateRangeFilter';\nexport * from './DateSwitcherFilter';\nexport * from './NumberRangeFilter';\nexport * from './CurrencyRangeFilter';\nexport * from './SelectFilter/SingleSelectFilter';\nexport * from './SelectFilter/MultiSelectFilter';\nexport * from './SingleDateFilter';\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAc,8BAAd;AACA,+BAAc,iCADd;AAEA,+BAAc,gCAFd;AAGA,+BAAc,kCAHd;AAIA,+BAAc,8CAJd;AAKA,+BAAc,6CALd;AAMA,+BAAc,+BANd;",
4
+ "sourcesContent": ["export * from './DateRangeFilter';\nexport * from './DateSwitcherFilter';\nexport * from './NumberRangeFilter';\nexport * from './CurrencyRangeFilter';\nexport * from './SelectFilter/SingleSelectFilter';\nexport * from './SelectFilter/MultiSelectFilter';\nexport * from './SingleDateFilter';\nexport * from './SelectFilter/SingleCreatableFilter';\nexport * from './SelectFilter/MultiCreatableFilter';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAc,8BAAd;AACA,+BAAc,iCADd;AAEA,+BAAc,gCAFd;AAGA,+BAAc,kCAHd;AAIA,+BAAc,8CAJd;AAKA,+BAAc,6CALd;AAMA,+BAAc,+BANd;AAOA,+BAAc,iDAPd;AAQA,+BAAc,gDARd;",
6
6
  "names": []
7
7
  }
@@ -34,7 +34,7 @@ const trueReturner = new Proxy({}, {
34
34
  const flatten = (data, expandedRows, uniqueRowAccessor, maxDepth = 0) => {
35
35
  const result = [];
36
36
  const doit = (row, index = 0, parentId = null, parentIndex = null, depth = 0) => {
37
- const id = (parentId ? `${parentId}.` : "") + index.toString();
37
+ const id = (parentId !== null ? `${parentId}.` : "") + index.toString();
38
38
  const uid = (0, import_getIdFromUniqueRowAccessor.getIdFromUniqueRowAccessor)(uniqueRowAccessor, {
39
39
  id,
40
40
  original: row ?? {}
@@ -51,7 +51,8 @@ const flatten = (data, expandedRows, uniqueRowAccessor, maxDepth = 0) => {
51
51
  isExpanded,
52
52
  subRows: row?.subRows ?? [],
53
53
  childrenCount: row?.subRows?.length ?? 0,
54
- original: row ?? {}
54
+ original: row ?? {},
55
+ cells: []
55
56
  };
56
57
  result.push(rowToPush);
57
58
  if (row?.subRows && expandedRows[uid] && depth <= maxDepth) {
@@ -63,7 +64,7 @@ const flatten = (data, expandedRows, uniqueRowAccessor, maxDepth = 0) => {
63
64
  };
64
65
  const useRowFlattenization = (props) => {
65
66
  const { data } = props;
66
- const expandedRows = props.isExpandable ? props.expandedRows : emptyObject;
67
+ const expandedRows = props.isExpandable ? props.expandedRows ?? emptyObject : emptyObject;
67
68
  const flattenedData = (0, import_react.useMemo)(() => flatten(data, expandedRows, props.uniqueRowAccessor), [data, expandedRows, props.uniqueRowAccessor]);
68
69
  const allDataFlattened = (0, import_react.useMemo)(() => flatten(data, trueReturner, props.uniqueRowAccessor, Infinity), [data, props.uniqueRowAccessor]);
69
70
  return [flattenedData, allDataFlattened];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/configs/useRowFlattenization.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-params */\nimport { useMemo } from 'react';\nimport { getIdFromUniqueRowAccessor } from '../helpers/getIdFromUniqueRowAccessor';\nimport { TypescriptProps, TypescriptRow, uniqueRowAccessorType } from '../types/props';\n\nconst emptyObject = {};\n\nconst trueReturner = new Proxy(\n {},\n {\n get: () => true,\n },\n);\n\nconst flatten = (\n data: TypescriptRow[],\n expandedRows: Record<string, boolean>,\n uniqueRowAccessor: uniqueRowAccessorType,\n maxDepth = 0,\n): TypescriptRow[] => {\n const result = [];\n const doit = (row: TypescriptRow, index = 0, parentId = null, parentIndex = null, depth = 0) => {\n const id = (parentId ? `${parentId}.` : '') + index.toString();\n\n const uid = getIdFromUniqueRowAccessor(uniqueRowAccessor, {\n id,\n original: row ?? {},\n });\n\n const isExpanded = expandedRows[uid];\n\n const rowToPush = {\n id,\n uid,\n index,\n realIndex: result.length,\n parentId,\n parentIndex,\n depth,\n isExpanded,\n subRows: row?.subRows ?? [],\n childrenCount: row?.subRows?.length ?? 0,\n original: row ?? {},\n };\n\n result.push(rowToPush);\n\n // If we have subrows and we are expanded\n if (row?.subRows && expandedRows[uid] && depth <= maxDepth) {\n row.subRows.forEach((subRow: TypescriptRow, i: number) => doit(subRow, i, uid, rowToPush.realIndex, depth + 1));\n }\n };\n\n data.forEach((row, i) => doit(row, i));\n return result;\n};\n\nexport const useRowFlattenization = (props: Partial<TypescriptProps>): [TypescriptRow[], TypescriptRow[]] => {\n const { data } = props;\n\n const expandedRows = props.isExpandable ? props.expandedRows : emptyObject;\n\n const flattenedData = useMemo(\n () => flatten(data, expandedRows, props.uniqueRowAccessor),\n [data, expandedRows, props.uniqueRowAccessor],\n );\n\n const allDataFlattened = useMemo(\n () => flatten(data, trueReturner, props.uniqueRowAccessor, Infinity),\n [data, props.uniqueRowAccessor],\n );\n\n return [flattenedData, allDataFlattened];\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAwB;AACxB,wCAA2C;AAG3C,MAAM,cAAc,CAAC;AAErB,MAAM,eAAe,IAAI,MACvB,CAAC,GACD;AAAA,EACE,KAAK,MAAM;AACb,CACF;AAEA,MAAM,UAAU,CACd,MACA,cACA,mBACA,WAAW,MACS;AACpB,QAAM,SAAS,CAAC;AAChB,QAAM,OAAO,CAAC,KAAoB,QAAQ,GAAG,WAAW,MAAM,cAAc,MAAM,QAAQ,MAAM;AAC9F,UAAM,KAAM,YAAW,GAAG,cAAc,MAAM,MAAM,SAAS;AAE7D,UAAM,MAAM,kEAA2B,mBAAmB;AAAA,MACxD;AAAA,MACA,UAAU,OAAO,CAAC;AAAA,IACpB,CAAC;AAED,UAAM,aAAa,aAAa;AAEhC,UAAM,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,OAAO;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,WAAW,CAAC;AAAA,MAC1B,eAAe,KAAK,SAAS,UAAU;AAAA,MACvC,UAAU,OAAO,CAAC;AAAA,IACpB;AAEA,WAAO,KAAK,SAAS;AAGrB,QAAI,KAAK,WAAW,aAAa,QAAQ,SAAS,UAAU;AAC1D,UAAI,QAAQ,QAAQ,CAAC,QAAuB,MAAc,KAAK,QAAQ,GAAG,KAAK,UAAU,WAAW,QAAQ,CAAC,CAAC;AAAA,IAChH;AAAA,EACF;AAEA,OAAK,QAAQ,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC;AACrC,SAAO;AACT;AAEO,MAAM,uBAAuB,CAAC,UAAwE;AAC3G,QAAM,EAAE,SAAS;AAEjB,QAAM,eAAe,MAAM,eAAe,MAAM,eAAe;AAE/D,QAAM,gBAAgB,0BACpB,MAAM,QAAQ,MAAM,cAAc,MAAM,iBAAiB,GACzD,CAAC,MAAM,cAAc,MAAM,iBAAiB,CAC9C;AAEA,QAAM,mBAAmB,0BACvB,MAAM,QAAQ,MAAM,cAAc,MAAM,mBAAmB,QAAQ,GACnE,CAAC,MAAM,MAAM,iBAAiB,CAChC;AAEA,SAAO,CAAC,eAAe,gBAAgB;AACzC;",
4
+ "sourcesContent": ["/* eslint-disable max-params */\nimport { useMemo } from 'react';\nimport { getIdFromUniqueRowAccessor } from '../helpers/getIdFromUniqueRowAccessor';\nimport { InternalTypescriptRow, TypescriptProps, TypescriptRow, UniqueRowAccessorType } from '../types/props';\n\nconst emptyObject = {};\n\nconst trueReturner = new Proxy(\n {},\n {\n get: () => true,\n },\n);\n\nconst flatten = (\n data: TypescriptRow[],\n expandedRows: Record<string, boolean>,\n uniqueRowAccessor: UniqueRowAccessorType,\n maxDepth = 0,\n): InternalTypescriptRow[] => {\n const result: InternalTypescriptRow[] = [];\n const doit = (\n row: TypescriptRow,\n index = 0,\n parentId: string | null = null,\n parentIndex: number | null = null,\n depth = 0,\n ) => {\n const id = (parentId !== null ? `${parentId}.` : '') + index.toString();\n\n const uid = getIdFromUniqueRowAccessor(uniqueRowAccessor, {\n id,\n original: row ?? {},\n });\n\n const isExpanded = expandedRows[uid];\n\n const rowToPush: InternalTypescriptRow = {\n id,\n uid,\n index,\n realIndex: result.length,\n parentId,\n parentIndex,\n depth,\n isExpanded,\n subRows: row?.subRows ?? [],\n childrenCount: row?.subRows?.length ?? 0,\n original: row ?? {},\n cells: [],\n };\n\n result.push(rowToPush);\n\n // If we have subrows and we are expanded\n if (row?.subRows && expandedRows[uid] && depth <= maxDepth) {\n row.subRows.forEach((subRow: TypescriptRow, i: number) => doit(subRow, i, uid, rowToPush.realIndex, depth + 1));\n }\n };\n\n data.forEach((row, i) => doit(row, i));\n return result;\n};\n\nexport const useRowFlattenization = (props: TypescriptProps): [InternalTypescriptRow[], InternalTypescriptRow[]] => {\n const { data } = props;\n\n const expandedRows = props.isExpandable ? props.expandedRows ?? emptyObject : emptyObject;\n\n const flattenedData = useMemo(\n () => flatten(data, expandedRows, props.uniqueRowAccessor),\n [data, expandedRows, props.uniqueRowAccessor],\n );\n\n const allDataFlattened = useMemo(\n () => flatten(data, trueReturner, props.uniqueRowAccessor, Infinity),\n [data, props.uniqueRowAccessor],\n );\n\n return [flattenedData, allDataFlattened];\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAwB;AACxB,wCAA2C;AAG3C,MAAM,cAAc,CAAC;AAErB,MAAM,eAAe,IAAI,MACvB,CAAC,GACD;AAAA,EACE,KAAK,MAAM;AACb,CACF;AAEA,MAAM,UAAU,CACd,MACA,cACA,mBACA,WAAW,MACiB;AAC5B,QAAM,SAAkC,CAAC;AACzC,QAAM,OAAO,CACX,KACA,QAAQ,GACR,WAA0B,MAC1B,cAA6B,MAC7B,QAAQ,MACL;AACH,UAAM,KAAM,cAAa,OAAO,GAAG,cAAc,MAAM,MAAM,SAAS;AAEtE,UAAM,MAAM,kEAA2B,mBAAmB;AAAA,MACxD;AAAA,MACA,UAAU,OAAO,CAAC;AAAA,IACpB,CAAC;AAED,UAAM,aAAa,aAAa;AAEhC,UAAM,YAAmC;AAAA,MACvC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,OAAO;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,WAAW,CAAC;AAAA,MAC1B,eAAe,KAAK,SAAS,UAAU;AAAA,MACvC,UAAU,OAAO,CAAC;AAAA,MAClB,OAAO,CAAC;AAAA,IACV;AAEA,WAAO,KAAK,SAAS;AAGrB,QAAI,KAAK,WAAW,aAAa,QAAQ,SAAS,UAAU;AAC1D,UAAI,QAAQ,QAAQ,CAAC,QAAuB,MAAc,KAAK,QAAQ,GAAG,KAAK,UAAU,WAAW,QAAQ,CAAC,CAAC;AAAA,IAChH;AAAA,EACF;AAEA,OAAK,QAAQ,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC;AACrC,SAAO;AACT;AAEO,MAAM,uBAAuB,CAAC,UAA+E;AAClH,QAAM,EAAE,SAAS;AAEjB,QAAM,eAAe,MAAM,eAAe,MAAM,gBAAgB,cAAc;AAE9E,QAAM,gBAAgB,0BACpB,MAAM,QAAQ,MAAM,cAAc,MAAM,iBAAiB,GACzD,CAAC,MAAM,cAAc,MAAM,iBAAiB,CAC9C;AAEA,QAAM,mBAAmB,0BACvB,MAAM,QAAQ,MAAM,cAAc,MAAM,mBAAmB,QAAQ,GACnE,CAAC,MAAM,MAAM,iBAAiB,CAChC;AAEA,SAAO,CAAC,eAAe,gBAAgB;AACzC;",
6
6
  "names": []
7
7
  }