@elliemae/ds-datagrids 3.0.0-next.13 → 3.0.0-next.17

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 (125) hide show
  1. package/dist/cjs/DataGridImpl.js +3 -4
  2. package/dist/cjs/DataGridImpl.js.map +2 -2
  3. package/dist/cjs/PaginatedDataGrid.js +2 -2
  4. package/dist/cjs/PaginatedDataGrid.js.map +2 -2
  5. package/dist/cjs/components/BodyCell.js +4 -5
  6. package/dist/cjs/components/BodyCell.js.map +2 -2
  7. package/dist/cjs/components/HeaderCell.js +3 -3
  8. package/dist/cjs/components/HeaderCell.js.map +2 -2
  9. package/dist/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +5 -6
  10. package/dist/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +2 -2
  11. package/dist/cjs/plugins/column-dnd/DndColumnsPlugin.js +2 -2
  12. package/dist/cjs/plugins/column-dnd/DndColumnsPlugin.js.map +2 -2
  13. package/dist/cjs/plugins/column-dnd/decorateGridWithDndColumns.js +3 -3
  14. package/dist/cjs/plugins/column-dnd/decorateGridWithDndColumns.js.map +2 -2
  15. package/dist/cjs/plugins/column-sizing/ColumnSizingPlugin.js +2 -2
  16. package/dist/cjs/plugins/column-sizing/ColumnSizingPlugin.js.map +2 -2
  17. package/dist/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js +2 -2
  18. package/dist/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +2 -2
  19. package/dist/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js +2 -2
  20. package/dist/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +2 -2
  21. package/dist/cjs/plugins/editable/EditableComponents/ComboBox.js +10 -10
  22. package/dist/cjs/plugins/editable/EditableComponents/ComboBox.js.map +2 -2
  23. package/dist/cjs/plugins/editable/EditableComponents/TextBox.js +21 -21
  24. package/dist/cjs/plugins/editable/EditableComponents/TextBox.js.map +2 -2
  25. package/dist/cjs/plugins/editable/EditablePlugin.js +2 -2
  26. package/dist/cjs/plugins/editable/EditablePlugin.js.map +2 -2
  27. package/dist/cjs/plugins/editable/decorateEditable.js +2 -2
  28. package/dist/cjs/plugins/editable/decorateEditable.js.map +2 -2
  29. package/dist/cjs/plugins/expandable-grid/ExpandablePlugin.js +3 -4
  30. package/dist/cjs/plugins/expandable-grid/ExpandablePlugin.js.map +2 -2
  31. package/dist/cjs/plugins/expandable-grid/ExpandedRow.js +3 -4
  32. package/dist/cjs/plugins/expandable-grid/ExpandedRow.js.map +2 -2
  33. package/dist/cjs/plugins/export-data/ExportDataPlugin.js +2 -2
  34. package/dist/cjs/plugins/export-data/ExportDataPlugin.js.map +2 -2
  35. package/dist/cjs/plugins/filterable/FilterablePlugin.js +2 -2
  36. package/dist/cjs/plugins/filterable/FilterablePlugin.js.map +2 -2
  37. package/dist/cjs/plugins/filterable/addFilterToColumn.js +2 -2
  38. package/dist/cjs/plugins/filterable/addFilterToColumn.js.map +2 -2
  39. package/dist/cjs/plugins/grouping-by/GroupingByPlugin.js +2 -2
  40. package/dist/cjs/plugins/grouping-by/GroupingByPlugin.js.map +2 -2
  41. package/dist/cjs/plugins/grouping-grid/GroupingPlugin.js +2 -2
  42. package/dist/cjs/plugins/grouping-grid/GroupingPlugin.js.map +2 -2
  43. package/dist/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js +2 -2
  44. package/dist/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +2 -2
  45. package/dist/cjs/plugins/pagination/PaginationPlugin.js +3 -4
  46. package/dist/cjs/plugins/pagination/PaginationPlugin.js.map +2 -2
  47. package/dist/cjs/plugins/resizable/ResizablePlugin.js +2 -2
  48. package/dist/cjs/plugins/resizable/ResizablePlugin.js.map +2 -2
  49. package/dist/cjs/plugins/resizable/decorateResizable.js +2 -2
  50. package/dist/cjs/plugins/resizable/decorateResizable.js.map +2 -2
  51. package/dist/cjs/plugins/row-dnd/DndRowsPlugin.js +3 -4
  52. package/dist/cjs/plugins/row-dnd/DndRowsPlugin.js.map +2 -2
  53. package/dist/cjs/plugins/selectable/SelectablePlugin.js +2 -2
  54. package/dist/cjs/plugins/selectable/SelectablePlugin.js.map +2 -2
  55. package/dist/cjs/plugins/selectable/addSelectableColumn.js +3 -3
  56. package/dist/cjs/plugins/selectable/addSelectableColumn.js.map +2 -2
  57. package/dist/cjs/plugins/sortable/SortablePlugin.js +3 -4
  58. package/dist/cjs/plugins/sortable/SortablePlugin.js.map +2 -2
  59. package/dist/cjs/plugins/toolbar/ToolbarPlugin.js +3 -4
  60. package/dist/cjs/plugins/toolbar/ToolbarPlugin.js.map +2 -2
  61. package/dist/cjs/plugins/virtualization/VirtualizationPlugin.js +4 -6
  62. package/dist/cjs/plugins/virtualization/VirtualizationPlugin.js.map +2 -2
  63. package/dist/esm/DataGridImpl.js +1 -2
  64. package/dist/esm/DataGridImpl.js.map +2 -2
  65. package/dist/esm/PaginatedDataGrid.js +1 -1
  66. package/dist/esm/PaginatedDataGrid.js.map +2 -2
  67. package/dist/esm/components/BodyCell.js +1 -2
  68. package/dist/esm/components/BodyCell.js.map +2 -2
  69. package/dist/esm/components/HeaderCell.js +1 -1
  70. package/dist/esm/components/HeaderCell.js.map +1 -1
  71. package/dist/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +1 -2
  72. package/dist/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +2 -2
  73. package/dist/esm/plugins/column-dnd/DndColumnsPlugin.js +1 -1
  74. package/dist/esm/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
  75. package/dist/esm/plugins/column-dnd/decorateGridWithDndColumns.js +1 -4
  76. package/dist/esm/plugins/column-dnd/decorateGridWithDndColumns.js.map +2 -2
  77. package/dist/esm/plugins/column-sizing/ColumnSizingPlugin.js +1 -1
  78. package/dist/esm/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
  79. package/dist/esm/plugins/custom-cell-renderer/CustomRendererPlugin.js +1 -1
  80. package/dist/esm/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
  81. package/dist/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js +1 -1
  82. package/dist/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
  83. package/dist/esm/plugins/editable/EditableComponents/ComboBox.js +10 -10
  84. package/dist/esm/plugins/editable/EditableComponents/ComboBox.js.map +2 -2
  85. package/dist/esm/plugins/editable/EditableComponents/TextBox.js +21 -21
  86. package/dist/esm/plugins/editable/EditableComponents/TextBox.js.map +2 -2
  87. package/dist/esm/plugins/editable/EditablePlugin.js +1 -1
  88. package/dist/esm/plugins/editable/EditablePlugin.js.map +1 -1
  89. package/dist/esm/plugins/editable/decorateEditable.js +1 -1
  90. package/dist/esm/plugins/editable/decorateEditable.js.map +1 -1
  91. package/dist/esm/plugins/expandable-grid/ExpandablePlugin.js +1 -2
  92. package/dist/esm/plugins/expandable-grid/ExpandablePlugin.js.map +2 -2
  93. package/dist/esm/plugins/expandable-grid/ExpandedRow.js +1 -2
  94. package/dist/esm/plugins/expandable-grid/ExpandedRow.js.map +2 -2
  95. package/dist/esm/plugins/export-data/ExportDataPlugin.js +1 -1
  96. package/dist/esm/plugins/export-data/ExportDataPlugin.js.map +1 -1
  97. package/dist/esm/plugins/filterable/FilterablePlugin.js +1 -1
  98. package/dist/esm/plugins/filterable/FilterablePlugin.js.map +1 -1
  99. package/dist/esm/plugins/filterable/addFilterToColumn.js +1 -1
  100. package/dist/esm/plugins/filterable/addFilterToColumn.js.map +2 -2
  101. package/dist/esm/plugins/grouping-by/GroupingByPlugin.js +1 -1
  102. package/dist/esm/plugins/grouping-by/GroupingByPlugin.js.map +2 -2
  103. package/dist/esm/plugins/grouping-grid/GroupingPlugin.js +1 -1
  104. package/dist/esm/plugins/grouping-grid/GroupingPlugin.js.map +2 -2
  105. package/dist/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js +1 -1
  106. package/dist/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
  107. package/dist/esm/plugins/pagination/PaginationPlugin.js +1 -2
  108. package/dist/esm/plugins/pagination/PaginationPlugin.js.map +2 -2
  109. package/dist/esm/plugins/resizable/ResizablePlugin.js +1 -1
  110. package/dist/esm/plugins/resizable/ResizablePlugin.js.map +1 -1
  111. package/dist/esm/plugins/resizable/decorateResizable.js +1 -1
  112. package/dist/esm/plugins/resizable/decorateResizable.js.map +2 -2
  113. package/dist/esm/plugins/row-dnd/DndRowsPlugin.js +1 -2
  114. package/dist/esm/plugins/row-dnd/DndRowsPlugin.js.map +2 -2
  115. package/dist/esm/plugins/selectable/SelectablePlugin.js +1 -1
  116. package/dist/esm/plugins/selectable/SelectablePlugin.js.map +1 -1
  117. package/dist/esm/plugins/selectable/addSelectableColumn.js +1 -4
  118. package/dist/esm/plugins/selectable/addSelectableColumn.js.map +2 -2
  119. package/dist/esm/plugins/sortable/SortablePlugin.js +1 -5
  120. package/dist/esm/plugins/sortable/SortablePlugin.js.map +2 -2
  121. package/dist/esm/plugins/toolbar/ToolbarPlugin.js +1 -2
  122. package/dist/esm/plugins/toolbar/ToolbarPlugin.js.map +2 -2
  123. package/dist/esm/plugins/virtualization/VirtualizationPlugin.js +2 -4
  124. package/dist/esm/plugins/virtualization/VirtualizationPlugin.js.map +2 -2
  125. package/package.json +19 -19
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/export-data/ExportDataPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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 ? [...result, getColumnValue(row, `_${columnProperty}`) || getColumnValue(row, columnProperty)]\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((acc, curr, idx) => `${acc}${idx === 0 ? '' : ','}${curr.label}`, '');\n const rowsContent = dataToExport\n .map((e) => e.map((r) => `\"${String(getCellValue(r)).replace(/\"/g, '\"\"')}\"`).join(','))\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 = (rows, columns, { range, fileName, type, excludedColumns }) => {\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) => selectedRows.includes(String(r[rowKey])));\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) => selectedRows.includes(String(r[rowKey])));\n }\n\n exportTo(currentRows, columns, options);\n },\n };\n },\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable indent */\nimport { get } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\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 ? [...result, getColumnValue(row, `_${columnProperty}`) || getColumnValue(row, columnProperty)]\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((acc, curr, idx) => `${acc}${idx === 0 ? '' : ','}${curr.label}`, '');\n const rowsContent = dataToExport\n .map((e) => e.map((r) => `\"${String(getCellValue(r)).replace(/\"/g, '\"\"')}\"`).join(','))\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 = (rows, columns, { range, fileName, type, excludedColumns }) => {\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) => selectedRows.includes(String(r[rowKey])));\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) => selectedRows.includes(String(r[rowKey])));\n }\n\n exportTo(currentRows, columns, options);\n },\n };\n },\n});\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AAEA,MAAM,YAAY,CAAC,WAAW;AAC5B,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO;AAAA;AAET,SAAO,OAAO,OAAO,YAAY,eAAe,OAAO;AAAA;AAGlD,MAAM,iBAAiB,CAAC,KAAK,aAAa,IAAI,KAAK;AACnD,MAAM,oBAAoB,CAAC,KAAK,YACrC,QAAQ,OAAO,CAAC,QAAQ,WAAW;AACjC,QAAM,iBAAiB,OAAO;AAC9B,SAAO,UAAU,UACb,CAAC,GAAG,QAAQ,eAAe,KAAK,IAAI,qBAAqB,eAAe,KAAK,mBAC7E;AAAA,GACH;AAEL,MAAM,iBAAiB,CAAC,SAAU;AAAA,EAChC,WAAW;AAAA,EACX,UAAU,YAAY;AAAA,EACtB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,iBAAiB;AAAA;AAGnB,MAAM,aAAa,CAAC,MAAM,SAAU,kCAC/B,eAAe,QACf;AAGL,MAAM,eAAe,CAAC,SAAS;AAC7B,MAAI,SAAS,UAAa,SAAS;AAAM,WAAO;AAChD,SAAO;AAAA;AAGF,MAAM,kBAAkB,CAAC,MAAM,SAAS,UAAU;AACvD,QAAM,aAAa,QAAQ,KAAK,MAAM,GAAG,SAAS;AAClD,QAAM,eAAe,WAAW,IAAI,CAAC,QAAQ,kBAAkB,KAAK;AACpE,QAAM,iBAAiB,QACpB,OAAO,CAAC,MAAM,UAAU,IACxB,OAAO,CAAC,KAAK,MAAM,QAAQ,GAAG,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAK,SAAS;AAC5E,QAAM,cAAc,aACjB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,aAAa,IAAI,QAAQ,MAAM,UAAU,KAAK,MACjF,KAAK;AACR,QAAM,aAAa,GAAG;AAAA,EAAqB;AAC3C,SAAO;AAAA;AAIT,MAAM,WAAW,CAAC,MAAM,SAAS,EAAE,OAAO,UAAU,MAAM,sBAAsB;AAC9E,MAAI,iBAAiB;AAEnB,cAAU,QAAQ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,SAAS,IAAI;AAAA;AAElE,QAAM,aAAa,gBAAgB,MAAM,SAAS;AAElD,QAAM,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,MAAM;AAC5C,MAAI,UAAU,YAAY;AAExB,cAAU,WAAW,MAAM,GAAG,YAAY;AAAA,SACrC;AACL,UAAM,OAAO,SAAS,cAAc;AACpC,QAAI,KAAK,aAAa,QAAW;AAG/B,YAAM,MAAM,IAAI,gBAAgB;AAChC,WAAK,aAAa,QAAQ;AAC1B,WAAK,aAAa,YAAY,GAAG,YAAY;AAC7C,WAAK,MAAM,aAAa;AACxB,eAAS,KAAK,YAAY;AAC1B,WAAK;AACL,eAAS,KAAK,YAAY;AAAA;AAAA;AAAA;AAKzB,MAAM,mBAAmB,qBAAqB,eAAe;AAAA,EAClE,aAAa,UAAU;AACrB,WAAO;AAAA,MACL,WAAW,OAAO,IAAI;AACpB,cAAM;AAAA,UACJ,cAAc;AAAA,UACd;AAAA,UACA;AAAA,UACA,OAAO,EAAE;AAAA,UACT,OAAO,EAAE;AAAA,YACP,SAAS;AACb,cAAM,UAAU,WAAW,MAAM;AAEjC,YAAI,cAAc,KAAK,WAAW;AAClC,YAAI,KAAK,eAAe;AACtB,gBAAM,eAAe,OAAO,KAAK,UAAU;AAC3C,wBAAc,YAAY,OAAO,CAAC,MAAM,aAAa,SAAS,OAAO,EAAE;AAAA;AAGzE,iBAAS,aAAa,SAAS;AAAA;AAAA,MAEjC,kBAAkB,OAAO,IAAI;AAC3B,cAAM;AAAA,UACJ,cAAc;AAAA,UACd;AAAA,UACA;AAAA,UACA,OAAO,EAAE;AAAA,UACT,OAAO,EAAE;AAAA,YACP,SAAS;AACb,cAAM,UAAU,WAAW,MAAM;AAGjC,YAAI,cAAc,KAAK,QAAQ;AAC/B,YAAI,KAAK,eAAe;AACtB,gBAAM,eAAe,OAAO,KAAK,UAAU;AAC3C,wBAAc,YAAY,OAAO,CAAC,MAAM,aAAa,SAAS,OAAO,EAAE;AAAA;AAGzE,iBAAS,aAAa,SAAS;AAAA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { get, isFunction } from "@elliemae/ds-utilities";
3
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
3
+ import { createInstancePlugin } from "@elliemae/ds-shared";
4
4
  import { addFilterToColumn } from "./addFilterToColumn";
5
5
  import filterRowsByQuery, { filterRowsByQueryGroup } from "./filtering-helper/filterRowsByQuery";
6
6
  import { useFilterableState } from "./useFilterableState";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/filterable/FilterablePlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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, { filterRowsByQueryGroup } from './filtering-helper/filterRowsByQuery';\nimport { useFilterableState } from './useFilterableState';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isFilterableColumnActive = (col) => col.searchable, onRemoveAllFilters },\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 ? filterRowsByQuery(rows, query) : 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, ['filterMenu', 'current', 'toggleMenu']);\n if (isFunction(toggleMenuMethod)) toggleMenuMethod();\n },\n };\n },\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\nimport { get, isFunction } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\nimport { addFilterToColumn } from './addFilterToColumn';\n\nimport filterRowsByQuery, { filterRowsByQueryGroup } from './filtering-helper/filterRowsByQuery';\nimport { useFilterableState } from './useFilterableState';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isFilterableColumnActive = (col) => col.searchable, onRemoveAllFilters },\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 ? filterRowsByQuery(rows, query) : 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, ['filterMenu', 'current', 'toggleMenu']);\n if (isFunction(toggleMenuMethod)) toggleMenuMethod();\n },\n };\n },\n});\n"],
5
5
  "mappings": "AAAA;ACCA;AACA;AACA;AAEA;AACA;AAEA,MAAM,iBAAiB,CAAC,QAAQ,SAAS;AACvC,QAAM;AAAA,IACJ,OAAO,EAAE,2BAA2B,CAAC,QAAQ,IAAI,YAAY;AAAA,IAC7D,SAAS,EAAE,WAAW;AAAA,IACtB,OAAO,EAAE,OAAO;AAAA,MACd;AAEJ,SAAO,yBAAyB,UAC5B,kBACE;AAAA,IACE;AAAA,IACA,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,KAEF,UAEF;AAAA;AAGN,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB;AAAA,IACzB,OAAO,EAAE;AAAA,IACT;AAAA,MACE,KAAK;AACT,QAAM,WAAW,CAAC,cAAc,kBAAkB,MAAM,SAAS,uBAAuB,MAAM,OAAO;AAErG,SAAO,CAAC,iBAAiB,WAAW;AAAA;AAG/B,MAAM,mBAAmB,qBAAqB,cAAc;AAAA,EACjE,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,gBAAgB,MAAM;AACpB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,SAAS,CAAC,EAAE,gBAAgB;AAC1B,cAAM,EAAE,qBAAqB,KAAK;AAElC,cAAM,SAAS,iBAAiB;AAChC,cAAM,mBAAmB,IAAI,QAAQ,CAAC,cAAc,WAAW;AAC/D,YAAI,WAAW;AAAmB;AAAA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -19,7 +19,7 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import * as React from "react";
21
21
  import { createRef } from "react";
22
- import { mergeClassNameToColumnHeader } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
22
+ import { mergeClassNameToColumnHeader } from "@elliemae/ds-shared";
23
23
  import { FilterableFormatter } from "./filterableFormatter";
24
24
  const addFilterToColumn = (props, column) => {
25
25
  const filterMenuRef = createRef();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/filterable/addFilterToColumn.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "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"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEO,MAAM,oBAAoB,CAAC,OAAO,WAAW;AAClD,QAAM,gBAAgB;AACtB,SAAO,OAAO,WAAW,KACvB,oBAAoB,iCAAK,QAAL,EAAY;AAElC,SAAO,aAAa;AACpB,SAAO,6BAA6B,kBAAkB;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createRef } from 'react';\nimport { mergeClassNameToColumnHeader } from '@elliemae/ds-shared';\nimport { FilterableFormatter } from './filterableFormatter';\n\nexport const addFilterToColumn = (props, column) => {\n const filterMenuRef = createRef();\n column.header.formatters.push(FilterableFormatter({ ...props, filterMenuRef }));\n column.filterMenu = filterMenuRef;\n return mergeClassNameToColumnHeader('with-filtering', column);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEO,MAAM,oBAAoB,CAAC,OAAO,WAAW;AAClD,QAAM,gBAAgB;AACtB,SAAO,OAAO,WAAW,KAAK,oBAAoB,iCAAK,QAAL,EAAY;AAC9D,SAAO,aAAa;AACpB,SAAO,6BAA6B,kBAAkB;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
2
+ import { createInstancePlugin } from "@elliemae/ds-shared";
3
3
  import { groupBy } from "lodash";
4
4
  const groupedByData = (groupedBy, composedRows) => {
5
5
  const grouped = groupBy(composedRows, groupedBy);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/grouping-by/GroupingByPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { groupBy } from 'lodash';\n\nconst groupedByData = (groupedBy, composedRows) => {\n const grouped = groupBy(composedRows, groupedBy);\n return Object.keys(grouped).map((c, key) => ({\n id: `grouped-by-${groupedBy}-${key}`,\n key: groupedBy,\n value: c,\n children: grouped[c],\n _isGroup: true,\n isGroup: true,\n }));\n};\n\nexport const GroupingByPlugin = createInstancePlugin('groupedByRows', {\n decorateGrid(grid) {\n const {\n composedRows,\n props: { groupedBy },\n } = grid.getInstance();\n grid.composedRows = groupedBy\n ? groupedByData(groupedBy, composedRows)\n : composedRows;\n return grid;\n },\n});\n"],
5
- "mappings": "AAAA;ACAA;AACA;AAEA,MAAM,gBAAgB,CAAC,WAAW,iBAAiB;AACjD,QAAM,UAAU,QAAQ,cAAc;AACtC,SAAO,OAAO,KAAK,SAAS,IAAI,CAAC,GAAG,QAAS;AAAA,IAC3C,IAAI,cAAc,aAAa;AAAA,IAC/B,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU,QAAQ;AAAA,IAClB,UAAU;AAAA,IACV,SAAS;AAAA;AAAA;AAIN,MAAM,mBAAmB,qBAAqB,iBAAiB;AAAA,EACpE,aAAa,MAAM;AACjB,UAAM;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAA,QACP,KAAK;AACT,SAAK,eAAe,YAChB,cAAc,WAAW,gBACzB;AACJ,WAAO;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createInstancePlugin } from '@elliemae/ds-shared';\nimport { groupBy } from 'lodash';\n\nconst groupedByData = (groupedBy, composedRows) => {\n const grouped = groupBy(composedRows, groupedBy);\n return Object.keys(grouped).map((c, key) => ({\n id: `grouped-by-${groupedBy}-${key}`,\n key: groupedBy,\n value: c,\n children: grouped[c],\n _isGroup: true,\n isGroup: true,\n }));\n};\n\nexport const GroupingByPlugin = createInstancePlugin('groupedByRows', {\n decorateGrid(grid) {\n const {\n composedRows,\n props: { groupedBy },\n } = grid.getInstance();\n grid.composedRows = groupedBy ? groupedByData(groupedBy, composedRows) : composedRows;\n return grid;\n },\n});\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEA,MAAM,gBAAgB,CAAC,WAAW,iBAAiB;AACjD,QAAM,UAAU,QAAQ,cAAc;AACtC,SAAO,OAAO,KAAK,SAAS,IAAI,CAAC,GAAG,QAAS;AAAA,IAC3C,IAAI,cAAc,aAAa;AAAA,IAC/B,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU,QAAQ;AAAA,IAClB,UAAU;AAAA,IACV,SAAS;AAAA;AAAA;AAIN,MAAM,mBAAmB,qBAAqB,iBAAiB;AAAA,EACpE,aAAa,MAAM;AACjB,UAAM;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAA,QACP,KAAK;AACT,SAAK,eAAe,YAAY,cAAc,WAAW,gBAAgB;AACzE,WAAO;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -31,7 +31,7 @@ var __objRest = (source, exclude) => {
31
31
  };
32
32
  import * as React from "react";
33
33
  import React2, { useMemo } from "react";
34
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
34
+ import { createInstancePlugin } from "@elliemae/ds-shared";
35
35
  import { aggregatedClasses } from "@elliemae/ds-classnames";
36
36
  import { VariableSizeList } from "react-window";
37
37
  import { walkTreeStrategy } from "./walkStrategy";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/grouping-grid/GroupingPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable no-underscore-dangle */\nimport React, { useMemo } from 'react';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { VariableSizeList } from 'react-window';\nimport { walkTreeStrategy } from './walkStrategy';\nimport { RowSizes } from '../../rowSizes';\nimport { dataGridBlockName } from '../../blockNames';\n\nconst blockName = `${dataGridBlockName}-group-row-header`;\nconst GroupRowHeaderWrapper = aggregatedClasses('div')(blockName);\nconst GroupRowHeaderTitle = aggregatedClasses('div')(blockName, 'title');\n\nexport const GroupingPlugin = createInstancePlugin('groupedRows', {\n decorateGrid(grid) {\n const { columns, composedRows } = grid.getInstance();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const detailColumns = useMemo(\n () =>\n columns\n .map((column) => ({\n ...column,\n customRenderer: column.detailCustomRenderer,\n }))\n .filter((col) => !col.expandableColumn),\n [columns],\n );\n const flatRows = [];\n walkTreeStrategy({\n data: composedRows,\n cb: (n) => flatRows.push(n),\n });\n return {\n detailColumns,\n composedRows: flatRows,\n };\n },\n getBodyProps(bodyProps, grid) {\n const { composedRows: rows } = grid.getInstance();\n // implementation of expandable row single column with aggregation\n const getItemSize = (index) => {\n const rowData = rows[index];\n if (!rowData) return RowSizes.normal;\n return rowData._isGroup || rowData.isGroup\n ? RowSizes.compact\n : RowSizes.normal;\n };\n // eslint-disable-next-line no-unused-vars\n const getListHeight = () => {\n const size = rows.reduce((h, r) => {\n const rowHeight =\n r._isGroup || r.isGroup ? RowSizes.compact : RowSizes.normal;\n return h + rowHeight;\n }, 0);\n return size;\n };\n return {\n ...bodyProps,\n getListHeight,\n listComponent: VariableSizeList,\n listProps: { itemSize: getItemSize },\n };\n },\n composeRows: (rows, grid) => {\n const {\n composedRows,\n props: { rowKey },\n } = grid.getInstance();\n\n if (Array.isArray(rows)) {\n const filterIds = rows.map((r) => r.data[rowKey]);\n return composedRows\n .filter((c) => filterIds.includes(c.data[rowKey]))\n .map((r) => ({\n ...r.data,\n children: Array.isArray(r.data.children)\n ? r.data.children.filter((c) => filterIds.includes(c[rowKey]))\n : r.data.children,\n _isGroup: r.isGroup,\n }))\n .filter((g) => g.children === undefined || g.children.length > 0);\n }\n return {\n ...rows,\n allRows: rows.allRows.map((r) => ({\n ...r.data,\n _isGroup: r.isGroup,\n })),\n rows: rows.rows.map((r) => ({\n ...r.data,\n _isGroup: r.isGroup,\n })),\n };\n },\n decorateRenderers(renderers, grid) {\n const Row = renderers.body.row;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n renderers.body.row = useMemo(\n () =>\n // eslint-disable-next-line react/display-name\n // eslint-disable-next-line react/prop-types\n ({ isExpanded, ...rowProps }) => {\n const { composedRows } = grid.getInstance();\n // // https://jira.elliemae.io/browse/PUI-1667\n const node = composedRows[rowProps.index]\n ? composedRows[rowProps.index]\n : rowProps.rowData;\n const { groupedRowsRenderHeader } = grid.props;\n // eslint-disable-next-line no-underscore-dangle\n if (node && node._isGroup) {\n return (\n <>\n <GroupRowHeaderWrapper {...rowProps}>\n <GroupRowHeaderTitle>\n {groupedRowsRenderHeader\n ? groupedRowsRenderHeader(node)\n : 'Group'}\n </GroupRowHeaderTitle>\n </GroupRowHeaderWrapper>\n </>\n );\n }\n return <Row {...rowProps} />;\n },\n [],\n );\n\n return renderers;\n },\n});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,YAAY,GAAG;AACrB,MAAM,wBAAwB,kBAAkB,OAAO;AACvD,MAAM,sBAAsB,kBAAkB,OAAO,WAAW;AAEzD,MAAM,iBAAiB,qBAAqB,eAAe;AAAA,EAChE,aAAa,MAAM;AACjB,UAAM,EAAE,SAAS,iBAAiB,KAAK;AAEvC,UAAM,gBAAgB,QACpB,MACE,QACG,IAAI,CAAC,WAAY,iCACb,SADa;AAAA,MAEhB,gBAAgB,OAAO;AAAA,QAExB,OAAO,CAAC,QAAQ,CAAC,IAAI,mBAC1B,CAAC;AAEH,UAAM,WAAW;AACjB,qBAAiB;AAAA,MACf,MAAM;AAAA,MACN,IAAI,CAAC,MAAM,SAAS,KAAK;AAAA;AAE3B,WAAO;AAAA,MACL;AAAA,MACA,cAAc;AAAA;AAAA;AAAA,EAGlB,aAAa,WAAW,MAAM;AAC5B,UAAM,EAAE,cAAc,SAAS,KAAK;AAEpC,UAAM,cAAc,CAAC,UAAU;AAC7B,YAAM,UAAU,KAAK;AACrB,UAAI,CAAC;AAAS,eAAO,SAAS;AAC9B,aAAO,QAAQ,YAAY,QAAQ,UAC/B,SAAS,UACT,SAAS;AAAA;AAGf,UAAM,gBAAgB,MAAM;AAC1B,YAAM,OAAO,KAAK,OAAO,CAAC,GAAG,MAAM;AACjC,cAAM,YACJ,EAAE,YAAY,EAAE,UAAU,SAAS,UAAU,SAAS;AACxD,eAAO,IAAI;AAAA,SACV;AACH,aAAO;AAAA;AAET,WAAO,iCACF,YADE;AAAA,MAEL;AAAA,MACA,eAAe;AAAA,MACf,WAAW,EAAE,UAAU;AAAA;AAAA;AAAA,EAG3B,aAAa,CAAC,MAAM,SAAS;AAC3B,UAAM;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAA,QACP,KAAK;AAET,QAAI,MAAM,QAAQ,OAAO;AACvB,YAAM,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK;AACzC,aAAO,aACJ,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,KAAK,UACxC,IAAI,CAAC,MAAO,iCACR,EAAE,OADM;AAAA,QAEX,UAAU,MAAM,QAAQ,EAAE,KAAK,YAC3B,EAAE,KAAK,SAAS,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,YACnD,EAAE,KAAK;AAAA,QACX,UAAU,EAAE;AAAA,UAEb,OAAO,CAAC,MAAM,EAAE,aAAa,UAAa,EAAE,SAAS,SAAS;AAAA;AAEnE,WAAO,iCACF,OADE;AAAA,MAEL,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAO,iCAC7B,EAAE,OAD2B;AAAA,QAEhC,UAAU,EAAE;AAAA;AAAA,MAEd,MAAM,KAAK,KAAK,IAAI,CAAC,MAAO,iCACvB,EAAE,OADqB;AAAA,QAE1B,UAAU,EAAE;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAkB,WAAW,MAAM;AACjC,UAAM,MAAM,UAAU,KAAK;AAE3B,cAAU,KAAK,MAAM,QACnB,MAGE,CAAC,OAAgC;AAAhC,mBAAE,iBAAF,IAAiB,qBAAjB,IAAiB,CAAf;AACD,YAAM,EAAE,iBAAiB,KAAK;AAE9B,YAAM,OAAO,aAAa,SAAS,SAC/B,aAAa,SAAS,SACtB,SAAS;AACb,YAAM,EAAE,4BAA4B,KAAK;AAEzC,UAAI,QAAQ,KAAK,UAAU;AACzB,eACE,4DACE,qCAAC,uBAAD,mBAA2B,WACzB,qCAAC,qBAAD,MACG,0BACG,wBAAwB,QACxB;AAAA;AAMd,aAAO,qCAAC,KAAD,mBAAS;AAAA,OAEpB;AAGF,WAAO;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable no-underscore-dangle */\nimport React, { useMemo } from 'react';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { VariableSizeList } from 'react-window';\nimport { walkTreeStrategy } from './walkStrategy';\nimport { RowSizes } from '../../rowSizes';\nimport { dataGridBlockName } from '../../blockNames';\n\nconst blockName = `${dataGridBlockName}-group-row-header`;\nconst GroupRowHeaderWrapper = aggregatedClasses('div')(blockName);\nconst GroupRowHeaderTitle = aggregatedClasses('div')(blockName, 'title');\n\nexport const GroupingPlugin = createInstancePlugin('groupedRows', {\n decorateGrid(grid) {\n const { columns, composedRows } = grid.getInstance();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const detailColumns = useMemo(\n () =>\n columns\n .map((column) => ({\n ...column,\n customRenderer: column.detailCustomRenderer,\n }))\n .filter((col) => !col.expandableColumn),\n [columns],\n );\n const flatRows = [];\n walkTreeStrategy({\n data: composedRows,\n cb: (n) => flatRows.push(n),\n });\n return {\n detailColumns,\n composedRows: flatRows,\n };\n },\n getBodyProps(bodyProps, grid) {\n const { composedRows: rows } = grid.getInstance();\n // implementation of expandable row single column with aggregation\n const getItemSize = (index) => {\n const rowData = rows[index];\n if (!rowData) return RowSizes.normal;\n return rowData._isGroup || rowData.isGroup ? RowSizes.compact : RowSizes.normal;\n };\n // eslint-disable-next-line no-unused-vars\n const getListHeight = () => {\n const size = rows.reduce((h, r) => {\n const rowHeight = r._isGroup || r.isGroup ? RowSizes.compact : RowSizes.normal;\n return h + rowHeight;\n }, 0);\n return size;\n };\n return {\n ...bodyProps,\n getListHeight,\n listComponent: VariableSizeList,\n listProps: { itemSize: getItemSize },\n };\n },\n composeRows: (rows, grid) => {\n const {\n composedRows,\n props: { rowKey },\n } = grid.getInstance();\n\n if (Array.isArray(rows)) {\n const filterIds = rows.map((r) => r.data[rowKey]);\n return composedRows\n .filter((c) => filterIds.includes(c.data[rowKey]))\n .map((r) => ({\n ...r.data,\n children: Array.isArray(r.data.children)\n ? r.data.children.filter((c) => filterIds.includes(c[rowKey]))\n : r.data.children,\n _isGroup: r.isGroup,\n }))\n .filter((g) => g.children === undefined || g.children.length > 0);\n }\n return {\n ...rows,\n allRows: rows.allRows.map((r) => ({\n ...r.data,\n _isGroup: r.isGroup,\n })),\n rows: rows.rows.map((r) => ({\n ...r.data,\n _isGroup: r.isGroup,\n })),\n };\n },\n decorateRenderers(renderers, grid) {\n const Row = renderers.body.row;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n renderers.body.row = useMemo(\n () =>\n // eslint-disable-next-line react/display-name\n // eslint-disable-next-line react/prop-types\n ({ isExpanded, ...rowProps }) => {\n const { composedRows } = grid.getInstance();\n // // https://jira.elliemae.io/browse/PUI-1667\n const node = composedRows[rowProps.index] ? composedRows[rowProps.index] : rowProps.rowData;\n const { groupedRowsRenderHeader } = grid.props;\n // eslint-disable-next-line no-underscore-dangle\n if (node && node._isGroup) {\n return (\n <>\n <GroupRowHeaderWrapper {...rowProps}>\n <GroupRowHeaderTitle>\n {groupedRowsRenderHeader ? groupedRowsRenderHeader(node) : 'Group'}\n </GroupRowHeaderTitle>\n </GroupRowHeaderWrapper>\n </>\n );\n }\n return <Row {...rowProps} />;\n },\n [],\n );\n\n return renderers;\n },\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,YAAY,GAAG;AACrB,MAAM,wBAAwB,kBAAkB,OAAO;AACvD,MAAM,sBAAsB,kBAAkB,OAAO,WAAW;AAEzD,MAAM,iBAAiB,qBAAqB,eAAe;AAAA,EAChE,aAAa,MAAM;AACjB,UAAM,EAAE,SAAS,iBAAiB,KAAK;AAEvC,UAAM,gBAAgB,QACpB,MACE,QACG,IAAI,CAAC,WAAY,iCACb,SADa;AAAA,MAEhB,gBAAgB,OAAO;AAAA,QAExB,OAAO,CAAC,QAAQ,CAAC,IAAI,mBAC1B,CAAC;AAEH,UAAM,WAAW;AACjB,qBAAiB;AAAA,MACf,MAAM;AAAA,MACN,IAAI,CAAC,MAAM,SAAS,KAAK;AAAA;AAE3B,WAAO;AAAA,MACL;AAAA,MACA,cAAc;AAAA;AAAA;AAAA,EAGlB,aAAa,WAAW,MAAM;AAC5B,UAAM,EAAE,cAAc,SAAS,KAAK;AAEpC,UAAM,cAAc,CAAC,UAAU;AAC7B,YAAM,UAAU,KAAK;AACrB,UAAI,CAAC;AAAS,eAAO,SAAS;AAC9B,aAAO,QAAQ,YAAY,QAAQ,UAAU,SAAS,UAAU,SAAS;AAAA;AAG3E,UAAM,gBAAgB,MAAM;AAC1B,YAAM,OAAO,KAAK,OAAO,CAAC,GAAG,MAAM;AACjC,cAAM,YAAY,EAAE,YAAY,EAAE,UAAU,SAAS,UAAU,SAAS;AACxE,eAAO,IAAI;AAAA,SACV;AACH,aAAO;AAAA;AAET,WAAO,iCACF,YADE;AAAA,MAEL;AAAA,MACA,eAAe;AAAA,MACf,WAAW,EAAE,UAAU;AAAA;AAAA;AAAA,EAG3B,aAAa,CAAC,MAAM,SAAS;AAC3B,UAAM;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAA,QACP,KAAK;AAET,QAAI,MAAM,QAAQ,OAAO;AACvB,YAAM,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK;AACzC,aAAO,aACJ,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,KAAK,UACxC,IAAI,CAAC,MAAO,iCACR,EAAE,OADM;AAAA,QAEX,UAAU,MAAM,QAAQ,EAAE,KAAK,YAC3B,EAAE,KAAK,SAAS,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,YACnD,EAAE,KAAK;AAAA,QACX,UAAU,EAAE;AAAA,UAEb,OAAO,CAAC,MAAM,EAAE,aAAa,UAAa,EAAE,SAAS,SAAS;AAAA;AAEnE,WAAO,iCACF,OADE;AAAA,MAEL,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAO,iCAC7B,EAAE,OAD2B;AAAA,QAEhC,UAAU,EAAE;AAAA;AAAA,MAEd,MAAM,KAAK,KAAK,IAAI,CAAC,MAAO,iCACvB,EAAE,OADqB;AAAA,QAE1B,UAAU,EAAE;AAAA;AAAA;AAAA;AAAA,EAIlB,kBAAkB,WAAW,MAAM;AACjC,UAAM,MAAM,UAAU,KAAK;AAE3B,cAAU,KAAK,MAAM,QACnB,MAGE,CAAC,OAAgC;AAAhC,mBAAE,iBAAF,IAAiB,qBAAjB,IAAiB,CAAf;AACD,YAAM,EAAE,iBAAiB,KAAK;AAE9B,YAAM,OAAO,aAAa,SAAS,SAAS,aAAa,SAAS,SAAS,SAAS;AACpF,YAAM,EAAE,4BAA4B,KAAK;AAEzC,UAAI,QAAQ,KAAK,UAAU;AACzB,eACE,4DACE,qCAAC,uBAAD,mBAA2B,WACzB,qCAAC,qBAAD,MACG,0BAA0B,wBAAwB,QAAQ;AAAA;AAMrE,aAAO,qCAAC,KAAD,mBAAS;AAAA,OAEpB;AAGF,WAAO;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -31,7 +31,7 @@ var __objRest = (source, exclude) => {
31
31
  };
32
32
  import * as React from "react";
33
33
  import { useRef, useEffect, useState } from "react";
34
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
34
+ import { createInstancePlugin } from "@elliemae/ds-shared";
35
35
  const registerStateHook = (grid) => {
36
36
  const {
37
37
  props: { getData, onInfiniteScrolling = () => null },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/infinite-scrolling/InfiniteScrollPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef, useEffect, useState } from 'react';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\n\n// TODO: EXPORT A SEPARATED INFINITE LOADER GRID\n\nconst registerStateHook = (grid) => {\n const {\n props: { getData, onInfiniteScrolling = () => null },\n actions: { updateRows },\n } = grid;\n\n const loading = useRef(false);\n\n const addMoreData = (data = []) => {\n loading.current = false;\n updateRows((prevRows) => prevRows.concat(data || []));\n };\n\n const doLoadData = async (currentRows) => {\n loading.current = true;\n return Promise.resolve(getData(currentRows)).then(addMoreData);\n };\n\n const loadMoreData = (currentRows) => {\n onInfiniteScrolling(currentRows);\n if (loading.current || !getData) return;\n doLoadData(currentRows);\n };\n\n return {\n actions: {\n loadMoreData,\n },\n };\n};\n\nconst getBodyProps = ({ children, ...props }, grid) => {\n const { loadMoreData } = grid.getInstance().actions;\n\n const [bodyNode, setBodyRef] = useState();\n const prevScroll = useRef();\n prevScroll.current = 0;\n\n const handleBodyScroll = (event, s) => {\n const { target } = event;\n const { scrollHeight, scrollTop, offsetHeight, scrollLeft } = target;\n const { composedRows } = grid.getInstance();\n // prevent horizontal scroll triggering infinite scrolling callbacks\n if (prevScroll.current !== scrollLeft) {\n prevScroll.current = scrollLeft;\n return;\n }\n // todo: clean this. Better approach using another component for the infinite scroll\n if (bodyNode !== target) return;\n if (scrollTop + offsetHeight >= scrollHeight - 1) {\n loadMoreData(composedRows);\n }\n };\n\n useEffect(() => {\n if (bodyNode) {\n bodyNode.addEventListener('scroll', handleBodyScroll);\n }\n return () => {\n if (bodyNode) {\n bodyNode.removeEventListener('scroll', handleBodyScroll);\n }\n };\n }, [bodyNode]);\n\n return {\n ...props,\n listProps: { outerRef: setBodyRef },\n };\n};\n\nexport const InfiniteScrollPlugin = createInstancePlugin('infinite-scroll', {\n registerStateHook,\n getBodyProps,\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useRef, useEffect, useState } from 'react';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\n\n// TODO: EXPORT A SEPARATED INFINITE LOADER GRID\n\nconst registerStateHook = (grid) => {\n const {\n props: { getData, onInfiniteScrolling = () => null },\n actions: { updateRows },\n } = grid;\n\n const loading = useRef(false);\n\n const addMoreData = (data = []) => {\n loading.current = false;\n updateRows((prevRows) => prevRows.concat(data || []));\n };\n\n const doLoadData = async (currentRows) => {\n loading.current = true;\n return Promise.resolve(getData(currentRows)).then(addMoreData);\n };\n\n const loadMoreData = (currentRows) => {\n onInfiniteScrolling(currentRows);\n if (loading.current || !getData) return;\n doLoadData(currentRows);\n };\n\n return {\n actions: {\n loadMoreData,\n },\n };\n};\n\nconst getBodyProps = ({ children, ...props }, grid) => {\n const { loadMoreData } = grid.getInstance().actions;\n\n const [bodyNode, setBodyRef] = useState();\n const prevScroll = useRef();\n prevScroll.current = 0;\n\n const handleBodyScroll = (event, s) => {\n const { target } = event;\n const { scrollHeight, scrollTop, offsetHeight, scrollLeft } = target;\n const { composedRows } = grid.getInstance();\n // prevent horizontal scroll triggering infinite scrolling callbacks\n if (prevScroll.current !== scrollLeft) {\n prevScroll.current = scrollLeft;\n return;\n }\n // todo: clean this. Better approach using another component for the infinite scroll\n if (bodyNode !== target) return;\n if (scrollTop + offsetHeight >= scrollHeight - 1) {\n loadMoreData(composedRows);\n }\n };\n\n useEffect(() => {\n if (bodyNode) {\n bodyNode.addEventListener('scroll', handleBodyScroll);\n }\n return () => {\n if (bodyNode) {\n bodyNode.removeEventListener('scroll', handleBodyScroll);\n }\n };\n }, [bodyNode]);\n\n return {\n ...props,\n listProps: { outerRef: setBodyRef },\n };\n};\n\nexport const InfiniteScrollPlugin = createInstancePlugin('infinite-scroll', {\n registerStateHook,\n getBodyProps,\n});\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AAIA,MAAM,oBAAoB,CAAC,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE,SAAS,sBAAsB,MAAM;AAAA,IAC9C,SAAS,EAAE;AAAA,MACT;AAEJ,QAAM,UAAU,OAAO;AAEvB,QAAM,cAAc,CAAC,OAAO,OAAO;AACjC,YAAQ,UAAU;AAClB,eAAW,CAAC,aAAa,SAAS,OAAO,QAAQ;AAAA;AAGnD,QAAM,aAAa,OAAO,gBAAgB;AACxC,YAAQ,UAAU;AAClB,WAAO,QAAQ,QAAQ,QAAQ,cAAc,KAAK;AAAA;AAGpD,QAAM,eAAe,CAAC,gBAAgB;AACpC,wBAAoB;AACpB,QAAI,QAAQ,WAAW,CAAC;AAAS;AACjC,eAAW;AAAA;AAGb,SAAO;AAAA,IACL,SAAS;AAAA,MACP;AAAA;AAAA;AAAA;AAKN,MAAM,eAAe,CAAC,IAAwB,SAAS;AAAjC,eAAE,eAAF,IAAe,kBAAf,IAAe,CAAb;AACtB,QAAM,EAAE,iBAAiB,KAAK,cAAc;AAE5C,QAAM,CAAC,UAAU,cAAc;AAC/B,QAAM,aAAa;AACnB,aAAW,UAAU;AAErB,QAAM,mBAAmB,CAAC,OAAO,MAAM;AACrC,UAAM,EAAE,WAAW;AACnB,UAAM,EAAE,cAAc,WAAW,cAAc,eAAe;AAC9D,UAAM,EAAE,iBAAiB,KAAK;AAE9B,QAAI,WAAW,YAAY,YAAY;AACrC,iBAAW,UAAU;AACrB;AAAA;AAGF,QAAI,aAAa;AAAQ;AACzB,QAAI,YAAY,gBAAgB,eAAe,GAAG;AAChD,mBAAa;AAAA;AAAA;AAIjB,YAAU,MAAM;AACd,QAAI,UAAU;AACZ,eAAS,iBAAiB,UAAU;AAAA;AAEtC,WAAO,MAAM;AACX,UAAI,UAAU;AACZ,iBAAS,oBAAoB,UAAU;AAAA;AAAA;AAAA,KAG1C,CAAC;AAEJ,SAAO,iCACF,QADE;AAAA,IAEL,WAAW,EAAE,UAAU;AAAA;AAAA;AAIpB,MAAM,uBAAuB,qBAAqB,mBAAmB;AAAA,EAC1E;AAAA,EACA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -32,8 +32,7 @@ var __objRest = (source, exclude) => {
32
32
  import * as React from "react";
33
33
  import React2, { useMemo } from "react";
34
34
  import { mergeRefs } from "@elliemae/ds-utilities";
35
- import { FocusGrid } from "@elliemae/ds-shared/FocusGroup/FocusGrid";
36
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
35
+ import { createInstancePlugin, FocusGrid } from "@elliemae/ds-shared";
37
36
  import { paginate } from "./helper";
38
37
  import { usePaginationState } from "./usePaginationState";
39
38
  import { NoResults } from "../../components/NoResults";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/pagination/PaginationPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/display-name */\nimport React, { useMemo } from 'react';\nimport { mergeRefs } from '@elliemae/ds-utilities';\nimport { FocusGrid } from '@elliemae/ds-shared/FocusGroup/FocusGrid';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { paginate } from './helper';\nimport { usePaginationState } from './usePaginationState';\nimport { NoResults } from '../../components/NoResults';\n\nconst composeRows = (rows, grid) => {\n const {\n state: { pagination },\n props: { groupedRows },\n } = grid.getInstance();\n if (groupedRows) return rows; // disable pagination with grouping\n if (groupedRows) {\n const filterIds = rows.map((r) => r.id);\n return paginate(\n rows\n .filter((c) => filterIds.includes(c.id))\n .map((r) => ({\n ...r,\n _isGroup: r.isGroup,\n })),\n pagination,\n );\n }\n\n return paginate(rows, pagination);\n};\n\nconst Body = React.memo(\n ({\n component: Component,\n rows,\n rowRenderer,\n noResultsPlaceholder,\n innerRef,\n innerBodyRef, // depends on body-header-scroll-sync\n isPlaceholderActive = false,\n ...otherBodyProps\n }) => (\n <Component {...otherBodyProps} innerRef={mergeRefs(innerRef)}>\n {!isPlaceholderActive ? (\n rows.map((row, index) => rowRenderer(row, { index, rowIndex: index }, {}))\n ) : (\n <NoResults innerRef={innerRef} rowRenderer={rowRenderer}>\n {noResultsPlaceholder}\n </NoResults>\n )}\n </Component>\n ),\n);\n\nconst decorateRenderers = (renderers, grid) => {\n const BodyWrapper = renderers.body.wrapper;\n renderers.body.wrapper = useMemo(\n () => (props) => {\n const { hotKeys, shouldRefocus, state } = grid.getInstance();\n return (\n <FocusGrid hotKeys={hotKeys} shouldRefocus={false}>\n <Body {...props} component={BodyWrapper} />\n </FocusGrid>\n );\n },\n [],\n );\n return renderers;\n};\n\nexport const PaginationPlugin = createInstancePlugin('pagination', {\n registerStateHook: usePaginationState,\n decorateRenderers,\n composeRows,\n});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT,OAAO,EAAE;AAAA,MACP,KAAK;AACT,MAAI;AAAa,WAAO;AACxB,MAAI,aAAa;AACf,UAAM,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE;AACpC,WAAO,SACL,KACG,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,KACnC,IAAI,CAAC,MAAO,iCACR,IADQ;AAAA,MAEX,UAAU,EAAE;AAAA,SAEhB;AAAA;AAIJ,SAAO,SAAS,MAAM;AAAA;AAGxB,MAAM,OAAO,OAAM,KACjB,CAAC,OASE;AATF,eACC;AAAA,eAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,MAPvB,IAQI,2BARJ,IAQI;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,8CAAC,WAAD,iCAAe,iBAAf;AAAA,IAA+B,UAAU,UAAU;AAAA,MAChD,CAAC,sBACA,KAAK,IAAI,CAAC,KAAK,UAAU,YAAY,KAAK,EAAE,OAAO,UAAU,SAAS,OAEtE,qCAAC,WAAD;AAAA,IAAW;AAAA,IAAoB;AAAA,KAC5B;AAAA;AAOX,MAAM,oBAAoB,CAAC,WAAW,SAAS;AAC7C,QAAM,cAAc,UAAU,KAAK;AACnC,YAAU,KAAK,UAAU,QACvB,MAAM,CAAC,UAAU;AACf,UAAM,EAAE,SAAS,eAAe,UAAU,KAAK;AAC/C,WACE,qCAAC,WAAD;AAAA,MAAW;AAAA,MAAkB,eAAe;AAAA,OAC1C,qCAAC,MAAD,iCAAU,QAAV;AAAA,MAAiB,WAAW;AAAA;AAAA,KAIlC;AAEF,SAAO;AAAA;AAGF,MAAM,mBAAmB,qBAAqB,cAAc;AAAA,EACjE,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/display-name */\nimport React, { useMemo } from 'react';\nimport { mergeRefs } from '@elliemae/ds-utilities';\nimport { createInstancePlugin, FocusGrid } from '@elliemae/ds-shared';\nimport { paginate } from './helper';\nimport { usePaginationState } from './usePaginationState';\nimport { NoResults } from '../../components/NoResults';\n\nconst composeRows = (rows, grid) => {\n const {\n state: { pagination },\n props: { groupedRows },\n } = grid.getInstance();\n if (groupedRows) return rows; // disable pagination with grouping\n if (groupedRows) {\n const filterIds = rows.map((r) => r.id);\n return paginate(\n rows\n .filter((c) => filterIds.includes(c.id))\n .map((r) => ({\n ...r,\n _isGroup: r.isGroup,\n })),\n pagination,\n );\n }\n\n return paginate(rows, pagination);\n};\n\nconst Body = React.memo(\n ({\n component: Component,\n rows,\n rowRenderer,\n noResultsPlaceholder,\n innerRef,\n innerBodyRef, // depends on body-header-scroll-sync\n isPlaceholderActive = false,\n ...otherBodyProps\n }) => (\n <Component {...otherBodyProps} innerRef={mergeRefs(innerRef)}>\n {!isPlaceholderActive ? (\n rows.map((row, index) => rowRenderer(row, { index, rowIndex: index }, {}))\n ) : (\n <NoResults innerRef={innerRef} rowRenderer={rowRenderer}>\n {noResultsPlaceholder}\n </NoResults>\n )}\n </Component>\n ),\n);\n\nconst decorateRenderers = (renderers, grid) => {\n const BodyWrapper = renderers.body.wrapper;\n renderers.body.wrapper = useMemo(\n () => (props) => {\n const { hotKeys, shouldRefocus, state } = grid.getInstance();\n return (\n <FocusGrid hotKeys={hotKeys} shouldRefocus={false}>\n <Body {...props} component={BodyWrapper} />\n </FocusGrid>\n );\n },\n [],\n );\n return renderers;\n};\n\nexport const PaginationPlugin = createInstancePlugin('pagination', {\n registerStateHook: usePaginationState,\n decorateRenderers,\n composeRows,\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT,OAAO,EAAE;AAAA,MACP,KAAK;AACT,MAAI;AAAa,WAAO;AACxB,MAAI,aAAa;AACf,UAAM,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE;AACpC,WAAO,SACL,KACG,OAAO,CAAC,MAAM,UAAU,SAAS,EAAE,KACnC,IAAI,CAAC,MAAO,iCACR,IADQ;AAAA,MAEX,UAAU,EAAE;AAAA,SAEhB;AAAA;AAIJ,SAAO,SAAS,MAAM;AAAA;AAGxB,MAAM,OAAO,OAAM,KACjB,CAAC,OASE;AATF,eACC;AAAA,eAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,MAPvB,IAQI,2BARJ,IAQI;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,8CAAC,WAAD,iCAAe,iBAAf;AAAA,IAA+B,UAAU,UAAU;AAAA,MAChD,CAAC,sBACA,KAAK,IAAI,CAAC,KAAK,UAAU,YAAY,KAAK,EAAE,OAAO,UAAU,SAAS,OAEtE,qCAAC,WAAD;AAAA,IAAW;AAAA,IAAoB;AAAA,KAC5B;AAAA;AAOX,MAAM,oBAAoB,CAAC,WAAW,SAAS;AAC7C,QAAM,cAAc,UAAU,KAAK;AACnC,YAAU,KAAK,UAAU,QACvB,MAAM,CAAC,UAAU;AACf,UAAM,EAAE,SAAS,eAAe,UAAU,KAAK;AAC/C,WACE,qCAAC,WAAD;AAAA,MAAW;AAAA,MAAkB,eAAe;AAAA,OAC1C,qCAAC,MAAD,iCAAU,QAAV;AAAA,MAAiB,WAAW;AAAA;AAAA,KAIlC;AAEF,SAAO;AAAA;AAGF,MAAM,mBAAmB,qBAAqB,cAAc;AAAA,EACjE,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { runAll } from "@elliemae/ds-utilities";
3
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
3
+ import { createInstancePlugin } from "@elliemae/ds-shared";
4
4
  import { addResizableToColumn, resizableFormatter } from "./decorateResizable";
5
5
  const noop = () => null;
6
6
  const DELTA_LAST_COLUMN = 25;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/resizable/ResizablePlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\nimport { runAll } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { addResizableToColumn, resizableFormatter } from './decorateResizable';\n\nconst noop = () => null;\n\nconst DELTA_LAST_COLUMN = 25;\n\n// eslint-disable-next-line no-unused-vars\nconst decorateColumn = (column, grid, index) => {\n const {\n onResizeEnd = noop,\n onResizeStart = noop,\n minColumnWidth = 90,\n isColumnResizeActive = (col) => col.resizable && !col.expandableColumn,\n onColumnResize,\n } = grid.props;\n\n const { decoratedColumns } = grid.getInstance();\n // need to do this because the decorated columns which the index in the function call\n // could be different from the final decorated columns because a plugin could add a\n // column afterwards\n const colIndex = decoratedColumns.findIndex((col) => col.property === column.property);\n const isLast = colIndex === decoratedColumns.length - 1;\n\n if (!isColumnResizeActive(column)) return column;\n return addResizableToColumn(\n column,\n resizableFormatter({\n onDragStart: () => {\n grid.isDragging.current = true;\n grid.disableEvents();\n onResizeStart();\n onColumnResize('onResizeStart', { column });\n },\n onDrag: (width, increasing) => {\n const { resizedColumns, refs } = grid.getInstance();\n if (isLast && increasing) {\n const thisCol = resizedColumns.current[column.uuid] || 0;\n width = Math.max(thisCol + DELTA_LAST_COLUMN, width);\n }\n column.updateBodyHeaderWidth(width, width);\n grid.updateRowWidth();\n if (isLast && increasing) {\n // TODO: Move this to packages/ds-shared/src/ScrollSync/ScrollSync.js\n // It isn't watching the scrollLeft so you have to move both at the same time\n refs.header.current.scrollLeft += DELTA_LAST_COLUMN;\n refs.body.current.scrollLeft += DELTA_LAST_COLUMN;\n }\n },\n onDragEnd: (width, increasing, extraData) => {\n const { resizedColumns } = grid.getInstance();\n if (isLast && increasing) {\n const thisCol = resizedColumns.current[column.uuid] || 0;\n width = Math.max(thisCol + DELTA_LAST_COLUMN, width);\n }\n resizedColumns.current[column.uuid] = width;\n\n grid.isDragging.current = false;\n grid.enableEvents();\n try {\n const total = grid.getInstance().refs.body.current.scrollWidth;\n const sum = Object.keys(grid.resizedColumns.current).reduce((p, n) => grid.resizedColumns.current[n] + p, 0);\n const lastKey = grid.decoratedColumns[grid.columns.length - 1].uuid;\n if (sum < total) {\n const lastCol = grid.getInstance().columnSizeService.columns[lastKey];\n lastCol.updateWidth(grid.resizedColumns.current[lastKey] + total - sum);\n lastCol.updateBodyHeaderWidth(grid.resizedColumns.current[lastKey] + total - sum);\n grid.getInstance().columnSizeService.updateMissingWidths(total);\n }\n } catch (error) {\n console.error(\n 'Unexpected error in the addResizableToColumn trying to use the remaining grid space to the last column',\n error,\n );\n }\n\n onColumnResize('onResizeEnd', {\n column,\n width,\n extraData,\n });\n runAll(onResizeEnd)(width, extraData);\n grid.updateRowWidth();\n },\n minWidth: (column.minWidth || minColumnWidth) - (isLast ? DELTA_LAST_COLUMN : 0),\n isLast,\n }),\n );\n};\n\nexport const ResizablePlugin = createInstancePlugin('resizable', {\n decorateColumn,\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\nimport { runAll } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\nimport { addResizableToColumn, resizableFormatter } from './decorateResizable';\n\nconst noop = () => null;\n\nconst DELTA_LAST_COLUMN = 25;\n\n// eslint-disable-next-line no-unused-vars\nconst decorateColumn = (column, grid, index) => {\n const {\n onResizeEnd = noop,\n onResizeStart = noop,\n minColumnWidth = 90,\n isColumnResizeActive = (col) => col.resizable && !col.expandableColumn,\n onColumnResize,\n } = grid.props;\n\n const { decoratedColumns } = grid.getInstance();\n // need to do this because the decorated columns which the index in the function call\n // could be different from the final decorated columns because a plugin could add a\n // column afterwards\n const colIndex = decoratedColumns.findIndex((col) => col.property === column.property);\n const isLast = colIndex === decoratedColumns.length - 1;\n\n if (!isColumnResizeActive(column)) return column;\n return addResizableToColumn(\n column,\n resizableFormatter({\n onDragStart: () => {\n grid.isDragging.current = true;\n grid.disableEvents();\n onResizeStart();\n onColumnResize('onResizeStart', { column });\n },\n onDrag: (width, increasing) => {\n const { resizedColumns, refs } = grid.getInstance();\n if (isLast && increasing) {\n const thisCol = resizedColumns.current[column.uuid] || 0;\n width = Math.max(thisCol + DELTA_LAST_COLUMN, width);\n }\n column.updateBodyHeaderWidth(width, width);\n grid.updateRowWidth();\n if (isLast && increasing) {\n // TODO: Move this to packages/ds-shared/src/ScrollSync/ScrollSync.js\n // It isn't watching the scrollLeft so you have to move both at the same time\n refs.header.current.scrollLeft += DELTA_LAST_COLUMN;\n refs.body.current.scrollLeft += DELTA_LAST_COLUMN;\n }\n },\n onDragEnd: (width, increasing, extraData) => {\n const { resizedColumns } = grid.getInstance();\n if (isLast && increasing) {\n const thisCol = resizedColumns.current[column.uuid] || 0;\n width = Math.max(thisCol + DELTA_LAST_COLUMN, width);\n }\n resizedColumns.current[column.uuid] = width;\n\n grid.isDragging.current = false;\n grid.enableEvents();\n try {\n const total = grid.getInstance().refs.body.current.scrollWidth;\n const sum = Object.keys(grid.resizedColumns.current).reduce((p, n) => grid.resizedColumns.current[n] + p, 0);\n const lastKey = grid.decoratedColumns[grid.columns.length - 1].uuid;\n if (sum < total) {\n const lastCol = grid.getInstance().columnSizeService.columns[lastKey];\n lastCol.updateWidth(grid.resizedColumns.current[lastKey] + total - sum);\n lastCol.updateBodyHeaderWidth(grid.resizedColumns.current[lastKey] + total - sum);\n grid.getInstance().columnSizeService.updateMissingWidths(total);\n }\n } catch (error) {\n console.error(\n 'Unexpected error in the addResizableToColumn trying to use the remaining grid space to the last column',\n error,\n );\n }\n\n onColumnResize('onResizeEnd', {\n column,\n width,\n extraData,\n });\n runAll(onResizeEnd)(width, extraData);\n grid.updateRowWidth();\n },\n minWidth: (column.minWidth || minColumnWidth) - (isLast ? DELTA_LAST_COLUMN : 0),\n isLast,\n }),\n );\n};\n\nexport const ResizablePlugin = createInstancePlugin('resizable', {\n decorateColumn,\n});\n"],
5
5
  "mappings": "AAAA;ACEA;AACA;AACA;AAEA,MAAM,OAAO,MAAM;AAEnB,MAAM,oBAAoB;AAG1B,MAAM,iBAAiB,CAAC,QAAQ,MAAM,UAAU;AAC9C,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,uBAAuB,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI;AAAA,IACtD;AAAA,MACE,KAAK;AAET,QAAM,EAAE,qBAAqB,KAAK;AAIlC,QAAM,WAAW,iBAAiB,UAAU,CAAC,QAAQ,IAAI,aAAa,OAAO;AAC7E,QAAM,SAAS,aAAa,iBAAiB,SAAS;AAEtD,MAAI,CAAC,qBAAqB;AAAS,WAAO;AAC1C,SAAO,qBACL,QACA,mBAAmB;AAAA,IACjB,aAAa,MAAM;AACjB,WAAK,WAAW,UAAU;AAC1B,WAAK;AACL;AACA,qBAAe,iBAAiB,EAAE;AAAA;AAAA,IAEpC,QAAQ,CAAC,OAAO,eAAe;AAC7B,YAAM,EAAE,gBAAgB,SAAS,KAAK;AACtC,UAAI,UAAU,YAAY;AACxB,cAAM,UAAU,eAAe,QAAQ,OAAO,SAAS;AACvD,gBAAQ,KAAK,IAAI,UAAU,mBAAmB;AAAA;AAEhD,aAAO,sBAAsB,OAAO;AACpC,WAAK;AACL,UAAI,UAAU,YAAY;AAGxB,aAAK,OAAO,QAAQ,cAAc;AAClC,aAAK,KAAK,QAAQ,cAAc;AAAA;AAAA;AAAA,IAGpC,WAAW,CAAC,OAAO,YAAY,cAAc;AAC3C,YAAM,EAAE,mBAAmB,KAAK;AAChC,UAAI,UAAU,YAAY;AACxB,cAAM,UAAU,eAAe,QAAQ,OAAO,SAAS;AACvD,gBAAQ,KAAK,IAAI,UAAU,mBAAmB;AAAA;AAEhD,qBAAe,QAAQ,OAAO,QAAQ;AAEtC,WAAK,WAAW,UAAU;AAC1B,WAAK;AACL,UAAI;AACF,cAAM,QAAQ,KAAK,cAAc,KAAK,KAAK,QAAQ;AACnD,cAAM,MAAM,OAAO,KAAK,KAAK,eAAe,SAAS,OAAO,CAAC,GAAG,MAAM,KAAK,eAAe,QAAQ,KAAK,GAAG;AAC1G,cAAM,UAAU,KAAK,iBAAiB,KAAK,QAAQ,SAAS,GAAG;AAC/D,YAAI,MAAM,OAAO;AACf,gBAAM,UAAU,KAAK,cAAc,kBAAkB,QAAQ;AAC7D,kBAAQ,YAAY,KAAK,eAAe,QAAQ,WAAW,QAAQ;AACnE,kBAAQ,sBAAsB,KAAK,eAAe,QAAQ,WAAW,QAAQ;AAC7E,eAAK,cAAc,kBAAkB,oBAAoB;AAAA;AAAA,eAEpD,OAAP;AACA,gBAAQ,MACN,0GACA;AAAA;AAIJ,qBAAe,eAAe;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA;AAEF,aAAO,aAAa,OAAO;AAC3B,WAAK;AAAA;AAAA,IAEP,UAAW,QAAO,YAAY,kBAAmB,UAAS,oBAAoB;AAAA,IAC9E;AAAA;AAAA;AAKC,MAAM,kBAAkB,qBAAqB,aAAa;AAAA,EAC/D;AAAA;",
6
6
  "names": []
7
7
  }
@@ -19,7 +19,7 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import * as React from "react";
21
21
  import React2 from "react";
22
- import { appendHeaderFormatter } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
22
+ import { appendHeaderFormatter } from "@elliemae/ds-shared";
23
23
  import { useResizeHandle } from "./useResizeHandle";
24
24
  const addResizableToColumn = (column, formatter) => appendHeaderFormatter(formatter, column);
25
25
  const ResizableWrapper = React2.memo(({ value, onDrag, onDragEnd, onDragStart, minWidth, handleClassName }) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/resizable/decorateResizable.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { appendHeaderFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport { useResizeHandle } from './useResizeHandle';\n\nconst addResizableToColumn = (column, formatter) =>\n appendHeaderFormatter(formatter, column);\n\nconst ResizableWrapper = React.memo(\n ({ value, onDrag, onDragEnd, onDragStart, minWidth, handleClassName }) => {\n const { containerRef, Handle } = useResizeHandle({\n onDrag,\n onDragEnd,\n onDragStart,\n minWidth,\n handleClassName,\n });\n return (\n <div ref={containerRef} className=\"resize-container\">\n {value}\n <Handle />\n </div>\n );\n },\n);\n\n// eslint-disable-next-line react/display-name\nconst resizableFormatter = options => value => (\n <ResizableWrapper {...options} value={value} />\n);\n\nexport { addResizableToColumn, resizableFormatter };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEA,MAAM,uBAAuB,CAAC,QAAQ,cACpC,sBAAsB,WAAW;AAEnC,MAAM,mBAAmB,OAAM,KAC7B,CAAC,EAAE,OAAO,QAAQ,WAAW,aAAa,UAAU,sBAAsB;AACxE,QAAM,EAAE,cAAc,WAAW,gBAAgB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEF,SACE,qCAAC,OAAD;AAAA,IAAK,KAAK;AAAA,IAAc,WAAU;AAAA,KAC/B,OACD,qCAAC,QAAD;AAAA;AAOR,MAAM,qBAAqB,aAAW,WACpC,qCAAC,kBAAD,iCAAsB,UAAtB;AAAA,EAA+B;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { appendHeaderFormatter } from '@elliemae/ds-shared';\nimport { useResizeHandle } from './useResizeHandle';\n\nconst addResizableToColumn = (column, formatter) => appendHeaderFormatter(formatter, column);\n\nconst ResizableWrapper = React.memo(({ value, onDrag, onDragEnd, onDragStart, minWidth, handleClassName }) => {\n const { containerRef, Handle } = useResizeHandle({\n onDrag,\n onDragEnd,\n onDragStart,\n minWidth,\n handleClassName,\n });\n return (\n <div ref={containerRef} className=\"resize-container\">\n {value}\n <Handle />\n </div>\n );\n});\n\n// eslint-disable-next-line react/display-name\nconst resizableFormatter = (options) => (value) => <ResizableWrapper {...options} value={value} />;\n\nexport { addResizableToColumn, resizableFormatter };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEA,MAAM,uBAAuB,CAAC,QAAQ,cAAc,sBAAsB,WAAW;AAErF,MAAM,mBAAmB,OAAM,KAAK,CAAC,EAAE,OAAO,QAAQ,WAAW,aAAa,UAAU,sBAAsB;AAC5G,QAAM,EAAE,cAAc,WAAW,gBAAgB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEF,SACE,qCAAC,OAAD;AAAA,IAAK,KAAK;AAAA,IAAc,WAAU;AAAA,KAC/B,OACD,qCAAC,QAAD;AAAA;AAMN,MAAM,qBAAqB,CAAC,YAAY,CAAC,UAAU,qCAAC,kBAAD,iCAAsB,UAAtB;AAAA,EAA+B;AAAA;",
6
6
  "names": []
7
7
  }
@@ -22,8 +22,7 @@ import React2, { useMemo } from "react";
22
22
  import { SortableElement, SortableContainer, SortableHandle } from "react-sortable-hoc";
23
23
  import { GripperVertical } from "@elliemae/ds-icons";
24
24
  import { omit } from "@elliemae/ds-utilities";
25
- import { appendCellFormatter } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
26
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
25
+ import { appendCellFormatter, createInstancePlugin } from "@elliemae/ds-shared";
27
26
  const keysToOmit = [
28
27
  "axis",
29
28
  "contentWindow",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/row-dnd/DndRowsPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo } from 'react';\nimport { SortableElement, SortableContainer, SortableHandle } from 'react-sortable-hoc';\nimport { GripperVertical } from '@elliemae/ds-icons';\nimport { omit } from '@elliemae/ds-utilities';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\n\n// todo: remove once it's fixed in react-sortable-hoc library\nconst keysToOmit = [\n 'axis',\n 'contentWindow',\n 'disableAutoscroll',\n 'distance',\n 'getContainer',\n 'getHelperDimensions',\n 'helperClass',\n 'helperContainer',\n 'hideSortableGhost',\n 'keyboardSortingTransitionDuration',\n 'lockAxis',\n 'lockOffset',\n 'lockToContainerEdges',\n 'onSortEnd',\n 'onSortMove',\n 'onSortOver',\n 'onSortStart',\n 'pressDelay',\n 'pressThreshold',\n 'shouldCancelStart',\n 'transitionDuration',\n 'updateBeforeSortStart',\n 'useDragHandle',\n 'useWindowAsScrollContainer',\n];\n\nconst DragHandle = SortableHandle(() => <GripperVertical className=\"drag-handle\" />);\n\nconst translateDnDData = ({ oldIndex, newIndex, index }) => ({\n sourceIndex: oldIndex,\n targetIndex: newIndex,\n fromIndex: index === undefined ? oldIndex : index,\n});\n\nconst decorateColumns = (columns) => {\n const dragColumn = {\n property: 'drag',\n label: '',\n visible: true,\n width: 24,\n minWidth: 24,\n special: true,\n };\n return [\n appendCellFormatter(\n () => (\n <>\n <DragHandle />\n </>\n ),\n dragColumn,\n ),\n ...columns,\n ];\n};\n\nconst getBodyProps = (props, grid) => {\n const { onMoveRowEnd, onReorder, onMoveRowStart } = grid.props;\n return {\n ...props,\n onSortEnd: (data) => {\n grid.enableEvents();\n grid.setIsRowDragging(false);\n onMoveRowEnd(translateDnDData(data));\n },\n onSortStart: (...args) => {\n grid.disableEvents();\n grid.setIsRowDragging(true);\n onMoveRowStart(...args);\n },\n onSortOver: (data) => {\n onReorder(translateDnDData(data));\n },\n lockAxis: 'y',\n useDragHandle: true,\n helperClass: 'row-drag-helper',\n // a promise is needed, since sortable it's mounted before it's container\n getContainer: () =>\n new Promise((resolve) => {\n setTimeout(() => {\n resolve(grid.refs.innerBody.current || grid.refs.body.current);\n }, 100);\n }),\n };\n};\n\nconst decorateRenderers = (renderers) => {\n const RowComponent = renderers.body.row;\n const BodyWrapperComponent = renderers.body.wrapper;\n\n const Row = useMemo(() => SortableElement(RowComponent), []);\n\n const BodyWrapper = useMemo(\n () => SortableContainer((props) => <BodyWrapperComponent {...omit(props, keysToOmit)} />),\n [],\n );\n\n return {\n ...renderers,\n body: {\n ...renderers.body,\n wrapper: BodyWrapper,\n row: Row,\n },\n };\n};\n\nexport const DndRowsPlugin = createInstancePlugin('dnd-rows', {\n decorateColumns,\n getBodyProps,\n decorateRenderers,\n});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAGF,MAAM,aAAa,eAAe,MAAM,qCAAC,iBAAD;AAAA,EAAiB,WAAU;AAAA;AAEnE,MAAM,mBAAmB,CAAC,EAAE,UAAU,UAAU,YAAa;AAAA,EAC3D,aAAa;AAAA,EACb,aAAa;AAAA,EACb,WAAW,UAAU,SAAY,WAAW;AAAA;AAG9C,MAAM,kBAAkB,CAAC,YAAY;AACnC,QAAM,aAAa;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA;AAEX,SAAO;AAAA,IACL,oBACE,MACE,4DACE,qCAAC,YAAD,QAGJ;AAAA,IAEF,GAAG;AAAA;AAAA;AAIP,MAAM,eAAe,CAAC,OAAO,SAAS;AACpC,QAAM,EAAE,cAAc,WAAW,mBAAmB,KAAK;AACzD,SAAO,iCACF,QADE;AAAA,IAEL,WAAW,CAAC,SAAS;AACnB,WAAK;AACL,WAAK,iBAAiB;AACtB,mBAAa,iBAAiB;AAAA;AAAA,IAEhC,aAAa,IAAI,SAAS;AACxB,WAAK;AACL,WAAK,iBAAiB;AACtB,qBAAe,GAAG;AAAA;AAAA,IAEpB,YAAY,CAAC,SAAS;AACpB,gBAAU,iBAAiB;AAAA;AAAA,IAE7B,UAAU;AAAA,IACV,eAAe;AAAA,IACf,aAAa;AAAA,IAEb,cAAc,MACZ,IAAI,QAAQ,CAAC,YAAY;AACvB,iBAAW,MAAM;AACf,gBAAQ,KAAK,KAAK,UAAU,WAAW,KAAK,KAAK,KAAK;AAAA,SACrD;AAAA;AAAA;AAAA;AAKX,MAAM,oBAAoB,CAAC,cAAc;AACvC,QAAM,eAAe,UAAU,KAAK;AACpC,QAAM,uBAAuB,UAAU,KAAK;AAE5C,QAAM,MAAM,QAAQ,MAAM,gBAAgB,eAAe;AAEzD,QAAM,cAAc,QAClB,MAAM,kBAAkB,CAAC,UAAU,qCAAC,sBAAD,mBAA0B,KAAK,OAAO,gBACzE;AAGF,SAAO,iCACF,YADE;AAAA,IAEL,MAAM,iCACD,UAAU,OADT;AAAA,MAEJ,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAKJ,MAAM,gBAAgB,qBAAqB,YAAY;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo } from 'react';\nimport { SortableElement, SortableContainer, SortableHandle } from 'react-sortable-hoc';\nimport { GripperVertical } from '@elliemae/ds-icons';\nimport { omit } from '@elliemae/ds-utilities';\nimport { appendCellFormatter, createInstancePlugin } from '@elliemae/ds-shared';\n\n// todo: remove once it's fixed in react-sortable-hoc library\nconst keysToOmit = [\n 'axis',\n 'contentWindow',\n 'disableAutoscroll',\n 'distance',\n 'getContainer',\n 'getHelperDimensions',\n 'helperClass',\n 'helperContainer',\n 'hideSortableGhost',\n 'keyboardSortingTransitionDuration',\n 'lockAxis',\n 'lockOffset',\n 'lockToContainerEdges',\n 'onSortEnd',\n 'onSortMove',\n 'onSortOver',\n 'onSortStart',\n 'pressDelay',\n 'pressThreshold',\n 'shouldCancelStart',\n 'transitionDuration',\n 'updateBeforeSortStart',\n 'useDragHandle',\n 'useWindowAsScrollContainer',\n];\n\nconst DragHandle = SortableHandle(() => <GripperVertical className=\"drag-handle\" />);\n\nconst translateDnDData = ({ oldIndex, newIndex, index }) => ({\n sourceIndex: oldIndex,\n targetIndex: newIndex,\n fromIndex: index === undefined ? oldIndex : index,\n});\n\nconst decorateColumns = (columns) => {\n const dragColumn = {\n property: 'drag',\n label: '',\n visible: true,\n width: 24,\n minWidth: 24,\n special: true,\n };\n return [\n appendCellFormatter(\n () => (\n <>\n <DragHandle />\n </>\n ),\n dragColumn,\n ),\n ...columns,\n ];\n};\n\nconst getBodyProps = (props, grid) => {\n const { onMoveRowEnd, onReorder, onMoveRowStart } = grid.props;\n return {\n ...props,\n onSortEnd: (data) => {\n grid.enableEvents();\n grid.setIsRowDragging(false);\n onMoveRowEnd(translateDnDData(data));\n },\n onSortStart: (...args) => {\n grid.disableEvents();\n grid.setIsRowDragging(true);\n onMoveRowStart(...args);\n },\n onSortOver: (data) => {\n onReorder(translateDnDData(data));\n },\n lockAxis: 'y',\n useDragHandle: true,\n helperClass: 'row-drag-helper',\n // a promise is needed, since sortable it's mounted before it's container\n getContainer: () =>\n new Promise((resolve) => {\n setTimeout(() => {\n resolve(grid.refs.innerBody.current || grid.refs.body.current);\n }, 100);\n }),\n };\n};\n\nconst decorateRenderers = (renderers) => {\n const RowComponent = renderers.body.row;\n const BodyWrapperComponent = renderers.body.wrapper;\n\n const Row = useMemo(() => SortableElement(RowComponent), []);\n\n const BodyWrapper = useMemo(\n () => SortableContainer((props) => <BodyWrapperComponent {...omit(props, keysToOmit)} />),\n [],\n );\n\n return {\n ...renderers,\n body: {\n ...renderers.body,\n wrapper: BodyWrapper,\n row: Row,\n },\n };\n};\n\nexport const DndRowsPlugin = createInstancePlugin('dnd-rows', {\n decorateColumns,\n getBodyProps,\n decorateRenderers,\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACEA;AACA;AACA;AACA;AACA;AAGA,MAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAGF,MAAM,aAAa,eAAe,MAAM,qCAAC,iBAAD;AAAA,EAAiB,WAAU;AAAA;AAEnE,MAAM,mBAAmB,CAAC,EAAE,UAAU,UAAU,YAAa;AAAA,EAC3D,aAAa;AAAA,EACb,aAAa;AAAA,EACb,WAAW,UAAU,SAAY,WAAW;AAAA;AAG9C,MAAM,kBAAkB,CAAC,YAAY;AACnC,QAAM,aAAa;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA;AAEX,SAAO;AAAA,IACL,oBACE,MACE,4DACE,qCAAC,YAAD,QAGJ;AAAA,IAEF,GAAG;AAAA;AAAA;AAIP,MAAM,eAAe,CAAC,OAAO,SAAS;AACpC,QAAM,EAAE,cAAc,WAAW,mBAAmB,KAAK;AACzD,SAAO,iCACF,QADE;AAAA,IAEL,WAAW,CAAC,SAAS;AACnB,WAAK;AACL,WAAK,iBAAiB;AACtB,mBAAa,iBAAiB;AAAA;AAAA,IAEhC,aAAa,IAAI,SAAS;AACxB,WAAK;AACL,WAAK,iBAAiB;AACtB,qBAAe,GAAG;AAAA;AAAA,IAEpB,YAAY,CAAC,SAAS;AACpB,gBAAU,iBAAiB;AAAA;AAAA,IAE7B,UAAU;AAAA,IACV,eAAe;AAAA,IACf,aAAa;AAAA,IAEb,cAAc,MACZ,IAAI,QAAQ,CAAC,YAAY;AACvB,iBAAW,MAAM;AACf,gBAAQ,KAAK,KAAK,UAAU,WAAW,KAAK,KAAK,KAAK;AAAA,SACrD;AAAA;AAAA;AAAA;AAKX,MAAM,oBAAoB,CAAC,cAAc;AACvC,QAAM,eAAe,UAAU,KAAK;AACpC,QAAM,uBAAuB,UAAU,KAAK;AAE5C,QAAM,MAAM,QAAQ,MAAM,gBAAgB,eAAe;AAEzD,QAAM,cAAc,QAClB,MAAM,kBAAkB,CAAC,UAAU,qCAAC,sBAAD,mBAA0B,KAAK,OAAO,gBACzE;AAGF,SAAO,iCACF,YADE;AAAA,IAEL,MAAM,iCACD,UAAU,OADT;AAAA,MAEJ,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAKJ,MAAM,gBAAgB,qBAAqB,YAAY;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { useEffect, useState, useCallback } from "react";
3
3
  import cx from "obj-str";
4
4
  import { isFunction } from "@elliemae/ds-utilities";
5
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
5
+ import { createInstancePlugin } from "@elliemae/ds-shared";
6
6
  import { selectionColumnCreator } from "./addSelectableColumn";
7
7
  import { useSelectableState } from "./useSelectableState";
8
8
  import { selectMultipleRow, selectSingleRow } from "./helper";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/selectable/SelectablePlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react-hooks/rules-of-hooks */\n/* eslint-disable max-lines */\nimport { useEffect, useState, useCallback } from 'react';\nimport cx from 'obj-str';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { selectionColumnCreator } from './addSelectableColumn';\nimport { useSelectableState } from './useSelectableState';\nimport { selectMultipleRow, selectSingleRow } from './helper';\n\n// DECORATORS\nconst decorateColumns = (columns, grid) => {\n const {\n props: {\n selectable,\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent,\n },\n actions: { selectAll: handleSelectAll, selectRow: handleSelectRow },\n state: { selection },\n } = grid;\n\n const createSelectionColumn = selectionColumnCreator({\n grid,\n multiple: selectable === 'multi',\n selectAll: selection.selectAll,\n onSelectAll: handleSelectAll,\n onSelectRow: handleSelectRow,\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent,\n });\n\n const { showSelectColumn, selectionColumnDefinition } = grid.props;\n\n if (showSelectColumn) {\n const selectionColumn = createSelectionColumn(selectionColumnDefinition);\n return [selectionColumn, ...columns];\n }\n return columns;\n};\n\nconst getRowProps = (rowProps, grid, { rowData }) => {\n const {\n props: { showSelectHighlight, showSelectColumn, rowKey },\n actions: { selectRow },\n } = grid.getInstance();\n\n const { _index } = rowData;\n const isSelected = rowData['metaData.selected'];\n\n if (!showSelectColumn) {\n rowProps.onClick = () => selectRow(rowData[rowKey], _index);\n }\n\n rowProps.className = cx({\n [rowProps.className]: true,\n selected: isSelected,\n 'select-highlight': showSelectHighlight && isSelected,\n });\n\n return rowProps;\n};\n\nconst composeRows = (rows, grid) => {\n const {\n props: { isRowSelected, multiple, rowKey },\n state: { selection },\n } = grid.getInstance();\n\n const selectionPredicate = (row) =>\n isFunction(isRowSelected) ? isRowSelected(row) : !!selection.selectedRows[row[rowKey]];\n\n return multiple ? selectMultipleRow(rows, selectionPredicate) : selectSingleRow(rows, selectionPredicate);\n};\n\nconst decorateGrid = (grid) => {\n // const handler = useRef();\n const {\n props: { isRowSelected, rowKey },\n actions: { selectRow },\n state: { selection },\n } = grid.getInstance();\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastSelectedRow, setLastSelectedRow] = useState(null);\n\n const selectRowHandler = useCallback(\n (rowData, index) => () => selectRow(rowData[rowKey], index, shiftPressed),\n [isRowSelected, selection, shiftPressed],\n );\n\n useEffect(() => {\n const keyDownListener = (event) => {\n if (\n event.key === 'Shift' &&\n event.target.tagName.toLowerCase() !== 'input' &&\n event.target.parentNode.className !== 'em-ds-combobox__input'\n ) {\n setShiftPressed(true);\n }\n };\n const keyUpListener = (event) => {\n if (\n event.key === 'Shift' &&\n event.target.tagName.toLowerCase() !== 'input' &&\n event.target.parentNode.className !== 'em-ds-combobox__input'\n ) {\n setShiftPressed(false);\n }\n };\n window.addEventListener('keydown', keyDownListener);\n window.addEventListener('keyup', keyUpListener);\n return () => {\n window.removeEventListener('keydown', keyDownListener);\n window.removeEventListener('keyup', keyUpListener);\n };\n });\n\n return {\n shiftPressed,\n selectRowHandler,\n setLastSelectedRow,\n lastSelectedRow,\n };\n};\n\nexport const SelectablePlugin = createInstancePlugin('selectable', {\n decorateGrid,\n registerStateHook: useSelectableState,\n decorateColumns,\n getRowProps,\n composeRows,\n registerHotKeys(grid) {\n return [\n {\n key: 'space',\n handler: ({ rowIndex }) => {\n const {\n composedRows,\n props: { rowKey },\n actions: { selectRow },\n } = grid.getInstance();\n const rows = composedRows.rows || composedRows;\n const row = rows[rowIndex];\n if (!row) return;\n selectRow(row[rowKey], rowIndex);\n },\n },\n {\n key: 'ctrl+a',\n handler: () => {\n const {\n state: { selection },\n actions: { selectAll },\n } = grid.getInstance();\n\n selectAll(!selection.selectAll);\n },\n },\n ];\n },\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react-hooks/rules-of-hooks */\n/* eslint-disable max-lines */\nimport { useEffect, useState, useCallback } from 'react';\nimport cx from 'obj-str';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared';\nimport { selectionColumnCreator } from './addSelectableColumn';\nimport { useSelectableState } from './useSelectableState';\nimport { selectMultipleRow, selectSingleRow } from './helper';\n\n// DECORATORS\nconst decorateColumns = (columns, grid) => {\n const {\n props: {\n selectable,\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent,\n },\n actions: { selectAll: handleSelectAll, selectRow: handleSelectRow },\n state: { selection },\n } = grid;\n\n const createSelectionColumn = selectionColumnCreator({\n grid,\n multiple: selectable === 'multi',\n selectAll: selection.selectAll,\n onSelectAll: handleSelectAll,\n onSelectRow: handleSelectRow,\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent,\n });\n\n const { showSelectColumn, selectionColumnDefinition } = grid.props;\n\n if (showSelectColumn) {\n const selectionColumn = createSelectionColumn(selectionColumnDefinition);\n return [selectionColumn, ...columns];\n }\n return columns;\n};\n\nconst getRowProps = (rowProps, grid, { rowData }) => {\n const {\n props: { showSelectHighlight, showSelectColumn, rowKey },\n actions: { selectRow },\n } = grid.getInstance();\n\n const { _index } = rowData;\n const isSelected = rowData['metaData.selected'];\n\n if (!showSelectColumn) {\n rowProps.onClick = () => selectRow(rowData[rowKey], _index);\n }\n\n rowProps.className = cx({\n [rowProps.className]: true,\n selected: isSelected,\n 'select-highlight': showSelectHighlight && isSelected,\n });\n\n return rowProps;\n};\n\nconst composeRows = (rows, grid) => {\n const {\n props: { isRowSelected, multiple, rowKey },\n state: { selection },\n } = grid.getInstance();\n\n const selectionPredicate = (row) =>\n isFunction(isRowSelected) ? isRowSelected(row) : !!selection.selectedRows[row[rowKey]];\n\n return multiple ? selectMultipleRow(rows, selectionPredicate) : selectSingleRow(rows, selectionPredicate);\n};\n\nconst decorateGrid = (grid) => {\n // const handler = useRef();\n const {\n props: { isRowSelected, rowKey },\n actions: { selectRow },\n state: { selection },\n } = grid.getInstance();\n const [shiftPressed, setShiftPressed] = useState(false);\n const [lastSelectedRow, setLastSelectedRow] = useState(null);\n\n const selectRowHandler = useCallback(\n (rowData, index) => () => selectRow(rowData[rowKey], index, shiftPressed),\n [isRowSelected, selection, shiftPressed],\n );\n\n useEffect(() => {\n const keyDownListener = (event) => {\n if (\n event.key === 'Shift' &&\n event.target.tagName.toLowerCase() !== 'input' &&\n event.target.parentNode.className !== 'em-ds-combobox__input'\n ) {\n setShiftPressed(true);\n }\n };\n const keyUpListener = (event) => {\n if (\n event.key === 'Shift' &&\n event.target.tagName.toLowerCase() !== 'input' &&\n event.target.parentNode.className !== 'em-ds-combobox__input'\n ) {\n setShiftPressed(false);\n }\n };\n window.addEventListener('keydown', keyDownListener);\n window.addEventListener('keyup', keyUpListener);\n return () => {\n window.removeEventListener('keydown', keyDownListener);\n window.removeEventListener('keyup', keyUpListener);\n };\n });\n\n return {\n shiftPressed,\n selectRowHandler,\n setLastSelectedRow,\n lastSelectedRow,\n };\n};\n\nexport const SelectablePlugin = createInstancePlugin('selectable', {\n decorateGrid,\n registerStateHook: useSelectableState,\n decorateColumns,\n getRowProps,\n composeRows,\n registerHotKeys(grid) {\n return [\n {\n key: 'space',\n handler: ({ rowIndex }) => {\n const {\n composedRows,\n props: { rowKey },\n actions: { selectRow },\n } = grid.getInstance();\n const rows = composedRows.rows || composedRows;\n const row = rows[rowIndex];\n if (!row) return;\n selectRow(row[rowKey], rowIndex);\n },\n },\n {\n key: 'ctrl+a',\n handler: () => {\n const {\n state: { selection },\n actions: { selectAll },\n } = grid.getInstance();\n\n selectAll(!selection.selectAll);\n },\n },\n ];\n },\n});\n"],
5
5
  "mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAM,kBAAkB,CAAC,SAAS,SAAS;AACzC,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEF,SAAS,EAAE,WAAW,iBAAiB,WAAW;AAAA,IAClD,OAAO,EAAE;AAAA,MACP;AAEJ,QAAM,wBAAwB,uBAAuB;AAAA,IACnD;AAAA,IACA,UAAU,eAAe;AAAA,IACzB,WAAW,UAAU;AAAA,IACrB,aAAa;AAAA,IACb,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGF,QAAM,EAAE,kBAAkB,8BAA8B,KAAK;AAE7D,MAAI,kBAAkB;AACpB,UAAM,kBAAkB,sBAAsB;AAC9C,WAAO,CAAC,iBAAiB,GAAG;AAAA;AAE9B,SAAO;AAAA;AAGT,MAAM,cAAc,CAAC,UAAU,MAAM,EAAE,cAAc;AACnD,QAAM;AAAA,IACJ,OAAO,EAAE,qBAAqB,kBAAkB;AAAA,IAChD,SAAS,EAAE;AAAA,MACT,KAAK;AAET,QAAM,EAAE,WAAW;AACnB,QAAM,aAAa,QAAQ;AAE3B,MAAI,CAAC,kBAAkB;AACrB,aAAS,UAAU,MAAM,UAAU,QAAQ,SAAS;AAAA;AAGtD,WAAS,YAAY,GAAG;AAAA,KACrB,SAAS,YAAY;AAAA,IACtB,UAAU;AAAA,IACV,oBAAoB,uBAAuB;AAAA;AAG7C,SAAO;AAAA;AAGT,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE,eAAe,UAAU;AAAA,IAClC,OAAO,EAAE;AAAA,MACP,KAAK;AAET,QAAM,qBAAqB,CAAC,QAC1B,WAAW,iBAAiB,cAAc,OAAO,CAAC,CAAC,UAAU,aAAa,IAAI;AAEhF,SAAO,WAAW,kBAAkB,MAAM,sBAAsB,gBAAgB,MAAM;AAAA;AAGxF,MAAM,eAAe,CAAC,SAAS;AAE7B,QAAM;AAAA,IACJ,OAAO,EAAE,eAAe;AAAA,IACxB,SAAS,EAAE;AAAA,IACX,OAAO,EAAE;AAAA,MACP,KAAK;AACT,QAAM,CAAC,cAAc,mBAAmB,SAAS;AACjD,QAAM,CAAC,iBAAiB,sBAAsB,SAAS;AAEvD,QAAM,mBAAmB,YACvB,CAAC,SAAS,UAAU,MAAM,UAAU,QAAQ,SAAS,OAAO,eAC5D,CAAC,eAAe,WAAW;AAG7B,YAAU,MAAM;AACd,UAAM,kBAAkB,CAAC,UAAU;AACjC,UACE,MAAM,QAAQ,WACd,MAAM,OAAO,QAAQ,kBAAkB,WACvC,MAAM,OAAO,WAAW,cAAc,yBACtC;AACA,wBAAgB;AAAA;AAAA;AAGpB,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UACE,MAAM,QAAQ,WACd,MAAM,OAAO,QAAQ,kBAAkB,WACvC,MAAM,OAAO,WAAW,cAAc,yBACtC;AACA,wBAAgB;AAAA;AAAA;AAGpB,WAAO,iBAAiB,WAAW;AACnC,WAAO,iBAAiB,SAAS;AACjC,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW;AACtC,aAAO,oBAAoB,SAAS;AAAA;AAAA;AAIxC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAIG,MAAM,mBAAmB,qBAAqB,cAAc;AAAA,EACjE;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,MAAM;AACpB,WAAO;AAAA,MACL;AAAA,QACE,KAAK;AAAA,QACL,SAAS,CAAC,EAAE,eAAe;AACzB,gBAAM;AAAA,YACJ;AAAA,YACA,OAAO,EAAE;AAAA,YACT,SAAS,EAAE;AAAA,cACT,KAAK;AACT,gBAAM,OAAO,aAAa,QAAQ;AAClC,gBAAM,MAAM,KAAK;AACjB,cAAI,CAAC;AAAK;AACV,oBAAU,IAAI,SAAS;AAAA;AAAA;AAAA,MAG3B;AAAA,QACE,KAAK;AAAA,QACL,SAAS,MAAM;AACb,gBAAM;AAAA,YACJ,OAAO,EAAE;AAAA,YACT,SAAS,EAAE;AAAA,cACT,KAAK;AAET,oBAAU,CAAC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -30,10 +30,7 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  import * as React from "react";
33
- import {
34
- appendCellFormatter,
35
- appendHeaderFormatter
36
- } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
33
+ import { appendCellFormatter, appendHeaderFormatter } from "@elliemae/ds-shared";
37
34
  import { selectableFormatter } from "./selectableFormatter";
38
35
  function selectionColumnCreator({
39
36
  grid,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/selectable/addSelectableColumn.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n appendCellFormatter,\n appendHeaderFormatter,\n} from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport { selectableFormatter } from './selectableFormatter';\n\nexport function selectionColumnCreator({\n grid,\n selectAll,\n selectionComponent,\n onSelectRow,\n onSelectAll,\n multiple,\n\n // backward compatibility: later this needed to be passed through column definition\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent, // favor selectionComponent\n}) {\n const {\n props: { rowKey },\n } = grid;\n\n return ({\n visible = true,\n isDataColumn = false,\n width = 40,\n minWidth,\n cellRenderer,\n headerCellRenderer,\n customRenderer,\n header,\n ...column\n } = {}) => {\n let selectionColumn = {\n ...column,\n property: 'metaData.selected',\n filterLabel: multiSelectFilterLabel,\n filterOptions: multiSelectFilterOptions,\n filterLabels: multiSelectFilterLabels,\n visible,\n width,\n minWidth: minWidth || width,\n isDataColumn,\n };\n selectionColumn = appendCellFormatter(\n selectableFormatter(\n {\n isMultiSelect: multiple,\n renderer: selectionComponent || multiSelectComponent,\n onSelect: onSelectRow,\n },\n grid,\n ),\n )(selectionColumn);\n\n if (multiple) {\n selectionColumn = appendHeaderFormatter(\n selectableFormatter(\n {\n rowKey,\n selectAll,\n isMultiSelect: true,\n isHeader: true,\n className: 'multi-select-wrapper',\n renderer: selectionComponent || multiSelectComponent,\n onSelect: onSelectAll,\n },\n grid,\n ),\n )(selectionColumn);\n }\n return selectionColumn;\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACAA;AAAA;AAAA;AAAA;AAIA;AAEO,gCAAgC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACC;AACD,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,MACP;AAEJ,SAAO,CAAC,KAUJ,OAAO;AAVH,iBACN;AAAA,gBAAU;AAAA,MACV,eAAe;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QARM,IASH,mBATG,IASH;AAAA,MARH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAGA,QAAI,kBAAkB,iCACjB,SADiB;AAAA,MAEpB,UAAU;AAAA,MACV,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB;AAAA;AAEF,sBAAkB,oBAChB,oBACE;AAAA,MACE,eAAe;AAAA,MACf,UAAU,sBAAsB;AAAA,MAChC,UAAU;AAAA,OAEZ,OAEF;AAEF,QAAI,UAAU;AACZ,wBAAkB,sBAChB,oBACE;AAAA,QACE;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU,sBAAsB;AAAA,QAChC,UAAU;AAAA,SAEZ,OAEF;AAAA;AAEJ,WAAO;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { appendCellFormatter, appendHeaderFormatter } from '@elliemae/ds-shared';\nimport { selectableFormatter } from './selectableFormatter';\n\nexport function selectionColumnCreator({\n grid,\n selectAll,\n selectionComponent,\n onSelectRow,\n onSelectAll,\n multiple,\n\n // backward compatibility: later this needed to be passed through column definition\n multiSelectFilterLabel,\n multiSelectFilterOptions,\n multiSelectFilterLabels,\n multiSelectComponent, // favor selectionComponent\n}) {\n const {\n props: { rowKey },\n } = grid;\n\n return ({\n visible = true,\n isDataColumn = false,\n width = 40,\n minWidth,\n cellRenderer,\n headerCellRenderer,\n customRenderer,\n header,\n ...column\n } = {}) => {\n let selectionColumn = {\n ...column,\n property: 'metaData.selected',\n filterLabel: multiSelectFilterLabel,\n filterOptions: multiSelectFilterOptions,\n filterLabels: multiSelectFilterLabels,\n visible,\n width,\n minWidth: minWidth || width,\n isDataColumn,\n };\n selectionColumn = appendCellFormatter(\n selectableFormatter(\n {\n isMultiSelect: multiple,\n renderer: selectionComponent || multiSelectComponent,\n onSelect: onSelectRow,\n },\n grid,\n ),\n )(selectionColumn);\n\n if (multiple) {\n selectionColumn = appendHeaderFormatter(\n selectableFormatter(\n {\n rowKey,\n selectAll,\n isMultiSelect: true,\n isHeader: true,\n className: 'multi-select-wrapper',\n renderer: selectionComponent || multiSelectComponent,\n onSelect: onSelectAll,\n },\n grid,\n ),\n )(selectionColumn);\n }\n return selectionColumn;\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AAEO,gCAAgC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GACC;AACD,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,MACP;AAEJ,SAAO,CAAC,KAUJ,OAAO;AAVH,iBACN;AAAA,gBAAU;AAAA,MACV,eAAe;AAAA,MACf,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QARM,IASH,mBATG,IASH;AAAA,MARH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAGA,QAAI,kBAAkB,iCACjB,SADiB;AAAA,MAEpB,UAAU;AAAA,MACV,aAAa;AAAA,MACb,eAAe;AAAA,MACf,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB;AAAA;AAEF,sBAAkB,oBAChB,oBACE;AAAA,MACE,eAAe;AAAA,MACf,UAAU,sBAAsB;AAAA,MAChC,UAAU;AAAA,OAEZ,OAEF;AAEF,QAAI,UAAU;AACZ,wBAAkB,sBAChB,oBACE;AAAA,QACE;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU,sBAAsB;AAAA,QAChC,UAAU;AAAA,SAEZ,OAEF;AAAA;AAEJ,WAAO;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,7 @@
1
1
  import * as React from "react";
2
2
  import * as sortabular from "sortabular";
3
3
  import { compose, isEmpty, orderBy } from "@elliemae/ds-utilities";
4
- import {
5
- appendHeaderFormatter,
6
- mergeClassNameToColumnHeader
7
- } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
8
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
4
+ import { createInstancePlugin, appendHeaderFormatter, mergeClassNameToColumnHeader } from "@elliemae/ds-shared";
9
5
  import { sortHeaderFormatter } from "./sortHeaderFormatter";
10
6
  import { useSortableState } from "./useSortableState";
11
7
  import { sorter, sorterGroups } from "./sorter";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/sortable/SortablePlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import * as sortabular from 'sortabular';\nimport { compose, isEmpty, orderBy } from '@elliemae/ds-utilities';\nimport {\n appendHeaderFormatter,\n mergeClassNameToColumnHeader,\n} from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { sortHeaderFormatter } from './sortHeaderFormatter';\nimport { useSortableState } from './useSortableState';\nimport { sorter, sorterGroups } from './sorter';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isSortableColumnActive = (col) => col.sortable, groupedRows },\n } = grid;\n\n if (groupedRows) return column;\n if (!isSortableColumnActive(column)) return column;\n\n const formatter = sortHeaderFormatter(\n sortabular.sort({\n getSortingColumns: () => grid.getState().sortingColumns || [],\n onSort: grid.actions.sort,\n strategy: sortabular.strategies.byProperty,\n }),\n grid,\n );\n\n return compose(appendHeaderFormatter(formatter), mergeClassNameToColumnHeader('with-sortable'))(column);\n};\n\nconst composeRows = (rows, grid) => {\n const {\n state: { sortingColumns },\n props: { isDataSorted, groupedRows, groupedBy, sortEmptyLast },\n rows: rowsData,\n composedRows,\n decoratedColumns,\n } = grid.getInstance();\n\n const sortingConfig = {\n columns: decoratedColumns,\n sortingColumns: !isEmpty(sortingColumns) && sortingColumns,\n sort: orderBy,\n emptyLast: sortEmptyLast,\n };\n\n // TODO: 1572 FIX\n if (groupedRows && !groupedBy) {\n return !isDataSorted ? sorterGroups(sortingConfig)(composedRows, rowsData, groupedBy) : rows;\n }\n\n return !isDataSorted ? sorter(sortingConfig)(rows) : rows;\n};\n\nexport const SortablePlugin = createInstancePlugin('sortable', {\n registerStateHook: useSortableState,\n decorateColumn,\n composeRows,\n registerHotKeys(grid) {\n return {\n key: 'ctrl+s',\n handler: ({ cellIndex }) => {\n const {\n actions: { sort },\n decoratedColumns,\n } = grid.getInstance();\n const column = decoratedColumns[cellIndex];\n if (!column) return;\n sort(column.property);\n },\n };\n },\n});\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AAEA,MAAM,iBAAiB,CAAC,QAAQ,SAAS;AACvC,QAAM;AAAA,IACJ,OAAO,EAAE,yBAAyB,CAAC,QAAQ,IAAI,UAAU;AAAA,MACvD;AAEJ,MAAI;AAAa,WAAO;AACxB,MAAI,CAAC,uBAAuB;AAAS,WAAO;AAE5C,QAAM,YAAY,oBAChB,WAAW,KAAK;AAAA,IACd,mBAAmB,MAAM,KAAK,WAAW,kBAAkB;AAAA,IAC3D,QAAQ,KAAK,QAAQ;AAAA,IACrB,UAAU,WAAW,WAAW;AAAA,MAElC;AAGF,SAAO,QAAQ,sBAAsB,YAAY,6BAA6B,kBAAkB;AAAA;AAGlG,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT,OAAO,EAAE,cAAc,aAAa,WAAW;AAAA,IAC/C,MAAM;AAAA,IACN;AAAA,IACA;AAAA,MACE,KAAK;AAET,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,IACT,gBAAgB,CAAC,QAAQ,mBAAmB;AAAA,IAC5C,MAAM;AAAA,IACN,WAAW;AAAA;AAIb,MAAI,eAAe,CAAC,WAAW;AAC7B,WAAO,CAAC,eAAe,aAAa,eAAe,cAAc,UAAU,aAAa;AAAA;AAG1F,SAAO,CAAC,eAAe,OAAO,eAAe,QAAQ;AAAA;AAGhD,MAAM,iBAAiB,qBAAqB,YAAY;AAAA,EAC7D,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,gBAAgB,MAAM;AACpB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,SAAS,CAAC,EAAE,gBAAgB;AAC1B,cAAM;AAAA,UACJ,SAAS,EAAE;AAAA,UACX;AAAA,YACE,KAAK;AACT,cAAM,SAAS,iBAAiB;AAChC,YAAI,CAAC;AAAQ;AACb,aAAK,OAAO;AAAA;AAAA;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import * as sortabular from 'sortabular';\nimport { compose, isEmpty, orderBy } from '@elliemae/ds-utilities';\nimport { createInstancePlugin, appendHeaderFormatter, mergeClassNameToColumnHeader } from '@elliemae/ds-shared';\nimport { sortHeaderFormatter } from './sortHeaderFormatter';\nimport { useSortableState } from './useSortableState';\nimport { sorter, sorterGroups } from './sorter';\n\nconst decorateColumn = (column, grid) => {\n const {\n props: { isSortableColumnActive = (col) => col.sortable, groupedRows },\n } = grid;\n\n if (groupedRows) return column;\n if (!isSortableColumnActive(column)) return column;\n\n const formatter = sortHeaderFormatter(\n sortabular.sort({\n getSortingColumns: () => grid.getState().sortingColumns || [],\n onSort: grid.actions.sort,\n strategy: sortabular.strategies.byProperty,\n }),\n grid,\n );\n\n return compose(appendHeaderFormatter(formatter), mergeClassNameToColumnHeader('with-sortable'))(column);\n};\n\nconst composeRows = (rows, grid) => {\n const {\n state: { sortingColumns },\n props: { isDataSorted, groupedRows, groupedBy, sortEmptyLast },\n rows: rowsData,\n composedRows,\n decoratedColumns,\n } = grid.getInstance();\n\n const sortingConfig = {\n columns: decoratedColumns,\n sortingColumns: !isEmpty(sortingColumns) && sortingColumns,\n sort: orderBy,\n emptyLast: sortEmptyLast,\n };\n\n // TODO: 1572 FIX\n if (groupedRows && !groupedBy) {\n return !isDataSorted ? sorterGroups(sortingConfig)(composedRows, rowsData, groupedBy) : rows;\n }\n\n return !isDataSorted ? sorter(sortingConfig)(rows) : rows;\n};\n\nexport const SortablePlugin = createInstancePlugin('sortable', {\n registerStateHook: useSortableState,\n decorateColumn,\n composeRows,\n registerHotKeys(grid) {\n return {\n key: 'ctrl+s',\n handler: ({ cellIndex }) => {\n const {\n actions: { sort },\n decoratedColumns,\n } = grid.getInstance();\n const column = decoratedColumns[cellIndex];\n if (!column) return;\n sort(column.property);\n },\n };\n },\n});\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,iBAAiB,CAAC,QAAQ,SAAS;AACvC,QAAM;AAAA,IACJ,OAAO,EAAE,yBAAyB,CAAC,QAAQ,IAAI,UAAU;AAAA,MACvD;AAEJ,MAAI;AAAa,WAAO;AACxB,MAAI,CAAC,uBAAuB;AAAS,WAAO;AAE5C,QAAM,YAAY,oBAChB,WAAW,KAAK;AAAA,IACd,mBAAmB,MAAM,KAAK,WAAW,kBAAkB;AAAA,IAC3D,QAAQ,KAAK,QAAQ;AAAA,IACrB,UAAU,WAAW,WAAW;AAAA,MAElC;AAGF,SAAO,QAAQ,sBAAsB,YAAY,6BAA6B,kBAAkB;AAAA;AAGlG,MAAM,cAAc,CAAC,MAAM,SAAS;AAClC,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT,OAAO,EAAE,cAAc,aAAa,WAAW;AAAA,IAC/C,MAAM;AAAA,IACN;AAAA,IACA;AAAA,MACE,KAAK;AAET,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,IACT,gBAAgB,CAAC,QAAQ,mBAAmB;AAAA,IAC5C,MAAM;AAAA,IACN,WAAW;AAAA;AAIb,MAAI,eAAe,CAAC,WAAW;AAC7B,WAAO,CAAC,eAAe,aAAa,eAAe,cAAc,UAAU,aAAa;AAAA;AAG1F,SAAO,CAAC,eAAe,OAAO,eAAe,QAAQ;AAAA;AAGhD,MAAM,iBAAiB,qBAAqB,YAAY;AAAA,EAC7D,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,gBAAgB,MAAM;AACpB,WAAO;AAAA,MACL,KAAK;AAAA,MACL,SAAS,CAAC,EAAE,gBAAgB;AAC1B,cAAM;AAAA,UACJ,SAAS,EAAE;AAAA,UACX;AAAA,YACE,KAAK;AACT,cAAM,SAAS,iBAAiB;AAChC,YAAI,CAAC;AAAQ;AACb,aAAK,OAAO;AAAA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,6 @@
1
1
  import * as React from "react";
2
2
  import React2 from "react";
3
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
4
- import { appendCellFormatter } from "@elliemae/ds-shared/useDataGrid/initColumnDefinition";
3
+ import { createInstancePlugin, appendCellFormatter } from "@elliemae/ds-shared";
5
4
  import { RowRenderer } from "./RowRenderer";
6
5
  const decorateColumns = (columns) => {
7
6
  const lastColumn = columns[columns.length - 1];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/toolbar/ToolbarPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { appendCellFormatter } from '@elliemae/ds-shared/useDataGrid/initColumnDefinition';\nimport { RowRenderer } from './RowRenderer';\n\nconst decorateColumns = (columns) => {\n const lastColumn = columns[columns.length - 1];\n return [\n ...columns.slice(0, -1),\n appendCellFormatter(\n [\n (value) => (\n <>\n {value}\n <div style={{ width: 34, maxWidth: 34, overflow: 'hidden' }} />\n </>\n ),\n ],\n lastColumn,\n 'fixedFormatters',\n ),\n ];\n};\n\nconst decorateRenderers = (renderers, grid) => {\n const Row = renderers.body.row;\n renderers.body.row = RowRenderer(Row, grid);\n return renderers;\n};\n\nexport const ToolbarPlugin = createInstancePlugin('toolbar', {\n decorateRenderers,\n decorateColumns,\n});\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA,MAAM,kBAAkB,CAAC,YAAY;AACnC,QAAM,aAAa,QAAQ,QAAQ,SAAS;AAC5C,SAAO;AAAA,IACL,GAAG,QAAQ,MAAM,GAAG;AAAA,IACpB,oBACE;AAAA,MACE,CAAC,UACC,4DACG,OACD,qCAAC,OAAD;AAAA,QAAK,OAAO,EAAE,OAAO,IAAI,UAAU,IAAI,UAAU;AAAA;AAAA,OAIvD,YACA;AAAA;AAAA;AAKN,MAAM,oBAAoB,CAAC,WAAW,SAAS;AAC7C,QAAM,MAAM,UAAU,KAAK;AAC3B,YAAU,KAAK,MAAM,YAAY,KAAK;AACtC,SAAO;AAAA;AAGF,MAAM,gBAAgB,qBAAqB,WAAW;AAAA,EAC3D;AAAA,EACA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { createInstancePlugin, appendCellFormatter } from '@elliemae/ds-shared';\nimport { RowRenderer } from './RowRenderer';\n\nconst decorateColumns = (columns) => {\n const lastColumn = columns[columns.length - 1];\n return [\n ...columns.slice(0, -1),\n appendCellFormatter(\n [\n (value) => (\n <>\n {value}\n <div style={{ width: 34, maxWidth: 34, overflow: 'hidden' }} />\n </>\n ),\n ],\n lastColumn,\n 'fixedFormatters',\n ),\n ];\n};\n\nconst decorateRenderers = (renderers, grid) => {\n const Row = renderers.body.row;\n renderers.body.row = RowRenderer(Row, grid);\n return renderers;\n};\n\nexport const ToolbarPlugin = createInstancePlugin('toolbar', {\n decorateRenderers,\n decorateColumns,\n});\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAEA,MAAM,kBAAkB,CAAC,YAAY;AACnC,QAAM,aAAa,QAAQ,QAAQ,SAAS;AAC5C,SAAO;AAAA,IACL,GAAG,QAAQ,MAAM,GAAG;AAAA,IACpB,oBACE;AAAA,MACE,CAAC,UACC,4DACG,OACD,qCAAC,OAAD;AAAA,QAAK,OAAO,EAAE,OAAO,IAAI,UAAU,IAAI,UAAU;AAAA;AAAA,OAIvD,YACA;AAAA;AAAA;AAKN,MAAM,oBAAoB,CAAC,WAAW,SAAS;AAC7C,QAAM,MAAM,UAAU,KAAK;AAC3B,YAAU,KAAK,MAAM,YAAY,KAAK;AACtC,SAAO;AAAA;AAGF,MAAM,gBAAgB,qBAAqB,WAAW;AAAA,EAC3D;AAAA,EACA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -20,10 +20,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import * as React from "react";
21
21
  import React2, { useMemo, useRef } from "react";
22
22
  import { get } from "lodash";
23
- import { FocusGrid } from "@elliemae/ds-shared/FocusGroup/FocusGrid";
24
- import { runAll } from "@elliemae/ds-utilities";
25
- import { mergeRefs } from "@elliemae/ds-utilities";
26
- import { createInstancePlugin } from "@elliemae/ds-shared/createDataInstance/createInstancePlugin";
23
+ import { runAll, mergeRefs } from "@elliemae/ds-utilities";
24
+ import { createInstancePlugin, FocusGrid } from "@elliemae/ds-shared";
27
25
  import { VirtualizedBody } from "./VirtualizedBody";
28
26
  const VirtualizationPlugin = createInstancePlugin("virtualization", {
29
27
  decorateRenderers(renderers, grid) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/virtualization/VirtualizationPlugin.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable react/prop-types */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo, useRef } from 'react';\nimport { get } from 'lodash';\nimport { FocusGrid } from '@elliemae/ds-shared/FocusGroup/FocusGrid';\nimport { runAll } from '@elliemae/ds-utilities';\nimport { mergeRefs } from '@elliemae/ds-utilities';\nimport { createInstancePlugin } from '@elliemae/ds-shared/createDataInstance/createInstancePlugin';\nimport { VirtualizedBody } from './VirtualizedBody';\n\nexport const VirtualizationPlugin = createInstancePlugin('virtualization', {\n decorateRenderers(renderers, grid) {\n const BodyWrapper = renderers.body.wrapper;\n // eslint-disable-next-line react/display-name\n renderers.body.wrapper = useMemo(\n () => (props) => {\n const { listProps = {}, rows } = props;\n const {\n hotKeys,\n props: { autoHeight, autoScrollToId, expandable, overscanCount, rowSize },\n refs: { innerBody },\n setHasScroll,\n state: { filters },\n } = grid.getInstance();\n\n const listRef = useRef();\n const nextListProps = {\n ...listProps,\n ref: mergeRefs(listRef, listProps.ref),\n };\n return (\n <FocusGrid\n hotKeys={hotKeys}\n keyBindings={({ defaultBindings }) => ({\n ...defaultBindings,\n // todo: this is kind of hacky, since it's virtualized and there's\n // the possibility that the firsts or lasts rows aren't rendered\n Home: runAll((e) => {\n if (e.ctrlKey) {\n listRef.current.scrollToItem(0);\n setTimeout(() => defaultBindings.Home(e), 10);\n } else {\n defaultBindings.Home(e);\n }\n }),\n End: runAll((e) => {\n if (e.ctrlKey) {\n listRef.current.scrollToItem(rows.length - 1);\n setTimeout(() => defaultBindings.End(e), 10);\n } else {\n defaultBindings.End(e);\n }\n }),\n })}\n shouldRefocus={false}\n >\n <VirtualizedBody\n {...props}\n autoScrollToId={autoScrollToId}\n autoHeight={autoHeight}\n component={BodyWrapper}\n expandable={expandable}\n innerBody={innerBody}\n listProps={nextListProps}\n overscanCount={overscanCount}\n rowSize={rowSize}\n setHasScroll={setHasScroll}\n filters={filters}\n />\n </FocusGrid>\n );\n },\n [get(grid.getInstance(), 'rows.length')],\n );\n return renderers;\n },\n});\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,uBAAuB,qBAAqB,kBAAkB;AAAA,EACzE,kBAAkB,WAAW,MAAM;AACjC,UAAM,cAAc,UAAU,KAAK;AAEnC,cAAU,KAAK,UAAU,QACvB,MAAM,CAAC,UAAU;AACf,YAAM,EAAE,YAAY,IAAI,SAAS;AACjC,YAAM;AAAA,QACJ;AAAA,QACA,OAAO,EAAE,YAAY,gBAAgB,YAAY,eAAe;AAAA,QAChE,MAAM,EAAE;AAAA,QACR;AAAA,QACA,OAAO,EAAE;AAAA,UACP,KAAK;AAET,YAAM,UAAU;AAChB,YAAM,gBAAgB,iCACjB,YADiB;AAAA,QAEpB,KAAK,UAAU,SAAS,UAAU;AAAA;AAEpC,aACE,qCAAC,WAAD;AAAA,QACE;AAAA,QACA,aAAa,CAAC,EAAE,sBAAuB,iCAClC,kBADkC;AAAA,UAIrC,MAAM,OAAO,CAAC,MAAM;AAClB,gBAAI,EAAE,SAAS;AACb,sBAAQ,QAAQ,aAAa;AAC7B,yBAAW,MAAM,gBAAgB,KAAK,IAAI;AAAA,mBACrC;AACL,8BAAgB,KAAK;AAAA;AAAA;AAAA,UAGzB,KAAK,OAAO,CAAC,MAAM;AACjB,gBAAI,EAAE,SAAS;AACb,sBAAQ,QAAQ,aAAa,KAAK,SAAS;AAC3C,yBAAW,MAAM,gBAAgB,IAAI,IAAI;AAAA,mBACpC;AACL,8BAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,QAI1B,eAAe;AAAA,SAEf,qCAAC,iBAAD,iCACM,QADN;AAAA,QAEE;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,OAKR,CAAC,IAAI,KAAK,eAAe;AAE3B,WAAO;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable react/prop-types */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo, useRef } from 'react';\nimport { get } from 'lodash';\nimport { runAll, mergeRefs } from '@elliemae/ds-utilities';\nimport { createInstancePlugin, FocusGrid } from '@elliemae/ds-shared';\nimport { VirtualizedBody } from './VirtualizedBody';\n\nexport const VirtualizationPlugin = createInstancePlugin('virtualization', {\n decorateRenderers(renderers, grid) {\n const BodyWrapper = renderers.body.wrapper;\n // eslint-disable-next-line react/display-name\n renderers.body.wrapper = useMemo(\n () => (props) => {\n const { listProps = {}, rows } = props;\n const {\n hotKeys,\n props: { autoHeight, autoScrollToId, expandable, overscanCount, rowSize },\n refs: { innerBody },\n setHasScroll,\n state: { filters },\n } = grid.getInstance();\n\n const listRef = useRef();\n const nextListProps = {\n ...listProps,\n ref: mergeRefs(listRef, listProps.ref),\n };\n return (\n <FocusGrid\n hotKeys={hotKeys}\n keyBindings={({ defaultBindings }) => ({\n ...defaultBindings,\n // todo: this is kind of hacky, since it's virtualized and there's\n // the possibility that the firsts or lasts rows aren't rendered\n Home: runAll((e) => {\n if (e.ctrlKey) {\n listRef.current.scrollToItem(0);\n setTimeout(() => defaultBindings.Home(e), 10);\n } else {\n defaultBindings.Home(e);\n }\n }),\n End: runAll((e) => {\n if (e.ctrlKey) {\n listRef.current.scrollToItem(rows.length - 1);\n setTimeout(() => defaultBindings.End(e), 10);\n } else {\n defaultBindings.End(e);\n }\n }),\n })}\n shouldRefocus={false}\n >\n <VirtualizedBody\n {...props}\n autoScrollToId={autoScrollToId}\n autoHeight={autoHeight}\n component={BodyWrapper}\n expandable={expandable}\n innerBody={innerBody}\n listProps={nextListProps}\n overscanCount={overscanCount}\n rowSize={rowSize}\n setHasScroll={setHasScroll}\n filters={filters}\n />\n </FocusGrid>\n );\n },\n [get(grid.getInstance(), 'rows.length')],\n );\n return renderers;\n },\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACGA;AACA;AACA;AACA;AACA;AAEO,MAAM,uBAAuB,qBAAqB,kBAAkB;AAAA,EACzE,kBAAkB,WAAW,MAAM;AACjC,UAAM,cAAc,UAAU,KAAK;AAEnC,cAAU,KAAK,UAAU,QACvB,MAAM,CAAC,UAAU;AACf,YAAM,EAAE,YAAY,IAAI,SAAS;AACjC,YAAM;AAAA,QACJ;AAAA,QACA,OAAO,EAAE,YAAY,gBAAgB,YAAY,eAAe;AAAA,QAChE,MAAM,EAAE;AAAA,QACR;AAAA,QACA,OAAO,EAAE;AAAA,UACP,KAAK;AAET,YAAM,UAAU;AAChB,YAAM,gBAAgB,iCACjB,YADiB;AAAA,QAEpB,KAAK,UAAU,SAAS,UAAU;AAAA;AAEpC,aACE,qCAAC,WAAD;AAAA,QACE;AAAA,QACA,aAAa,CAAC,EAAE,sBAAuB,iCAClC,kBADkC;AAAA,UAIrC,MAAM,OAAO,CAAC,MAAM;AAClB,gBAAI,EAAE,SAAS;AACb,sBAAQ,QAAQ,aAAa;AAC7B,yBAAW,MAAM,gBAAgB,KAAK,IAAI;AAAA,mBACrC;AACL,8BAAgB,KAAK;AAAA;AAAA;AAAA,UAGzB,KAAK,OAAO,CAAC,MAAM;AACjB,gBAAI,EAAE,SAAS;AACb,sBAAQ,QAAQ,aAAa,KAAK,SAAS;AAC3C,yBAAW,MAAM,gBAAgB,IAAI,IAAI;AAAA,mBACpC;AACL,8BAAgB,IAAI;AAAA;AAAA;AAAA;AAAA,QAI1B,eAAe;AAAA,SAEf,qCAAC,iBAAD,iCACM,QADN;AAAA,QAEE;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,OAKR,CAAC,IAAI,KAAK,eAAe;AAE3B,WAAO;AAAA;AAAA;",
6
6
  "names": []
7
7
  }