@elliemae/ds-datagrids 1.61.10 → 1.61.13

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 (203) hide show
  1. package/cjs/DSDataGrid.js.map +1 -1
  2. package/cjs/DataGridImpl.js.map +1 -1
  3. package/cjs/PaginatedDataGrid.js.map +1 -1
  4. package/cjs/columns/IconColumn.js.map +1 -1
  5. package/cjs/columns/NumberColumn.js.map +1 -1
  6. package/cjs/components/BodyCell.js.map +1 -1
  7. package/cjs/components/BodyList.js.map +1 -1
  8. package/cjs/components/ColumnVisibilityMenuOption.js.map +1 -1
  9. package/cjs/components/ColumnsOptionsMenuSection.js.map +1 -1
  10. package/cjs/components/EmptyState.js.map +1 -1
  11. package/cjs/components/HeaderCell.js.map +1 -1
  12. package/cjs/components/List.js.map +1 -1
  13. package/cjs/components/ListItem.js.map +1 -1
  14. package/cjs/components/NoResults.js.map +1 -1
  15. package/cjs/components/RowsLoader.js.map +1 -1
  16. package/cjs/components/Table.js.map +1 -1
  17. package/cjs/components/TableBody.js.map +1 -1
  18. package/cjs/components/TableHeader.js.map +1 -1
  19. package/cjs/components/footer/addOptionalFooterComponents.js.map +1 -1
  20. package/cjs/components/header/PrimaryControls.js.map +1 -1
  21. package/cjs/components/header/addOptionalHeaderComponents.js.map +1 -1
  22. package/cjs/components/renderers/defaultClassedRenderers.js.map +1 -1
  23. package/cjs/components/renderers/renderRowsLoader.js.map +1 -1
  24. package/cjs/index-0be12eb8.js.map +1 -1
  25. package/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +1 -1
  26. package/cjs/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
  27. package/cjs/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
  28. package/cjs/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
  29. package/cjs/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
  30. package/cjs/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
  31. package/cjs/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
  32. package/cjs/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
  33. package/cjs/plugins/column-sizing/useColumnSizeService.js.map +1 -1
  34. package/cjs/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
  35. package/cjs/plugins/column-sizing/utils.js.map +1 -1
  36. package/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
  37. package/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
  38. package/cjs/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
  39. package/cjs/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
  40. package/cjs/plugins/editable/EditableComponents/TextBox.js.map +1 -1
  41. package/cjs/plugins/editable/EditablePlugin.js.map +1 -1
  42. package/cjs/plugins/editable/decorateEditable.js.map +1 -1
  43. package/cjs/plugins/editable/getEditorComponent.js.map +1 -1
  44. package/cjs/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
  45. package/cjs/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
  46. package/cjs/plugins/expandable-grid/ExpandedRow.js.map +1 -1
  47. package/cjs/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
  48. package/cjs/plugins/expandable-grid/useExpandGridState.js.map +1 -1
  49. package/cjs/plugins/export-data/ExportDataPlugin.js.map +1 -1
  50. package/cjs/plugins/filterable/FilterablePlugin.js.map +1 -1
  51. package/cjs/plugins/filterable/addFilterToColumn.js.map +1 -1
  52. package/cjs/plugins/filterable/components/FilterableHeader.js.map +1 -1
  53. package/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +1 -1
  54. package/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +1 -1
  55. package/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +1 -1
  56. package/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +1 -1
  57. package/cjs/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
  58. package/cjs/plugins/filterable/filterableFormatter.js.map +1 -1
  59. package/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
  60. package/cjs/plugins/filterable/filtering-helper/strategiesOperators.js.map +1 -1
  61. package/cjs/plugins/filterable/helper.js.map +1 -1
  62. package/cjs/plugins/filterable/useFilterableState.js.map +1 -1
  63. package/cjs/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
  64. package/cjs/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
  65. package/cjs/plugins/grouping-grid/walkStrategy.js.map +1 -1
  66. package/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
  67. package/cjs/plugins/pagination/PaginationPlugin.js.map +1 -1
  68. package/cjs/plugins/pagination/components/Pagination.js.map +1 -1
  69. package/cjs/plugins/pagination/components/Paginator.js.map +1 -1
  70. package/cjs/plugins/pagination/components/PerPageDropdown.js.map +1 -1
  71. package/cjs/plugins/pagination/helper.js.map +1 -1
  72. package/cjs/plugins/pagination/usePaginationState.js.map +1 -1
  73. package/cjs/plugins/resizable/ResizablePlugin.js.map +1 -1
  74. package/cjs/plugins/resizable/decorateResizable.js.map +1 -1
  75. package/cjs/plugins/resizable/useResizeHandle.js.map +1 -1
  76. package/cjs/plugins/resizable/utils.js.map +1 -1
  77. package/cjs/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
  78. package/cjs/plugins/selectable/SelectablePlugin.js.map +1 -1
  79. package/cjs/plugins/selectable/addSelectableColumn.js.map +1 -1
  80. package/cjs/plugins/selectable/helper.js.map +1 -1
  81. package/cjs/plugins/selectable/selectableFormatter.js.map +1 -1
  82. package/cjs/plugins/selectable/useSelectableState.js.map +1 -1
  83. package/cjs/plugins/sortable/SortablePlugin.js.map +1 -1
  84. package/cjs/plugins/sortable/checkIfSortable.js.map +1 -1
  85. package/cjs/plugins/sortable/sortHeaderFormatter.js.map +1 -1
  86. package/cjs/plugins/sortable/sortTree.js.map +1 -1
  87. package/cjs/plugins/sortable/sorter.js.map +1 -1
  88. package/cjs/plugins/sortable/useSortableState.js.map +1 -1
  89. package/cjs/plugins/toolbar/RowRenderer.js.map +1 -1
  90. package/cjs/plugins/toolbar/ToolbarPlugin.js.map +1 -1
  91. package/cjs/plugins/toolbar/ToolbarTrigger.js.map +1 -1
  92. package/cjs/plugins/virtualization/AutoHeightList.js.map +1 -1
  93. package/cjs/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
  94. package/cjs/plugins/virtualization/VirtualizedBody.js.map +1 -1
  95. package/cjs/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
  96. package/cjs/renders/CellWithAddons.js.map +1 -1
  97. package/cjs/renders/styled.js.map +1 -1
  98. package/cjs/rowSizes.js.map +1 -1
  99. package/cjs/utilities/getPluginsFromProps.js.map +1 -1
  100. package/cjs/utilities/getScrollbarSize.js.map +1 -1
  101. package/cjs/utilities/normalizeData.js.map +1 -1
  102. package/esm/DSDataGrid.js.map +1 -1
  103. package/esm/DataGridImpl.js.map +1 -1
  104. package/esm/PaginatedDataGrid.js.map +1 -1
  105. package/esm/columns/IconColumn.js.map +1 -1
  106. package/esm/columns/NumberColumn.js.map +1 -1
  107. package/esm/components/BodyCell.js.map +1 -1
  108. package/esm/components/BodyList.js.map +1 -1
  109. package/esm/components/ColumnVisibilityMenuOption.js.map +1 -1
  110. package/esm/components/ColumnsOptionsMenuSection.js.map +1 -1
  111. package/esm/components/EmptyState.js.map +1 -1
  112. package/esm/components/HeaderCell.js.map +1 -1
  113. package/esm/components/List.js.map +1 -1
  114. package/esm/components/ListItem.js.map +1 -1
  115. package/esm/components/NoResults.js.map +1 -1
  116. package/esm/components/RowsLoader.js.map +1 -1
  117. package/esm/components/Table.js.map +1 -1
  118. package/esm/components/TableBody.js.map +1 -1
  119. package/esm/components/TableHeader.js.map +1 -1
  120. package/esm/components/footer/addOptionalFooterComponents.js.map +1 -1
  121. package/esm/components/header/PrimaryControls.js.map +1 -1
  122. package/esm/components/header/addOptionalHeaderComponents.js.map +1 -1
  123. package/esm/components/renderers/defaultClassedRenderers.js.map +1 -1
  124. package/esm/components/renderers/renderRowsLoader.js.map +1 -1
  125. package/esm/index-afbbe9c8.js.map +1 -1
  126. package/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +1 -1
  127. package/esm/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
  128. package/esm/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
  129. package/esm/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
  130. package/esm/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
  131. package/esm/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
  132. package/esm/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
  133. package/esm/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
  134. package/esm/plugins/column-sizing/useColumnSizeService.js.map +1 -1
  135. package/esm/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
  136. package/esm/plugins/column-sizing/utils.js.map +1 -1
  137. package/esm/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
  138. package/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
  139. package/esm/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
  140. package/esm/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
  141. package/esm/plugins/editable/EditableComponents/TextBox.js.map +1 -1
  142. package/esm/plugins/editable/EditablePlugin.js.map +1 -1
  143. package/esm/plugins/editable/decorateEditable.js.map +1 -1
  144. package/esm/plugins/editable/getEditorComponent.js.map +1 -1
  145. package/esm/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
  146. package/esm/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
  147. package/esm/plugins/expandable-grid/ExpandedRow.js.map +1 -1
  148. package/esm/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
  149. package/esm/plugins/expandable-grid/useExpandGridState.js.map +1 -1
  150. package/esm/plugins/export-data/ExportDataPlugin.js.map +1 -1
  151. package/esm/plugins/filterable/FilterablePlugin.js.map +1 -1
  152. package/esm/plugins/filterable/addFilterToColumn.js.map +1 -1
  153. package/esm/plugins/filterable/components/FilterableHeader.js.map +1 -1
  154. package/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +1 -1
  155. package/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +1 -1
  156. package/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +1 -1
  157. package/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +1 -1
  158. package/esm/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
  159. package/esm/plugins/filterable/filterableFormatter.js.map +1 -1
  160. package/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
  161. package/esm/plugins/filterable/filtering-helper/strategiesOperators.js.map +1 -1
  162. package/esm/plugins/filterable/helper.js.map +1 -1
  163. package/esm/plugins/filterable/useFilterableState.js.map +1 -1
  164. package/esm/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
  165. package/esm/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
  166. package/esm/plugins/grouping-grid/walkStrategy.js.map +1 -1
  167. package/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
  168. package/esm/plugins/pagination/PaginationPlugin.js.map +1 -1
  169. package/esm/plugins/pagination/components/Pagination.js.map +1 -1
  170. package/esm/plugins/pagination/components/Paginator.js.map +1 -1
  171. package/esm/plugins/pagination/components/PerPageDropdown.js.map +1 -1
  172. package/esm/plugins/pagination/helper.js.map +1 -1
  173. package/esm/plugins/pagination/usePaginationState.js.map +1 -1
  174. package/esm/plugins/resizable/ResizablePlugin.js.map +1 -1
  175. package/esm/plugins/resizable/decorateResizable.js.map +1 -1
  176. package/esm/plugins/resizable/useResizeHandle.js.map +1 -1
  177. package/esm/plugins/resizable/utils.js.map +1 -1
  178. package/esm/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
  179. package/esm/plugins/selectable/SelectablePlugin.js.map +1 -1
  180. package/esm/plugins/selectable/addSelectableColumn.js.map +1 -1
  181. package/esm/plugins/selectable/helper.js.map +1 -1
  182. package/esm/plugins/selectable/selectableFormatter.js.map +1 -1
  183. package/esm/plugins/selectable/useSelectableState.js.map +1 -1
  184. package/esm/plugins/sortable/SortablePlugin.js.map +1 -1
  185. package/esm/plugins/sortable/checkIfSortable.js.map +1 -1
  186. package/esm/plugins/sortable/sortHeaderFormatter.js.map +1 -1
  187. package/esm/plugins/sortable/sortTree.js.map +1 -1
  188. package/esm/plugins/sortable/sorter.js.map +1 -1
  189. package/esm/plugins/sortable/useSortableState.js.map +1 -1
  190. package/esm/plugins/toolbar/RowRenderer.js.map +1 -1
  191. package/esm/plugins/toolbar/ToolbarPlugin.js.map +1 -1
  192. package/esm/plugins/toolbar/ToolbarTrigger.js.map +1 -1
  193. package/esm/plugins/virtualization/AutoHeightList.js.map +1 -1
  194. package/esm/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
  195. package/esm/plugins/virtualization/VirtualizedBody.js.map +1 -1
  196. package/esm/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
  197. package/esm/renders/CellWithAddons.js.map +1 -1
  198. package/esm/renders/styled.js.map +1 -1
  199. package/esm/rowSizes.js.map +1 -1
  200. package/esm/utilities/getPluginsFromProps.js.map +1 -1
  201. package/esm/utilities/getScrollbarSize.js.map +1 -1
  202. package/esm/utilities/normalizeData.js.map +1 -1
  203. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sources":["../../../../../src/plugins/editable/EditableComponents/ComboBox.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { DSComboBox } from '@elliemae/ds-form';\n\nexport default class ComboBox extends Component {\n static defaultProps = {\n onValue: () => null,\n };\n\n constructor(props) {\n super(props);\n this.state = { value: props.value };\n }\n\n handleChange(value) {\n const { onValue } = this.props;\n\n // some how this is executed before handleBlur, and handleBlur before the value is set\n // causing the value to be the same as the prevProp\n // todo: find a better solution to this\n setTimeout(() => onValue(value), 1);\n this.setState({ value });\n }\n\n handleBlur() {\n const { onValue } = this.props;\n const { value } = this.state;\n onValue(value);\n }\n\n render() {\n const { value } = this.state;\n return (\n <DSComboBox\n {...this.props}\n menuIsOpen\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onClick={(e) => e.stopPropagation()}\n value={value}\n />\n );\n }\n}\n"],"names":["ComboBox","props","state","value","onValue","setTimeout","setState","React","DSComboBox","handleBlur","handleChange","e","stopPropagation","Component","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAGqBA;;;;;AAKnB,oBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AAAEC,MAAAA,KAAK,EAAEF,KAAK,CAACE;AAAf,KAAb;AAFiB;AAAA;AAAA;AAGlB;;;;WAED,sBAAaA,KAAb,EAAoB;AAClB,UAAQC,OAAR,GAAoB,KAAKH,KAAzB,CAAQG,OAAR,CADkB;AAIlB;AACA;;AACAC,MAAAA,UAAU,CAAC;AAAA,eAAMD,OAAO,CAACD,KAAD,CAAb;AAAA,OAAD,EAAuB,CAAvB,CAAV;AACA,WAAKG,QAAL,CAAc;AAAEH,QAAAA,KAAK,EAALA;AAAF,OAAd;AACD;;;WAED,sBAAa;AACX,UAAQC,OAAR,GAAoB,KAAKH,KAAzB,CAAQG,OAAR;AACA,UAAQD,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;AACAC,MAAAA,OAAO,CAACD,KAAD,CAAP;AACD;;;WAED,kBAAS;AACP,UAAQA,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;AACA,0BACEI,wCAACC,iBAAD,mCACM,KAAKP,KADX;AAEE,QAAA,UAAU,MAFZ;AAGE,QAAA,MAAM,EAAE,KAAKQ,UAHf;AAIE,QAAA,QAAQ,EAAE,KAAKC,YAJjB;AAKE,QAAA,OAAO,EAAE,iBAACC,CAAD;AAAA,iBAAOA,CAAC,CAACC,eAAF,EAAP;AAAA,SALX;AAME,QAAA,KAAK,EAAET;AANT,SADF;AAUD;;;;EAtCmCU;;AAAjBb,SACZc,eAAe;AACpBV,EAAAA,OAAO,EAAE;AAAA,WAAM,IAAN;AAAA;AADW;;;;"}
1
+ {"version":3,"file":"ComboBox.js","sources":["../../../../../src/plugins/editable/EditableComponents/ComboBox.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { DSComboBox } from '@elliemae/ds-form';\n\nexport default class ComboBox extends Component {\n static defaultProps = {\n onValue: () => null,\n };\n\n constructor(props) {\n super(props);\n this.state = { value: props.value };\n }\n\n handleChange(value) {\n const { onValue } = this.props;\n\n // some how this is executed before handleBlur, and handleBlur before the value is set\n // causing the value to be the same as the prevProp\n // todo: find a better solution to this\n setTimeout(() => onValue(value), 1);\n this.setState({ value });\n }\n\n handleBlur() {\n const { onValue } = this.props;\n const { value } = this.state;\n onValue(value);\n }\n\n render() {\n const { value } = this.state;\n return (\n <DSComboBox\n {...this.props}\n menuIsOpen\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onClick={(e) => e.stopPropagation()}\n value={value}\n />\n );\n }\n}\n"],"names":["ComboBox","props","_classCallCheck","state","value","onValue","setTimeout","setState","React","DSComboBox","handleBlur","handleChange","e","stopPropagation","Component","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAGqBA;;;;;EAKnB,kBAAYC,KAAZ,EAAmB;IAAA;;IAAAC;;IACjB,0BAAMD,KAAN;IACA,MAAKE,KAAL,GAAa;MAAEC,KAAK,EAAEH,KAAK,CAACG;KAA5B;IAFiB;IAAA;IAAA;;;;;WAKnB,sBAAaA,KAAb,EAAoB;MAClB,IAAQC,OAAR,GAAoB,KAAKJ,KAAzB,CAAQI,OAAR,CADkB;;;;MAMlBC,UAAU,CAAC;QAAA,OAAMD,OAAO,CAACD,KAAD,CAAb;OAAD,EAAuB,CAAvB,CAAV;MACA,KAAKG,QAAL,CAAc;QAAEH,KAAK,EAALA;OAAhB;;;;WAGF,sBAAa;MACX,IAAQC,OAAR,GAAoB,KAAKJ,KAAzB,CAAQI,OAAR;MACA,IAAQD,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;MACAC,OAAO,CAACD,KAAD,CAAP;;;;WAGF,kBAAS;MACP,IAAQA,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;MACA,oBACEI,wCAACC,iBAAD,mCACM,KAAKR,KADX;QAEE,UAAU,MAFZ;QAGE,MAAM,EAAE,KAAKS,UAHf;QAIE,QAAQ,EAAE,KAAKC,YAJjB;QAKE,OAAO,EAAE,iBAACC,CAAD;UAAA,OAAOA,CAAC,CAACC,eAAF,EAAP;SALX;QAME,KAAK,EAAET;SAPX;;;;;EA5BkCU;;AAAjBd,SACZe,eAAe;EACpBV,OAAO,EAAE;IAAA,OAAM,IAAN;;AADW;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextBox.js","sources":["../../../../../src/plugins/editable/EditableComponents/TextBox.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable react/static-property-placement */\nimport React, { Component } from 'react';\nimport { DSTextBox } from '@elliemae/ds-form';\n\n// todo: redo with hooks\nexport default class TextBox extends Component {\n static defaultProps = {\n onValue: () => null,\n };\n\n constructor(props) {\n super(props);\n this.inputRef = React.createRef();\n this.state = { value: props.value };\n }\n\n componentDidMount() {\n setTimeout(() => {\n if (this.inputRef && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }, 50);\n }\n\n handleKeyUp({ key, target: { value } }) {\n const { onValue } = this.props;\n if (key === 'Enter') {\n onValue(value);\n }\n }\n\n handleKeyDown(e) {\n // PUI-2553 prevent form submit on `Enter` keypress\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n }\n\n handleBlur(e) {\n const { onValue } = this.props;\n const {\n target: { value },\n } = e;\n onValue(value);\n }\n\n handleChange({ target: { value } }) {\n this.setState({ value });\n }\n\n render() {\n const { value } = this.state;\n return (\n <DSTextBox\n data-testid=\"ds-datagrids-editable-text-box\"\n {...this.props}\n innerRef={this.inputRef}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onClick={(e) => e.stopPropagation()}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n value={value}\n />\n );\n }\n}\n"],"names":["TextBox","props","inputRef","React","createRef","state","value","setTimeout","current","focus","key","target","onValue","e","preventDefault","setState","DSTextBox","handleBlur","handleChange","stopPropagation","handleKeyUp","handleKeyDown","Component","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAMqBA;;;;;AAKnB,mBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;AACA,UAAKC,QAAL,gBAAgBC,yBAAK,CAACC,SAAN,EAAhB;AACA,UAAKC,KAAL,GAAa;AAAEC,MAAAA,KAAK,EAAEL,KAAK,CAACK;AAAf,KAAb;AAHiB;AAAA;AAAA;AAAA;AAAA;AAIlB;;;;WAED,6BAAoB;AAAA;;AAClBC,MAAAA,UAAU,CAAC,YAAM;AACf,YAAI,MAAI,CAACL,QAAL,IAAiB,MAAI,CAACA,QAAL,CAAcM,OAAnC,EAA4C;AAC1C,UAAA,MAAI,CAACN,QAAL,CAAcM,OAAd,CAAsBC,KAAtB;AACD;AACF,OAJS,EAIP,EAJO,CAAV;AAKD;;;WAED,2BAAwC;AAAA,UAA1BC,GAA0B,QAA1BA,GAA0B;AAAA,UAAXJ,KAAW,QAArBK,MAAqB,CAAXL,KAAW;AACtC,UAAQM,OAAR,GAAoB,KAAKX,KAAzB,CAAQW,OAAR;;AACA,UAAIF,GAAG,KAAK,OAAZ,EAAqB;AACnBE,QAAAA,OAAO,CAACN,KAAD,CAAP;AACD;AACF;;;WAED,uBAAcO,CAAd,EAAiB;AACf;AACA,UAAIA,CAAC,CAACH,GAAF,KAAU,OAAd,EAAuB;AACrBG,QAAAA,CAAC,CAACC,cAAF;AACD;AACF;;;WAED,oBAAWD,CAAX,EAAc;AACZ,UAAQD,OAAR,GAAoB,KAAKX,KAAzB,CAAQW,OAAR;AACA,UACYN,KADZ,GAEIO,CAFJ,CACEF,MADF,CACYL,KADZ;AAGAM,MAAAA,OAAO,CAACN,KAAD,CAAP;AACD;;;WAED,6BAAoC;AAAA,UAAXA,KAAW,SAArBK,MAAqB,CAAXL,KAAW;AAClC,WAAKS,QAAL,CAAc;AAAET,QAAAA,KAAK,EAALA;AAAF,OAAd;AACD;;;WAED,kBAAS;AACP,UAAQA,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;AACA,0BACEH,wCAACa,gBAAD;AACE,uBAAY;AADd,SAEM,KAAKf,KAFX;AAGE,QAAA,QAAQ,EAAE,KAAKC,QAHjB;AAIE,QAAA,MAAM,EAAE,KAAKe,UAJf;AAKE,QAAA,QAAQ,EAAE,KAAKC,YALjB;AAME,QAAA,OAAO,EAAE,iBAACL,CAAD;AAAA,iBAAOA,CAAC,CAACM,eAAF,EAAP;AAAA,SANX;AAOE,QAAA,OAAO,EAAE,KAAKC,WAPhB;AAQE,QAAA,SAAS,EAAE,KAAKC,aARlB;AASE,QAAA,KAAK,EAAEf;AATT,SADF;AAaD;;;;EA5DkCgB;;AAAhBtB,QACZuB,eAAe;AACpBX,EAAAA,OAAO,EAAE;AAAA,WAAM,IAAN;AAAA;AADW;;;;"}
1
+ {"version":3,"file":"TextBox.js","sources":["../../../../../src/plugins/editable/EditableComponents/TextBox.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable react/static-property-placement */\nimport React, { Component } from 'react';\nimport { DSTextBox } from '@elliemae/ds-form';\n\n// todo: redo with hooks\nexport default class TextBox extends Component {\n static defaultProps = {\n onValue: () => null,\n };\n\n constructor(props) {\n super(props);\n this.inputRef = React.createRef();\n this.state = { value: props.value };\n }\n\n componentDidMount() {\n setTimeout(() => {\n if (this.inputRef && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n }, 50);\n }\n\n handleKeyUp({ key, target: { value } }) {\n const { onValue } = this.props;\n if (key === 'Enter') {\n onValue(value);\n }\n }\n\n handleKeyDown(e) {\n // PUI-2553 prevent form submit on `Enter` keypress\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n }\n\n handleBlur(e) {\n const { onValue } = this.props;\n const {\n target: { value },\n } = e;\n onValue(value);\n }\n\n handleChange({ target: { value } }) {\n this.setState({ value });\n }\n\n render() {\n const { value } = this.state;\n return (\n <DSTextBox\n data-testid=\"ds-datagrids-editable-text-box\"\n {...this.props}\n innerRef={this.inputRef}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onClick={(e) => e.stopPropagation()}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n value={value}\n />\n );\n }\n}\n"],"names":["TextBox","props","_classCallCheck","inputRef","React","createRef","state","value","setTimeout","current","focus","key","target","onValue","e","preventDefault","setState","DSTextBox","handleBlur","handleChange","stopPropagation","handleKeyUp","handleKeyDown","Component","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAMqBA;;;;;EAKnB,iBAAYC,KAAZ,EAAmB;IAAA;;IAAAC;;IACjB,0BAAMD,KAAN;IACA,MAAKE,QAAL,gBAAgBC,yBAAK,CAACC,SAAN,EAAhB;IACA,MAAKC,KAAL,GAAa;MAAEC,KAAK,EAAEN,KAAK,CAACM;KAA5B;IAHiB;IAAA;IAAA;IAAA;IAAA;;;;;WAMnB,6BAAoB;MAAA;;MAClBC,UAAU,CAAC,YAAM;QACf,IAAI,MAAI,CAACL,QAAL,IAAiB,MAAI,CAACA,QAAL,CAAcM,OAAnC,EAA4C;UAC1C,MAAI,CAACN,QAAL,CAAcM,OAAd,CAAsBC,KAAtB;;OAFM,EAIP,EAJO,CAAV;;;;WAOF,2BAAwC;MAAA,IAA1BC,GAA0B,QAA1BA,GAA0B;UAAXJ,KAAW,QAArBK,MAAqB,CAAXL,KAAW;MACtC,IAAQM,OAAR,GAAoB,KAAKZ,KAAzB,CAAQY,OAAR;;MACA,IAAIF,GAAG,KAAK,OAAZ,EAAqB;QACnBE,OAAO,CAACN,KAAD,CAAP;;;;;WAIJ,uBAAcO,CAAd,EAAiB;;MAEf,IAAIA,CAAC,CAACH,GAAF,KAAU,OAAd,EAAuB;QACrBG,CAAC,CAACC,cAAF;;;;;WAIJ,oBAAWD,CAAX,EAAc;MACZ,IAAQD,OAAR,GAAoB,KAAKZ,KAAzB,CAAQY,OAAR;MACA,IACYN,KADZ,GAEIO,CAFJ,CACEF,MADF,CACYL,KADZ;MAGAM,OAAO,CAACN,KAAD,CAAP;;;;WAGF,6BAAoC;MAAA,IAAXA,KAAW,SAArBK,MAAqB,CAAXL,KAAW;MAClC,KAAKS,QAAL,CAAc;QAAET,KAAK,EAALA;OAAhB;;;;WAGF,kBAAS;MACP,IAAQA,KAAR,GAAkB,KAAKD,KAAvB,CAAQC,KAAR;MACA,oBACEH,wCAACa,gBAAD;QACE,eAAY;SACR,KAAKhB,KAFX;QAGE,QAAQ,EAAE,KAAKE,QAHjB;QAIE,MAAM,EAAE,KAAKe,UAJf;QAKE,QAAQ,EAAE,KAAKC,YALjB;QAME,OAAO,EAAE,iBAACL,CAAD;UAAA,OAAOA,CAAC,CAACM,eAAF,EAAP;SANX;QAOE,OAAO,EAAE,KAAKC,WAPhB;QAQE,SAAS,EAAE,KAAKC,aARlB;QASE,KAAK,EAAEf;SAVX;;;;;EA/CiCgB;;AAAhBvB,QACZwB,eAAe;EACpBX,OAAO,EAAE;IAAA,OAAM,IAAN;;AADW;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditablePlugin.js","sources":["../../../../src/plugins/editable/EditablePlugin.tsx"],"sourcesContent":["import { useDerivedStateFromProps, toggleInObject } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { addEditableToCell, makeEditableConfig } from './decorateEditable';\n\nconst registerStateHook = (grid) => {\n const { rowKey = 'id', editingRows: editingRowsProp, onColumnRowEdited, onColumnRowEdit } = grid.props;\n const [editingRows, setEditingRows] = useDerivedStateFromProps(editingRowsProp || {});\n\n const activateEdit = (editParams) => {\n const { shouldRefocus } = grid.getInstance();\n const { rowData, columnIndex } = editParams;\n shouldRefocus.current = { forced: true, value: false };\n setEditingRows((prevEditingRows) => {\n onColumnRowEdit(editParams);\n return toggleInObject(prevEditingRows, rowData[rowKey], columnIndex);\n });\n };\n\n const editValue = ({ value, rowData, property, rowIndex }) => {\n setEditingRows({});\n onColumnRowEdited({\n value,\n rowData,\n property,\n rowIndex,\n });\n };\n\n return {\n state: { editingRows },\n actions: {\n activateEdit,\n editValue,\n },\n };\n};\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isColumnEditable = (col) => col.editable, customHandlers },\n } = grid;\n\n const editableConfig = makeEditableConfig(grid);\n\n return isColumnEditable(column)\n ? addEditableToCell(\n {\n column,\n config: editableConfig,\n handlers: customHandlers,\n },\n grid,\n )\n : column;\n};\n\nexport const EditablePlugin = createInstancePlugin('editable', {\n registerStateHook,\n decorateColumn,\n registerHotKeys(grid) {\n return {\n key: 'enter',\n handler: ({ rowIndex, cellIndex }) => {\n const {\n composedRows,\n decoratedColumns,\n actions: { activateEdit },\n props: { isColumnEditable },\n } = grid.getInstance();\n\n if (!isColumnEditable(decoratedColumns[cellIndex])) return;\n\n const rows = composedRows.rows || composedRows;\n const row = rows[rowIndex];\n if (!row) return;\n\n activateEdit({\n rowData: row,\n columnIndex: cellIndex,\n });\n },\n options: {\n keydown: false,\n keyup: true,\n },\n };\n },\n});\n"],"names":["registerStateHook","grid","props","rowKey","editingRowsProp","editingRows","onColumnRowEdited","onColumnRowEdit","useDerivedStateFromProps","setEditingRows","activateEdit","editParams","getInstance","shouldRefocus","rowData","columnIndex","current","forced","value","prevEditingRows","toggleInObject","editValue","property","rowIndex","state","actions","decorateColumn","column","isColumnEditable","col","editable","customHandlers","editableConfig","makeEditableConfig","addEditableToCell","config","handlers","EditablePlugin","createInstancePlugin","registerHotKeys","key","handler","cellIndex","composedRows","decoratedColumns","rows","row","options","keydown","keyup"],"mappings":"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"}
1
+ {"version":3,"file":"EditablePlugin.js","sources":["../../../../src/plugins/editable/EditablePlugin.tsx"],"sourcesContent":["import { useDerivedStateFromProps, toggleInObject } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { addEditableToCell, makeEditableConfig } from './decorateEditable';\n\nconst registerStateHook = (grid) => {\n const { rowKey = 'id', editingRows: editingRowsProp, onColumnRowEdited, onColumnRowEdit } = grid.props;\n const [editingRows, setEditingRows] = useDerivedStateFromProps(editingRowsProp || {});\n\n const activateEdit = (editParams) => {\n const { shouldRefocus } = grid.getInstance();\n const { rowData, columnIndex } = editParams;\n shouldRefocus.current = { forced: true, value: false };\n setEditingRows((prevEditingRows) => {\n onColumnRowEdit(editParams);\n return toggleInObject(prevEditingRows, rowData[rowKey], columnIndex);\n });\n };\n\n const editValue = ({ value, rowData, property, rowIndex }) => {\n setEditingRows({});\n onColumnRowEdited({\n value,\n rowData,\n property,\n rowIndex,\n });\n };\n\n return {\n state: { editingRows },\n actions: {\n activateEdit,\n editValue,\n },\n };\n};\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isColumnEditable = (col) => col.editable, customHandlers },\n } = grid;\n\n const editableConfig = makeEditableConfig(grid);\n\n return isColumnEditable(column)\n ? addEditableToCell(\n {\n column,\n config: editableConfig,\n handlers: customHandlers,\n },\n grid,\n )\n : column;\n};\n\nexport const EditablePlugin = createInstancePlugin('editable', {\n registerStateHook,\n decorateColumn,\n registerHotKeys(grid) {\n return {\n key: 'enter',\n handler: ({ rowIndex, cellIndex }) => {\n const {\n composedRows,\n decoratedColumns,\n actions: { activateEdit },\n props: { isColumnEditable },\n } = grid.getInstance();\n\n if (!isColumnEditable(decoratedColumns[cellIndex])) return;\n\n const rows = composedRows.rows || composedRows;\n const row = rows[rowIndex];\n if (!row) return;\n\n activateEdit({\n rowData: row,\n columnIndex: cellIndex,\n });\n },\n options: {\n keydown: false,\n keyup: true,\n },\n };\n },\n});\n"],"names":["registerStateHook","grid","props","rowKey","editingRowsProp","editingRows","onColumnRowEdited","onColumnRowEdit","useDerivedStateFromProps","setEditingRows","activateEdit","editParams","getInstance","shouldRefocus","rowData","columnIndex","current","forced","value","prevEditingRows","toggleInObject","editValue","property","rowIndex","state","actions","decorateColumn","column","isColumnEditable","col","editable","customHandlers","editableConfig","makeEditableConfig","addEditableToCell","config","handlers","EditablePlugin","createInstancePlugin","registerHotKeys","key","handler","cellIndex","composedRows","decoratedColumns","rows","row","options","keydown","keyup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decorateEditable.js","sources":["../../../../src/plugins/editable/decorateEditable.tsx"],"sourcesContent":["import React from 'react';\nimport * as edit from 'react-edit';\nimport { EditPencil } from '@elliemae/ds-icons';\nimport { cx } from '@elliemae/ds-utilities';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport getEditorComponent from './getEditorComponent';\n\nconst makeEditableConfig = (grid) =>\n edit.edit({\n isEditing: ({ columnIndex, rowData, column = {}, ...rest }) => {\n const {\n state: { editingRows },\n props: { rowKey },\n } = grid.getInstance();\n let isCustomEditing;\n\n if (typeof column.isEditing === 'function') {\n isCustomEditing = column.isEditing({\n columnIndex,\n rowData,\n column,\n ...rest,\n });\n }\n return editingRows[rowData[rowKey]] === columnIndex || column.alwaysEditing || isCustomEditing;\n },\n onActivate: () => null,\n onValue: (...args) => grid.getInstance().actions.editValue(...args),\n });\nconst addEditableToCell = ({ column, config, handlers }, grid) => {\n column.cell.transforms.push(config(getEditorComponent(column.customEditor, handlers)));\n column.cell.props.className = cx(\n column.cell.props.className,\n `editable${column.customEditor ? ' customEditor' : ''}`,\n );\n return appendCellFormatter(\n [\n (value, extraParams) => (\n <>\n <div\n onClick={(e) => {\n e.stopPropagation();\n grid.getInstance().actions.activateEdit(extraParams);\n }}\n onKeyUp={(e) => {\n e.stopPropagation();\n if (e.keyCode === 33) {\n grid.getInstance().actions.activateEdit(extraParams);\n }\n }}\n role=\"gridcell\"\n tabIndex={0}\n >\n {value}\n <EditPencil className=\"edit-pencil\" />\n <span className=\"edit-separator\"> </span>\n </div>\n </>\n ),\n ],\n column,\n );\n};\n\nexport { makeEditableConfig, addEditableToCell };\n"],"names":["makeEditableConfig","grid","edit","isEditing","columnIndex","rowData","column","rest","getInstance","editingRows","state","rowKey","props","isCustomEditing","alwaysEditing","onActivate","onValue","actions","editValue","addEditableToCell","config","handlers","cell","transforms","push","getEditorComponent","customEditor","className","cx","appendCellFormatter","value","extraParams","React","e","stopPropagation","activateEdit","keyCode","EditPencil"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD;AAAA,SACzBC,eAAI,CAACA,IAAL,CAAU;AACRC,IAAAA,SAAS,EAAE,yBAAoD;AAAA,UAAjDC,WAAiD,QAAjDA,WAAiD;AAAA,UAApCC,OAAoC,QAApCA,OAAoC;AAAA,6BAA3BC,MAA2B;AAAA,UAA3BA,MAA2B,4BAAlB,EAAkB;AAAA,UAAXC,IAAW;;AAC7D,8BAGIN,IAAI,CAACO,WAAL,EAHJ;AAAA,UACWC,WADX,qBACEC,KADF,CACWD,WADX;AAAA,UAEWE,MAFX,qBAEEC,KAFF,CAEWD,MAFX;;AAIA,UAAIE,eAAJ;;AAEA,UAAI,OAAOP,MAAM,CAACH,SAAd,KAA4B,UAAhC,EAA4C;AAC1CU,QAAAA,eAAe,GAAGP,MAAM,CAACH,SAAP;AAChBC,UAAAA,WAAW,EAAXA,WADgB;AAEhBC,UAAAA,OAAO,EAAPA,OAFgB;AAGhBC,UAAAA,MAAM,EAANA;AAHgB,WAIbC,IAJa,EAAlB;AAMD;;AACD,aAAOE,WAAW,CAACJ,OAAO,CAACM,MAAD,CAAR,CAAX,KAAiCP,WAAjC,IAAgDE,MAAM,CAACQ,aAAvD,IAAwED,eAA/E;AACD,KAjBO;AAkBRE,IAAAA,UAAU,EAAE;AAAA,aAAM,IAAN;AAAA,KAlBJ;AAmBRC,IAAAA,OAAO,EAAE;AAAA;;AAAA,aAAa,yBAAAf,IAAI,CAACO,WAAL,GAAmBS,OAAnB,EAA2BC,SAA3B,wCAAb;AAAA;AAnBD,GAAV,CADyB;AAAA;;IAsBrBC,iBAAiB,GAAG,SAApBA,iBAAoB,QAA+BlB,IAA/B,EAAwC;AAAA,MAArCK,MAAqC,SAArCA,MAAqC;AAAA,MAA7Bc,MAA6B,SAA7BA,MAA6B;AAAA,MAArBC,QAAqB,SAArBA,QAAqB;AAChEf,EAAAA,MAAM,CAACgB,IAAP,CAAYC,UAAZ,CAAuBC,IAAvB,CAA4BJ,MAAM,CAACK,mCAAkB,CAACnB,MAAM,CAACoB,YAAR,EAAsBL,QAAtB,CAAnB,CAAlC;AACAf,EAAAA,MAAM,CAACgB,IAAP,CAAYV,KAAZ,CAAkBe,SAAlB,GAA8BC,cAAE,CAC9BtB,MAAM,CAACgB,IAAP,CAAYV,KAAZ,CAAkBe,SADY,oBAEnBrB,MAAM,CAACoB,YAAP,GAAsB,eAAtB,GAAwC,EAFrB,EAAhC;AAIA,SAAOG,wCAAmB,CACxB,CACE,UAACC,KAAD,EAAQC,WAAR;AAAA,wBACEC,+FACEA;AACE,MAAA,OAAO,EAAE,iBAACC,CAAD,EAAO;AACdA,QAAAA,CAAC,CAACC,eAAF;AACAjC,QAAAA,IAAI,CAACO,WAAL,GAAmBS,OAAnB,CAA2BkB,YAA3B,CAAwCJ,WAAxC;AACD,OAJH;AAKE,MAAA,OAAO,EAAE,iBAACE,CAAD,EAAO;AACdA,QAAAA,CAAC,CAACC,eAAF;;AACA,YAAID,CAAC,CAACG,OAAF,KAAc,EAAlB,EAAsB;AACpBnC,UAAAA,IAAI,CAACO,WAAL,GAAmBS,OAAnB,CAA2BkB,YAA3B,CAAwCJ,WAAxC;AACD;AACF,OAVH;AAWE,MAAA,IAAI,EAAC,UAXP;AAYE,MAAA,QAAQ,EAAE;AAZZ,OAcGD,KAdH,eAeEE,wCAACK,kBAAD;AAAY,MAAA,SAAS,EAAC;AAAtB,MAfF,eAgBEL;AAAM,MAAA,SAAS,EAAC;AAAhB,WAhBF,CADF,CADF;AAAA,GADF,CADwB,EAyBxB1B,MAzBwB,CAA1B;AA2BD;;;;;"}
1
+ {"version":3,"file":"decorateEditable.js","sources":["../../../../src/plugins/editable/decorateEditable.tsx"],"sourcesContent":["import React from 'react';\nimport * as edit from 'react-edit';\nimport { EditPencil } from '@elliemae/ds-icons';\nimport { cx } from '@elliemae/ds-utilities';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport getEditorComponent from './getEditorComponent';\n\nconst makeEditableConfig = (grid) =>\n edit.edit({\n isEditing: ({ columnIndex, rowData, column = {}, ...rest }) => {\n const {\n state: { editingRows },\n props: { rowKey },\n } = grid.getInstance();\n let isCustomEditing;\n\n if (typeof column.isEditing === 'function') {\n isCustomEditing = column.isEditing({\n columnIndex,\n rowData,\n column,\n ...rest,\n });\n }\n return editingRows[rowData[rowKey]] === columnIndex || column.alwaysEditing || isCustomEditing;\n },\n onActivate: () => null,\n onValue: (...args) => grid.getInstance().actions.editValue(...args),\n });\nconst addEditableToCell = ({ column, config, handlers }, grid) => {\n column.cell.transforms.push(config(getEditorComponent(column.customEditor, handlers)));\n column.cell.props.className = cx(\n column.cell.props.className,\n `editable${column.customEditor ? ' customEditor' : ''}`,\n );\n return appendCellFormatter(\n [\n (value, extraParams) => (\n <>\n <div\n onClick={(e) => {\n e.stopPropagation();\n grid.getInstance().actions.activateEdit(extraParams);\n }}\n onKeyUp={(e) => {\n e.stopPropagation();\n if (e.keyCode === 33) {\n grid.getInstance().actions.activateEdit(extraParams);\n }\n }}\n role=\"gridcell\"\n tabIndex={0}\n >\n {value}\n <EditPencil className=\"edit-pencil\" />\n <span className=\"edit-separator\"> </span>\n </div>\n </>\n ),\n ],\n column,\n );\n};\n\nexport { makeEditableConfig, addEditableToCell };\n"],"names":["makeEditableConfig","grid","edit","isEditing","columnIndex","rowData","column","rest","getInstance","editingRows","state","rowKey","props","isCustomEditing","alwaysEditing","onActivate","onValue","actions","editValue","addEditableToCell","config","handlers","cell","transforms","push","getEditorComponent","customEditor","className","cx","appendCellFormatter","value","extraParams","React","e","stopPropagation","activateEdit","keyCode","EditPencil"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD;EAAA,OACzBC,eAAI,CAACA,IAAL,CAAU;IACRC,SAAS,EAAE,yBAAoD;MAAA,IAAjDC,WAAiD,QAAjDA,WAAiD;UAApCC,OAAoC,QAApCA,OAAoC;6BAA3BC,MAA2B;UAA3BA,MAA2B,4BAAlB,EAAkB;UAAXC,IAAW;;MAC7D,wBAGIN,IAAI,CAACO,WAAL,EAHJ;UACWC,WADX,qBACEC,KADF,CACWD,WADX;UAEWE,MAFX,qBAEEC,KAFF,CAEWD,MAFX;;MAIA,IAAIE,eAAJ;;MAEA,IAAI,OAAOP,MAAM,CAACH,SAAd,KAA4B,UAAhC,EAA4C;QAC1CU,eAAe,GAAGP,MAAM,CAACH,SAAP;UAChBC,WAAW,EAAXA,WADgB;UAEhBC,OAAO,EAAPA,OAFgB;UAGhBC,MAAM,EAANA;WACGC,IAJa,EAAlB;;;MAOF,OAAOE,WAAW,CAACJ,OAAO,CAACM,MAAD,CAAR,CAAX,KAAiCP,WAAjC,IAAgDE,MAAM,CAACQ,aAAvD,IAAwED,eAA/E;KAhBM;IAkBRE,UAAU,EAAE;MAAA,OAAM,IAAN;KAlBJ;IAmBRC,OAAO,EAAE;MAAA;;MAAA,OAAa,yBAAAf,IAAI,CAACO,WAAL,GAAmBS,OAAnB,EAA2BC,SAA3B,wCAAb;;GAnBX,CADyB;AAAA;;IAsBrBC,iBAAiB,GAAG,SAApBA,iBAAoB,QAA+BlB,IAA/B,EAAwC;EAAA,IAArCK,MAAqC,SAArCA,MAAqC;MAA7Bc,MAA6B,SAA7BA,MAA6B;MAArBC,QAAqB,SAArBA,QAAqB;EAChEf,MAAM,CAACgB,IAAP,CAAYC,UAAZ,CAAuBC,IAAvB,CAA4BJ,MAAM,CAACK,mCAAkB,CAACnB,MAAM,CAACoB,YAAR,EAAsBL,QAAtB,CAAnB,CAAlC;EACAf,MAAM,CAACgB,IAAP,CAAYV,KAAZ,CAAkBe,SAAlB,GAA8BC,cAAE,CAC9BtB,MAAM,CAACgB,IAAP,CAAYV,KAAZ,CAAkBe,SADY,oBAEnBrB,MAAM,CAACoB,YAAP,GAAsB,eAAtB,GAAwC,EAFrB,EAAhC;EAIA,OAAOG,wCAAmB,CACxB,CACE,UAACC,KAAD,EAAQC,WAAR;IAAA,oBACEC,+FACEA;MACE,OAAO,EAAE,iBAACC,CAAD,EAAO;QACdA,CAAC,CAACC,eAAF;QACAjC,IAAI,CAACO,WAAL,GAAmBS,OAAnB,CAA2BkB,YAA3B,CAAwCJ,WAAxC;OAHJ;MAKE,OAAO,EAAE,iBAACE,CAAD,EAAO;QACdA,CAAC,CAACC,eAAF;;QACA,IAAID,CAAC,CAACG,OAAF,KAAc,EAAlB,EAAsB;UACpBnC,IAAI,CAACO,WAAL,GAAmBS,OAAnB,CAA2BkB,YAA3B,CAAwCJ,WAAxC;;OARN;MAWE,IAAI,EAAC,UAXP;MAYE,QAAQ,EAAE;OAETD,KAdH,eAeEE,wCAACK,kBAAD;MAAY,SAAS,EAAC;MAfxB,eAgBEL;MAAM,SAAS,EAAC;WAhBlB,CADF,CADF;GADF,CADwB,EAyBxB1B,MAzBwB,CAA1B;AA2BD;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getEditorComponent.js","sources":["../../../../src/plugins/editable/getEditorComponent.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport { ComboBox, TextBox } from './EditableComponents';\n\nconst components = {\n DSComboBox: ComboBox,\n DSTextBox: TextBox,\n};\n\nconst getEditorComponent = (editorComponent = {}, handlers) => ({\n value,\n onValue,\n extraParameters,\n}) => {\n if (typeof editorComponent === 'function') {\n return editorComponent({\n value,\n onValue,\n customHandlers: handlers,\n ...extraParameters,\n });\n }\n\n const { type = 'DSTextBox', ...restEditorProps } = editorComponent;\n const Component = components[type];\n\n if (type === 'DSComboBox') {\n // TODO: remove this whole condition when combobox v3 is out and fully working without \"maxOptions\" parameter\n const maxOptions = restEditorProps?.options?.length || 100;\n return (\n <div style={{ zIndex: 0 }}>\n <Component\n autoFocus\n onValue={onValue}\n value={value}\n maxOptions={maxOptions}\n {...restEditorProps}\n />\n </div>\n );\n }\n\n return (\n <Component autoFocus onValue={onValue} value={value} {...restEditorProps} />\n );\n};\n\nexport default getEditorComponent;\n"],"names":["components","DSComboBox","ComboBox","DSTextBox","TextBox","getEditorComponent","editorComponent","handlers","value","onValue","extraParameters","customHandlers","type","restEditorProps","Component","maxOptions","options","length","React","zIndex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,UAAU,GAAG;AACjBC,EAAAA,UAAU,EAAEC,4CADK;AAEjBC,EAAAA,SAAS,EAAEC;AAFM,CAAnB;;IAKMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACC,eAAD,uEAAmB,EAAnB;AAAA,MAAuBC,QAAvB;AAAA,SAAoC,gBAIzD;AAAA,QAHJC,KAGI,QAHJA,KAGI;AAAA,QAFJC,OAEI,QAFJA,OAEI;AAAA,QADJC,eACI,QADJA,eACI;;AACJ,QAAI,OAAOJ,eAAP,KAA2B,UAA/B,EAA2C;AACzC,aAAOA,eAAe;AACpBE,QAAAA,KAAK,EAALA,KADoB;AAEpBC,QAAAA,OAAO,EAAPA,OAFoB;AAGpBE,QAAAA,cAAc,EAAEJ;AAHI,SAIjBG,eAJiB,EAAtB;AAMD;;AAED,gCAAmDJ,eAAnD,CAAQM,IAAR;AAAA,QAAQA,IAAR,sCAAe,WAAf;AAAA,QAA+BC,eAA/B,gDAAmDP,eAAnD;;AACA,QAAMQ,SAAS,GAAGd,UAAU,CAACY,IAAD,CAA5B;;AAEA,QAAIA,IAAI,KAAK,YAAb,EAA2B;AAAA;;AACzB;AACA,UAAMG,UAAU,GAAG,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,qCAAAA,eAAe,CAAEG,OAAjB,gFAA0BC,MAA1B,KAAoC,GAAvD;AACA,0BACEC;AAAK,QAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV;AAAZ,sBACED,wCAAC,SAAD;AACE,QAAA,SAAS,MADX;AAEE,QAAA,OAAO,EAAET,OAFX;AAGE,QAAA,KAAK,EAAED,KAHT;AAIE,QAAA,UAAU,EAAEO;AAJd,SAKMF,eALN,EADF,CADF;AAWD;;AAED,wBACEK,wCAAC,SAAD;AAAW,MAAA,SAAS,MAApB;AAAqB,MAAA,OAAO,EAAET,OAA9B;AAAuC,MAAA,KAAK,EAAED;AAA9C,OAAyDK,eAAzD,EADF;AAGD,GApC0B;AAAA;;;;"}
1
+ {"version":3,"file":"getEditorComponent.js","sources":["../../../../src/plugins/editable/getEditorComponent.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport { ComboBox, TextBox } from './EditableComponents';\n\nconst components = {\n DSComboBox: ComboBox,\n DSTextBox: TextBox,\n};\n\nconst getEditorComponent = (editorComponent = {}, handlers) => ({\n value,\n onValue,\n extraParameters,\n}) => {\n if (typeof editorComponent === 'function') {\n return editorComponent({\n value,\n onValue,\n customHandlers: handlers,\n ...extraParameters,\n });\n }\n\n const { type = 'DSTextBox', ...restEditorProps } = editorComponent;\n const Component = components[type];\n\n if (type === 'DSComboBox') {\n // TODO: remove this whole condition when combobox v3 is out and fully working without \"maxOptions\" parameter\n const maxOptions = restEditorProps?.options?.length || 100;\n return (\n <div style={{ zIndex: 0 }}>\n <Component\n autoFocus\n onValue={onValue}\n value={value}\n maxOptions={maxOptions}\n {...restEditorProps}\n />\n </div>\n );\n }\n\n return (\n <Component autoFocus onValue={onValue} value={value} {...restEditorProps} />\n );\n};\n\nexport default getEditorComponent;\n"],"names":["components","DSComboBox","ComboBox","DSTextBox","TextBox","getEditorComponent","editorComponent","handlers","value","onValue","extraParameters","customHandlers","type","restEditorProps","Component","maxOptions","options","length","React","zIndex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,UAAU,GAAG;EACjBC,UAAU,EAAEC,4CADK;EAEjBC,SAAS,EAAEC;AAFM,CAAnB;;IAKMC,kBAAkB,GAAG,SAArBA,kBAAqB;EAAA,IAACC,eAAD,uEAAmB,EAAnB;EAAA,IAAuBC,QAAvB;EAAA,OAAoC,gBAIzD;IAAA,IAHJC,KAGI,QAHJA,KAGI;QAFJC,OAEI,QAFJA,OAEI;QADJC,eACI,QADJA,eACI;;IACJ,IAAI,OAAOJ,eAAP,KAA2B,UAA/B,EAA2C;MACzC,OAAOA,eAAe;QACpBE,KAAK,EAALA,KADoB;QAEpBC,OAAO,EAAPA,OAFoB;QAGpBE,cAAc,EAAEJ;SACbG,eAJiB,EAAtB;;;IAQF,4BAAmDJ,eAAnD,CAAQM,IAAR;QAAQA,IAAR,sCAAe,WAAf;QAA+BC,eAA/B,gDAAmDP,eAAnD;;IACA,IAAMQ,SAAS,GAAGd,UAAU,CAACY,IAAD,CAA5B;;IAEA,IAAIA,IAAI,KAAK,YAAb,EAA2B;MAAA;;;MAEzB,IAAMG,UAAU,GAAG,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,qCAAAA,eAAe,CAAEG,OAAjB,gFAA0BC,MAA1B,KAAoC,GAAvD;MACA,oBACEC;QAAK,KAAK,EAAE;UAAEC,MAAM,EAAE;;sBACpBD,wCAAC,SAAD;QACE,SAAS,MADX;QAEE,OAAO,EAAET,OAFX;QAGE,KAAK,EAAED,KAHT;QAIE,UAAU,EAAEO;SACRF,eALN,EADF,CADF;;;IAaF,oBACEK,wCAAC,SAAD;MAAW,SAAS,MAApB;MAAqB,OAAO,EAAET,OAA9B;MAAuC,KAAK,EAAED;OAAWK,eAAzD,EADF;GAjCyB;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableColumn.js","sources":["../../../../src/plugins/expandable-grid/ExpandableColumn.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React, { useRef } from 'react';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-icons';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport DSButton from '@elliemae/ds-button';\nimport DSTruncatedTooltipText from '@elliemae/ds-truncated-tooltip-text';\nimport { dataGridBlockName } from '../../blockNames';\nimport { RowSizes } from '../../rowSizes';\n\nconst blockName = `${dataGridBlockName}-expandable-column`;\n\n// todo: clean this when we move to css-js\nconst ExpandableColumnWrapper = aggregatedClasses('div')(blockName);\nconst LabelDescriptionWrapper = aggregatedClasses('div')(blockName, 'label-description-wrapper');\nconst Label = aggregatedClasses('span')(blockName, 'label');\nconst Description = aggregatedClasses('span')(blockName, 'description');\nconst ExtraColumnData = aggregatedClasses('div')(blockName, 'extra-column-data');\nconst ExpandableMasterWrapper = aggregatedClasses('div')(`${blockName}-master-wrapper`);\nconst ExpandableDetailsWrapper = aggregatedClasses('div')(`${blockName}-details-wrapper`);\n\nfunction ExpandableColumnCell({ label, description, isExpanded, expandableDetails, extraData, onToggleExpand }) {\n const ref = useRef();\n return (\n <ExpandableColumnWrapper ref={ref} tabindex={0}>\n <ExpandableMasterWrapper style={{ height: RowSizes.extend }}>\n <DSButton\n buttonType=\"text\"\n className=\"expandable-arrow\"\n icon={isExpanded ? <ArrowheadDown /> : <ArrowheadRight />}\n onClick={(e) => {\n onToggleExpand(e);\n if (ref && ref.current) {\n ref.current.focus();\n }\n }}\n size=\"s\"\n />\n <LabelDescriptionWrapper>\n <Label>\n <DSTruncatedTooltipText value={label} />\n </Label>\n <Description>\n <DSTruncatedTooltipText value={description} />\n </Description>\n </LabelDescriptionWrapper>\n <ExtraColumnData>{extraData}</ExtraColumnData>\n </ExpandableMasterWrapper>\n {isExpanded && <ExpandableDetailsWrapper>{expandableDetails}</ExpandableDetailsWrapper>}\n </ExpandableColumnWrapper>\n );\n}\n\nconst expandableColumnRenderer =\n ({ renderRowLabel, renderRowDescription, renderExtraData }) =>\n (value, { rowData, isExpanded }, grid) => {\n const {\n props: { renderExpandedDetails },\n actions: { toggleExpand },\n } = grid.getInstance();\n\n const expandableDetails = renderExpandedDetails({ rowData });\n return (\n <ExpandableColumnCell\n description={renderRowDescription({ rowData })}\n expandableDetails={expandableDetails}\n extraData={renderExtraData({ rowData })}\n isExpanded={isExpanded}\n label={renderRowLabel({ rowData })}\n onToggleExpand={() => toggleExpand(rowData)}\n />\n );\n };\nconst noop = () => null;\nexport default function createExpandableColumn({\n property,\n label,\n renderRowLabel = () => '----',\n renderRowDescription = noop,\n renderExtraData = noop,\n width,\n resizable,\n sortable,\n searchable,\n customRenderer,\n ...rest\n}) {\n return {\n ...rest,\n label,\n property,\n cell: {\n formatters: [\n expandableColumnRenderer({\n renderRowLabel,\n renderRowDescription,\n renderExtraData,\n }),\n ],\n },\n width: width || '50%',\n expandableColumn: true,\n resizable,\n sortable,\n searchable,\n };\n}\n"],"names":["blockName","dataGridBlockName","ExpandableColumnWrapper","aggregatedClasses","LabelDescriptionWrapper","Label","Description","ExtraColumnData","ExpandableMasterWrapper","ExpandableDetailsWrapper","ExpandableColumnCell","label","description","isExpanded","expandableDetails","extraData","onToggleExpand","ref","useRef","React","height","RowSizes","extend","DSButton","ArrowheadDown","ArrowheadRight","e","current","focus","DSTruncatedTooltipText","expandableColumnRenderer","renderRowLabel","renderRowDescription","renderExtraData","value","grid","rowData","getInstance","renderExpandedDetails","props","toggleExpand","actions","noop","createExpandableColumn","property","width","resizable","sortable","searchable","customRenderer","rest","cell","formatters","expandableColumn"],"mappings":"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"}
1
+ {"version":3,"file":"ExpandableColumn.js","sources":["../../../../src/plugins/expandable-grid/ExpandableColumn.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React, { useRef } from 'react';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-icons';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport DSButton from '@elliemae/ds-button';\nimport DSTruncatedTooltipText from '@elliemae/ds-truncated-tooltip-text';\nimport { dataGridBlockName } from '../../blockNames';\nimport { RowSizes } from '../../rowSizes';\n\nconst blockName = `${dataGridBlockName}-expandable-column`;\n\n// todo: clean this when we move to css-js\nconst ExpandableColumnWrapper = aggregatedClasses('div')(blockName);\nconst LabelDescriptionWrapper = aggregatedClasses('div')(blockName, 'label-description-wrapper');\nconst Label = aggregatedClasses('span')(blockName, 'label');\nconst Description = aggregatedClasses('span')(blockName, 'description');\nconst ExtraColumnData = aggregatedClasses('div')(blockName, 'extra-column-data');\nconst ExpandableMasterWrapper = aggregatedClasses('div')(`${blockName}-master-wrapper`);\nconst ExpandableDetailsWrapper = aggregatedClasses('div')(`${blockName}-details-wrapper`);\n\nfunction ExpandableColumnCell({ label, description, isExpanded, expandableDetails, extraData, onToggleExpand }) {\n const ref = useRef();\n return (\n <ExpandableColumnWrapper ref={ref} tabindex={0}>\n <ExpandableMasterWrapper style={{ height: RowSizes.extend }}>\n <DSButton\n buttonType=\"text\"\n className=\"expandable-arrow\"\n icon={isExpanded ? <ArrowheadDown /> : <ArrowheadRight />}\n onClick={(e) => {\n onToggleExpand(e);\n if (ref && ref.current) {\n ref.current.focus();\n }\n }}\n size=\"s\"\n />\n <LabelDescriptionWrapper>\n <Label>\n <DSTruncatedTooltipText value={label} />\n </Label>\n <Description>\n <DSTruncatedTooltipText value={description} />\n </Description>\n </LabelDescriptionWrapper>\n <ExtraColumnData>{extraData}</ExtraColumnData>\n </ExpandableMasterWrapper>\n {isExpanded && <ExpandableDetailsWrapper>{expandableDetails}</ExpandableDetailsWrapper>}\n </ExpandableColumnWrapper>\n );\n}\n\nconst expandableColumnRenderer =\n ({ renderRowLabel, renderRowDescription, renderExtraData }) =>\n (value, { rowData, isExpanded }, grid) => {\n const {\n props: { renderExpandedDetails },\n actions: { toggleExpand },\n } = grid.getInstance();\n\n const expandableDetails = renderExpandedDetails({ rowData });\n return (\n <ExpandableColumnCell\n description={renderRowDescription({ rowData })}\n expandableDetails={expandableDetails}\n extraData={renderExtraData({ rowData })}\n isExpanded={isExpanded}\n label={renderRowLabel({ rowData })}\n onToggleExpand={() => toggleExpand(rowData)}\n />\n );\n };\nconst noop = () => null;\nexport default function createExpandableColumn({\n property,\n label,\n renderRowLabel = () => '----',\n renderRowDescription = noop,\n renderExtraData = noop,\n width,\n resizable,\n sortable,\n searchable,\n customRenderer,\n ...rest\n}) {\n return {\n ...rest,\n label,\n property,\n cell: {\n formatters: [\n expandableColumnRenderer({\n renderRowLabel,\n renderRowDescription,\n renderExtraData,\n }),\n ],\n },\n width: width || '50%',\n expandableColumn: true,\n resizable,\n sortable,\n searchable,\n };\n}\n"],"names":["blockName","dataGridBlockName","ExpandableColumnWrapper","aggregatedClasses","LabelDescriptionWrapper","Label","Description","ExtraColumnData","ExpandableMasterWrapper","ExpandableDetailsWrapper","ExpandableColumnCell","label","description","isExpanded","expandableDetails","extraData","onToggleExpand","ref","useRef","React","height","RowSizes","extend","DSButton","ArrowheadDown","ArrowheadRight","e","current","focus","DSTruncatedTooltipText","expandableColumnRenderer","renderRowLabel","renderRowDescription","renderExtraData","value","grid","rowData","getInstance","renderExpandedDetails","props","toggleExpand","actions","noop","createExpandableColumn","property","width","resizable","sortable","searchable","customRenderer","rest","cell","formatters","expandableColumn"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandablePlugin.js","sources":["../../../../src/plugins/expandable-grid/ExpandablePlugin.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { cx, isFunction } from '@elliemae/ds-utilities';\nimport { VariableSizeList } from 'react-window';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport ExpandedRow from './ExpandedRow';\nimport ExpandedRowExtra from './ExpandedRowExtra';\nimport { RowSizes } from '../../rowSizes';\nimport { useExpandGridState } from './useExpandGridState';\n\nconst getExpandedRowSizeBySubrows = ({ totalAmount, amountVisible, isShowingAll, size = 36 }) =>\n isShowingAll ? size * (totalAmount + 1) - 6 : size * (amountVisible + 1) + 32;\n\nconst ExpandedRows = {\n SingleColumn: ExpandedRow,\n Master: ExpandedRowExtra,\n};\n\nconst createExpandedRow = (type) => ExpandedRows[type] || ExpandedRows.Master;\n\nconst isExpandableSingleColumn = (columns) => columns.some((column) => column.expandableColumn);\n\nexport const ExpandablePlugin = createInstancePlugin('expandable', {\n registerStateHook: useExpandGridState,\n decorateGrid(grid) {\n const { decoratedColumns, columns } = grid.getInstance();\n const detailColumns = useMemo(\n () =>\n decoratedColumns\n .map((column) => ({\n ...column,\n customRenderer: column.detailCustomRenderer,\n }))\n .filter((col) => !col.expandableColumn),\n [columns],\n );\n return {\n detailColumns,\n };\n },\n\n decorateColumns(columns, grid) {\n if (isExpandableSingleColumn(columns)) return columns;\n // get first column from user\n const firstColumnIndex = columns.findIndex((column) => column.isUserColumn);\n const firstColumn = columns[firstColumnIndex];\n firstColumn.formatExpandable = true;\n\n return [\n ...columns.slice(0, firstColumnIndex),\n appendCellFormatter((value, { isExpanded, rowData }) => {\n const {\n actions: { toggleExpand },\n } = grid.getInstance();\n /*\n * should return only 2 elements ../custom-cell-renderer/addCustomRendererToCell.js\n * getRenderer it's checking that length to apply the custom render to value only\n */\n return (\n <>\n <DSButton\n buttonType=\"text\"\n className=\"expandable-arrow\"\n icon={isExpanded ? <ArrowheadDown /> : <ArrowheadRight />}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(rowData);\n }}\n size=\"s\"\n />\n {value}\n </>\n );\n }, firstColumn),\n ...columns.slice(firstColumnIndex + 1),\n ];\n },\n\n getBodyProps(bodyProps, grid) {\n const {\n composedRows: rows,\n props: {\n rowKey,\n getChildrenRows,\n rowSize = 'normal',\n subrowSize = 'normal',\n getExpandedRowMinSize,\n getExpandedRowSize,\n expandableSubrowsVisible,\n },\n state: { expandedRows },\n } = grid.getInstance();\n const rowSizePx = RowSizes[rowSize];\n const subrowSizePx = RowSizes[subrowSize];\n const listRef = useRef();\n\n useEffect(() => {\n if (listRef.current) listRef.current.resetAfterIndex(0, true);\n });\n\n // implementation of expandable row single column with aggregation\n const getItemSize = (index) => {\n const rowData = rows[index];\n const key = rowData[rowKey];\n const children = getChildrenRows({ rowData });\n\n const expandedSize = getExpandedRowSize\n ? getExpandedRowSize(index, { rowData }) // https://jira.elliemae.io/browse/PUI-1659\n : getExpandedRowSizeBySubrows({\n totalAmount: children.length,\n amountVisible: children.length > expandableSubrowsVisible ? expandableSubrowsVisible : children.length,\n isShowingAll:\n children.length < expandableSubrowsVisible || (expandedRows[key] && expandedRows[key].showAllRows),\n size: subrowSizePx,\n });\n\n const expandedMinSize = isFunction(getExpandedRowMinSize) && getExpandedRowMinSize(index);\n\n // eslint-disable-next-line no-nested-ternary\n return expandedRows[key] ? (expandedMinSize > expandedSize ? expandedMinSize : expandedSize) : rowSizePx;\n };\n\n return {\n ...bodyProps,\n className: cx(bodyProps.className, 'expandable'),\n listComponent: VariableSizeList,\n listProps: { ref: listRef, itemSize: getItemSize },\n };\n },\n\n decorateRenderers(renderers, grid) {\n const Row = renderers.body.row;\n const Cell = renderers.body.cell;\n\n // eslint-disable-next-line react/display-name\n renderers.body.row = useMemo(() => {\n // todo: the expandable grid should be created from another specific grid component\n const expandedRowType = isExpandableSingleColumn(grid.decoratedColumns) ? 'SingleColumn' : 'Master';\n const ExpandedRowComponent = createExpandedRow(expandedRowType);\n // eslint-disable-next-line react/display-name\n return ({ isExpanded, ...rowProps }) => {\n if (isExpanded) {\n const {\n props: { detailColumns, getChildrenRows, renderRowDetails },\n composedRows,\n } = grid.getInstance();\n // https://jira.elliemae.io/browse/PUI-1667\n const rowData = composedRows[rowProps.index] ? composedRows[rowProps.index] : rowProps.rowData;\n return (\n <ExpandedRowComponent\n cellComponent={Cell}\n detailColumns={detailColumns}\n parentGrid={grid}\n renderRowDetails={renderRowDetails}\n rowComponent={Row}\n rowData={rowData}\n rowProps={{\n rowData,\n isExpanded,\n ...rowProps,\n }}\n rows={getChildrenRows({ rowData })}\n >\n {rowProps.children}\n </ExpandedRowComponent>\n );\n }\n return <Row {...rowProps} />;\n };\n }, []);\n\n return renderers;\n },\n\n getRowProps(rowProps, grid, { rowData }) {\n const {\n props: { rowKey },\n state: { expandedRows },\n } = grid.getInstance();\n const key = rowData[rowKey];\n const isExpanded = !!expandedRows[key];\n return {\n ...rowProps,\n className: cx(\n rowProps.className,\n Object.keys(expandedRows).length > 0 && 'expandable-row',\n isExpanded && 'expanded',\n ),\n isExpanded,\n showAllRows: expandedRows[key] && expandedRows[key].showAllRows,\n };\n },\n});\n"],"names":["getExpandedRowSizeBySubrows","totalAmount","amountVisible","isShowingAll","size","ExpandedRows","SingleColumn","ExpandedRow","Master","ExpandedRowExtra","createExpandedRow","type","isExpandableSingleColumn","columns","some","column","expandableColumn","ExpandablePlugin","createInstancePlugin","registerStateHook","useExpandGridState","decorateGrid","grid","getInstance","decoratedColumns","detailColumns","useMemo","map","customRenderer","detailCustomRenderer","filter","col","decorateColumns","firstColumnIndex","findIndex","isUserColumn","firstColumn","formatExpandable","slice","appendCellFormatter","value","isExpanded","rowData","toggleExpand","actions","React","DSButton","ArrowheadDown","ArrowheadRight","e","stopPropagation","getBodyProps","bodyProps","rows","composedRows","props","rowKey","getChildrenRows","rowSize","subrowSize","getExpandedRowMinSize","getExpandedRowSize","expandableSubrowsVisible","expandedRows","state","rowSizePx","RowSizes","subrowSizePx","listRef","useRef","useEffect","current","resetAfterIndex","getItemSize","index","key","children","expandedSize","length","showAllRows","expandedMinSize","isFunction","className","cx","listComponent","VariableSizeList","listProps","ref","itemSize","decorateRenderers","renderers","Row","body","row","Cell","cell","expandedRowType","ExpandedRowComponent","rowProps","renderRowDetails","getRowProps","Object","keys"],"mappings":"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"}
1
+ {"version":3,"file":"ExpandablePlugin.js","sources":["../../../../src/plugins/expandable-grid/ExpandablePlugin.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { cx, isFunction } from '@elliemae/ds-utilities';\nimport { VariableSizeList } from 'react-window';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport ExpandedRow from './ExpandedRow';\nimport ExpandedRowExtra from './ExpandedRowExtra';\nimport { RowSizes } from '../../rowSizes';\nimport { useExpandGridState } from './useExpandGridState';\n\nconst getExpandedRowSizeBySubrows = ({ totalAmount, amountVisible, isShowingAll, size = 36 }) =>\n isShowingAll ? size * (totalAmount + 1) - 6 : size * (amountVisible + 1) + 32;\n\nconst ExpandedRows = {\n SingleColumn: ExpandedRow,\n Master: ExpandedRowExtra,\n};\n\nconst createExpandedRow = (type) => ExpandedRows[type] || ExpandedRows.Master;\n\nconst isExpandableSingleColumn = (columns) => columns.some((column) => column.expandableColumn);\n\nexport const ExpandablePlugin = createInstancePlugin('expandable', {\n registerStateHook: useExpandGridState,\n decorateGrid(grid) {\n const { decoratedColumns, columns } = grid.getInstance();\n const detailColumns = useMemo(\n () =>\n decoratedColumns\n .map((column) => ({\n ...column,\n customRenderer: column.detailCustomRenderer,\n }))\n .filter((col) => !col.expandableColumn),\n [columns],\n );\n return {\n detailColumns,\n };\n },\n\n decorateColumns(columns, grid) {\n if (isExpandableSingleColumn(columns)) return columns;\n // get first column from user\n const firstColumnIndex = columns.findIndex((column) => column.isUserColumn);\n const firstColumn = columns[firstColumnIndex];\n firstColumn.formatExpandable = true;\n\n return [\n ...columns.slice(0, firstColumnIndex),\n appendCellFormatter((value, { isExpanded, rowData }) => {\n const {\n actions: { toggleExpand },\n } = grid.getInstance();\n /*\n * should return only 2 elements ../custom-cell-renderer/addCustomRendererToCell.js\n * getRenderer it's checking that length to apply the custom render to value only\n */\n return (\n <>\n <DSButton\n buttonType=\"text\"\n className=\"expandable-arrow\"\n icon={isExpanded ? <ArrowheadDown /> : <ArrowheadRight />}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(rowData);\n }}\n size=\"s\"\n />\n {value}\n </>\n );\n }, firstColumn),\n ...columns.slice(firstColumnIndex + 1),\n ];\n },\n\n getBodyProps(bodyProps, grid) {\n const {\n composedRows: rows,\n props: {\n rowKey,\n getChildrenRows,\n rowSize = 'normal',\n subrowSize = 'normal',\n getExpandedRowMinSize,\n getExpandedRowSize,\n expandableSubrowsVisible,\n },\n state: { expandedRows },\n } = grid.getInstance();\n const rowSizePx = RowSizes[rowSize];\n const subrowSizePx = RowSizes[subrowSize];\n const listRef = useRef();\n\n useEffect(() => {\n if (listRef.current) listRef.current.resetAfterIndex(0, true);\n });\n\n // implementation of expandable row single column with aggregation\n const getItemSize = (index) => {\n const rowData = rows[index];\n const key = rowData[rowKey];\n const children = getChildrenRows({ rowData });\n\n const expandedSize = getExpandedRowSize\n ? getExpandedRowSize(index, { rowData }) // https://jira.elliemae.io/browse/PUI-1659\n : getExpandedRowSizeBySubrows({\n totalAmount: children.length,\n amountVisible: children.length > expandableSubrowsVisible ? expandableSubrowsVisible : children.length,\n isShowingAll:\n children.length < expandableSubrowsVisible || (expandedRows[key] && expandedRows[key].showAllRows),\n size: subrowSizePx,\n });\n\n const expandedMinSize = isFunction(getExpandedRowMinSize) && getExpandedRowMinSize(index);\n\n // eslint-disable-next-line no-nested-ternary\n return expandedRows[key] ? (expandedMinSize > expandedSize ? expandedMinSize : expandedSize) : rowSizePx;\n };\n\n return {\n ...bodyProps,\n className: cx(bodyProps.className, 'expandable'),\n listComponent: VariableSizeList,\n listProps: { ref: listRef, itemSize: getItemSize },\n };\n },\n\n decorateRenderers(renderers, grid) {\n const Row = renderers.body.row;\n const Cell = renderers.body.cell;\n\n // eslint-disable-next-line react/display-name\n renderers.body.row = useMemo(() => {\n // todo: the expandable grid should be created from another specific grid component\n const expandedRowType = isExpandableSingleColumn(grid.decoratedColumns) ? 'SingleColumn' : 'Master';\n const ExpandedRowComponent = createExpandedRow(expandedRowType);\n // eslint-disable-next-line react/display-name\n return ({ isExpanded, ...rowProps }) => {\n if (isExpanded) {\n const {\n props: { detailColumns, getChildrenRows, renderRowDetails },\n composedRows,\n } = grid.getInstance();\n // https://jira.elliemae.io/browse/PUI-1667\n const rowData = composedRows[rowProps.index] ? composedRows[rowProps.index] : rowProps.rowData;\n return (\n <ExpandedRowComponent\n cellComponent={Cell}\n detailColumns={detailColumns}\n parentGrid={grid}\n renderRowDetails={renderRowDetails}\n rowComponent={Row}\n rowData={rowData}\n rowProps={{\n rowData,\n isExpanded,\n ...rowProps,\n }}\n rows={getChildrenRows({ rowData })}\n >\n {rowProps.children}\n </ExpandedRowComponent>\n );\n }\n return <Row {...rowProps} />;\n };\n }, []);\n\n return renderers;\n },\n\n getRowProps(rowProps, grid, { rowData }) {\n const {\n props: { rowKey },\n state: { expandedRows },\n } = grid.getInstance();\n const key = rowData[rowKey];\n const isExpanded = !!expandedRows[key];\n return {\n ...rowProps,\n className: cx(\n rowProps.className,\n Object.keys(expandedRows).length > 0 && 'expandable-row',\n isExpanded && 'expanded',\n ),\n isExpanded,\n showAllRows: expandedRows[key] && expandedRows[key].showAllRows,\n };\n },\n});\n"],"names":["getExpandedRowSizeBySubrows","totalAmount","amountVisible","isShowingAll","size","ExpandedRows","SingleColumn","ExpandedRow","Master","ExpandedRowExtra","createExpandedRow","type","isExpandableSingleColumn","columns","some","column","expandableColumn","ExpandablePlugin","createInstancePlugin","registerStateHook","useExpandGridState","decorateGrid","grid","getInstance","decoratedColumns","detailColumns","useMemo","map","customRenderer","detailCustomRenderer","filter","col","decorateColumns","firstColumnIndex","findIndex","isUserColumn","firstColumn","formatExpandable","slice","appendCellFormatter","value","isExpanded","rowData","toggleExpand","actions","React","DSButton","ArrowheadDown","ArrowheadRight","e","stopPropagation","getBodyProps","bodyProps","rows","composedRows","props","rowKey","getChildrenRows","rowSize","subrowSize","getExpandedRowMinSize","getExpandedRowSize","expandableSubrowsVisible","expandedRows","state","rowSizePx","RowSizes","subrowSizePx","listRef","useRef","useEffect","current","resetAfterIndex","getItemSize","index","key","children","expandedSize","length","showAllRows","expandedMinSize","isFunction","className","cx","listComponent","VariableSizeList","listProps","ref","itemSize","decorateRenderers","renderers","Row","body","row","Cell","cell","expandedRowType","ExpandedRowComponent","rowProps","renderRowDetails","getRowProps","Object","keys"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandedRow.js","sources":["../../../../src/plugins/expandable-grid/ExpandedRow.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React from 'react';\nimport DSSeparator from '@elliemae/ds-separator';\nimport DSButton from '@elliemae/ds-button';\nimport styled from 'styled-components';\nimport { get } from '@elliemae/ds-utilities';\nimport deferComponentRender from '@elliemae/ds-shared/defer-render-hoc';\nimport useDataGrid from '@elliemae/ds-shared/useDataGrid';\nimport { PaginationPlugin } from '../pagination';\nimport BodyCell from '../../components/BodyCell';\nimport { defaultRenderers } from '../../components/renderers';\nimport TableBody from '../../components/TableBody';\nimport Table from '../../components/Table';\nimport { ColumnSizingPlugin } from '../column-sizing';\n\nconst DetailGrid = deferComponentRender(({ parentGrid, parentRowData, rows }) => {\n const { instanceRef, ...parentProps } = parentGrid.props;\n const grid = useDataGrid({\n uuid: parentGrid.getInstance().uuid,\n ...parentProps,\n columns: parentGrid\n .getInstance()\n .decoratedColumns.filter((col) => !col.expandableColumn)\n .map((c) => ({ ...c, expandableColumn: false })),\n rows,\n plugins: [ColumnSizingPlugin, PaginationPlugin],\n renderers: defaultRenderers,\n bindColumnsSizeTo: parentGrid.uuid,\n numRowsVisible: 'all',\n paginated: true,\n pagination: {\n perPage: rows.length,\n conditionalPagination: true,\n },\n parentRowData,\n });\n\n return (\n <Table {...grid}>\n <TableBody />\n </Table>\n );\n}, null);\n\nconst DetailsWrapper = styled.span`\n flex: 1;\n width: ${(props) => props.width}px;\n`;\n\nconst DetailGridWrapper = styled.div`\n display: flex;\n height: calc(100% - ${(props) => (props.allRowsVisible ? 18 : 60)}px);\n width: ${(props) => props.expandableGridDetailWidth}px;\n margin: 12px 0;\n`;\n\nfunction ExpandedRow({\n parentGrid,\n detailColumns,\n rowData,\n rows,\n rowProps,\n cellComponent: CellComponent,\n rowComponent: RowComponent,\n}) {\n const {\n decoratedColumns,\n actions: { toggleShowAllRows },\n state: { expandedRows },\n props: {\n rowKey,\n showMoreRowsText = 'SHOW ALL ROWS',\n showLessRowsText = 'SHOW LESS ROWS',\n expandableSubrowsVisible,\n },\n columnSizeService: { expandableGridDetailWidth },\n } = parentGrid.getInstance();\n\n const { showAllRows, ...restRowProps } = rowProps;\n return (\n <RowComponent {...restRowProps}>\n <BodyCell\n column={decoratedColumns[0]}\n columnIndex={0}\n component={CellComponent}\n grid={parentGrid}\n rowProps={{ rowData, ...rowProps }}\n />\n <DetailsWrapper width={expandableGridDetailWidth}>\n <DetailGridWrapper\n allRowsVisible={rows.length < expandableSubrowsVisible || get(expandedRows, [rowKey, 'showAllRows'])}\n expandableGridDetailWidth={expandableGridDetailWidth}\n >\n <DSSeparator dashed orientation=\"vertical\" />\n <DetailGrid\n detailColumns={detailColumns}\n parentGrid={parentGrid.getInstance()}\n parentRowData={rowData}\n rows={showAllRows ? rows : (rows || []).slice(0, expandableSubrowsVisible)}\n />\n </DetailGridWrapper>\n {rows.length > expandableSubrowsVisible && (\n <DSButton\n buttonType=\"text\"\n labelText={showAllRows ? showLessRowsText : showMoreRowsText}\n onClick={(e) => {\n e.stopPropagation();\n toggleShowAllRows(rowData);\n }}\n style={{ marginBottom: '10px' }}\n />\n )}\n </DetailsWrapper>\n </RowComponent>\n );\n}\n\nexport default ExpandedRow;\n"],"names":["DetailGrid","deferComponentRender","parentGrid","parentRowData","rows","props","instanceRef","parentProps","grid","useDataGrid","uuid","getInstance","columns","decoratedColumns","filter","col","expandableColumn","map","c","plugins","ColumnSizingPlugin","PaginationPlugin","renderers","defaultRenderers","bindColumnsSizeTo","numRowsVisible","paginated","pagination","perPage","length","conditionalPagination","React","Table","TableBody","DetailsWrapper","styled","span","width","DetailGridWrapper","div","allRowsVisible","expandableGridDetailWidth","ExpandedRow","detailColumns","rowData","rowProps","CellComponent","cellComponent","RowComponent","rowComponent","toggleShowAllRows","actions","expandedRows","state","rowKey","showMoreRowsText","showLessRowsText","expandableSubrowsVisible","columnSizeService","showAllRows","restRowProps","BodyCell","get","DSSeparator","slice","DSButton","e","stopPropagation","marginBottom"],"mappings":"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"}
1
+ {"version":3,"file":"ExpandedRow.js","sources":["../../../../src/plugins/expandable-grid/ExpandedRow.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React from 'react';\nimport DSSeparator from '@elliemae/ds-separator';\nimport DSButton from '@elliemae/ds-button';\nimport styled from 'styled-components';\nimport { get } from '@elliemae/ds-utilities';\nimport deferComponentRender from '@elliemae/ds-shared/defer-render-hoc';\nimport useDataGrid from '@elliemae/ds-shared/useDataGrid';\nimport { PaginationPlugin } from '../pagination';\nimport BodyCell from '../../components/BodyCell';\nimport { defaultRenderers } from '../../components/renderers';\nimport TableBody from '../../components/TableBody';\nimport Table from '../../components/Table';\nimport { ColumnSizingPlugin } from '../column-sizing';\n\nconst DetailGrid = deferComponentRender(({ parentGrid, parentRowData, rows }) => {\n const { instanceRef, ...parentProps } = parentGrid.props;\n const grid = useDataGrid({\n uuid: parentGrid.getInstance().uuid,\n ...parentProps,\n columns: parentGrid\n .getInstance()\n .decoratedColumns.filter((col) => !col.expandableColumn)\n .map((c) => ({ ...c, expandableColumn: false })),\n rows,\n plugins: [ColumnSizingPlugin, PaginationPlugin],\n renderers: defaultRenderers,\n bindColumnsSizeTo: parentGrid.uuid,\n numRowsVisible: 'all',\n paginated: true,\n pagination: {\n perPage: rows.length,\n conditionalPagination: true,\n },\n parentRowData,\n });\n\n return (\n <Table {...grid}>\n <TableBody />\n </Table>\n );\n}, null);\n\nconst DetailsWrapper = styled.span`\n flex: 1;\n width: ${(props) => props.width}px;\n`;\n\nconst DetailGridWrapper = styled.div`\n display: flex;\n height: calc(100% - ${(props) => (props.allRowsVisible ? 18 : 60)}px);\n width: ${(props) => props.expandableGridDetailWidth}px;\n margin: 12px 0;\n`;\n\nfunction ExpandedRow({\n parentGrid,\n detailColumns,\n rowData,\n rows,\n rowProps,\n cellComponent: CellComponent,\n rowComponent: RowComponent,\n}) {\n const {\n decoratedColumns,\n actions: { toggleShowAllRows },\n state: { expandedRows },\n props: {\n rowKey,\n showMoreRowsText = 'SHOW ALL ROWS',\n showLessRowsText = 'SHOW LESS ROWS',\n expandableSubrowsVisible,\n },\n columnSizeService: { expandableGridDetailWidth },\n } = parentGrid.getInstance();\n\n const { showAllRows, ...restRowProps } = rowProps;\n return (\n <RowComponent {...restRowProps}>\n <BodyCell\n column={decoratedColumns[0]}\n columnIndex={0}\n component={CellComponent}\n grid={parentGrid}\n rowProps={{ rowData, ...rowProps }}\n />\n <DetailsWrapper width={expandableGridDetailWidth}>\n <DetailGridWrapper\n allRowsVisible={rows.length < expandableSubrowsVisible || get(expandedRows, [rowKey, 'showAllRows'])}\n expandableGridDetailWidth={expandableGridDetailWidth}\n >\n <DSSeparator dashed orientation=\"vertical\" />\n <DetailGrid\n detailColumns={detailColumns}\n parentGrid={parentGrid.getInstance()}\n parentRowData={rowData}\n rows={showAllRows ? rows : (rows || []).slice(0, expandableSubrowsVisible)}\n />\n </DetailGridWrapper>\n {rows.length > expandableSubrowsVisible && (\n <DSButton\n buttonType=\"text\"\n labelText={showAllRows ? showLessRowsText : showMoreRowsText}\n onClick={(e) => {\n e.stopPropagation();\n toggleShowAllRows(rowData);\n }}\n style={{ marginBottom: '10px' }}\n />\n )}\n </DetailsWrapper>\n </RowComponent>\n );\n}\n\nexport default ExpandedRow;\n"],"names":["DetailGrid","deferComponentRender","parentGrid","parentRowData","rows","props","instanceRef","parentProps","grid","useDataGrid","uuid","getInstance","columns","decoratedColumns","filter","col","expandableColumn","map","c","plugins","ColumnSizingPlugin","PaginationPlugin","renderers","defaultRenderers","bindColumnsSizeTo","numRowsVisible","paginated","pagination","perPage","length","conditionalPagination","React","Table","TableBody","DetailsWrapper","styled","span","width","DetailGridWrapper","div","allRowsVisible","expandableGridDetailWidth","ExpandedRow","detailColumns","rowData","rowProps","CellComponent","cellComponent","RowComponent","rowComponent","toggleShowAllRows","actions","expandedRows","state","rowKey","showMoreRowsText","showLessRowsText","expandableSubrowsVisible","columnSizeService","showAllRows","restRowProps","BodyCell","get","DSSeparator","slice","DSButton","e","stopPropagation","marginBottom"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandedRowExtra.js","sources":["../../../../src/plugins/expandable-grid/ExpandedRowExtra.tsx"],"sourcesContent":["import React from 'react';\nimport { cx } from '@elliemae/ds-utilities';\nimport DSSeparator from '@elliemae/ds-separator';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { dataGridBlockName } from '../../blockNames';\n\nconst blockName = `${dataGridBlockName}-expanded-row`;\n\nconst DetailsWrapper = aggregatedClasses('div')(`${blockName}-details-wrapper`, null, () => ({\n 'ie-flex-basis-auto': true,\n}));\n\nfunction ExpandedRowExtra({ children, rowData, rowProps, rowComponent: RowComponent, renderRowDetails = () => null }) {\n return (\n <RowComponent {...rowProps} className={cx(rowProps.className, 'expanded-detail-row')}>\n <RowComponent className=\"master-row-expanded\">{children}</RowComponent>\n <DSSeparator dashed margin=\"xs\" />\n <DetailsWrapper>{renderRowDetails({ rowData })}</DetailsWrapper>\n </RowComponent>\n );\n}\n\nexport default ExpandedRowExtra;\n"],"names":["blockName","dataGridBlockName","DetailsWrapper","aggregatedClasses","ExpandedRowExtra","children","rowData","rowProps","RowComponent","rowComponent","renderRowDetails","React","cx","className","DSSeparator"],"mappings":";;;;;;;;;;;;;;;AAMA,IAAMA,SAAS,aAAMC,4BAAN,kBAAf;AAEA,IAAMC,cAAc,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,WAA4BH,SAA5B,uBAAyD,IAAzD,EAA+D;AAAA,SAAO;AAC3F,0BAAsB;AADqE,GAAP;AAAA,CAA/D,CAAvB;;AAIA,SAASI,gBAAT,OAAsH;AAAA,MAA1FC,QAA0F,QAA1FA,QAA0F;AAAA,MAAhFC,OAAgF,QAAhFA,OAAgF;AAAA,MAAvEC,QAAuE,QAAvEA,QAAuE;AAAA,MAA/CC,YAA+C,QAA7DC,YAA6D;AAAA,mCAAjCC,gBAAiC;AAAA,MAAjCA,gBAAiC,sCAAd;AAAA,WAAM,IAAN;AAAA,GAAc;AACpH,sBACEC,wCAAC,YAAD,mCAAkBJ,QAAlB;AAA4B,IAAA,SAAS,EAAEK,cAAE,CAACL,QAAQ,CAACM,SAAV,EAAqB,qBAArB;AAAzC,mBACEF,wCAAC,YAAD;AAAc,IAAA,SAAS,EAAC;AAAxB,KAA+CN,QAA/C,CADF,eAEEM,wCAACG,+BAAD;AAAa,IAAA,MAAM,MAAnB;AAAoB,IAAA,MAAM,EAAC;AAA3B,IAFF,eAGEH,wCAAC,cAAD,QAAiBD,gBAAgB,CAAC;AAAEJ,IAAAA,OAAO,EAAPA;AAAF,GAAD,CAAjC,CAHF,CADF;AAOD;;;;"}
1
+ {"version":3,"file":"ExpandedRowExtra.js","sources":["../../../../src/plugins/expandable-grid/ExpandedRowExtra.tsx"],"sourcesContent":["import React from 'react';\nimport { cx } from '@elliemae/ds-utilities';\nimport DSSeparator from '@elliemae/ds-separator';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { dataGridBlockName } from '../../blockNames';\n\nconst blockName = `${dataGridBlockName}-expanded-row`;\n\nconst DetailsWrapper = aggregatedClasses('div')(`${blockName}-details-wrapper`, null, () => ({\n 'ie-flex-basis-auto': true,\n}));\n\nfunction ExpandedRowExtra({ children, rowData, rowProps, rowComponent: RowComponent, renderRowDetails = () => null }) {\n return (\n <RowComponent {...rowProps} className={cx(rowProps.className, 'expanded-detail-row')}>\n <RowComponent className=\"master-row-expanded\">{children}</RowComponent>\n <DSSeparator dashed margin=\"xs\" />\n <DetailsWrapper>{renderRowDetails({ rowData })}</DetailsWrapper>\n </RowComponent>\n );\n}\n\nexport default ExpandedRowExtra;\n"],"names":["blockName","dataGridBlockName","DetailsWrapper","aggregatedClasses","ExpandedRowExtra","children","rowData","rowProps","RowComponent","rowComponent","renderRowDetails","React","cx","className","DSSeparator"],"mappings":";;;;;;;;;;;;;;;AAMA,IAAMA,SAAS,aAAMC,4BAAN,kBAAf;AAEA,IAAMC,cAAc,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,WAA4BH,SAA5B,uBAAyD,IAAzD,EAA+D;EAAA,OAAO;IAC3F,sBAAsB;GAD8D;AAAA,CAA/D,CAAvB;;AAIA,SAASI,gBAAT,OAAsH;EAAA,IAA1FC,QAA0F,QAA1FA,QAA0F;MAAhFC,OAAgF,QAAhFA,OAAgF;MAAvEC,QAAuE,QAAvEA,QAAuE;MAA/CC,YAA+C,QAA7DC,YAA6D;mCAAjCC,gBAAiC;MAAjCA,gBAAiC,sCAAd;IAAA,OAAM,IAAN;GAAc;EACpH,oBACEC,wCAAC,YAAD,mCAAkBJ,QAAlB;IAA4B,SAAS,EAAEK,cAAE,CAACL,QAAQ,CAACM,SAAV,EAAqB,qBAArB;mBACvCF,wCAAC,YAAD;IAAc,SAAS,EAAC;KAAuBN,QAA/C,CADF,eAEEM,wCAACG,+BAAD;IAAa,MAAM,MAAnB;IAAoB,MAAM,EAAC;IAF7B,eAGEH,wCAAC,cAAD,QAAiBD,gBAAgB,CAAC;IAAEJ,OAAO,EAAPA;GAAH,CAAjC,CAHF,CADF;AAOD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useExpandGridState.js","sources":["../../../../src/plugins/expandable-grid/useExpandGridState.tsx"],"sourcesContent":["import { isFunction,useExpandState } from '@elliemae/ds-utilities';\nimport { useState } from 'react';\n\nexport const useExpandGridState = grid => {\n const {\n composedRows,\n props: {\n expandedRows: expandedRowsProp = {},\n rowKey = 'id',\n onExpandRow,\n onToggleShowAllRows,\n onExpandChange,\n onExpandAll,\n onToggleExpand,\n onCollapseRow,\n },\n } = grid;\n\n const { state, actions } = useExpandState({\n items: composedRows,\n itemKey: rowKey,\n expanded: expandedRowsProp,\n onExpand: onExpandRow,\n onExpandChange,\n onExpandAll,\n onToggleExpand,\n onCollapse: onCollapseRow,\n });\n\n const [shouldRefocus, setShouldReFocus] = useState(false);\n const expandRow = row => actions.expand(row, { showAllRows: false });\n\n const toggleExpandAllRows = actions.toggleExpandAll;\n\n const collapseRow = actions.collapse;\n\n const toggleExpand = row => {\n setShouldReFocus(false);\n actions.toggleExpand(row, { showAllRows: false });\n };\n\n const toggleShowAllRows = row => {\n if (isFunction(onToggleShowAllRows)) {\n onToggleShowAllRows(row);\n } else {\n const key = row[rowKey];\n actions.expand(row, {\n showAllRows: state.expanded[key] && !state.expanded[key].showAllRows,\n });\n }\n };\n\n return {\n state: {\n expandedRows: state.expanded,\n isExpandedAll: state.isExpandedAll,\n shouldRefocus,\n },\n actions: {\n expandRow,\n toggleExpandAllRows,\n toggleExpand,\n toggleShowAllRows,\n collapseRow,\n },\n };\n};\n"],"names":["useExpandGridState","grid","composedRows","props","expandedRows","expandedRowsProp","rowKey","onExpandRow","onToggleShowAllRows","onExpandChange","onExpandAll","onToggleExpand","onCollapseRow","useExpandState","items","itemKey","expanded","onExpand","onCollapse","state","actions","useState","shouldRefocus","setShouldReFocus","expandRow","row","expand","showAllRows","toggleExpandAllRows","toggleExpandAll","collapseRow","collapse","toggleExpand","toggleShowAllRows","isFunction","key","isExpandedAll"],"mappings":";;;;;;;;;;;;IAGaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,IAAI,EAAI;AACxC,MACEC,YADF,GAYID,IAZJ,CACEC,YADF;AAAA,oBAYID,IAZJ,CAEEE,KAFF;AAAA,0CAGIC,YAHJ;AAAA,MAGkBC,gBAHlB,sCAGqC,EAHrC;AAAA,uCAIIC,MAJJ;AAAA,MAIIA,MAJJ,mCAIa,IAJb;AAAA,MAKIC,WALJ,eAKIA,WALJ;AAAA,MAMIC,mBANJ,eAMIA,mBANJ;AAAA,MAOIC,cAPJ,eAOIA,cAPJ;AAAA,MAQIC,WARJ,eAQIA,WARJ;AAAA,MASIC,cATJ,eASIA,cATJ;AAAA,MAUIC,aAVJ,eAUIA,aAVJ;;AAcA,wBAA2BC,0BAAc,CAAC;AACxCC,IAAAA,KAAK,EAAEZ,YADiC;AAExCa,IAAAA,OAAO,EAAET,MAF+B;AAGxCU,IAAAA,QAAQ,EAAEX,gBAH8B;AAIxCY,IAAAA,QAAQ,EAAEV,WAJ8B;AAKxCE,IAAAA,cAAc,EAAdA,cALwC;AAMxCC,IAAAA,WAAW,EAAXA,WANwC;AAOxCC,IAAAA,cAAc,EAAdA,cAPwC;AAQxCO,IAAAA,UAAU,EAAEN;AAR4B,GAAD,CAAzC;AAAA,MAAQO,KAAR,mBAAQA,KAAR;AAAA,MAAeC,OAAf,mBAAeA,OAAf;;AAWA,kBAA0CC,cAAQ,CAAC,KAAD,CAAlD;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,GAAG;AAAA,WAAIL,OAAO,CAACM,MAAR,CAAeD,GAAf,EAAoB;AAAEE,MAAAA,WAAW,EAAE;AAAf,KAApB,CAAJ;AAAA,GAArB;;AAEA,MAAMC,mBAAmB,GAAGR,OAAO,CAACS,eAApC;AAEA,MAAMC,WAAW,GAAGV,OAAO,CAACW,QAA5B;;AAEA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAAAP,GAAG,EAAI;AAC1BF,IAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACAH,IAAAA,OAAO,CAACY,YAAR,CAAqBP,GAArB,EAA0B;AAAEE,MAAAA,WAAW,EAAE;AAAf,KAA1B;AACD,GAHD;;AAKA,MAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAR,GAAG,EAAI;AAC/B,QAAIS,sBAAU,CAAC1B,mBAAD,CAAd,EAAqC;AACnCA,MAAAA,mBAAmB,CAACiB,GAAD,CAAnB;AACD,KAFD,MAEO;AACL,UAAMU,GAAG,GAAGV,GAAG,CAACnB,MAAD,CAAf;AACAc,MAAAA,OAAO,CAACM,MAAR,CAAeD,GAAf,EAAoB;AAClBE,QAAAA,WAAW,EAAER,KAAK,CAACH,QAAN,CAAemB,GAAf,KAAuB,CAAChB,KAAK,CAACH,QAAN,CAAemB,GAAf,EAAoBR;AADvC,OAApB;AAGD;AACF,GATD;;AAWA,SAAO;AACLR,IAAAA,KAAK,EAAE;AACLf,MAAAA,YAAY,EAAEe,KAAK,CAACH,QADf;AAELoB,MAAAA,aAAa,EAAEjB,KAAK,CAACiB,aAFhB;AAGLd,MAAAA,aAAa,EAAbA;AAHK,KADF;AAMLF,IAAAA,OAAO,EAAE;AACPI,MAAAA,SAAS,EAATA,SADO;AAEPI,MAAAA,mBAAmB,EAAnBA,mBAFO;AAGPI,MAAAA,YAAY,EAAZA,YAHO;AAIPC,MAAAA,iBAAiB,EAAjBA,iBAJO;AAKPH,MAAAA,WAAW,EAAXA;AALO;AANJ,GAAP;AAcD;;;;"}
1
+ {"version":3,"file":"useExpandGridState.js","sources":["../../../../src/plugins/expandable-grid/useExpandGridState.tsx"],"sourcesContent":["import { isFunction,useExpandState } from '@elliemae/ds-utilities';\nimport { useState } from 'react';\n\nexport const useExpandGridState = grid => {\n const {\n composedRows,\n props: {\n expandedRows: expandedRowsProp = {},\n rowKey = 'id',\n onExpandRow,\n onToggleShowAllRows,\n onExpandChange,\n onExpandAll,\n onToggleExpand,\n onCollapseRow,\n },\n } = grid;\n\n const { state, actions } = useExpandState({\n items: composedRows,\n itemKey: rowKey,\n expanded: expandedRowsProp,\n onExpand: onExpandRow,\n onExpandChange,\n onExpandAll,\n onToggleExpand,\n onCollapse: onCollapseRow,\n });\n\n const [shouldRefocus, setShouldReFocus] = useState(false);\n const expandRow = row => actions.expand(row, { showAllRows: false });\n\n const toggleExpandAllRows = actions.toggleExpandAll;\n\n const collapseRow = actions.collapse;\n\n const toggleExpand = row => {\n setShouldReFocus(false);\n actions.toggleExpand(row, { showAllRows: false });\n };\n\n const toggleShowAllRows = row => {\n if (isFunction(onToggleShowAllRows)) {\n onToggleShowAllRows(row);\n } else {\n const key = row[rowKey];\n actions.expand(row, {\n showAllRows: state.expanded[key] && !state.expanded[key].showAllRows,\n });\n }\n };\n\n return {\n state: {\n expandedRows: state.expanded,\n isExpandedAll: state.isExpandedAll,\n shouldRefocus,\n },\n actions: {\n expandRow,\n toggleExpandAllRows,\n toggleExpand,\n toggleShowAllRows,\n collapseRow,\n },\n };\n};\n"],"names":["useExpandGridState","grid","composedRows","props","expandedRows","expandedRowsProp","rowKey","onExpandRow","onToggleShowAllRows","onExpandChange","onExpandAll","onToggleExpand","onCollapseRow","useExpandState","items","itemKey","expanded","onExpand","onCollapse","state","actions","useState","shouldRefocus","setShouldReFocus","expandRow","row","expand","showAllRows","toggleExpandAllRows","toggleExpandAll","collapseRow","collapse","toggleExpand","toggleShowAllRows","isFunction","key","isExpandedAll"],"mappings":";;;;;;;;;;;;IAGaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,IAAI,EAAI;EACxC,IACEC,YADF,GAYID,IAZJ,CACEC,YADF;oBAYID,IAZJ,CAEEE,KAFF;0CAGIC,YAHJ;MAGkBC,gBAHlB,sCAGqC,EAHrC;uCAIIC,MAJJ;MAIIA,MAJJ,mCAIa,IAJb;MAKIC,WALJ,eAKIA,WALJ;MAMIC,mBANJ,eAMIA,mBANJ;MAOIC,cAPJ,eAOIA,cAPJ;MAQIC,WARJ,eAQIA,WARJ;MASIC,cATJ,eASIA,cATJ;MAUIC,aAVJ,eAUIA,aAVJ;;EAcA,sBAA2BC,0BAAc,CAAC;IACxCC,KAAK,EAAEZ,YADiC;IAExCa,OAAO,EAAET,MAF+B;IAGxCU,QAAQ,EAAEX,gBAH8B;IAIxCY,QAAQ,EAAEV,WAJ8B;IAKxCE,cAAc,EAAdA,cALwC;IAMxCC,WAAW,EAAXA,WANwC;IAOxCC,cAAc,EAAdA,cAPwC;IAQxCO,UAAU,EAAEN;GAR2B,CAAzC;MAAQO,KAAR,mBAAQA,KAAR;MAAeC,OAAf,mBAAeA,OAAf;;EAWA,gBAA0CC,cAAQ,CAAC,KAAD,CAAlD;;MAAOC,aAAP;MAAsBC,gBAAtB;;EACA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,GAAG;IAAA,OAAIL,OAAO,CAACM,MAAR,CAAeD,GAAf,EAAoB;MAAEE,WAAW,EAAE;KAAnC,CAAJ;GAArB;;EAEA,IAAMC,mBAAmB,GAAGR,OAAO,CAACS,eAApC;EAEA,IAAMC,WAAW,GAAGV,OAAO,CAACW,QAA5B;;EAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAAAP,GAAG,EAAI;IAC1BF,gBAAgB,CAAC,KAAD,CAAhB;IACAH,OAAO,CAACY,YAAR,CAAqBP,GAArB,EAA0B;MAAEE,WAAW,EAAE;KAAzC;GAFF;;EAKA,IAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAR,GAAG,EAAI;IAC/B,IAAIS,sBAAU,CAAC1B,mBAAD,CAAd,EAAqC;MACnCA,mBAAmB,CAACiB,GAAD,CAAnB;KADF,MAEO;MACL,IAAMU,GAAG,GAAGV,GAAG,CAACnB,MAAD,CAAf;MACAc,OAAO,CAACM,MAAR,CAAeD,GAAf,EAAoB;QAClBE,WAAW,EAAER,KAAK,CAACH,QAAN,CAAemB,GAAf,KAAuB,CAAChB,KAAK,CAACH,QAAN,CAAemB,GAAf,EAAoBR;OAD3D;;GALJ;;EAWA,OAAO;IACLR,KAAK,EAAE;MACLf,YAAY,EAAEe,KAAK,CAACH,QADf;MAELoB,aAAa,EAAEjB,KAAK,CAACiB,aAFhB;MAGLd,aAAa,EAAbA;KAJG;IAMLF,OAAO,EAAE;MACPI,SAAS,EAATA,SADO;MAEPI,mBAAmB,EAAnBA,mBAFO;MAGPI,YAAY,EAAZA,YAHO;MAIPC,iBAAiB,EAAjBA,iBAJO;MAKPH,WAAW,EAAXA;;GAXJ;AAcD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExportDataPlugin.js","sources":["../../../../src/plugins/export-data/ExportDataPlugin.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable indent */\nimport { get } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\n\nconst isVisible = (column) => {\n if (typeof column === 'undefined') {\n return false;\n }\n return typeof column.visible === 'undefined' || column.visible;\n};\n\nexport const getColumnValue = (row, property) => get(row, property);\nexport const getVisibleRowData = (row, columns) =>\n columns.reduce((result, column) => {\n const columnProperty = column.property;\n return isVisible(column)\n ? [\n ...result,\n getColumnValue(row, `_${columnProperty}`) ||\n getColumnValue(row, columnProperty),\n ]\n : result;\n }, []);\n\nconst defaultOptions = (uuid) => ({\n sheetName: 'SheetName',\n fileName: `datagrid-${uuid}`,\n type: 'csv',\n onlySelection: false,\n excludedColumns: undefined,\n});\n\nconst getOptions = (opts, uuid) => ({\n ...defaultOptions(uuid),\n ...opts,\n});\n\nconst getCellValue = (cell) => {\n if (cell === undefined || cell === null) return '';\n return cell;\n};\n\nexport const getExportedData = (rows, columns, range) => {\n const rowsRanged = range ? rows.slice(...range) : rows;\n const dataToExport = rowsRanged.map((row) => getVisibleRowData(row, columns));\n const columnsContent = columns\n .filter((c) => isVisible(c))\n .reduce(\n (acc, curr, idx) => `${acc}${idx === 0 ? '' : ','}${curr.label}`,\n '',\n );\n const rowsContent = dataToExport\n .map((e) =>\n e\n .map((r) => `\"${String(getCellValue(r)).replace(/\"/g, '\"\"')}\"`)\n .join(','),\n )\n .join('\\r\\n');\n const csvContent = `${columnsContent}\\r\\n${rowsContent}`;\n return csvContent;\n};\n\n// eslint-disable-next-line max-statements\nconst exportTo = (\n rows,\n columns,\n { range, fileName, type, excludedColumns },\n) => {\n if (excludedColumns) {\n // eslint-disable-next-line no-param-reassign\n columns = columns.filter((col) => !excludedColumns.includes(col.property));\n }\n const csvContent = getExportedData(rows, columns, range);\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n if (navigator.msSaveBlob) {\n // IE 10+\n navigator.msSaveBlob(blob, `${fileName}.${type}`);\n } else {\n const link = document.createElement('a');\n if (link.download !== undefined) {\n // feature detection\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', `${fileName}.${type}`);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n};\n\nexport const ExportDataPlugin = createInstancePlugin('export-data', {\n decorateGrid(instance) {\n return {\n exportRows(opts = {}) {\n const {\n composedRows: rows,\n columns,\n uuid,\n props: { rowKey },\n state: { selection },\n } = instance.getInstance();\n const options = getOptions(opts, uuid);\n // check paginated rows\n let currentRows = rows.allRows || rows;\n if (opts.onlySelection) {\n const selectedRows = Object.keys(selection.selectedRows);\n currentRows = currentRows.filter((r) =>\n selectedRows.includes(String(r[rowKey])),\n );\n }\n\n exportTo(currentRows, columns, options);\n },\n exportVisibleRows(opts = {}) {\n const {\n composedRows: rows,\n columns,\n uuid,\n props: { rowKey },\n state: { selection },\n } = instance.getInstance();\n const options = getOptions(opts, uuid);\n\n // check paginated rows\n let currentRows = rows.rows || rows;\n if (opts.onlySelection) {\n const selectedRows = Object.keys(selection.selectedRows);\n currentRows = currentRows.filter((r) =>\n selectedRows.includes(String(r[rowKey])),\n );\n }\n\n exportTo(currentRows, columns, options);\n },\n };\n },\n});\n"],"names":["isVisible","column","visible","getColumnValue","row","property","get","getVisibleRowData","columns","reduce","result","columnProperty","defaultOptions","uuid","sheetName","fileName","type","onlySelection","excludedColumns","undefined","getOptions","opts","getCellValue","cell","getExportedData","rows","range","rowsRanged","slice","dataToExport","map","columnsContent","filter","c","acc","curr","idx","label","rowsContent","e","r","String","replace","join","csvContent","exportTo","col","includes","blob","Blob","navigator","msSaveBlob","link","document","createElement","download","url","URL","createObjectURL","setAttribute","style","visibility","body","appendChild","click","removeChild","ExportDataPlugin","createInstancePlugin","decorateGrid","instance","exportRows","getInstance","composedRows","rowKey","props","selection","state","options","currentRows","allRows","selectedRows","Object","keys","exportVisibleRows"],"mappings":"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"}
1
+ {"version":3,"file":"ExportDataPlugin.js","sources":["../../../../src/plugins/export-data/ExportDataPlugin.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable indent */\nimport { get } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\n\nconst isVisible = (column) => {\n if (typeof column === 'undefined') {\n return false;\n }\n return typeof column.visible === 'undefined' || column.visible;\n};\n\nexport const getColumnValue = (row, property) => get(row, property);\nexport const getVisibleRowData = (row, columns) =>\n columns.reduce((result, column) => {\n const columnProperty = column.property;\n return isVisible(column)\n ? [\n ...result,\n getColumnValue(row, `_${columnProperty}`) ||\n getColumnValue(row, columnProperty),\n ]\n : result;\n }, []);\n\nconst defaultOptions = (uuid) => ({\n sheetName: 'SheetName',\n fileName: `datagrid-${uuid}`,\n type: 'csv',\n onlySelection: false,\n excludedColumns: undefined,\n});\n\nconst getOptions = (opts, uuid) => ({\n ...defaultOptions(uuid),\n ...opts,\n});\n\nconst getCellValue = (cell) => {\n if (cell === undefined || cell === null) return '';\n return cell;\n};\n\nexport const getExportedData = (rows, columns, range) => {\n const rowsRanged = range ? rows.slice(...range) : rows;\n const dataToExport = rowsRanged.map((row) => getVisibleRowData(row, columns));\n const columnsContent = columns\n .filter((c) => isVisible(c))\n .reduce(\n (acc, curr, idx) => `${acc}${idx === 0 ? '' : ','}${curr.label}`,\n '',\n );\n const rowsContent = dataToExport\n .map((e) =>\n e\n .map((r) => `\"${String(getCellValue(r)).replace(/\"/g, '\"\"')}\"`)\n .join(','),\n )\n .join('\\r\\n');\n const csvContent = `${columnsContent}\\r\\n${rowsContent}`;\n return csvContent;\n};\n\n// eslint-disable-next-line max-statements\nconst exportTo = (\n rows,\n columns,\n { range, fileName, type, excludedColumns },\n) => {\n if (excludedColumns) {\n // eslint-disable-next-line no-param-reassign\n columns = columns.filter((col) => !excludedColumns.includes(col.property));\n }\n const csvContent = getExportedData(rows, columns, range);\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n if (navigator.msSaveBlob) {\n // IE 10+\n navigator.msSaveBlob(blob, `${fileName}.${type}`);\n } else {\n const link = document.createElement('a');\n if (link.download !== undefined) {\n // feature detection\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', `${fileName}.${type}`);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n};\n\nexport const ExportDataPlugin = createInstancePlugin('export-data', {\n decorateGrid(instance) {\n return {\n exportRows(opts = {}) {\n const {\n composedRows: rows,\n columns,\n uuid,\n props: { rowKey },\n state: { selection },\n } = instance.getInstance();\n const options = getOptions(opts, uuid);\n // check paginated rows\n let currentRows = rows.allRows || rows;\n if (opts.onlySelection) {\n const selectedRows = Object.keys(selection.selectedRows);\n currentRows = currentRows.filter((r) =>\n selectedRows.includes(String(r[rowKey])),\n );\n }\n\n exportTo(currentRows, columns, options);\n },\n exportVisibleRows(opts = {}) {\n const {\n composedRows: rows,\n columns,\n uuid,\n props: { rowKey },\n state: { selection },\n } = instance.getInstance();\n const options = getOptions(opts, uuid);\n\n // check paginated rows\n let currentRows = rows.rows || rows;\n if (opts.onlySelection) {\n const selectedRows = Object.keys(selection.selectedRows);\n currentRows = currentRows.filter((r) =>\n selectedRows.includes(String(r[rowKey])),\n );\n }\n\n exportTo(currentRows, columns, options);\n },\n };\n },\n});\n"],"names":["isVisible","column","visible","getColumnValue","row","property","get","getVisibleRowData","columns","reduce","result","columnProperty","defaultOptions","uuid","sheetName","fileName","type","onlySelection","excludedColumns","undefined","getOptions","opts","getCellValue","cell","getExportedData","rows","range","rowsRanged","slice","dataToExport","map","columnsContent","filter","c","acc","curr","idx","label","rowsContent","e","r","String","replace","join","csvContent","exportTo","col","includes","blob","Blob","navigator","msSaveBlob","link","document","createElement","download","url","URL","createObjectURL","setAttribute","style","visibility","body","appendChild","click","removeChild","ExportDataPlugin","createInstancePlugin","decorateGrid","instance","exportRows","getInstance","composedRows","rowKey","props","selection","state","options","currentRows","allRows","selectedRows","Object","keys","exportVisibleRows"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterablePlugin.js","sources":["../../../../src/plugins/filterable/FilterablePlugin.tsx"],"sourcesContent":["/* eslint-disable indent */\nimport { get, isFunction } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { addFilterToColumn } from './addFilterToColumn';\n\nimport filterRowsByQuery, {\n filterRowsByQueryGroup,\n} from './filtering-helper/filterRowsByQuery';\nimport { useFilterableState } from './useFilterableState';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: {\n isFilterableColumnActive = (col) => col.searchable,\n onRemoveAllFilters,\n },\n actions: { addFilter, removeFilter },\n state: { query, filters },\n } = grid;\n\n return isFilterableColumnActive(column)\n ? addFilterToColumn(\n {\n grid,\n onAddFilter: addFilter,\n onRemoveFilter: removeFilter,\n onRemoveAllFilters,\n query,\n filters,\n },\n column,\n )\n : column;\n};\n\nconst composeRows = (rows, grid) => {\n const {\n props: { isDataFiltered, groupedRows },\n state: { query },\n composedRows,\n } = grid.getInstance();\n const nextRows = !groupedRows\n ? filterRowsByQuery(rows, query)\n : filterRowsByQueryGroup(rows, query, composedRows);\n\n return !isDataFiltered ? nextRows : rows;\n};\n\nexport const FilterablePlugin = createInstancePlugin('filterable', {\n registerStateHook: useFilterableState,\n decorateColumn,\n composeRows,\n registerHotKeys(grid) {\n return {\n key: 'ctrl+f',\n handler: ({ cellIndex }) => {\n const { decoratedColumns } = grid.getInstance();\n\n const column = decoratedColumns[cellIndex];\n const toggleMenuMethod = get(column, [\n 'filterMenu',\n 'current',\n 'toggleMenu',\n ]);\n if (isFunction(toggleMenuMethod)) toggleMenuMethod();\n },\n };\n },\n});\n"],"names":["decorateColumn","column","grid","props","isFilterableColumnActive","col","searchable","onRemoveAllFilters","actions","addFilter","removeFilter","state","query","filters","addFilterToColumn","onAddFilter","onRemoveFilter","composeRows","rows","getInstance","isDataFiltered","groupedRows","composedRows","nextRows","filterRowsByQuery","filterRowsByQueryGroup","FilterablePlugin","createInstancePlugin","registerStateHook","useFilterableState","registerHotKeys","key","handler","cellIndex","decoratedColumns","toggleMenuMethod","get","isFunction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAUA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,IAAT,EAAkB;AACvC,oBAOIA,IAPJ,CACEC,KADF;AAAA,0CAEIC,wBAFJ;AAAA,MAEIA,wBAFJ,sCAE+B,UAACC,GAAD;AAAA,WAASA,GAAG,CAACC,UAAb;AAAA,GAF/B;AAAA,MAGIC,kBAHJ,eAGIA,kBAHJ;AAAA,sBAOIL,IAPJ,CAKEM,OALF;AAAA,MAKaC,SALb,iBAKaA,SALb;AAAA,MAKwBC,YALxB,iBAKwBA,YALxB;AAAA,oBAOIR,IAPJ,CAMES,KANF;AAAA,MAMWC,KANX,eAMWA,KANX;AAAA,MAMkBC,OANlB,eAMkBA,OANlB;AASA,SAAOT,wBAAwB,CAACH,MAAD,CAAxB,GACHa,sDAAiB,CACf;AACEZ,IAAAA,IAAI,EAAJA,IADF;AAEEa,IAAAA,WAAW,EAAEN,SAFf;AAGEO,IAAAA,cAAc,EAAEN,YAHlB;AAIEH,IAAAA,kBAAkB,EAAlBA,kBAJF;AAKEK,IAAAA,KAAK,EAALA,KALF;AAMEC,IAAAA,OAAO,EAAPA;AANF,GADe,EASfZ,MATe,CADd,GAYHA,MAZJ;AAaD,CAvBD;;AAyBA,IAAMgB,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAOhB,IAAP,EAAgB;AAClC,0BAIIA,IAAI,CAACiB,WAAL,EAJJ;AAAA,gDACEhB,KADF;AAAA,MACWiB,cADX,yBACWA,cADX;AAAA,MAC2BC,WAD3B,yBAC2BA,WAD3B;AAAA,MAEWT,KAFX,qBAEED,KAFF,CAEWC,KAFX;AAAA,MAGEU,YAHF,qBAGEA,YAHF;;AAKA,MAAMC,QAAQ,GAAG,CAACF,WAAD,GACbG,+DAAiB,CAACN,IAAD,EAAON,KAAP,CADJ,GAEba,2EAAsB,CAACP,IAAD,EAAON,KAAP,EAAcU,YAAd,CAF1B;AAIA,SAAO,CAACF,cAAD,GAAkBG,QAAlB,GAA6BL,IAApC;AACD,CAXD;;IAaaQ,gBAAgB,GAAGC,wCAAoB,CAAC,YAAD,EAAe;AACjEC,EAAAA,iBAAiB,EAAEC,wDAD8C;AAEjE7B,EAAAA,cAAc,EAAdA,cAFiE;AAGjEiB,EAAAA,WAAW,EAAXA,WAHiE;AAIjEa,EAAAA,eAJiE,2BAIjD5B,IAJiD,EAI3C;AACpB,WAAO;AACL6B,MAAAA,GAAG,EAAE,QADA;AAELC,MAAAA,OAAO,EAAE,uBAAmB;AAAA,YAAhBC,SAAgB,QAAhBA,SAAgB;;AAC1B,iCAA6B/B,IAAI,CAACiB,WAAL,EAA7B;AAAA,YAAQe,gBAAR,sBAAQA,gBAAR;;AAEA,YAAMjC,MAAM,GAAGiC,gBAAgB,CAACD,SAAD,CAA/B;AACA,YAAME,gBAAgB,GAAGC,eAAG,CAACnC,MAAD,EAAS,CACnC,YADmC,EAEnC,SAFmC,EAGnC,YAHmC,CAAT,CAA5B;AAKA,YAAIoC,sBAAU,CAACF,gBAAD,CAAd,EAAkCA,gBAAgB;AACnD;AAZI,KAAP;AAcD;AAnBgE,CAAf;;;;"}
1
+ {"version":3,"file":"FilterablePlugin.js","sources":["../../../../src/plugins/filterable/FilterablePlugin.tsx"],"sourcesContent":["/* eslint-disable indent */\nimport { get, isFunction } from '@elliemae/ds-utilities';\nimport createInstancePlugin from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { addFilterToColumn } from './addFilterToColumn';\n\nimport filterRowsByQuery, {\n filterRowsByQueryGroup,\n} from './filtering-helper/filterRowsByQuery';\nimport { useFilterableState } from './useFilterableState';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: {\n isFilterableColumnActive = (col) => col.searchable,\n onRemoveAllFilters,\n },\n actions: { addFilter, removeFilter },\n state: { query, filters },\n } = grid;\n\n return isFilterableColumnActive(column)\n ? addFilterToColumn(\n {\n grid,\n onAddFilter: addFilter,\n onRemoveFilter: removeFilter,\n onRemoveAllFilters,\n query,\n filters,\n },\n column,\n )\n : column;\n};\n\nconst composeRows = (rows, grid) => {\n const {\n props: { isDataFiltered, groupedRows },\n state: { query },\n composedRows,\n } = grid.getInstance();\n const nextRows = !groupedRows\n ? filterRowsByQuery(rows, query)\n : filterRowsByQueryGroup(rows, query, composedRows);\n\n return !isDataFiltered ? nextRows : rows;\n};\n\nexport const FilterablePlugin = createInstancePlugin('filterable', {\n registerStateHook: useFilterableState,\n decorateColumn,\n composeRows,\n registerHotKeys(grid) {\n return {\n key: 'ctrl+f',\n handler: ({ cellIndex }) => {\n const { decoratedColumns } = grid.getInstance();\n\n const column = decoratedColumns[cellIndex];\n const toggleMenuMethod = get(column, [\n 'filterMenu',\n 'current',\n 'toggleMenu',\n ]);\n if (isFunction(toggleMenuMethod)) toggleMenuMethod();\n },\n };\n },\n});\n"],"names":["decorateColumn","column","grid","props","isFilterableColumnActive","col","searchable","onRemoveAllFilters","actions","addFilter","removeFilter","state","query","filters","addFilterToColumn","onAddFilter","onRemoveFilter","composeRows","rows","getInstance","isDataFiltered","groupedRows","composedRows","nextRows","filterRowsByQuery","filterRowsByQueryGroup","FilterablePlugin","createInstancePlugin","registerStateHook","useFilterableState","registerHotKeys","key","handler","cellIndex","decoratedColumns","toggleMenuMethod","get","isFunction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAUA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,IAAT,EAAkB;EACvC,kBAOIA,IAPJ,CACEC,KADF;0CAEIC,wBAFJ;MAEIA,wBAFJ,sCAE+B,UAACC,GAAD;IAAA,OAASA,GAAG,CAACC,UAAb;GAF/B;MAGIC,kBAHJ,eAGIA,kBAHJ;sBAOIL,IAPJ,CAKEM,OALF;MAKaC,SALb,iBAKaA,SALb;MAKwBC,YALxB,iBAKwBA,YALxB;oBAOIR,IAPJ,CAMES,KANF;MAMWC,KANX,eAMWA,KANX;MAMkBC,OANlB,eAMkBA,OANlB;EASA,OAAOT,wBAAwB,CAACH,MAAD,CAAxB,GACHa,sDAAiB,CACf;IACEZ,IAAI,EAAJA,IADF;IAEEa,WAAW,EAAEN,SAFf;IAGEO,cAAc,EAAEN,YAHlB;IAIEH,kBAAkB,EAAlBA,kBAJF;IAKEK,KAAK,EAALA,KALF;IAMEC,OAAO,EAAPA;GAPa,EASfZ,MATe,CADd,GAYHA,MAZJ;AAaD,CAvBD;;AAyBA,IAAMgB,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAOhB,IAAP,EAAgB;EAClC,wBAIIA,IAAI,CAACiB,WAAL,EAJJ;gDACEhB,KADF;MACWiB,cADX,yBACWA,cADX;MAC2BC,WAD3B,yBAC2BA,WAD3B;MAEWT,KAFX,qBAEED,KAFF,CAEWC,KAFX;MAGEU,YAHF,qBAGEA,YAHF;;EAKA,IAAMC,QAAQ,GAAG,CAACF,WAAD,GACbG,+DAAiB,CAACN,IAAD,EAAON,KAAP,CADJ,GAEba,2EAAsB,CAACP,IAAD,EAAON,KAAP,EAAcU,YAAd,CAF1B;EAIA,OAAO,CAACF,cAAD,GAAkBG,QAAlB,GAA6BL,IAApC;AACD,CAXD;;IAaaQ,gBAAgB,GAAGC,wCAAoB,CAAC,YAAD,EAAe;EACjEC,iBAAiB,EAAEC,wDAD8C;EAEjE7B,cAAc,EAAdA,cAFiE;EAGjEiB,WAAW,EAAXA,WAHiE;EAIjEa,eAJiE,2BAIjD5B,IAJiD,EAI3C;IACpB,OAAO;MACL6B,GAAG,EAAE,QADA;MAELC,OAAO,EAAE,uBAAmB;QAAA,IAAhBC,SAAgB,QAAhBA,SAAgB;;QAC1B,yBAA6B/B,IAAI,CAACiB,WAAL,EAA7B;YAAQe,gBAAR,sBAAQA,gBAAR;;QAEA,IAAMjC,MAAM,GAAGiC,gBAAgB,CAACD,SAAD,CAA/B;QACA,IAAME,gBAAgB,GAAGC,eAAG,CAACnC,MAAD,EAAS,CACnC,YADmC,EAEnC,SAFmC,EAGnC,YAHmC,CAAT,CAA5B;QAKA,IAAIoC,sBAAU,CAACF,gBAAD,CAAd,EAAkCA,gBAAgB;;KAXtD;;AAL+D,CAAf;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"addFilterToColumn.js","sources":["../../../../src/plugins/filterable/addFilterToColumn.tsx"],"sourcesContent":["import { createRef } from 'react';\nimport { mergeClassNameToColumnHeader } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport filterableFormatter from './filterableFormatter';\n\nexport const addFilterToColumn = (props, column) => {\n const filterMenuRef = createRef();\n column.header.formatters.push(\n filterableFormatter({ ...props, filterMenuRef }),\n );\n column.filterMenu = filterMenuRef;\n return mergeClassNameToColumnHeader('with-filtering', column);\n};\n"],"names":["addFilterToColumn","props","column","filterMenuRef","createRef","header","formatters","push","filterableFormatter","filterMenu","mergeClassNameToColumnHeader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,MAAR,EAAmB;AAClD,MAAMC,aAAa,gBAAGC,eAAS,EAA/B;AACAF,EAAAA,MAAM,CAACG,MAAP,CAAcC,UAAd,CAAyBC,IAAzB,CACEC,sCAAmB,iCAAMP,KAAN;AAAaE,IAAAA,aAAa,EAAbA;AAAb,KADrB;AAGAD,EAAAA,MAAM,CAACO,UAAP,GAAoBN,aAApB;AACA,SAAOO,iDAA4B,CAAC,gBAAD,EAAmBR,MAAnB,CAAnC;AACD;;;;"}
1
+ {"version":3,"file":"addFilterToColumn.js","sources":["../../../../src/plugins/filterable/addFilterToColumn.tsx"],"sourcesContent":["import { createRef } from 'react';\nimport { mergeClassNameToColumnHeader } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport filterableFormatter from './filterableFormatter';\n\nexport const addFilterToColumn = (props, column) => {\n const filterMenuRef = createRef();\n column.header.formatters.push(\n filterableFormatter({ ...props, filterMenuRef }),\n );\n column.filterMenu = filterMenuRef;\n return mergeClassNameToColumnHeader('with-filtering', column);\n};\n"],"names":["addFilterToColumn","props","column","filterMenuRef","createRef","header","formatters","push","filterableFormatter","filterMenu","mergeClassNameToColumnHeader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,MAAR,EAAmB;EAClD,IAAMC,aAAa,gBAAGC,eAAS,EAA/B;EACAF,MAAM,CAACG,MAAP,CAAcC,UAAd,CAAyBC,IAAzB,CACEC,sCAAmB,iCAAMP,KAAN;IAAaE,aAAa,EAAbA;KADlC;EAGAD,MAAM,CAACO,UAAP,GAAoBN,aAApB;EACA,OAAOO,iDAA4B,CAAC,gBAAD,EAAmBR,MAAnB,CAAnC;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterableHeader.js","sources":["../../../../../src/plugins/filterable/components/FilterableHeader.tsx"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { get, debounce ,useResizeObserver} from '@elliemae/ds-utilities';\nimport { useTheme } from '@elliemae/ds-system';\nimport getFilterMenuByType from './filterable-menus/getFilterMenuByType';\n\nconst blockName = 'data-grid-filter-header';\n\nconst Container = aggregatedClasses('div')(\n blockName,\n null,\n ({ showFilter }) => ({\n 'show-filter': showFilter,\n }),\n);\nconst FilterHeaderValue = aggregatedClasses('div')(blockName, 'value');\nconst FilterHeaderButton = aggregatedClasses('div')(blockName, 'button');\n\nexport default function FilterableHeader({\n column,\n value,\n columnData,\n onAddFilter,\n onRemoveFilter,\n filterMenuRef,\n onFilterMenuClose,\n onFilterMenuOpen,\n filters,\n isMulti,\n}) {\n const [isMenuOpened, setMenuOpened] = useState(false);\n const [headerWidth, setHeaderWidth] = useState();\n const debouncedWidthSetter = debounce(setHeaderWidth, 200);\n const { filterMenuMinWidth, filterMenuMaxWidth } = column;\n const theme = useTheme();\n const dropdownMinWidth =\n filterMenuMinWidth || Number(theme.space.xl.replace('px', '')) * 2;\n\n const defineHeaderWidth = ({ width }) => {\n let nextWidth = width + 16; // todo: use dimsum space once we convert it to JS\n if (nextWidth < dropdownMinWidth) nextWidth = dropdownMinWidth;\n if (filterMenuMaxWidth && nextWidth > filterMenuMaxWidth)\n nextWidth = filterMenuMaxWidth;\n return !isMenuOpened\n ? debouncedWidthSetter(nextWidth)\n : setHeaderWidth(nextWidth);\n };\n\n useEffect(() => {\n if (filterMenuRef) {\n filterMenuRef.current = {\n toggleMenu: () => setMenuOpened((prevState) => !prevState),\n };\n }\n }, [filterMenuRef]);\n\n useEffect(() => {\n if (!isMenuOpened) onFilterMenuClose(column);\n else onFilterMenuOpen(column);\n });\n\n const [ref] = useResizeObserver(defineHeaderWidth);\n const handleOpenMenu = useCallback((open) => {\n setMenuOpened(open);\n if (open) onFilterMenuOpen();\n }, []);\n const FilterMenuComponent = getFilterMenuByType(\n get(column, ['filter', 'type']),\n );\n return (\n <Container ref={ref} classProps={{ showFilter: isMenuOpened }}>\n <FilterHeaderValue className=\"header-value\">{value}</FilterHeaderValue>\n <FilterHeaderButton data-testid=\"data-grid-filter-header__button\">\n <FilterMenuComponent\n className=\"filter-header-menu\"\n column={column}\n filters={filters}\n isMenuOpened={isMenuOpened}\n isMulti={isMulti}\n menuProps={{\n options: columnData || [],\n style: { minWidth: headerWidth, maxWidth: filterMenuMaxWidth },\n zIndex: 100,\n }}\n onAddFilter={onAddFilter}\n onRemoveFilter={onRemoveFilter}\n onOpenMenu={handleOpenMenu}\n onClose={onFilterMenuClose}\n width={headerWidth}\n {...get(column, ['filter'], {})}\n />\n </FilterHeaderButton>\n </Container>\n );\n}\n\nFilterableHeader.propTypes = {\n column: PropTypes.any,\n value: PropTypes.any,\n columnData: PropTypes.any,\n onAddFilter: PropTypes.func,\n onRemoveFilter: PropTypes.func,\n filterMenuRef: PropTypes.any,\n onFilterMenuClose: PropTypes.func,\n onFilterMenuOpen: PropTypes.func,\n filters: PropTypes.arrayOf(PropTypes.shape({})),\n isMulti: PropTypes.bool,\n};\n"],"names":["blockName","Container","aggregatedClasses","showFilter","FilterHeaderValue","FilterHeaderButton","FilterableHeader","column","value","columnData","onAddFilter","onRemoveFilter","filterMenuRef","onFilterMenuClose","onFilterMenuOpen","filters","isMulti","useState","isMenuOpened","setMenuOpened","headerWidth","setHeaderWidth","debouncedWidthSetter","debounce","filterMenuMinWidth","filterMenuMaxWidth","theme","useTheme","dropdownMinWidth","Number","space","xl","replace","defineHeaderWidth","width","nextWidth","useEffect","current","toggleMenu","prevState","useResizeObserver","ref","handleOpenMenu","useCallback","open","FilterMenuComponent","getFilterMenuByType","get","React","options","style","minWidth","maxWidth","zIndex","propTypes","PropTypes","any","func","arrayOf","shape","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,SAAS,GAAG,yBAAlB;AAEA,IAAMC,SAAS,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,CAChBF,SADgB,EAEhB,IAFgB,EAGhB;AAAA,MAAGG,UAAH,QAAGA,UAAH;AAAA,SAAqB;AACnB,mBAAeA;AADI,GAArB;AAAA,CAHgB,CAAlB;AAOA,IAAMC,iBAAiB,GAAGF,8BAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,EAAoC,OAApC,CAA1B;AACA,IAAMK,kBAAkB,GAAGH,8BAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,EAAoC,QAApC,CAA3B;AAEe,SAASM,gBAAT,QAWZ;AAAA,MAVDC,MAUC,SAVDA,MAUC;AAAA,MATDC,KASC,SATDA,KASC;AAAA,MARDC,UAQC,SARDA,UAQC;AAAA,MAPDC,WAOC,SAPDA,WAOC;AAAA,MANDC,cAMC,SANDA,cAMC;AAAA,MALDC,aAKC,SALDA,aAKC;AAAA,MAJDC,iBAIC,SAJDA,iBAIC;AAAA,MAHDC,gBAGC,SAHDA,gBAGC;AAAA,MAFDC,OAEC,SAFDA,OAEC;AAAA,MADDC,OACC,SADDA,OACC;;AACD,kBAAsCC,cAAQ,CAAC,KAAD,CAA9C;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,aAArB;;AACA,mBAAsCF,cAAQ,EAA9C;AAAA;AAAA,MAAOG,WAAP;AAAA,MAAoBC,cAApB;;AACA,MAAMC,oBAAoB,GAAGC,oBAAQ,CAACF,cAAD,EAAiB,GAAjB,CAArC;AACA,MAAQG,kBAAR,GAAmDjB,MAAnD,CAAQiB,kBAAR;AAAA,MAA4BC,kBAA5B,GAAmDlB,MAAnD,CAA4BkB,kBAA5B;AACA,MAAMC,KAAK,GAAGC,iBAAQ,EAAtB;AACA,MAAMC,gBAAgB,GACpBJ,kBAAkB,IAAIK,MAAM,CAACH,KAAK,CAACI,KAAN,CAAYC,EAAZ,CAAeC,OAAf,CAAuB,IAAvB,EAA6B,EAA7B,CAAD,CAAN,GAA2C,CADnE;;AAGA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,QAAe;AAAA,QAAZC,KAAY,SAAZA,KAAY;AACvC,QAAIC,SAAS,GAAGD,KAAK,GAAG,EAAxB,CADuC;;AAEvC,QAAIC,SAAS,GAAGP,gBAAhB,EAAkCO,SAAS,GAAGP,gBAAZ;AAClC,QAAIH,kBAAkB,IAAIU,SAAS,GAAGV,kBAAtC,EACEU,SAAS,GAAGV,kBAAZ;AACF,WAAO,CAACP,YAAD,GACHI,oBAAoB,CAACa,SAAD,CADjB,GAEHd,cAAc,CAACc,SAAD,CAFlB;AAGD,GARD;;AAUAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIxB,aAAJ,EAAmB;AACjBA,MAAAA,aAAa,CAACyB,OAAd,GAAwB;AACtBC,QAAAA,UAAU,EAAE;AAAA,iBAAMnB,aAAa,CAAC,UAACoB,SAAD;AAAA,mBAAe,CAACA,SAAhB;AAAA,WAAD,CAAnB;AAAA;AADU,OAAxB;AAGD;AACF,GANQ,EAMN,CAAC3B,aAAD,CANM,CAAT;AAQAwB,EAAAA,eAAS,CAAC,YAAM;AACd,QAAI,CAAClB,YAAL,EAAmBL,iBAAiB,CAACN,MAAD,CAAjB,CAAnB,KACKO,gBAAgB,CAACP,MAAD,CAAhB;AACN,GAHQ,CAAT;;AAKA,2BAAciC,6BAAiB,CAACP,iBAAD,CAA/B;AAAA;AAAA,MAAOQ,GAAP;;AACA,MAAMC,cAAc,GAAGC,iBAAW,CAAC,UAACC,IAAD,EAAU;AAC3CzB,IAAAA,aAAa,CAACyB,IAAD,CAAb;AACA,QAAIA,IAAJ,EAAU9B,gBAAgB;AAC3B,GAHiC,EAG/B,EAH+B,CAAlC;AAIA,MAAM+B,mBAAmB,GAAGC,iEAAmB,CAC7CC,eAAG,CAACxC,MAAD,EAAS,CAAC,QAAD,EAAW,MAAX,CAAT,CAD0C,CAA/C;AAGA,sBACEyC,wCAAC,SAAD;AAAW,IAAA,GAAG,EAAEP,GAAhB;AAAqB,IAAA,UAAU,EAAE;AAAEtC,MAAAA,UAAU,EAAEe;AAAd;AAAjC,kBACE8B,wCAAC,iBAAD;AAAmB,IAAA,SAAS,EAAC;AAA7B,KAA6CxC,KAA7C,CADF,eAEEwC,wCAAC,kBAAD;AAAoB,mBAAY;AAAhC,kBACEA,wCAAC,mBAAD;AACE,IAAA,SAAS,EAAC,oBADZ;AAEE,IAAA,MAAM,EAAEzC,MAFV;AAGE,IAAA,OAAO,EAAEQ,OAHX;AAIE,IAAA,YAAY,EAAEG,YAJhB;AAKE,IAAA,OAAO,EAAEF,OALX;AAME,IAAA,SAAS,EAAE;AACTiC,MAAAA,OAAO,EAAExC,UAAU,IAAI,EADd;AAETyC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAE/B,WAAZ;AAAyBgC,QAAAA,QAAQ,EAAE3B;AAAnC,OAFE;AAGT4B,MAAAA,MAAM,EAAE;AAHC,KANb;AAWE,IAAA,WAAW,EAAE3C,WAXf;AAYE,IAAA,cAAc,EAAEC,cAZlB;AAaE,IAAA,UAAU,EAAE+B,cAbd;AAcE,IAAA,OAAO,EAAE7B,iBAdX;AAeE,IAAA,KAAK,EAAEO;AAfT,KAgBM2B,eAAG,CAACxC,MAAD,EAAS,CAAC,QAAD,CAAT,EAAqB,EAArB,CAhBT,EADF,CAFF,CADF;AAyBD;AAEDD,gBAAgB,CAACgD,SAAjB,GAA6B;AAC3B/C,EAAAA,MAAM,EAAEgD,6BAAS,CAACC,GADS;AAE3BhD,EAAAA,KAAK,EAAE+C,6BAAS,CAACC,GAFU;AAG3B/C,EAAAA,UAAU,EAAE8C,6BAAS,CAACC,GAHK;AAI3B9C,EAAAA,WAAW,EAAE6C,6BAAS,CAACE,IAJI;AAK3B9C,EAAAA,cAAc,EAAE4C,6BAAS,CAACE,IALC;AAM3B7C,EAAAA,aAAa,EAAE2C,6BAAS,CAACC,GANE;AAO3B3C,EAAAA,iBAAiB,EAAE0C,6BAAS,CAACE,IAPF;AAQ3B3C,EAAAA,gBAAgB,EAAEyC,6BAAS,CAACE,IARD;AAS3B1C,EAAAA,OAAO,EAAEwC,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACI,KAAV,CAAgB,EAAhB,CAAlB,CATkB;AAU3B3C,EAAAA,OAAO,EAAEuC,6BAAS,CAACK;AAVQ,CAA7B;;;;"}
1
+ {"version":3,"file":"FilterableHeader.js","sources":["../../../../../src/plugins/filterable/components/FilterableHeader.tsx"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { get, debounce ,useResizeObserver} from '@elliemae/ds-utilities';\nimport { useTheme } from '@elliemae/ds-system';\nimport getFilterMenuByType from './filterable-menus/getFilterMenuByType';\n\nconst blockName = 'data-grid-filter-header';\n\nconst Container = aggregatedClasses('div')(\n blockName,\n null,\n ({ showFilter }) => ({\n 'show-filter': showFilter,\n }),\n);\nconst FilterHeaderValue = aggregatedClasses('div')(blockName, 'value');\nconst FilterHeaderButton = aggregatedClasses('div')(blockName, 'button');\n\nexport default function FilterableHeader({\n column,\n value,\n columnData,\n onAddFilter,\n onRemoveFilter,\n filterMenuRef,\n onFilterMenuClose,\n onFilterMenuOpen,\n filters,\n isMulti,\n}) {\n const [isMenuOpened, setMenuOpened] = useState(false);\n const [headerWidth, setHeaderWidth] = useState();\n const debouncedWidthSetter = debounce(setHeaderWidth, 200);\n const { filterMenuMinWidth, filterMenuMaxWidth } = column;\n const theme = useTheme();\n const dropdownMinWidth =\n filterMenuMinWidth || Number(theme.space.xl.replace('px', '')) * 2;\n\n const defineHeaderWidth = ({ width }) => {\n let nextWidth = width + 16; // todo: use dimsum space once we convert it to JS\n if (nextWidth < dropdownMinWidth) nextWidth = dropdownMinWidth;\n if (filterMenuMaxWidth && nextWidth > filterMenuMaxWidth)\n nextWidth = filterMenuMaxWidth;\n return !isMenuOpened\n ? debouncedWidthSetter(nextWidth)\n : setHeaderWidth(nextWidth);\n };\n\n useEffect(() => {\n if (filterMenuRef) {\n filterMenuRef.current = {\n toggleMenu: () => setMenuOpened((prevState) => !prevState),\n };\n }\n }, [filterMenuRef]);\n\n useEffect(() => {\n if (!isMenuOpened) onFilterMenuClose(column);\n else onFilterMenuOpen(column);\n });\n\n const [ref] = useResizeObserver(defineHeaderWidth);\n const handleOpenMenu = useCallback((open) => {\n setMenuOpened(open);\n if (open) onFilterMenuOpen();\n }, []);\n const FilterMenuComponent = getFilterMenuByType(\n get(column, ['filter', 'type']),\n );\n return (\n <Container ref={ref} classProps={{ showFilter: isMenuOpened }}>\n <FilterHeaderValue className=\"header-value\">{value}</FilterHeaderValue>\n <FilterHeaderButton data-testid=\"data-grid-filter-header__button\">\n <FilterMenuComponent\n className=\"filter-header-menu\"\n column={column}\n filters={filters}\n isMenuOpened={isMenuOpened}\n isMulti={isMulti}\n menuProps={{\n options: columnData || [],\n style: { minWidth: headerWidth, maxWidth: filterMenuMaxWidth },\n zIndex: 100,\n }}\n onAddFilter={onAddFilter}\n onRemoveFilter={onRemoveFilter}\n onOpenMenu={handleOpenMenu}\n onClose={onFilterMenuClose}\n width={headerWidth}\n {...get(column, ['filter'], {})}\n />\n </FilterHeaderButton>\n </Container>\n );\n}\n\nFilterableHeader.propTypes = {\n column: PropTypes.any,\n value: PropTypes.any,\n columnData: PropTypes.any,\n onAddFilter: PropTypes.func,\n onRemoveFilter: PropTypes.func,\n filterMenuRef: PropTypes.any,\n onFilterMenuClose: PropTypes.func,\n onFilterMenuOpen: PropTypes.func,\n filters: PropTypes.arrayOf(PropTypes.shape({})),\n isMulti: PropTypes.bool,\n};\n"],"names":["blockName","Container","aggregatedClasses","showFilter","FilterHeaderValue","FilterHeaderButton","FilterableHeader","column","value","columnData","onAddFilter","onRemoveFilter","filterMenuRef","onFilterMenuClose","onFilterMenuOpen","filters","isMulti","useState","isMenuOpened","setMenuOpened","headerWidth","setHeaderWidth","debouncedWidthSetter","debounce","filterMenuMinWidth","filterMenuMaxWidth","theme","useTheme","dropdownMinWidth","Number","space","xl","replace","defineHeaderWidth","width","nextWidth","useEffect","current","toggleMenu","prevState","useResizeObserver","ref","handleOpenMenu","useCallback","open","FilterMenuComponent","getFilterMenuByType","get","React","options","style","minWidth","maxWidth","zIndex","propTypes","PropTypes","any","func","arrayOf","shape","bool"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeFilterMenu.js","sources":["../../../../../../src/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { DSControlledDateRangePicker } from '@elliemae/ds-controlled-form';\nimport DSPopper, { PopperPositions as Position } from '@elliemae/ds-popper';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport moment from 'moment';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { DEFAULT_DATE_FORMAT } from './defaultDateFormat';\n\nconst blockname = 'date-range';\nconst Wrapper = aggregatedClasses('div')(blockname, 'wrapper');\nconst Header = aggregatedClasses('div')(blockname, 'header');\n\n// const randomString = (maxLength = 5) => Math.random().toString(36).slice(-maxLength);\n\nconst DateRangePickerContainer = ({ onChange = () => null, showHeader }) => {\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n\n // For some reason it worked like this\n const [lastChangeWasPicker, setLastChangeWasPicker] = useState(false);\n\n useEffect(() => {\n const startMoment = moment(startDate);\n const endMoment = moment(endDate);\n if (\n lastChangeWasPicker &&\n startDate &&\n !startDate.includes('_') &&\n endDate &&\n !endDate.includes('_') &&\n endMoment.diff(startMoment) >= 0\n ) {\n onChange({ startDate: startMoment, endDate: endMoment });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, lastChangeWasPicker]);\n\n return (\n <Wrapper\n data-testid=\"date-range__wrapper\"\n onKeyDown={(e) => e.code === 'Enter' && setLastChangeWasPicker(true)}\n style={{ backgroundColor: 'white', boxShadow: '0 6px 20px 0 rgb(0 0 0 / 24%)', width: '261px' }}\n >\n {showHeader && (\n <Header style={{ padding: '8px', display: 'flex', justifyContent: 'center' }}>\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(false);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(false);\n }}\n type=\"date-range-inputs\"\n />\n </Header>\n )}\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(true);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(true);\n }}\n type=\"date-range-picker-controller-only\"\n />\n </Wrapper>\n );\n};\n\nDateRangePickerContainer.propTypes = {\n onChange: PropTypes.func,\n showHeader: PropTypes.bool,\n};\n\nconst formatRangeDate = ({ startDate, endDate }, format = DEFAULT_DATE_FORMAT) => {\n const sameDay = startDate.isSame(endDate, 'day');\n if (sameDay) return `${endDate.format(format)}`;\n return `${startDate.format(format)} - ${endDate.format(format)}`;\n};\n\nfunction DateRangeFilterMenu({\n column,\n className,\n isMenuOpened = false,\n onOpenMenu = () => null,\n placement = Position.BOTTOM_END,\n onAddFilter = () => null,\n dateFormatter = formatRangeDate,\n showHeader = true,\n menuProps,\n}) {\n return (\n <DSPopper\n contentComponent={\n <div className={className}>\n <DateRangePickerContainer\n minimumNights={0}\n onChange={({ startDate, endDate }) => {\n startDate.startOf('day');\n endDate.endOf('day');\n onAddFilter(\n {\n group: column.property,\n label: column.label,\n value: dateFormatter({ startDate, endDate }),\n type: 'date', // todo: create constants for filter types\n filterParams: { start: startDate, end: endDate },\n transformRowValue: (value) => moment(value, column.dateFormat || DEFAULT_DATE_FORMAT),\n operator: 'range',\n },\n column,\n );\n onOpenMenu(false);\n }}\n showHeader={showHeader}\n />\n </div>\n }\n isOpen={isMenuOpened}\n onOpen={onOpenMenu}\n placement={placement}\n showArrow={false}\n triggerComponent={\n <DSButton\n buttonType=\"text\"\n icon={<DatePicker2 />}\n onClick={() => (!isMenuOpened ? onOpenMenu(true) : onOpenMenu(false))}\n size=\"s\"\n />\n }\n zIndex={menuProps.zIndex}\n />\n );\n}\n\nDateRangeFilterMenu.propTypes = {\n column: PropTypes.any,\n className: PropTypes.string,\n isMenuOpened: PropTypes.bool,\n onOpenMenu: PropTypes.func,\n placement: PropTypes.string,\n onAddFilter: PropTypes.func,\n dateFormatter: PropTypes.any,\n showHeader: PropTypes.bool,\n menuProps: PropTypes.any,\n};\n\nexport default DateRangeFilterMenu;\n"],"names":["blockname","Wrapper","aggregatedClasses","Header","DateRangePickerContainer","onChange","showHeader","useState","startDate","setStartDate","endDate","setEndDate","lastChangeWasPicker","setLastChangeWasPicker","useEffect","startMoment","moment","endMoment","includes","diff","React","e","code","backgroundColor","boxShadow","width","padding","display","justifyContent","DSControlledDateRangePicker","_start","_end","propTypes","PropTypes","func","bool","formatRangeDate","format","DEFAULT_DATE_FORMAT","sameDay","isSame","DateRangeFilterMenu","column","className","isMenuOpened","onOpenMenu","placement","Position","BOTTOM_END","onAddFilter","dateFormatter","menuProps","DSPopper","startOf","endOf","group","property","label","value","type","filterParams","start","end","transformRowValue","dateFormat","operator","DSButton","DatePicker2","zIndex","any","string"],"mappings":"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"}
1
+ {"version":3,"file":"DateRangeFilterMenu.js","sources":["../../../../../../src/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { DSControlledDateRangePicker } from '@elliemae/ds-controlled-form';\nimport DSPopper, { PopperPositions as Position } from '@elliemae/ds-popper';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport moment from 'moment';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { DEFAULT_DATE_FORMAT } from './defaultDateFormat';\n\nconst blockname = 'date-range';\nconst Wrapper = aggregatedClasses('div')(blockname, 'wrapper');\nconst Header = aggregatedClasses('div')(blockname, 'header');\n\n// const randomString = (maxLength = 5) => Math.random().toString(36).slice(-maxLength);\n\nconst DateRangePickerContainer = ({ onChange = () => null, showHeader }) => {\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n\n // For some reason it worked like this\n const [lastChangeWasPicker, setLastChangeWasPicker] = useState(false);\n\n useEffect(() => {\n const startMoment = moment(startDate);\n const endMoment = moment(endDate);\n if (\n lastChangeWasPicker &&\n startDate &&\n !startDate.includes('_') &&\n endDate &&\n !endDate.includes('_') &&\n endMoment.diff(startMoment) >= 0\n ) {\n onChange({ startDate: startMoment, endDate: endMoment });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, lastChangeWasPicker]);\n\n return (\n <Wrapper\n data-testid=\"date-range__wrapper\"\n onKeyDown={(e) => e.code === 'Enter' && setLastChangeWasPicker(true)}\n style={{ backgroundColor: 'white', boxShadow: '0 6px 20px 0 rgb(0 0 0 / 24%)', width: '261px' }}\n >\n {showHeader && (\n <Header style={{ padding: '8px', display: 'flex', justifyContent: 'center' }}>\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(false);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(false);\n }}\n type=\"date-range-inputs\"\n />\n </Header>\n )}\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={(_start) => {\n setStartDate(_start);\n setLastChangeWasPicker(true);\n }}\n toDate={endDate}\n onToDateChange={(_end) => {\n setEndDate(_end);\n setLastChangeWasPicker(true);\n }}\n type=\"date-range-picker-controller-only\"\n />\n </Wrapper>\n );\n};\n\nDateRangePickerContainer.propTypes = {\n onChange: PropTypes.func,\n showHeader: PropTypes.bool,\n};\n\nconst formatRangeDate = ({ startDate, endDate }, format = DEFAULT_DATE_FORMAT) => {\n const sameDay = startDate.isSame(endDate, 'day');\n if (sameDay) return `${endDate.format(format)}`;\n return `${startDate.format(format)} - ${endDate.format(format)}`;\n};\n\nfunction DateRangeFilterMenu({\n column,\n className,\n isMenuOpened = false,\n onOpenMenu = () => null,\n placement = Position.BOTTOM_END,\n onAddFilter = () => null,\n dateFormatter = formatRangeDate,\n showHeader = true,\n menuProps,\n}) {\n return (\n <DSPopper\n contentComponent={\n <div className={className}>\n <DateRangePickerContainer\n minimumNights={0}\n onChange={({ startDate, endDate }) => {\n startDate.startOf('day');\n endDate.endOf('day');\n onAddFilter(\n {\n group: column.property,\n label: column.label,\n value: dateFormatter({ startDate, endDate }),\n type: 'date', // todo: create constants for filter types\n filterParams: { start: startDate, end: endDate },\n transformRowValue: (value) => moment(value, column.dateFormat || DEFAULT_DATE_FORMAT),\n operator: 'range',\n },\n column,\n );\n onOpenMenu(false);\n }}\n showHeader={showHeader}\n />\n </div>\n }\n isOpen={isMenuOpened}\n onOpen={onOpenMenu}\n placement={placement}\n showArrow={false}\n triggerComponent={\n <DSButton\n buttonType=\"text\"\n icon={<DatePicker2 />}\n onClick={() => (!isMenuOpened ? onOpenMenu(true) : onOpenMenu(false))}\n size=\"s\"\n />\n }\n zIndex={menuProps.zIndex}\n />\n );\n}\n\nDateRangeFilterMenu.propTypes = {\n column: PropTypes.any,\n className: PropTypes.string,\n isMenuOpened: PropTypes.bool,\n onOpenMenu: PropTypes.func,\n placement: PropTypes.string,\n onAddFilter: PropTypes.func,\n dateFormatter: PropTypes.any,\n showHeader: PropTypes.bool,\n menuProps: PropTypes.any,\n};\n\nexport default DateRangeFilterMenu;\n"],"names":["blockname","Wrapper","aggregatedClasses","Header","DateRangePickerContainer","onChange","showHeader","useState","startDate","setStartDate","endDate","setEndDate","lastChangeWasPicker","setLastChangeWasPicker","useEffect","startMoment","moment","endMoment","includes","diff","React","e","code","backgroundColor","boxShadow","width","padding","display","justifyContent","DSControlledDateRangePicker","_start","_end","propTypes","PropTypes","func","bool","formatRangeDate","format","DEFAULT_DATE_FORMAT","sameDay","isSame","DateRangeFilterMenu","column","className","isMenuOpened","onOpenMenu","placement","Position","BOTTOM_END","onAddFilter","dateFormatter","menuProps","DSPopper","startOf","endOf","group","property","label","value","type","filterParams","start","end","transformRowValue","dateFormat","operator","DSButton","DatePicker2","zIndex","any","string"],"mappings":"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"}