@elliemae/ds-datagrids 1.61.12 → 1.61.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/DSDataGrid.js.map +1 -1
- package/cjs/DataGridImpl.js.map +1 -1
- package/cjs/PaginatedDataGrid.js.map +1 -1
- package/cjs/columns/IconColumn.js.map +1 -1
- package/cjs/columns/NumberColumn.js.map +1 -1
- package/cjs/components/BodyCell.js.map +1 -1
- package/cjs/components/BodyList.js.map +1 -1
- package/cjs/components/ColumnVisibilityMenuOption.js.map +1 -1
- package/cjs/components/ColumnsOptionsMenuSection.js.map +1 -1
- package/cjs/components/EmptyState.js.map +1 -1
- package/cjs/components/HeaderCell.js.map +1 -1
- package/cjs/components/List.js.map +1 -1
- package/cjs/components/ListItem.js.map +1 -1
- package/cjs/components/NoResults.js.map +1 -1
- package/cjs/components/RowsLoader.js.map +1 -1
- package/cjs/components/Table.js.map +1 -1
- package/cjs/components/TableBody.js.map +1 -1
- package/cjs/components/TableHeader.js.map +1 -1
- package/cjs/components/footer/addOptionalFooterComponents.js.map +1 -1
- package/cjs/components/header/PrimaryControls.js.map +1 -1
- package/cjs/components/header/addOptionalHeaderComponents.js.map +1 -1
- package/cjs/components/renderers/defaultClassedRenderers.js.map +1 -1
- package/cjs/components/renderers/renderRowsLoader.js.map +1 -1
- package/cjs/index-0be12eb8.js.map +1 -1
- package/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +1 -1
- package/cjs/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
- package/cjs/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
- package/cjs/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
- package/cjs/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
- package/cjs/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
- package/cjs/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
- package/cjs/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
- package/cjs/plugins/column-sizing/useColumnSizeService.js.map +1 -1
- package/cjs/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
- package/cjs/plugins/column-sizing/utils.js.map +1 -1
- package/cjs/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
- package/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
- package/cjs/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
- package/cjs/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
- package/cjs/plugins/editable/EditableComponents/TextBox.js.map +1 -1
- package/cjs/plugins/editable/EditablePlugin.js.map +1 -1
- package/cjs/plugins/editable/decorateEditable.js.map +1 -1
- package/cjs/plugins/editable/getEditorComponent.js.map +1 -1
- package/cjs/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
- package/cjs/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
- package/cjs/plugins/expandable-grid/ExpandedRow.js.map +1 -1
- package/cjs/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
- package/cjs/plugins/expandable-grid/useExpandGridState.js.map +1 -1
- package/cjs/plugins/export-data/ExportDataPlugin.js.map +1 -1
- package/cjs/plugins/filterable/FilterablePlugin.js.map +1 -1
- package/cjs/plugins/filterable/addFilterToColumn.js.map +1 -1
- package/cjs/plugins/filterable/components/FilterableHeader.js.map +1 -1
- package/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +1 -1
- package/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +1 -1
- package/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +1 -1
- package/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +1 -1
- package/cjs/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
- package/cjs/plugins/filterable/filterableFormatter.js.map +1 -1
- package/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
- package/cjs/plugins/filterable/filtering-helper/strategiesOperators.js.map +1 -1
- package/cjs/plugins/filterable/helper.js.map +1 -1
- package/cjs/plugins/filterable/useFilterableState.js.map +1 -1
- package/cjs/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
- package/cjs/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
- package/cjs/plugins/grouping-grid/walkStrategy.js.map +1 -1
- package/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
- package/cjs/plugins/pagination/PaginationPlugin.js.map +1 -1
- package/cjs/plugins/pagination/components/Pagination.js.map +1 -1
- package/cjs/plugins/pagination/components/Paginator.js.map +1 -1
- package/cjs/plugins/pagination/components/PerPageDropdown.js.map +1 -1
- package/cjs/plugins/pagination/helper.js.map +1 -1
- package/cjs/plugins/pagination/usePaginationState.js.map +1 -1
- package/cjs/plugins/resizable/ResizablePlugin.js.map +1 -1
- package/cjs/plugins/resizable/decorateResizable.js.map +1 -1
- package/cjs/plugins/resizable/useResizeHandle.js.map +1 -1
- package/cjs/plugins/resizable/utils.js.map +1 -1
- package/cjs/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
- package/cjs/plugins/selectable/SelectablePlugin.js.map +1 -1
- package/cjs/plugins/selectable/addSelectableColumn.js.map +1 -1
- package/cjs/plugins/selectable/helper.js.map +1 -1
- package/cjs/plugins/selectable/selectableFormatter.js.map +1 -1
- package/cjs/plugins/selectable/useSelectableState.js.map +1 -1
- package/cjs/plugins/sortable/SortablePlugin.js.map +1 -1
- package/cjs/plugins/sortable/checkIfSortable.js.map +1 -1
- package/cjs/plugins/sortable/sortHeaderFormatter.js.map +1 -1
- package/cjs/plugins/sortable/sortTree.js.map +1 -1
- package/cjs/plugins/sortable/sorter.js.map +1 -1
- package/cjs/plugins/sortable/useSortableState.js.map +1 -1
- package/cjs/plugins/toolbar/RowRenderer.js.map +1 -1
- package/cjs/plugins/toolbar/ToolbarPlugin.js.map +1 -1
- package/cjs/plugins/toolbar/ToolbarTrigger.js.map +1 -1
- package/cjs/plugins/virtualization/AutoHeightList.js.map +1 -1
- package/cjs/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
- package/cjs/plugins/virtualization/VirtualizedBody.js.map +1 -1
- package/cjs/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
- package/cjs/renders/CellWithAddons.js.map +1 -1
- package/cjs/renders/styled.js.map +1 -1
- package/cjs/rowSizes.js.map +1 -1
- package/cjs/utilities/getPluginsFromProps.js.map +1 -1
- package/cjs/utilities/getScrollbarSize.js.map +1 -1
- package/cjs/utilities/normalizeData.js.map +1 -1
- package/esm/DSDataGrid.js.map +1 -1
- package/esm/DataGridImpl.js.map +1 -1
- package/esm/PaginatedDataGrid.js.map +1 -1
- package/esm/columns/IconColumn.js.map +1 -1
- package/esm/columns/NumberColumn.js.map +1 -1
- package/esm/components/BodyCell.js.map +1 -1
- package/esm/components/BodyList.js.map +1 -1
- package/esm/components/ColumnVisibilityMenuOption.js.map +1 -1
- package/esm/components/ColumnsOptionsMenuSection.js.map +1 -1
- package/esm/components/EmptyState.js.map +1 -1
- package/esm/components/HeaderCell.js.map +1 -1
- package/esm/components/List.js.map +1 -1
- package/esm/components/ListItem.js.map +1 -1
- package/esm/components/NoResults.js.map +1 -1
- package/esm/components/RowsLoader.js.map +1 -1
- package/esm/components/Table.js.map +1 -1
- package/esm/components/TableBody.js.map +1 -1
- package/esm/components/TableHeader.js.map +1 -1
- package/esm/components/footer/addOptionalFooterComponents.js.map +1 -1
- package/esm/components/header/PrimaryControls.js.map +1 -1
- package/esm/components/header/addOptionalHeaderComponents.js.map +1 -1
- package/esm/components/renderers/defaultClassedRenderers.js.map +1 -1
- package/esm/components/renderers/renderRowsLoader.js.map +1 -1
- package/esm/index-afbbe9c8.js.map +1 -1
- package/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js.map +1 -1
- package/esm/plugins/column-dnd/DndColumnsPlugin.js.map +1 -1
- package/esm/plugins/column-dnd/decorateGridWithDndColumns.js.map +1 -1
- package/esm/plugins/column-sizing/ColumnSizingPlugin.js.map +1 -1
- package/esm/plugins/column-sizing/columnMeasurerTransformer.js.map +1 -1
- package/esm/plugins/column-sizing/ext-points/decorateColumn.js.map +1 -1
- package/esm/plugins/column-sizing/ext-points/getTableProps.js.map +1 -1
- package/esm/plugins/column-sizing/getColumnNameFromProperty.js.map +1 -1
- package/esm/plugins/column-sizing/useColumnSizeService.js.map +1 -1
- package/esm/plugins/column-sizing/useStylesheetHelpers.js.map +1 -1
- package/esm/plugins/column-sizing/utils.js.map +1 -1
- package/esm/plugins/custom-cell-renderer/CustomRendererPlugin.js.map +1 -1
- package/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js.map +1 -1
- package/esm/plugins/custom-cell-renderer/getRendererComponent.js.map +1 -1
- package/esm/plugins/editable/EditableComponents/ComboBox.js.map +1 -1
- package/esm/plugins/editable/EditableComponents/TextBox.js.map +1 -1
- package/esm/plugins/editable/EditablePlugin.js.map +1 -1
- package/esm/plugins/editable/decorateEditable.js.map +1 -1
- package/esm/plugins/editable/getEditorComponent.js.map +1 -1
- package/esm/plugins/expandable-grid/ExpandableColumn.js.map +1 -1
- package/esm/plugins/expandable-grid/ExpandablePlugin.js.map +1 -1
- package/esm/plugins/expandable-grid/ExpandedRow.js.map +1 -1
- package/esm/plugins/expandable-grid/ExpandedRowExtra.js.map +1 -1
- package/esm/plugins/expandable-grid/useExpandGridState.js.map +1 -1
- package/esm/plugins/export-data/ExportDataPlugin.js.map +1 -1
- package/esm/plugins/filterable/FilterablePlugin.js.map +1 -1
- package/esm/plugins/filterable/addFilterToColumn.js.map +1 -1
- package/esm/plugins/filterable/components/FilterableHeader.js.map +1 -1
- package/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js.map +1 -1
- package/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js.map +1 -1
- package/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js.map +1 -1
- package/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js.map +1 -1
- package/esm/plugins/filterable/components/filterable-menus/getFilterMenuByType.js.map +1 -1
- package/esm/plugins/filterable/filterableFormatter.js.map +1 -1
- package/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js.map +1 -1
- package/esm/plugins/filterable/filtering-helper/strategiesOperators.js.map +1 -1
- package/esm/plugins/filterable/helper.js.map +1 -1
- package/esm/plugins/filterable/useFilterableState.js.map +1 -1
- package/esm/plugins/grouping-by/GroupingByPlugin.js.map +1 -1
- package/esm/plugins/grouping-grid/GroupingPlugin.js.map +1 -1
- package/esm/plugins/grouping-grid/walkStrategy.js.map +1 -1
- package/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js.map +1 -1
- package/esm/plugins/pagination/PaginationPlugin.js.map +1 -1
- package/esm/plugins/pagination/components/Pagination.js.map +1 -1
- package/esm/plugins/pagination/components/Paginator.js.map +1 -1
- package/esm/plugins/pagination/components/PerPageDropdown.js.map +1 -1
- package/esm/plugins/pagination/helper.js.map +1 -1
- package/esm/plugins/pagination/usePaginationState.js.map +1 -1
- package/esm/plugins/resizable/ResizablePlugin.js.map +1 -1
- package/esm/plugins/resizable/decorateResizable.js.map +1 -1
- package/esm/plugins/resizable/useResizeHandle.js.map +1 -1
- package/esm/plugins/resizable/utils.js.map +1 -1
- package/esm/plugins/row-dnd/DndRowsPlugin.js.map +1 -1
- package/esm/plugins/selectable/SelectablePlugin.js.map +1 -1
- package/esm/plugins/selectable/addSelectableColumn.js.map +1 -1
- package/esm/plugins/selectable/helper.js.map +1 -1
- package/esm/plugins/selectable/selectableFormatter.js.map +1 -1
- package/esm/plugins/selectable/useSelectableState.js.map +1 -1
- package/esm/plugins/sortable/SortablePlugin.js.map +1 -1
- package/esm/plugins/sortable/checkIfSortable.js.map +1 -1
- package/esm/plugins/sortable/sortHeaderFormatter.js.map +1 -1
- package/esm/plugins/sortable/sortTree.js.map +1 -1
- package/esm/plugins/sortable/sorter.js.map +1 -1
- package/esm/plugins/sortable/useSortableState.js.map +1 -1
- package/esm/plugins/toolbar/RowRenderer.js.map +1 -1
- package/esm/plugins/toolbar/ToolbarPlugin.js.map +1 -1
- package/esm/plugins/toolbar/ToolbarTrigger.js.map +1 -1
- package/esm/plugins/virtualization/AutoHeightList.js.map +1 -1
- package/esm/plugins/virtualization/VirtualizationPlugin.js.map +1 -1
- package/esm/plugins/virtualization/VirtualizedBody.js.map +1 -1
- package/esm/plugins/virtualization/VirtualizedBodyRow.js.map +1 -1
- package/esm/renders/CellWithAddons.js.map +1 -1
- package/esm/renders/styled.js.map +1 -1
- package/esm/rowSizes.js.map +1 -1
- package/esm/utilities/getPluginsFromProps.js.map +1 -1
- package/esm/utilities/getScrollbarSize.js.map +1 -1
- package/esm/utilities/normalizeData.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sources":["../../../../src/plugins/pagination/helper.tsx"],"sourcesContent":["export const parsePerPageNumber = (number, max, min = 1) => {\n if (number > max) return max;\n if (number < min) return min;\n return number;\n};\n\nexport default function paginate(\n rows,\n { page, perPage = 1, amountOfPages: amount, totalRows },\n) {\n // return if pagination state is controlled\n if (amount && totalRows) {\n return {\n amount,\n rows,\n page,\n };\n }\n // adapt to zero indexed logic\n const p = page - 1 || 0;\n\n const amountOfPages = perPage\n ? Math.ceil(rows.length / (perPage > 0 ? perPage : 1))\n : 1;\n const startPage = p < amountOfPages ? p : 0;\n\n return {\n amount: amountOfPages,\n rows: perPage\n ? rows.slice(startPage * perPage, startPage * perPage + perPage)\n : rows,\n allRows: rows,\n page: startPage,\n };\n}\n"],"names":["parsePerPageNumber","number","max","min","paginate","rows","page","perPage","amount","amountOfPages","totalRows","p","Math","ceil","length","startPage","slice","allRows"],"mappings":"IAAaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,MAAD,EAASC,GAAT,EAA0B;
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../../src/plugins/pagination/helper.tsx"],"sourcesContent":["export const parsePerPageNumber = (number, max, min = 1) => {\n if (number > max) return max;\n if (number < min) return min;\n return number;\n};\n\nexport default function paginate(\n rows,\n { page, perPage = 1, amountOfPages: amount, totalRows },\n) {\n // return if pagination state is controlled\n if (amount && totalRows) {\n return {\n amount,\n rows,\n page,\n };\n }\n // adapt to zero indexed logic\n const p = page - 1 || 0;\n\n const amountOfPages = perPage\n ? Math.ceil(rows.length / (perPage > 0 ? perPage : 1))\n : 1;\n const startPage = p < amountOfPages ? p : 0;\n\n return {\n amount: amountOfPages,\n rows: perPage\n ? rows.slice(startPage * perPage, startPage * perPage + perPage)\n : rows,\n allRows: rows,\n page: startPage,\n };\n}\n"],"names":["parsePerPageNumber","number","max","min","paginate","rows","page","perPage","amount","amountOfPages","totalRows","p","Math","ceil","length","startPage","slice","allRows"],"mappings":"IAAaA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,MAAD,EAASC,GAAT,EAA0B;EAAA,IAAZC,GAAY,uEAAN,CAAM;EAC1D,IAAIF,MAAM,GAAGC,GAAb,EAAkB,OAAOA,GAAP;EAClB,IAAID,MAAM,GAAGE,GAAb,EAAkB,OAAOA,GAAP;EAClB,OAAOF,MAAP;AACD;AAEc,SAASG,QAAT,CACbC,IADa,QAGb;EAAA,IADEC,IACF,QADEA,IACF;0BADQC,OACR;MADQA,OACR,6BADkB,CAClB;MADoCC,MACpC,QADqBC,aACrB;MAD4CC,SAC5C,QAD4CA,SAC5C;;;EAEA,IAAIF,MAAM,IAAIE,SAAd,EAAyB;IACvB,OAAO;MACLF,MAAM,EAANA,MADK;MAELH,IAAI,EAAJA,IAFK;MAGLC,IAAI,EAAJA;KAHF;GAHF;;;EAUA,IAAMK,CAAC,GAAGL,IAAI,GAAG,CAAP,IAAY,CAAtB;EAEA,IAAMG,aAAa,GAAGF,OAAO,GACzBK,IAAI,CAACC,IAAL,CAAUR,IAAI,CAACS,MAAL,IAAeP,OAAO,GAAG,CAAV,GAAcA,OAAd,GAAwB,CAAvC,CAAV,CADyB,GAEzB,CAFJ;EAGA,IAAMQ,SAAS,GAAGJ,CAAC,GAAGF,aAAJ,GAAoBE,CAApB,GAAwB,CAA1C;EAEA,OAAO;IACLH,MAAM,EAAEC,aADH;IAELJ,IAAI,EAAEE,OAAO,GACTF,IAAI,CAACW,KAAL,CAAWD,SAAS,GAAGR,OAAvB,EAAgCQ,SAAS,GAAGR,OAAZ,GAAsBA,OAAtD,CADS,GAETF,IAJC;IAKLY,OAAO,EAAEZ,IALJ;IAMLC,IAAI,EAAES;GANR;AAQD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaginationState.js","sources":["../../../../src/plugins/pagination/usePaginationState.tsx"],"sourcesContent":["import { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { parsePerPageNumber } from './helper';\n\nexport function usePaginationState(grid) {\n const {\n minPerPage = 0,\n maxPerPage = 50,\n onPerPageChange = () => null,\n onPageChange = () => null,\n pagination: paginationProp = {\n page: 1,\n perPage: 10,\n },\n groupedRows,\n } = grid.props;\n const { composedRows, rows } = grid.getInstance();\n const [pagination, setPagination] = useDerivedStateFromProps(paginationProp);\n\n const onPerPage = perPageNumber => {\n const parsedPerPageNumber = parsePerPageNumber(\n perPageNumber,\n maxPerPage,\n minPerPage,\n );\n const actualNumber = parsedPerPageNumber\n ? parseInt(parsedPerPageNumber, 10)\n : 0;\n\n setPagination(prevPagination => {\n onPerPageChange(actualNumber);\n return {\n page: prevPagination.page,\n perPage: actualNumber,\n };\n });\n };\n\n const onPageSelect = page => {\n const length = groupedRows ? composedRows.length : rows.length;\n setPagination(prevPagination => {\n const pages = Math.ceil(length / prevPagination.perPage);\n onPageChange(page);\n return {\n ...prevPagination,\n page: Math.min(Math.max(page, 1), pages),\n };\n });\n };\n\n return {\n state: {\n pagination,\n },\n actions: {\n onPerPage,\n onPageSelect,\n },\n };\n}\n"],"names":["usePaginationState","grid","props","minPerPage","maxPerPage","onPerPageChange","onPageChange","pagination","paginationProp","page","perPage","groupedRows","getInstance","composedRows","rows","useDerivedStateFromProps","setPagination","onPerPage","perPageNumber","parsedPerPageNumber","parsePerPageNumber","actualNumber","parseInt","prevPagination","onPageSelect","length","pages","Math","ceil","min","max","state","actions"],"mappings":";;;;;;;;AAGO,SAASA,kBAAT,CAA4BC,IAA5B,EAAkC;
|
|
1
|
+
{"version":3,"file":"usePaginationState.js","sources":["../../../../src/plugins/pagination/usePaginationState.tsx"],"sourcesContent":["import { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { parsePerPageNumber } from './helper';\n\nexport function usePaginationState(grid) {\n const {\n minPerPage = 0,\n maxPerPage = 50,\n onPerPageChange = () => null,\n onPageChange = () => null,\n pagination: paginationProp = {\n page: 1,\n perPage: 10,\n },\n groupedRows,\n } = grid.props;\n const { composedRows, rows } = grid.getInstance();\n const [pagination, setPagination] = useDerivedStateFromProps(paginationProp);\n\n const onPerPage = perPageNumber => {\n const parsedPerPageNumber = parsePerPageNumber(\n perPageNumber,\n maxPerPage,\n minPerPage,\n );\n const actualNumber = parsedPerPageNumber\n ? parseInt(parsedPerPageNumber, 10)\n : 0;\n\n setPagination(prevPagination => {\n onPerPageChange(actualNumber);\n return {\n page: prevPagination.page,\n perPage: actualNumber,\n };\n });\n };\n\n const onPageSelect = page => {\n const length = groupedRows ? composedRows.length : rows.length;\n setPagination(prevPagination => {\n const pages = Math.ceil(length / prevPagination.perPage);\n onPageChange(page);\n return {\n ...prevPagination,\n page: Math.min(Math.max(page, 1), pages),\n };\n });\n };\n\n return {\n state: {\n pagination,\n },\n actions: {\n onPerPage,\n onPageSelect,\n },\n };\n}\n"],"names":["usePaginationState","grid","props","minPerPage","maxPerPage","onPerPageChange","onPageChange","pagination","paginationProp","page","perPage","groupedRows","getInstance","composedRows","rows","useDerivedStateFromProps","setPagination","onPerPage","perPageNumber","parsedPerPageNumber","parsePerPageNumber","actualNumber","parseInt","prevPagination","onPageSelect","length","pages","Math","ceil","min","max","state","actions"],"mappings":";;;;;;;;AAGO,SAASA,kBAAT,CAA4BC,IAA5B,EAAkC;EACvC,kBAUIA,IAAI,CAACC,KAVT;0CACEC,UADF;MACEA,UADF,sCACe,CADf;0CAEEC,UAFF;MAEEA,UAFF,sCAEe,EAFf;0CAGEC,eAHF;MAGEA,eAHF,sCAGoB;IAAA,OAAM,IAAN;GAHpB;0CAIEC,YAJF;MAIEA,YAJF,sCAIiB;IAAA,OAAM,IAAN;GAJjB;0CAKEC,UALF;MAKcC,cALd,sCAK+B;IAC3BC,IAAI,EAAE,CADqB;IAE3BC,OAAO,EAAE;GAPb;MASEC,WATF,eASEA,WATF;;EAWA,wBAA+BV,IAAI,CAACW,WAAL,EAA/B;MAAQC,YAAR,qBAAQA,YAAR;MAAsBC,IAAtB,qBAAsBA,IAAtB;;EACA,4BAAoCC,wBAAwB,CAACP,cAAD,CAA5D;;MAAOD,UAAP;MAAmBS,aAAnB;;EAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,aAAa,EAAI;IACjC,IAAMC,mBAAmB,GAAGC,kBAAkB,CAC5CF,aAD4C,EAE5Cd,UAF4C,EAG5CD,UAH4C,CAA9C;IAKA,IAAMkB,YAAY,GAAGF,mBAAmB,GACpCG,QAAQ,CAACH,mBAAD,EAAsB,EAAtB,CAD4B,GAEpC,CAFJ;IAIAH,aAAa,CAAC,UAAAO,cAAc,EAAI;MAC9BlB,eAAe,CAACgB,YAAD,CAAf;MACA,OAAO;QACLZ,IAAI,EAAEc,cAAc,CAACd,IADhB;QAELC,OAAO,EAAEW;OAFX;KAFW,CAAb;GAVF;;EAmBA,IAAMG,YAAY,GAAG,SAAfA,YAAe,CAAAf,IAAI,EAAI;IAC3B,IAAMgB,MAAM,GAAGd,WAAW,GAAGE,YAAY,CAACY,MAAhB,GAAyBX,IAAI,CAACW,MAAxD;IACAT,aAAa,CAAC,UAAAO,cAAc,EAAI;MAC9B,IAAMG,KAAK,GAAGC,IAAI,CAACC,IAAL,CAAUH,MAAM,GAAGF,cAAc,CAACb,OAAlC,CAAd;MACAJ,YAAY,CAACG,IAAD,CAAZ;MACA,uCACKc,cADL;QAEEd,IAAI,EAAEkB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACG,GAAL,CAASrB,IAAT,EAAe,CAAf,CAAT,EAA4BiB,KAA5B;;KALG,CAAb;GAFF;;EAYA,OAAO;IACLK,KAAK,EAAE;MACLxB,UAAU,EAAVA;KAFG;IAILyB,OAAO,EAAE;MACPf,SAAS,EAATA,SADO;MAEPO,YAAY,EAAZA;;GANJ;AASD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizablePlugin.js","sources":["../../../../src/plugins/resizable/ResizablePlugin.tsx"],"sourcesContent":["/* 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(\n (col) => col.property === column.property,\n );\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(\n (p, n) => grid.resizedColumns.current[n] + p,\n 0,\n );\n const lastKey = grid.decoratedColumns[grid.columns.length - 1].uuid;\n if (sum < total) {\n const lastCol = grid.getInstance().columnSizeService.columns[\n lastKey\n ];\n lastCol.updateWidth(\n grid.resizedColumns.current[lastKey] + total - sum,\n );\n lastCol.updateBodyHeaderWidth(\n grid.resizedColumns.current[lastKey] + total - sum,\n );\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:\n (column.minWidth || minColumnWidth) - (isLast ? DELTA_LAST_COLUMN : 0),\n isLast,\n }),\n );\n};\n\nexport const ResizablePlugin = createInstancePlugin('resizable', {\n decorateColumn,\n});\n"],"names":["noop","DELTA_LAST_COLUMN","decorateColumn","column","grid","index","props","onResizeEnd","onResizeStart","minColumnWidth","isColumnResizeActive","col","resizable","expandableColumn","onColumnResize","getInstance","decoratedColumns","colIndex","findIndex","property","isLast","length","addResizableToColumn","resizableFormatter","onDragStart","isDragging","current","disableEvents","onDrag","width","increasing","resizedColumns","refs","thisCol","uuid","Math","max","updateBodyHeaderWidth","updateRowWidth","header","scrollLeft","body","onDragEnd","extraData","enableEvents","total","scrollWidth","sum","Object","keys","reduce","p","n","lastKey","columns","lastCol","columnSizeService","updateWidth","updateMissingWidths","error","console","runAll","minWidth","ResizablePlugin","createInstancePlugin"],"mappings":";;;;;;;;AAAA;;AAMA,IAAMA,IAAI,GAAG,SAAPA,IAAO;
|
|
1
|
+
{"version":3,"file":"ResizablePlugin.js","sources":["../../../../src/plugins/resizable/ResizablePlugin.tsx"],"sourcesContent":["/* 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(\n (col) => col.property === column.property,\n );\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(\n (p, n) => grid.resizedColumns.current[n] + p,\n 0,\n );\n const lastKey = grid.decoratedColumns[grid.columns.length - 1].uuid;\n if (sum < total) {\n const lastCol = grid.getInstance().columnSizeService.columns[\n lastKey\n ];\n lastCol.updateWidth(\n grid.resizedColumns.current[lastKey] + total - sum,\n );\n lastCol.updateBodyHeaderWidth(\n grid.resizedColumns.current[lastKey] + total - sum,\n );\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:\n (column.minWidth || minColumnWidth) - (isLast ? DELTA_LAST_COLUMN : 0),\n isLast,\n }),\n );\n};\n\nexport const ResizablePlugin = createInstancePlugin('resizable', {\n decorateColumn,\n});\n"],"names":["noop","DELTA_LAST_COLUMN","decorateColumn","column","grid","index","props","onResizeEnd","onResizeStart","minColumnWidth","isColumnResizeActive","col","resizable","expandableColumn","onColumnResize","getInstance","decoratedColumns","colIndex","findIndex","property","isLast","length","addResizableToColumn","resizableFormatter","onDragStart","isDragging","current","disableEvents","onDrag","width","increasing","resizedColumns","refs","thisCol","uuid","Math","max","updateBodyHeaderWidth","updateRowWidth","header","scrollLeft","body","onDragEnd","extraData","enableEvents","total","scrollWidth","sum","Object","keys","reduce","p","n","lastKey","columns","lastCol","columnSizeService","updateWidth","updateMissingWidths","error","console","runAll","minWidth","ResizablePlugin","createInstancePlugin"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorateResizable.js","sources":["../../../../src/plugins/resizable/decorateResizable.tsx"],"sourcesContent":["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"],"names":["addResizableToColumn","column","formatter","appendHeaderFormatter","ResizableWrapper","React","memo","value","onDrag","onDragEnd","onDragStart","minWidth","handleClassName","useResizeHandle","containerRef","Handle","resizableFormatter","options"],"mappings":";;;;;IAIMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,MAAD,EAASC,SAAT;
|
|
1
|
+
{"version":3,"file":"decorateResizable.js","sources":["../../../../src/plugins/resizable/decorateResizable.tsx"],"sourcesContent":["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"],"names":["addResizableToColumn","column","formatter","appendHeaderFormatter","ResizableWrapper","React","memo","value","onDrag","onDragEnd","onDragStart","minWidth","handleClassName","useResizeHandle","containerRef","Handle","resizableFormatter","options"],"mappings":";;;;;IAIMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,MAAD,EAASC,SAAT;EAAA,OAC3BC,qBAAqB,CAACD,SAAD,EAAYD,MAAZ,CADM;AAAA;;AAG7B,IAAMG,gBAAgB,gBAAGC,KAAK,CAACC,IAAN,CACvB,gBAA0E;EAAA,IAAvEC,KAAuE,QAAvEA,KAAuE;MAAhEC,MAAgE,QAAhEA,MAAgE;MAAxDC,SAAwD,QAAxDA,SAAwD;MAA7CC,WAA6C,QAA7CA,WAA6C;MAAhCC,QAAgC,QAAhCA,QAAgC;MAAtBC,eAAsB,QAAtBA,eAAsB;;EACxE,uBAAiCC,eAAe,CAAC;IAC/CL,MAAM,EAANA,MAD+C;IAE/CC,SAAS,EAATA,SAF+C;IAG/CC,WAAW,EAAXA,WAH+C;IAI/CC,QAAQ,EAARA,QAJ+C;IAK/CC,eAAe,EAAfA;GAL8C,CAAhD;MAAQE,YAAR,oBAAQA,YAAR;MAAsBC,MAAtB,oBAAsBA,MAAtB;;EAOA,oBACE;IAAK,GAAG,EAAED,YAAV;IAAwB,SAAS,EAAC;KAC/BP,KADH,eAEE,oBAAC,MAAD,OAFF,CADF;AAMD,CAfsB,CAAzB;;IAmBMS,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,OAAO;EAAA,OAAI,UAAAV,KAAK;IAAA,oBACzC,oBAAC,gBAAD,eAAsBU,OAAtB;MAA+B,KAAK,EAAEV;OADG;GAAT;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizeHandle.js","sources":["../../../../src/plugins/resizable/useResizeHandle.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\n\nexport const useResizeHandle = ({\n onDragStart,\n onDrag,\n onDragEnd,\n minWidth = 10,\n isLast = false,\n}) => {\n const startX = useRef();\n const startWidth = useRef();\n const containerRef = useRef();\n\n const triggerMove = (handler, event) => {\n const increasing = startX.current - event.clientX < 0;\n handler(\n Math.max(startWidth.current - startX.current + event.clientX, minWidth),\n increasing,\n {},\n );\n };\n\n const onMouseMove = event => {\n event.stopPropagation();\n event.preventDefault();\n\n triggerMove(onDrag, event);\n };\n\n const onMouseUp = event => {\n event.stopPropagation();\n event.preventDefault();\n\n triggerMove(onDragEnd, event);\n\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n const onMouseDown = event => {\n event.stopPropagation();\n event.preventDefault();\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n startX.current = event.clientX;\n startWidth.current = containerRef.current.offsetWidth;\n\n triggerMove(onDragStart, event);\n };\n\n const HandleComponent = ({ className = 'resize-handle' }) => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div className={className} onMouseDown={onMouseDown} />\n );\n\n return {\n containerRef,\n Handle: HandleComponent,\n };\n};\n"],"names":["useResizeHandle","onDragStart","onDrag","onDragEnd","minWidth","isLast","startX","useRef","startWidth","containerRef","triggerMove","handler","event","increasing","current","clientX","Math","max","onMouseMove","stopPropagation","preventDefault","onMouseUp","document","removeEventListener","onMouseDown","addEventListener","offsetWidth","HandleComponent","className","Handle"],"mappings":";;IAEaA,eAAe,GAAG,SAAlBA,eAAkB,OAMzB;
|
|
1
|
+
{"version":3,"file":"useResizeHandle.js","sources":["../../../../src/plugins/resizable/useResizeHandle.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\n\nexport const useResizeHandle = ({\n onDragStart,\n onDrag,\n onDragEnd,\n minWidth = 10,\n isLast = false,\n}) => {\n const startX = useRef();\n const startWidth = useRef();\n const containerRef = useRef();\n\n const triggerMove = (handler, event) => {\n const increasing = startX.current - event.clientX < 0;\n handler(\n Math.max(startWidth.current - startX.current + event.clientX, minWidth),\n increasing,\n {},\n );\n };\n\n const onMouseMove = event => {\n event.stopPropagation();\n event.preventDefault();\n\n triggerMove(onDrag, event);\n };\n\n const onMouseUp = event => {\n event.stopPropagation();\n event.preventDefault();\n\n triggerMove(onDragEnd, event);\n\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n const onMouseDown = event => {\n event.stopPropagation();\n event.preventDefault();\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n startX.current = event.clientX;\n startWidth.current = containerRef.current.offsetWidth;\n\n triggerMove(onDragStart, event);\n };\n\n const HandleComponent = ({ className = 'resize-handle' }) => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div className={className} onMouseDown={onMouseDown} />\n );\n\n return {\n containerRef,\n Handle: HandleComponent,\n };\n};\n"],"names":["useResizeHandle","onDragStart","onDrag","onDragEnd","minWidth","isLast","startX","useRef","startWidth","containerRef","triggerMove","handler","event","increasing","current","clientX","Math","max","onMouseMove","stopPropagation","preventDefault","onMouseUp","document","removeEventListener","onMouseDown","addEventListener","offsetWidth","HandleComponent","className","Handle"],"mappings":";;IAEaA,eAAe,GAAG,SAAlBA,eAAkB,OAMzB;MALJC,WAKI,QALJA,WAKI;MAJJC,MAII,QAJJA,MAII;MAHJC,SAGI,QAHJA,SAGI;2BAFJC,QAEI;MAFJA,QAEI,8BAFO,EAEP;WADJC,MACI;EACJ,IAAMC,MAAM,GAAGC,MAAM,EAArB;EACA,IAAMC,UAAU,GAAGD,MAAM,EAAzB;EACA,IAAME,YAAY,GAAGF,MAAM,EAA3B;;EAEA,IAAMG,WAAW,GAAG,SAAdA,WAAc,CAACC,OAAD,EAAUC,KAAV,EAAoB;IACtC,IAAMC,UAAU,GAAGP,MAAM,CAACQ,OAAP,GAAiBF,KAAK,CAACG,OAAvB,GAAiC,CAApD;IACAJ,OAAO,CACLK,IAAI,CAACC,GAAL,CAAST,UAAU,CAACM,OAAX,GAAqBR,MAAM,CAACQ,OAA5B,GAAsCF,KAAK,CAACG,OAArD,EAA8DX,QAA9D,CADK,EAELS,UAFK,EAGL,EAHK,CAAP;GAFF;;EASA,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAAAN,KAAK,EAAI;IAC3BA,KAAK,CAACO,eAAN;IACAP,KAAK,CAACQ,cAAN;IAEAV,WAAW,CAACR,MAAD,EAASU,KAAT,CAAX;GAJF;;EAOA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAAT,KAAK,EAAI;IACzBA,KAAK,CAACO,eAAN;IACAP,KAAK,CAACQ,cAAN;IAEAV,WAAW,CAACP,SAAD,EAAYS,KAAZ,CAAX;IAEAU,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CL,WAA1C;IACAI,QAAQ,CAACC,mBAAT,CAA6B,SAA7B,EAAwCF,SAAxC;GAPF;;EAUA,IAAMG,WAAW,GAAG,SAAdA,WAAc,CAAAZ,KAAK,EAAI;IAC3BA,KAAK,CAACO,eAAN;IACAP,KAAK,CAACQ,cAAN;IAEAE,QAAQ,CAACG,gBAAT,CAA0B,WAA1B,EAAuCP,WAAvC;IACAI,QAAQ,CAACG,gBAAT,CAA0B,SAA1B,EAAqCJ,SAArC;IAEAf,MAAM,CAACQ,OAAP,GAAiBF,KAAK,CAACG,OAAvB;IACAP,UAAU,CAACM,OAAX,GAAqBL,YAAY,CAACK,OAAb,CAAqBY,WAA1C;IAEAhB,WAAW,CAACT,WAAD,EAAcW,KAAd,CAAX;GAVF;;EAaA,IAAMe,eAAe,GAAG,SAAlBA,eAAkB;IAAA,4BAAGC,SAAH;QAAGA,SAAH,gCAAe,eAAf;IAAA;;;MAEtB;QAAK,SAAS,EAAEA,SAAhB;QAA2B,WAAW,EAAEJ;;;GAF1C;;EAKA,OAAO;IACLf,YAAY,EAAZA,YADK;IAELoB,MAAM,EAAEF;GAFV;AAID;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/plugins/resizable/utils.tsx"],"sourcesContent":["import { parseInt } from '@elliemae/ds-utilities';\nimport memoizeOne from 'memoize-one';\n\nexport const isPercentNumber = stringNumber =>\n typeof stringNumber === 'string' && stringNumber.indexOf('%') !== -1;\nexport const isPxNumber = stringNumber =>\n typeof stringNumber === 'string' && stringNumber.indexOf('px') !== -1;\n\nexport const translatePercentageToPx = memoizeOne(\n (totalWidth, percentage, minWidth = 0) => {\n const parsedPercentatge = parseInt(percentage.replace('%', ''));\n const width = (totalWidth * parsedPercentatge) / 100;\n return width > minWidth ? width : minWidth;\n },\n);\n\nconst translateStringPxToNumberPx = memoizeOne(pxNumber =>\n parseInt(pxNumber.replace('%', '')),\n);\nconst translatePxToPercentage = memoizeOne(\n (totalWidth, pxWidth) => `${(pxWidth / totalWidth) * 100}%`,\n);\n\nconst getWidth = memoizeOne((gridWidth, width = 0, minWidth) => {\n if (isPercentNumber(width))\n return translatePercentageToPx(gridWidth, width, minWidth);\n if (isPxNumber(width)) return translateStringPxToNumberPx(width);\n return width;\n});\n"],"names":["isPercentNumber","stringNumber","indexOf","isPxNumber","translatePercentageToPx","memoizeOne","totalWidth","percentage","minWidth","parsedPercentatge","parseInt","replace","width","translateStringPxToNumberPx","pxNumber","pxWidth","gridWidth"],"mappings":";;;IAGaA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/plugins/resizable/utils.tsx"],"sourcesContent":["import { parseInt } from '@elliemae/ds-utilities';\nimport memoizeOne from 'memoize-one';\n\nexport const isPercentNumber = stringNumber =>\n typeof stringNumber === 'string' && stringNumber.indexOf('%') !== -1;\nexport const isPxNumber = stringNumber =>\n typeof stringNumber === 'string' && stringNumber.indexOf('px') !== -1;\n\nexport const translatePercentageToPx = memoizeOne(\n (totalWidth, percentage, minWidth = 0) => {\n const parsedPercentatge = parseInt(percentage.replace('%', ''));\n const width = (totalWidth * parsedPercentatge) / 100;\n return width > minWidth ? width : minWidth;\n },\n);\n\nconst translateStringPxToNumberPx = memoizeOne(pxNumber =>\n parseInt(pxNumber.replace('%', '')),\n);\nconst translatePxToPercentage = memoizeOne(\n (totalWidth, pxWidth) => `${(pxWidth / totalWidth) * 100}%`,\n);\n\nconst getWidth = memoizeOne((gridWidth, width = 0, minWidth) => {\n if (isPercentNumber(width))\n return translatePercentageToPx(gridWidth, width, minWidth);\n if (isPxNumber(width)) return translateStringPxToNumberPx(width);\n return width;\n});\n"],"names":["isPercentNumber","stringNumber","indexOf","isPxNumber","translatePercentageToPx","memoizeOne","totalWidth","percentage","minWidth","parsedPercentatge","parseInt","replace","width","translateStringPxToNumberPx","pxNumber","pxWidth","gridWidth"],"mappings":";;;IAGaA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,YAAY;EAAA,OACzC,OAAOA,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAACC,OAAb,CAAqB,GAArB,MAA8B,CAAC,CAD1B;AAAA;IAE9BC,UAAU,GAAG,SAAbA,UAAa,CAAAF,YAAY;EAAA,OACpC,OAAOA,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAACC,OAAb,CAAqB,IAArB,MAA+B,CAAC,CADhC;AAAA;IAGzBE,uBAAuB,GAAGC,UAAU,CAC/C,UAACC,UAAD,EAAaC,UAAb,EAA0C;EAAA,IAAjBC,QAAiB,uEAAN,CAAM;EACxC,IAAMC,iBAAiB,GAAGC,QAAQ,CAACH,UAAU,CAACI,OAAX,CAAmB,GAAnB,EAAwB,EAAxB,CAAD,CAAlC;EACA,IAAMC,KAAK,GAAIN,UAAU,GAAGG,iBAAd,GAAmC,GAAjD;EACA,OAAOG,KAAK,GAAGJ,QAAR,GAAmBI,KAAnB,GAA2BJ,QAAlC;AACD,CAL8C;AAQjD,IAAMK,2BAA2B,GAAGR,UAAU,CAAC,UAAAS,QAAQ;EAAA,OACrDJ,QAAQ,CAACI,QAAQ,CAACH,OAAT,CAAiB,GAAjB,EAAsB,EAAtB,CAAD,CAD6C;AAAA,CAAT,CAA9C;AAGgCN,UAAU,CACxC,UAACC,UAAD,EAAaS,OAAb;EAAA,iBAA6BA,OAAO,GAAGT,UAAX,GAAyB,GAArD;AAAA,CADwC;AAIzBD,UAAU,CAAC,UAACW,SAAD,EAAoC;EAAA,IAAxBJ,KAAwB,uEAAhB,CAAgB;EAAA,IAAbJ,QAAa;EAC9D,IAAIR,eAAe,CAACY,KAAD,CAAnB,EACE,OAAOR,uBAAuB,CAACY,SAAD,EAAYJ,KAAZ,EAAmBJ,QAAnB,CAA9B;EACF,IAAIL,UAAU,CAACS,KAAD,CAAd,EAAuB,OAAOC,2BAA2B,CAACD,KAAD,CAAlC;EACvB,OAAOA,KAAP;AACD,CAL0B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndRowsPlugin.js","sources":["../../../../src/plugins/row-dnd/DndRowsPlugin.tsx"],"sourcesContent":["/* 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"],"names":["keysToOmit","DragHandle","SortableHandle","translateDnDData","oldIndex","newIndex","index","sourceIndex","targetIndex","fromIndex","undefined","decorateColumns","columns","dragColumn","property","label","visible","width","minWidth","special","appendCellFormatter","getBodyProps","props","grid","onMoveRowEnd","onReorder","onMoveRowStart","onSortEnd","data","enableEvents","setIsRowDragging","onSortStart","disableEvents","onSortOver","lockAxis","useDragHandle","helperClass","getContainer","Promise","resolve","setTimeout","refs","innerBody","current","body","decorateRenderers","renderers","RowComponent","row","BodyWrapperComponent","wrapper","Row","useMemo","SortableElement","BodyWrapper","SortableContainer","omit","DndRowsPlugin","createInstancePlugin"],"mappings":";;;;;;;;;;;;;AAUA,IAAMA,UAAU,GAAG,CACjB,MADiB,EAEjB,eAFiB,EAGjB,mBAHiB,EAIjB,UAJiB,EAKjB,cALiB,EAMjB,qBANiB,EAOjB,aAPiB,EAQjB,iBARiB,EASjB,mBATiB,EAUjB,mCAViB,EAWjB,UAXiB,EAYjB,YAZiB,EAajB,sBAbiB,EAcjB,WAdiB,EAejB,YAfiB,EAgBjB,YAhBiB,EAiBjB,aAjBiB,EAkBjB,YAlBiB,EAmBjB,gBAnBiB,EAoBjB,mBApBiB,EAqBjB,oBArBiB,EAsBjB,uBAtBiB,EAuBjB,eAvBiB,EAwBjB,4BAxBiB,CAAnB;AA2BA,IAAMC,UAAU,GAAGC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"DndRowsPlugin.js","sources":["../../../../src/plugins/row-dnd/DndRowsPlugin.tsx"],"sourcesContent":["/* 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"],"names":["keysToOmit","DragHandle","SortableHandle","translateDnDData","oldIndex","newIndex","index","sourceIndex","targetIndex","fromIndex","undefined","decorateColumns","columns","dragColumn","property","label","visible","width","minWidth","special","appendCellFormatter","getBodyProps","props","grid","onMoveRowEnd","onReorder","onMoveRowStart","onSortEnd","data","enableEvents","setIsRowDragging","onSortStart","disableEvents","onSortOver","lockAxis","useDragHandle","helperClass","getContainer","Promise","resolve","setTimeout","refs","innerBody","current","body","decorateRenderers","renderers","RowComponent","row","BodyWrapperComponent","wrapper","Row","useMemo","SortableElement","BodyWrapper","SortableContainer","omit","DndRowsPlugin","createInstancePlugin"],"mappings":";;;;;;;;;;;;;AAUA,IAAMA,UAAU,GAAG,CACjB,MADiB,EAEjB,eAFiB,EAGjB,mBAHiB,EAIjB,UAJiB,EAKjB,cALiB,EAMjB,qBANiB,EAOjB,aAPiB,EAQjB,iBARiB,EASjB,mBATiB,EAUjB,mCAViB,EAWjB,UAXiB,EAYjB,YAZiB,EAajB,sBAbiB,EAcjB,WAdiB,EAejB,YAfiB,EAgBjB,YAhBiB,EAiBjB,aAjBiB,EAkBjB,YAlBiB,EAmBjB,gBAnBiB,EAoBjB,mBApBiB,EAqBjB,oBArBiB,EAsBjB,uBAtBiB,EAuBjB,eAvBiB,EAwBjB,4BAxBiB,CAAnB;AA2BA,IAAMC,UAAU,GAAGC,cAAc,CAAC;EAAA,oBAAM,oBAAC,eAAD;IAAiB,SAAS,EAAC;IAAjC;AAAA,CAAD,CAAjC;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;EAAA,IAAGC,QAAH,QAAGA,QAAH;MAAaC,QAAb,QAAaA,QAAb;MAAuBC,KAAvB,QAAuBA,KAAvB;EAAA,OAAoC;IAC3DC,WAAW,EAAEH,QAD8C;IAE3DI,WAAW,EAAEH,QAF8C;IAG3DI,SAAS,EAAEH,KAAK,KAAKI,SAAV,GAAsBN,QAAtB,GAAiCE;GAHrB;AAAA,CAAzB;;AAMA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD,EAAa;EACnC,IAAMC,UAAU,GAAG;IACjBC,QAAQ,EAAE,MADO;IAEjBC,KAAK,EAAE,EAFU;IAGjBC,OAAO,EAAE,IAHQ;IAIjBC,KAAK,EAAE,EAJU;IAKjBC,QAAQ,EAAE,EALO;IAMjBC,OAAO,EAAE;GANX;EAQA,QACEC,mBAAmB,CACjB;IAAA,oBACE,uDACE,oBAAC,UAAD,OADF,CADF;GADiB,EAMjBP,UANiB,CADrB,4BASKD,OATL;AAWD,CApBD;;AAsBA,IAAMS,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQC,IAAR,EAAiB;EACpC,kBAAoDA,IAAI,CAACD,KAAzD;MAAQE,YAAR,eAAQA,YAAR;MAAsBC,SAAtB,eAAsBA,SAAtB;MAAiCC,cAAjC,eAAiCA,cAAjC;EACA,uCACKJ,KADL;IAEEK,SAAS,EAAE,mBAACC,IAAD,EAAU;MACnBL,IAAI,CAACM,YAAL;MACAN,IAAI,CAACO,gBAAL,CAAsB,KAAtB;MACAN,YAAY,CAACrB,gBAAgB,CAACyB,IAAD,CAAjB,CAAZ;KALJ;IAOEG,WAAW,EAAE,uBAAa;MACxBR,IAAI,CAACS,aAAL;MACAT,IAAI,CAACO,gBAAL,CAAsB,IAAtB;MACAJ,cAAc,MAAd;KAVJ;IAYEO,UAAU,EAAE,oBAACL,IAAD,EAAU;MACpBH,SAAS,CAACtB,gBAAgB,CAACyB,IAAD,CAAjB,CAAT;KAbJ;IAeEM,QAAQ,EAAE,GAfZ;IAgBEC,aAAa,EAAE,IAhBjB;IAiBEC,WAAW,EAAE,iBAjBf;;IAmBEC,YAAY,EAAE;MAAA,OACZ,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;QACvBC,UAAU,CAAC,YAAM;UACfD,OAAO,CAAChB,IAAI,CAACkB,IAAL,CAAUC,SAAV,CAAoBC,OAApB,IAA+BpB,IAAI,CAACkB,IAAL,CAAUG,IAAV,CAAeD,OAA/C,CAAP;SADQ,EAEP,GAFO,CAAV;OADF,CADY;;;AAOjB,CA5BD;;AA8BA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,SAAD,EAAe;EACvC,IAAMC,YAAY,GAAGD,SAAS,CAACF,IAAV,CAAeI,GAApC;EACA,IAAMC,oBAAoB,GAAGH,SAAS,CAACF,IAAV,CAAeM,OAA5C;EAEA,IAAMC,GAAG,GAAGC,OAAO,CAAC;IAAA,OAAMC,eAAe,CAACN,YAAD,CAArB;GAAD,EAAsC,EAAtC,CAAnB;EAEA,IAAMO,WAAW,GAAGF,OAAO,CACzB;IAAA,OAAMG,iBAAiB,CAAC,UAACjC,KAAD;MAAA,oBAAW,oBAAC,oBAAD,EAA0BkC,IAAI,CAAClC,KAAD,EAAQtB,UAAR,CAA9B,CAAX;KAAD,CAAvB;GADyB,EAEzB,EAFyB,CAA3B;EAKA,uCACK8C,SADL;IAEEF,IAAI,kCACCE,SAAS,CAACF,IADX;MAEFM,OAAO,EAAEI,WAFP;MAGFN,GAAG,EAAEG;;;AAGV,CAnBD;;IAqBaM,aAAa,GAAGC,oBAAoB,CAAC,UAAD,EAAa;EAC5D/C,eAAe,EAAfA,eAD4D;EAE5DU,YAAY,EAAZA,YAF4D;EAG5DwB,iBAAiB,EAAjBA;AAH4D,CAAb;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectablePlugin.js","sources":["../../../../src/plugins/selectable/SelectablePlugin.tsx"],"sourcesContent":["/* 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)\n ? isRowSelected(row)\n : !!selection.selectedRows[row[rowKey]];\n\n return multiple\n ? selectMultipleRow(rows, selectionPredicate)\n : 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"],"names":["decorateColumns","columns","grid","props","selectable","multiSelectFilterLabel","multiSelectFilterOptions","multiSelectFilterLabels","multiSelectComponent","actions","handleSelectAll","selectAll","handleSelectRow","selectRow","selection","state","createSelectionColumn","selectionColumnCreator","multiple","onSelectAll","onSelectRow","showSelectColumn","selectionColumnDefinition","selectionColumn","getRowProps","rowProps","rowData","getInstance","showSelectHighlight","rowKey","_index","isSelected","onClick","className","cx","composeRows","rows","isRowSelected","selectionPredicate","row","isFunction","selectedRows","selectMultipleRow","selectSingleRow","decorateGrid","useState","shiftPressed","setShiftPressed","lastSelectedRow","setLastSelectedRow","selectRowHandler","useCallback","index","useEffect","keyDownListener","event","key","target","tagName","toLowerCase","parentNode","keyUpListener","window","addEventListener","removeEventListener","SelectablePlugin","createInstancePlugin","registerStateHook","useSelectableState","registerHotKeys","handler","rowIndex","composedRows"],"mappings":";;;;;;;;;;;;;;;AAWA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD,EAAUC,IAAV,EAAmB;AACzC,oBAUIA,IAVJ,CACEC,KADF;AAAA,MAEIC,UAFJ,eAEIA,UAFJ;AAAA,MAGIC,sBAHJ,eAGIA,sBAHJ;AAAA,MAIIC,wBAJJ,eAIIA,wBAJJ;AAAA,MAKIC,uBALJ,eAKIA,uBALJ;AAAA,MAMIC,oBANJ,eAMIA,oBANJ;AAAA,sBAUIN,IAVJ,CAQEO,OARF;AAAA,MAQwBC,eARxB,iBAQaC,SARb;AAAA,MAQoDC,eARpD,iBAQyCC,SARzC;AAAA,MASWC,SATX,GAUIZ,IAVJ,CASEa,KATF,CASWD,SATX;AAYA,MAAME,qBAAqB,GAAGC,sBAAsB,CAAC;AACnDf,IAAAA,IAAI,EAAJA,IADmD;AAEnDgB,IAAAA,QAAQ,EAAEd,UAAU,KAAK,OAF0B;AAGnDO,IAAAA,SAAS,EAAEG,SAAS,CAACH,SAH8B;AAInDQ,IAAAA,WAAW,EAAET,eAJsC;AAKnDU,IAAAA,WAAW,EAAER,eALsC;AAMnDP,IAAAA,sBAAsB,EAAtBA,sBANmD;AAOnDC,IAAAA,wBAAwB,EAAxBA,wBAPmD;AAQnDC,IAAAA,uBAAuB,EAAvBA,uBARmD;AASnDC,IAAAA,oBAAoB,EAApBA;AATmD,GAAD,CAApD;AAYA,qBAAwDN,IAAI,CAACC,KAA7D;AAAA,MAAQkB,gBAAR,gBAAQA,gBAAR;AAAA,MAA0BC,yBAA1B,gBAA0BA,yBAA1B;;AAEA,MAAID,gBAAJ,EAAsB;AACpB,QAAME,eAAe,GAAGP,qBAAqB,CAACM,yBAAD,CAA7C;AACA,YAAQC,eAAR,4BAA4BtB,OAA5B;AACD;;AACD,SAAOA,OAAP;AACD,CAhCD;;AAkCA,IAAMuB,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAWvB,IAAX,QAAiC;AAAA;;AAAA,MAAdwB,OAAc,QAAdA,OAAc;;AACnD,0BAGIxB,IAAI,CAACyB,WAAL,EAHJ;AAAA,gDACExB,KADF;AAAA,MACWyB,mBADX,yBACWA,mBADX;AAAA,MACgCP,gBADhC,yBACgCA,gBADhC;AAAA,MACkDQ,MADlD,yBACkDA,MADlD;AAAA,MAEahB,SAFb,qBAEEJ,OAFF,CAEaI,SAFb;;AAKA,MAAQiB,MAAR,GAAmBJ,OAAnB,CAAQI,MAAR;AACA,MAAMC,UAAU,GAAGL,OAAO,CAAC,mBAAD,CAA1B;;AAEA,MAAI,CAACL,gBAAL,EAAuB;AACrBI,IAAAA,QAAQ,CAACO,OAAT,GAAmB;AAAA,aAAMnB,SAAS,CAACa,OAAO,CAACG,MAAD,CAAR,EAAkBC,MAAlB,CAAf;AAAA,KAAnB;AACD;;AAEDL,EAAAA,QAAQ,CAACQ,SAAT,GAAqBC,EAAE,iCACpBT,QAAQ,CAACQ,SADW,EACC,IADD,oCAEXF,UAFW,wBAGrB,kBAHqB,EAGDH,mBAAmB,IAAIG,UAHtB,QAAvB;AAMA,SAAON,QAAP;AACD,CApBD;;AAsBA,IAAMU,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAOlC,IAAP,EAAgB;AAClC,2BAGIA,IAAI,CAACyB,WAAL,EAHJ;AAAA,iDACExB,KADF;AAAA,MACWkC,aADX,yBACWA,aADX;AAAA,MAC0BnB,QAD1B,yBAC0BA,QAD1B;AAAA,MACoCW,MADpC,yBACoCA,MADpC;AAAA,MAEWf,SAFX,sBAEEC,KAFF,CAEWD,SAFX;;AAKA,MAAMwB,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,GAAD;AAAA,WACzBC,UAAU,CAACH,aAAD,CAAV,GACIA,aAAa,CAACE,GAAD,CADjB,GAEI,CAAC,CAACzB,SAAS,CAAC2B,YAAV,CAAuBF,GAAG,CAACV,MAAD,CAA1B,CAHmB;AAAA,GAA3B;;AAKA,SAAOX,QAAQ,GACXwB,iBAAiB,CAACN,IAAD,EAAOE,kBAAP,CADN,GAEXK,eAAe,CAACP,IAAD,EAAOE,kBAAP,CAFnB;AAGD,CAdD;;AAgBA,IAAMM,YAAY,GAAG,SAAfA,YAAe,CAAC1C,IAAD,EAAU;AAC7B;AACA,2BAIIA,IAAI,CAACyB,WAAL,EAJJ;AAAA,iDACExB,KADF;AAAA,MACWkC,aADX,yBACWA,aADX;AAAA,MAC0BR,MAD1B,yBAC0BA,MAD1B;AAAA,MAEahB,SAFb,sBAEEJ,OAFF,CAEaI,SAFb;AAAA,MAGWC,SAHX,sBAGEC,KAHF,CAGWD,SAHX;;AAKA,kBAAwC+B,QAAQ,CAAC,KAAD,CAAhD;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AACA,mBAA8CF,QAAQ,CAAC,IAAD,CAAtD;AAAA;AAAA,MAAOG,eAAP;AAAA,MAAwBC,kBAAxB;;AAEA,MAAMC,gBAAgB,GAAGC,WAAW,CAClC,UAACzB,OAAD,EAAU0B,KAAV;AAAA,WAAoB;AAAA,aAAMvC,SAAS,CAACa,OAAO,CAACG,MAAD,CAAR,EAAkBuB,KAAlB,EAAyBN,YAAzB,CAAf;AAAA,KAApB;AAAA,GADkC,EAElC,CAACT,aAAD,EAAgBvB,SAAhB,EAA2BgC,YAA3B,CAFkC,CAApC;AAKAO,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAW;AACjC,UACEA,KAAK,CAACC,GAAN,KAAc,OAAd,IACAD,KAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,WAArB,OAAuC,OADvC,IAEAJ,KAAK,CAACE,MAAN,CAAaG,UAAb,CAAwB3B,SAAxB,KAAsC,uBAHxC,EAIE;AACAc,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KARD;;AASA,QAAMc,aAAa,GAAG,SAAhBA,aAAgB,CAACN,KAAD,EAAW;AAC/B,UACEA,KAAK,CAACC,GAAN,KAAc,OAAd,IACAD,KAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,WAArB,OAAuC,OADvC,IAEAJ,KAAK,CAACE,MAAN,CAAaG,UAAb,CAAwB3B,SAAxB,KAAsC,uBAHxC,EAIE;AACAc,QAAAA,eAAe,CAAC,KAAD,CAAf;AACD;AACF,KARD;;AASAe,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCT,eAAnC;AACAQ,IAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCF,aAAjC;AACA,WAAO,YAAM;AACXC,MAAAA,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsCV,eAAtC;AACAQ,MAAAA,MAAM,CAACE,mBAAP,CAA2B,OAA3B,EAAoCH,aAApC;AACD,KAHD;AAID,GAzBQ,CAAT;AA2BA,SAAO;AACLf,IAAAA,YAAY,EAAZA,YADK;AAELI,IAAAA,gBAAgB,EAAhBA,gBAFK;AAGLD,IAAAA,kBAAkB,EAAlBA,kBAHK;AAILD,IAAAA,eAAe,EAAfA;AAJK,GAAP;AAMD,CAhDD;;IAkDaiB,gBAAgB,GAAGC,oBAAoB,CAAC,YAAD,EAAe;AACjEtB,EAAAA,YAAY,EAAZA,YADiE;AAEjEuB,EAAAA,iBAAiB,EAAEC,kBAF8C;AAGjEpE,EAAAA,eAAe,EAAfA,eAHiE;AAIjEwB,EAAAA,WAAW,EAAXA,WAJiE;AAKjEW,EAAAA,WAAW,EAAXA,WALiE;AAMjEkC,EAAAA,eANiE,2BAMjDnE,IANiD,EAM3C;AACpB,WAAO,CACL;AACEsD,MAAAA,GAAG,EAAE,OADP;AAEEc,MAAAA,OAAO,EAAE,wBAAkB;AAAA,YAAfC,QAAe,SAAfA,QAAe;;AACzB,iCAIIrE,IAAI,CAACyB,WAAL,EAJJ;AAAA,YACE6C,YADF,sBACEA,YADF;AAAA,YAEW3C,MAFX,sBAEE1B,KAFF,CAEW0B,MAFX;AAAA,YAGahB,SAHb,sBAGEJ,OAHF,CAGaI,SAHb;;AAKA,YAAMuB,IAAI,GAAGoC,YAAY,CAACpC,IAAb,IAAqBoC,YAAlC;AACA,YAAMjC,GAAG,GAAGH,IAAI,CAACmC,QAAD,CAAhB;AACA,YAAI,CAAChC,GAAL,EAAU;AACV1B,QAAAA,SAAS,CAAC0B,GAAG,CAACV,MAAD,CAAJ,EAAc0C,QAAd,CAAT;AACD;AAZH,KADK,EAeL;AACEf,MAAAA,GAAG,EAAE,QADP;AAEEc,MAAAA,OAAO,EAAE,mBAAM;AACb,iCAGIpE,IAAI,CAACyB,WAAL,EAHJ;AAAA,YACWb,SADX,sBACEC,KADF,CACWD,SADX;AAAA,YAEaH,SAFb,sBAEEF,OAFF,CAEaE,SAFb;;AAKAA,QAAAA,SAAS,CAAC,CAACG,SAAS,CAACH,SAAZ,CAAT;AACD;AATH,KAfK,CAAP;AA2BD;AAlCgE,CAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"SelectablePlugin.js","sources":["../../../../src/plugins/selectable/SelectablePlugin.tsx"],"sourcesContent":["/* 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)\n ? isRowSelected(row)\n : !!selection.selectedRows[row[rowKey]];\n\n return multiple\n ? selectMultipleRow(rows, selectionPredicate)\n : 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"],"names":["decorateColumns","columns","grid","props","selectable","multiSelectFilterLabel","multiSelectFilterOptions","multiSelectFilterLabels","multiSelectComponent","actions","handleSelectAll","selectAll","handleSelectRow","selectRow","selection","state","createSelectionColumn","selectionColumnCreator","multiple","onSelectAll","onSelectRow","showSelectColumn","selectionColumnDefinition","selectionColumn","getRowProps","rowProps","rowData","getInstance","showSelectHighlight","rowKey","_index","isSelected","onClick","className","cx","composeRows","rows","isRowSelected","selectionPredicate","row","isFunction","selectedRows","selectMultipleRow","selectSingleRow","decorateGrid","useState","shiftPressed","setShiftPressed","lastSelectedRow","setLastSelectedRow","selectRowHandler","useCallback","index","useEffect","keyDownListener","event","key","target","tagName","toLowerCase","parentNode","keyUpListener","window","addEventListener","removeEventListener","SelectablePlugin","createInstancePlugin","registerStateHook","useSelectableState","registerHotKeys","handler","rowIndex","composedRows"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addSelectableColumn.js","sources":["../../../../src/plugins/selectable/addSelectableColumn.tsx"],"sourcesContent":["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"],"names":["selectionColumnCreator","grid","selectAll","selectionComponent","onSelectRow","onSelectAll","multiple","multiSelectFilterLabel","multiSelectFilterOptions","multiSelectFilterLabels","multiSelectComponent","rowKey","props","visible","isDataColumn","width","minWidth","cellRenderer","headerCellRenderer","customRenderer","header","column","selectionColumn","property","filterLabel","filterOptions","filterLabels","appendCellFormatter","selectableFormatter","isMultiSelect","renderer","onSelect","appendHeaderFormatter","isHeader","className"],"mappings":";;;;;;;;;;;;;AAMO,SAASA,sBAAT,OAaJ;
|
|
1
|
+
{"version":3,"file":"addSelectableColumn.js","sources":["../../../../src/plugins/selectable/addSelectableColumn.tsx"],"sourcesContent":["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"],"names":["selectionColumnCreator","grid","selectAll","selectionComponent","onSelectRow","onSelectAll","multiple","multiSelectFilterLabel","multiSelectFilterOptions","multiSelectFilterLabels","multiSelectComponent","rowKey","props","visible","isDataColumn","width","minWidth","cellRenderer","headerCellRenderer","customRenderer","header","column","selectionColumn","property","filterLabel","filterOptions","filterLabels","appendCellFormatter","selectableFormatter","isMultiSelect","renderer","onSelect","appendHeaderFormatter","isHeader","className"],"mappings":";;;;;;;;;;;;;AAMO,SAASA,sBAAT,OAaJ;EAAA,IAZDC,IAYC,QAZDA,IAYC;MAXDC,SAWC,QAXDA,SAWC;MAVDC,kBAUC,QAVDA,kBAUC;MATDC,WASC,QATDA,WASC;MARDC,WAQC,QARDA,WAQC;MAPDC,QAOC,QAPDA,QAOC;MAJDC,sBAIC,QAJDA,sBAIC;MAHDC,wBAGC,QAHDA,wBAGC;MAFDC,uBAEC,QAFDA,uBAEC;MADDC,oBACC,QADDA,oBACC;EACD,IACWC,MADX,GAEIV,IAFJ,CACEW,KADF,CACWD,MADX;EAIA,OAAO,YAUI;IAAA,gFAAP,EAAO;;8BATTE,OASS;QATTA,OASS,8BATC,IASD;mCARTC,YAQS;QARTA,YAQS,mCARM,KAQN;4BAPTC,KAOS;QAPTA,KAOS,4BAPD,EAOC;QANTC,QAMS,SANTA,QAMS;cALTC,YAKS;cAJTC,kBAIS;cAHTC,cAGS;cAFTC,MAES;YADNC,MACM;;IACT,IAAIC,eAAe,mCACdD,MADc;MAEjBE,QAAQ,EAAE,mBAFO;MAGjBC,WAAW,EAAEjB,sBAHI;MAIjBkB,aAAa,EAAEjB,wBAJE;MAKjBkB,YAAY,EAAEjB,uBALG;MAMjBI,OAAO,EAAPA,OANiB;MAOjBE,KAAK,EAALA,KAPiB;MAQjBC,QAAQ,EAAEA,QAAQ,IAAID,KARL;MASjBD,YAAY,EAAZA;MATF;;IAWAQ,eAAe,GAAGK,mBAAmB,CACnCC,mBAAmB,CACjB;MACEC,aAAa,EAAEvB,QADjB;MAEEwB,QAAQ,EAAE3B,kBAAkB,IAAIO,oBAFlC;MAGEqB,QAAQ,EAAE3B;KAJK,EAMjBH,IANiB,CADgB,CAAnB,CAShBqB,eATgB,CAAlB;;IAWA,IAAIhB,QAAJ,EAAc;MACZgB,eAAe,GAAGU,qBAAqB,CACrCJ,mBAAmB,CACjB;QACEjB,MAAM,EAANA,MADF;QAEET,SAAS,EAATA,SAFF;QAGE2B,aAAa,EAAE,IAHjB;QAIEI,QAAQ,EAAE,IAJZ;QAKEC,SAAS,EAAE,sBALb;QAMEJ,QAAQ,EAAE3B,kBAAkB,IAAIO,oBANlC;QAOEqB,QAAQ,EAAE1B;OARK,EAUjBJ,IAViB,CADkB,CAArB,CAahBqB,eAbgB,CAAlB;;;IAeF,OAAOA,eAAP;GAjDF;AAmDD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sources":["../../../../src/plugins/selectable/helper.tsx"],"sourcesContent":["import { toggleInObject } from '@elliemae/ds-utilities';\n\nexport const checkAllRowsSelected = (rows, selectedRows) => {\n if (rows.length && selectedRows.length === rows.length) return true;\n if (selectedRows.length) return 'mixed';\n return false;\n};\n\nexport const toggleSelectAll = (rows, checked) =>\n !checked\n ? {}\n : rows.reduce(\n (nextSelRows, row) => toggleInObject(nextSelRows, row.id, true),\n {},\n );\n\nexport const toggleSingleSelectable = (selectedRows, id) =>\n !selectedRows[id] ? toggleInObject({}, id, true) : {};\n\nconst mergeSelectedToMetaData = selected => row => ({\n ...row,\n 'metaData.selected': selected,\n});\n\nexport const selectSingleRow = (rows, filter) =>\n rows.map(row => mergeSelectedToMetaData(filter(row))(row));\n\nexport const selectMultipleRow = (rows, isRowSelectedPredicate) =>\n rows.map(row => mergeSelectedToMetaData(isRowSelectedPredicate(row))(row));\n"],"names":["checkAllRowsSelected","rows","selectedRows","length","toggleSelectAll","checked","reduce","nextSelRows","row","toggleInObject","id","toggleSingleSelectable","mergeSelectedToMetaData","selected","selectSingleRow","filter","map","selectMultipleRow","isRowSelectedPredicate"],"mappings":";;;;;;IAEaA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,IAAD,EAAOC,YAAP,EAAwB;
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../../src/plugins/selectable/helper.tsx"],"sourcesContent":["import { toggleInObject } from '@elliemae/ds-utilities';\n\nexport const checkAllRowsSelected = (rows, selectedRows) => {\n if (rows.length && selectedRows.length === rows.length) return true;\n if (selectedRows.length) return 'mixed';\n return false;\n};\n\nexport const toggleSelectAll = (rows, checked) =>\n !checked\n ? {}\n : rows.reduce(\n (nextSelRows, row) => toggleInObject(nextSelRows, row.id, true),\n {},\n );\n\nexport const toggleSingleSelectable = (selectedRows, id) =>\n !selectedRows[id] ? toggleInObject({}, id, true) : {};\n\nconst mergeSelectedToMetaData = selected => row => ({\n ...row,\n 'metaData.selected': selected,\n});\n\nexport const selectSingleRow = (rows, filter) =>\n rows.map(row => mergeSelectedToMetaData(filter(row))(row));\n\nexport const selectMultipleRow = (rows, isRowSelectedPredicate) =>\n rows.map(row => mergeSelectedToMetaData(isRowSelectedPredicate(row))(row));\n"],"names":["checkAllRowsSelected","rows","selectedRows","length","toggleSelectAll","checked","reduce","nextSelRows","row","toggleInObject","id","toggleSingleSelectable","mergeSelectedToMetaData","selected","selectSingleRow","filter","map","selectMultipleRow","isRowSelectedPredicate"],"mappings":";;;;;;IAEaA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,IAAD,EAAOC,YAAP,EAAwB;EAC1D,IAAID,IAAI,CAACE,MAAL,IAAeD,YAAY,CAACC,MAAb,KAAwBF,IAAI,CAACE,MAAhD,EAAwD,OAAO,IAAP;EACxD,IAAID,YAAY,CAACC,MAAjB,EAAyB,OAAO,OAAP;EACzB,OAAO,KAAP;AACD;IAEYC,eAAe,GAAG,SAAlBA,eAAkB,CAACH,IAAD,EAAOI,OAAP;EAAA,OAC7B,CAACA,OAAD,GACI,EADJ,GAEIJ,IAAI,CAACK,MAAL,CACA,UAACC,WAAD,EAAcC,GAAd;IAAA,OAAsBC,cAAc,CAACF,WAAD,EAAcC,GAAG,CAACE,EAAlB,EAAsB,IAAtB,CAApC;GADA,EAEE,EAFF,CAHyB;AAAA;IAQlBC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACT,YAAD,EAAeQ,EAAf;EAAA,OACpC,CAACR,YAAY,CAACQ,EAAD,CAAb,GAAoBD,cAAc,CAAC,EAAD,EAAKC,EAAL,EAAS,IAAT,CAAlC,GAAmD,EADf;AAAA;;AAGtC,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAAC,QAAQ;EAAA,OAAI,UAAAL,GAAG;IAAA,uCAC1CA,GAD0C;MAE7C,qBAAqBK;;GAFiB;AAAA,CAAxC;;IAKaC,eAAe,GAAG,SAAlBA,eAAkB,CAACb,IAAD,EAAOc,MAAP;EAAA,OAC7Bd,IAAI,CAACe,GAAL,CAAS,UAAAR,GAAG;IAAA,OAAII,uBAAuB,CAACG,MAAM,CAACP,GAAD,CAAP,CAAvB,CAAqCA,GAArC,CAAJ;GAAZ,CAD6B;AAAA;IAGlBS,iBAAiB,GAAG,SAApBA,iBAAoB,CAAChB,IAAD,EAAOiB,sBAAP;EAAA,OAC/BjB,IAAI,CAACe,GAAL,CAAS,UAAAR,GAAG;IAAA,OAAII,uBAAuB,CAACM,sBAAsB,CAACV,GAAD,CAAvB,CAAvB,CAAqDA,GAArD,CAAJ;GAAZ,CAD+B;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectableFormatter.js","sources":["../../../../src/plugins/selectable/selectableFormatter.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable indent */\n/* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events,react/display-name */\nimport React, { forwardRef, useEffect, useRef } from 'react';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport { DSCheckbox, DSRadio } from '@elliemae/ds-form';\n\nconst SelectableWrapper = ({ className, children }) => (\n <div className={className} onClick={(e) => e.stopPropagation()}>\n {children}\n </div>\n);\n\nconst SelectableComponent = React.memo(\n forwardRef(\n ({ className, isMultiSelect, isHeader, onSelect, isSelected, value }, ref) => {\n const SelectComponent = isMultiSelect || isHeader ? DSCheckbox : DSRadio;\n\n return (\n <SelectableWrapper className={className}>\n <SelectComponent\n checked={isSelected}\n data-testid=\"column-selectable-component\"\n innerRef={ref}\n onChange={onSelect}\n tabIndex={-1}\n value={value}\n />\n </SelectableWrapper>\n );\n },\n (prev, next) => next.isScrolling,\n ),\n);\n\nconst selectableFormatter =\n ({ isMultiSelect = false, renderer, className, isHeader, onSelect }, grid) =>\n (valueRender, extraParams) => {\n const { registerFocus } = extraParams;\n const ref = useRef();\n const {\n props: { rowKey },\n state: { selection },\n shiftPressed,\n lastSelectedRow,\n } = grid.getInstance();\n const { rowData, isScrolling } = extraParams;\n\n useEffect(() => {\n if (registerFocus) registerFocus(ref.current);\n }, [ref.current]);\n\n const isSelected = isHeader ? selection.selectAll : !!selection.selectedRows[rowData[rowKey]];\n\n const handleSelect = isHeader\n ? () => onSelect(!isSelected)\n : () => onSelect(rowData[rowKey], extraParams.rowIndex, shiftPressed, lastSelectedRow);\n\n if (isFunction(renderer)) {\n return (\n <SelectableWrapper className={className}>\n {renderer({\n rowData: {},\n ...extraParams,\n value: isSelected,\n isHeader,\n onSelect: handleSelect,\n })}\n </SelectableWrapper>\n );\n }\n\n return (\n <SelectableComponent\n ref={ref}\n className={className}\n isMultiSelect={isMultiSelect}\n isScrolling={isScrolling}\n isSelected={isSelected}\n onSelect={handleSelect}\n value={!isHeader ? rowData[rowKey] : 'header-select-all'}\n />\n );\n };\n\nexport default selectableFormatter;\n"],"names":["SelectableWrapper","className","children","e","stopPropagation","SelectableComponent","React","memo","forwardRef","ref","isMultiSelect","isHeader","onSelect","isSelected","value","SelectComponent","DSCheckbox","DSRadio","prev","next","isScrolling","selectableFormatter","grid","renderer","valueRender","extraParams","registerFocus","useRef","getInstance","rowKey","props","selection","state","shiftPressed","lastSelectedRow","rowData","useEffect","current","selectAll","selectedRows","handleSelect","rowIndex","isFunction"],"mappings":";;;;;;;;;AAOA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB;
|
|
1
|
+
{"version":3,"file":"selectableFormatter.js","sources":["../../../../src/plugins/selectable/selectableFormatter.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\n/* eslint-disable indent */\n/* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events,react/display-name */\nimport React, { forwardRef, useEffect, useRef } from 'react';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport { DSCheckbox, DSRadio } from '@elliemae/ds-form';\n\nconst SelectableWrapper = ({ className, children }) => (\n <div className={className} onClick={(e) => e.stopPropagation()}>\n {children}\n </div>\n);\n\nconst SelectableComponent = React.memo(\n forwardRef(\n ({ className, isMultiSelect, isHeader, onSelect, isSelected, value }, ref) => {\n const SelectComponent = isMultiSelect || isHeader ? DSCheckbox : DSRadio;\n\n return (\n <SelectableWrapper className={className}>\n <SelectComponent\n checked={isSelected}\n data-testid=\"column-selectable-component\"\n innerRef={ref}\n onChange={onSelect}\n tabIndex={-1}\n value={value}\n />\n </SelectableWrapper>\n );\n },\n (prev, next) => next.isScrolling,\n ),\n);\n\nconst selectableFormatter =\n ({ isMultiSelect = false, renderer, className, isHeader, onSelect }, grid) =>\n (valueRender, extraParams) => {\n const { registerFocus } = extraParams;\n const ref = useRef();\n const {\n props: { rowKey },\n state: { selection },\n shiftPressed,\n lastSelectedRow,\n } = grid.getInstance();\n const { rowData, isScrolling } = extraParams;\n\n useEffect(() => {\n if (registerFocus) registerFocus(ref.current);\n }, [ref.current]);\n\n const isSelected = isHeader ? selection.selectAll : !!selection.selectedRows[rowData[rowKey]];\n\n const handleSelect = isHeader\n ? () => onSelect(!isSelected)\n : () => onSelect(rowData[rowKey], extraParams.rowIndex, shiftPressed, lastSelectedRow);\n\n if (isFunction(renderer)) {\n return (\n <SelectableWrapper className={className}>\n {renderer({\n rowData: {},\n ...extraParams,\n value: isSelected,\n isHeader,\n onSelect: handleSelect,\n })}\n </SelectableWrapper>\n );\n }\n\n return (\n <SelectableComponent\n ref={ref}\n className={className}\n isMultiSelect={isMultiSelect}\n isScrolling={isScrolling}\n isSelected={isSelected}\n onSelect={handleSelect}\n value={!isHeader ? rowData[rowKey] : 'header-select-all'}\n />\n );\n };\n\nexport default selectableFormatter;\n"],"names":["SelectableWrapper","className","children","e","stopPropagation","SelectableComponent","React","memo","forwardRef","ref","isMultiSelect","isHeader","onSelect","isSelected","value","SelectComponent","DSCheckbox","DSRadio","prev","next","isScrolling","selectableFormatter","grid","renderer","valueRender","extraParams","registerFocus","useRef","getInstance","rowKey","props","selection","state","shiftPressed","lastSelectedRow","rowData","useEffect","current","selectAll","selectedRows","handleSelect","rowIndex","isFunction"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectableState.js","sources":["../../../../src/plugins/selectable/useSelectableState.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { toggleInObject, hashArray, omit } from '@elliemae/ds-utilities';\nimport {\n checkAllRowsSelected,\n toggleSelectAll,\n toggleSingleSelectable,\n} from './helper';\n\nfunction deriveSelectedStateFromPropsOnUpdate(rows) {\n return (nextProp = {}, prevProp = {}) => {\n if (nextProp.selectAll !== prevProp.selectAll) {\n const nextSelectedRows = nextProp.selectAll\n ? toggleSelectAll(rows, true)\n : hashArray(nextProp.selectedRows || []);\n return {\n selectedRows: nextSelectedRows,\n selectAll: checkAllRowsSelected(rows, Object.keys(nextSelectedRows)),\n };\n }\n return {\n selectedRows: hashArray(nextProp.selectedRows || []),\n selectAll: checkAllRowsSelected(rows, Object.keys(nextProp.selectedRows)),\n };\n };\n}\n\nexport function useSelectableState(grid) {\n const {\n props: {\n rowKey = 'id',\n selectedRows,\n selectAll,\n selectable,\n onSelectRow,\n onSelectAll,\n },\n rows,\n setLastSelectedRow,\n } = grid.getInstance();\n\n const multiple = selectable === 'multi';\n const [selection, setSelectedRowsState] = useDerivedStateFromProps(\n { selectedRows, selectAll },\n { onUpdate: deriveSelectedStateFromPropsOnUpdate(rows) },\n );\n\n // ACTIONS\n const handleSelectRow = (\n id,\n index,\n shift = false,\n lastSelectedRow = null,\n // eslint-disable-next-line max-params\n ) => {\n setSelectedRowsState((prevState) => {\n const { rows: nextRows } = grid.getInstance();\n const wasSelected = Object.keys(prevState.selectedRows).some(\n // we need to match softly as the id may be a number\n // eslint-disable-next-line eqeqeq\n (elem) => elem == id,\n );\n let nextSelectedRows = multiple\n ? toggleInObject(prevState.selectedRows, id, true)\n : toggleSingleSelectable(prevState.selectedRows, id);\n setLastSelectedRow({ index, mode: wasSelected ? 'deselect' : 'select' });\n if (shift && lastSelectedRow) {\n const prevSmallest = lastSelectedRow.index < index + 1;\n const sliceStart = prevSmallest ? lastSelectedRow.index : index;\n const sliceEnd = prevSmallest ? index + 1 : lastSelectedRow.index + 1;\n const rowSegment = nextRows\n .slice(sliceStart, sliceEnd)\n .map((row) => row[rowKey]);\n if (lastSelectedRow.mode === 'deselect') {\n nextSelectedRows = omit(prevState.selectedRows, rowSegment);\n } else {\n const selectedSegment = rowSegment.reduce(\n (o, key) => ({ ...o, [key]: true }),\n {},\n );\n nextSelectedRows = {\n ...prevState.selectedRows,\n ...selectedSegment,\n };\n }\n }\n\n const nextState = {\n selectedRows: nextSelectedRows,\n selectAll: checkAllRowsSelected(\n nextRows,\n Object.keys(nextSelectedRows),\n ),\n };\n if (index !== null && index !== undefined) {\n onSelectRow(\n nextRows.filter((row) => nextState.selectedRows[row[rowKey]]),\n nextState.selectAll,\n index,\n );\n }\n\n return nextState;\n });\n };\n\n const handleSelectAll = (checked) => {\n if (!multiple) return;\n setLastSelectedRow(null);\n setSelectedRowsState(() => {\n const { composedRows: nextRows } = grid.getInstance();\n\n const nextState = {\n selectAll: checked,\n selectedRows: toggleSelectAll(nextRows, checked),\n };\n\n onSelectAll(nextState.selectAll);\n onSelectRow(checked ? nextRows : [], nextState.selectAll);\n\n return nextState;\n });\n };\n\n return {\n actions: {\n selectRow: handleSelectRow,\n selectAll: handleSelectAll,\n },\n state: {\n selection,\n },\n };\n}\n"],"names":["deriveSelectedStateFromPropsOnUpdate","rows","nextProp","prevProp","selectAll","nextSelectedRows","toggleSelectAll","hashArray","selectedRows","checkAllRowsSelected","Object","keys","useSelectableState","grid","getInstance","props","rowKey","selectable","onSelectRow","onSelectAll","setLastSelectedRow","multiple","useDerivedStateFromProps","onUpdate","selection","setSelectedRowsState","handleSelectRow","id","index","shift","lastSelectedRow","prevState","nextRows","wasSelected","some","elem","toggleInObject","toggleSingleSelectable","mode","prevSmallest","sliceStart","sliceEnd","rowSegment","slice","map","row","omit","selectedSegment","reduce","o","key","nextState","undefined","filter","handleSelectAll","checked","composedRows","actions","selectRow","state"],"mappings":";;;;;;;;;AASA,SAASA,oCAAT,CAA8CC,IAA9C,EAAoD;
|
|
1
|
+
{"version":3,"file":"useSelectableState.js","sources":["../../../../src/plugins/selectable/useSelectableState.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { toggleInObject, hashArray, omit } from '@elliemae/ds-utilities';\nimport {\n checkAllRowsSelected,\n toggleSelectAll,\n toggleSingleSelectable,\n} from './helper';\n\nfunction deriveSelectedStateFromPropsOnUpdate(rows) {\n return (nextProp = {}, prevProp = {}) => {\n if (nextProp.selectAll !== prevProp.selectAll) {\n const nextSelectedRows = nextProp.selectAll\n ? toggleSelectAll(rows, true)\n : hashArray(nextProp.selectedRows || []);\n return {\n selectedRows: nextSelectedRows,\n selectAll: checkAllRowsSelected(rows, Object.keys(nextSelectedRows)),\n };\n }\n return {\n selectedRows: hashArray(nextProp.selectedRows || []),\n selectAll: checkAllRowsSelected(rows, Object.keys(nextProp.selectedRows)),\n };\n };\n}\n\nexport function useSelectableState(grid) {\n const {\n props: {\n rowKey = 'id',\n selectedRows,\n selectAll,\n selectable,\n onSelectRow,\n onSelectAll,\n },\n rows,\n setLastSelectedRow,\n } = grid.getInstance();\n\n const multiple = selectable === 'multi';\n const [selection, setSelectedRowsState] = useDerivedStateFromProps(\n { selectedRows, selectAll },\n { onUpdate: deriveSelectedStateFromPropsOnUpdate(rows) },\n );\n\n // ACTIONS\n const handleSelectRow = (\n id,\n index,\n shift = false,\n lastSelectedRow = null,\n // eslint-disable-next-line max-params\n ) => {\n setSelectedRowsState((prevState) => {\n const { rows: nextRows } = grid.getInstance();\n const wasSelected = Object.keys(prevState.selectedRows).some(\n // we need to match softly as the id may be a number\n // eslint-disable-next-line eqeqeq\n (elem) => elem == id,\n );\n let nextSelectedRows = multiple\n ? toggleInObject(prevState.selectedRows, id, true)\n : toggleSingleSelectable(prevState.selectedRows, id);\n setLastSelectedRow({ index, mode: wasSelected ? 'deselect' : 'select' });\n if (shift && lastSelectedRow) {\n const prevSmallest = lastSelectedRow.index < index + 1;\n const sliceStart = prevSmallest ? lastSelectedRow.index : index;\n const sliceEnd = prevSmallest ? index + 1 : lastSelectedRow.index + 1;\n const rowSegment = nextRows\n .slice(sliceStart, sliceEnd)\n .map((row) => row[rowKey]);\n if (lastSelectedRow.mode === 'deselect') {\n nextSelectedRows = omit(prevState.selectedRows, rowSegment);\n } else {\n const selectedSegment = rowSegment.reduce(\n (o, key) => ({ ...o, [key]: true }),\n {},\n );\n nextSelectedRows = {\n ...prevState.selectedRows,\n ...selectedSegment,\n };\n }\n }\n\n const nextState = {\n selectedRows: nextSelectedRows,\n selectAll: checkAllRowsSelected(\n nextRows,\n Object.keys(nextSelectedRows),\n ),\n };\n if (index !== null && index !== undefined) {\n onSelectRow(\n nextRows.filter((row) => nextState.selectedRows[row[rowKey]]),\n nextState.selectAll,\n index,\n );\n }\n\n return nextState;\n });\n };\n\n const handleSelectAll = (checked) => {\n if (!multiple) return;\n setLastSelectedRow(null);\n setSelectedRowsState(() => {\n const { composedRows: nextRows } = grid.getInstance();\n\n const nextState = {\n selectAll: checked,\n selectedRows: toggleSelectAll(nextRows, checked),\n };\n\n onSelectAll(nextState.selectAll);\n onSelectRow(checked ? nextRows : [], nextState.selectAll);\n\n return nextState;\n });\n };\n\n return {\n actions: {\n selectRow: handleSelectRow,\n selectAll: handleSelectAll,\n },\n state: {\n selection,\n },\n };\n}\n"],"names":["deriveSelectedStateFromPropsOnUpdate","rows","nextProp","prevProp","selectAll","nextSelectedRows","toggleSelectAll","hashArray","selectedRows","checkAllRowsSelected","Object","keys","useSelectableState","grid","getInstance","props","rowKey","selectable","onSelectRow","onSelectAll","setLastSelectedRow","multiple","useDerivedStateFromProps","onUpdate","selection","setSelectedRowsState","handleSelectRow","id","index","shift","lastSelectedRow","prevState","nextRows","wasSelected","some","elem","toggleInObject","toggleSingleSelectable","mode","prevSmallest","sliceStart","sliceEnd","rowSegment","slice","map","row","omit","selectedSegment","reduce","o","key","nextState","undefined","filter","handleSelectAll","checked","composedRows","actions","selectRow","state"],"mappings":";;;;;;;;;AASA,SAASA,oCAAT,CAA8CC,IAA9C,EAAoD;EAClD,OAAO,YAAkC;IAAA,IAAjCC,QAAiC,uEAAtB,EAAsB;IAAA,IAAlBC,QAAkB,uEAAP,EAAO;;IACvC,IAAID,QAAQ,CAACE,SAAT,KAAuBD,QAAQ,CAACC,SAApC,EAA+C;MAC7C,IAAMC,gBAAgB,GAAGH,QAAQ,CAACE,SAAT,GACrBE,eAAe,CAACL,IAAD,EAAO,IAAP,CADM,GAErBM,SAAS,CAACL,QAAQ,CAACM,YAAT,IAAyB,EAA1B,CAFb;MAGA,OAAO;QACLA,YAAY,EAAEH,gBADT;QAELD,SAAS,EAAEK,oBAAoB,CAACR,IAAD,EAAOS,MAAM,CAACC,IAAP,CAAYN,gBAAZ,CAAP;OAFjC;;;IAKF,OAAO;MACLG,YAAY,EAAED,SAAS,CAACL,QAAQ,CAACM,YAAT,IAAyB,EAA1B,CADlB;MAELJ,SAAS,EAAEK,oBAAoB,CAACR,IAAD,EAAOS,MAAM,CAACC,IAAP,CAAYT,QAAQ,CAACM,YAArB,CAAP;KAFjC;GAVF;AAeD;;AAEM,SAASI,kBAAT,CAA4BC,IAA5B,EAAkC;EACvC,wBAWIA,IAAI,CAACC,WAAL,EAXJ;gDACEC,KADF;qDAEIC,MAFJ;MAEIA,MAFJ,uCAEa,IAFb;MAGIR,YAHJ,yBAGIA,YAHJ;MAIIJ,SAJJ,yBAIIA,SAJJ;MAKIa,UALJ,yBAKIA,UALJ;MAMIC,WANJ,yBAMIA,WANJ;MAOIC,WAPJ,yBAOIA,WAPJ;MASElB,IATF,qBASEA,IATF;MAUEmB,kBAVF,qBAUEA,kBAVF;;EAaA,IAAMC,QAAQ,GAAGJ,UAAU,KAAK,OAAhC;;EACA,4BAA0CK,wBAAwB,CAChE;IAAEd,YAAY,EAAZA,YAAF;IAAgBJ,SAAS,EAATA;GADgD,EAEhE;IAAEmB,QAAQ,EAAEvB,oCAAoC,CAACC,IAAD;GAFgB,CAAlE;;MAAOuB,SAAP;MAAkBC,oBAAlB,6BAfuC;;;EAqBvC,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CACtBC,EADsB,EAEtBC,KAFsB,EAMnB;IAAA,IAHHC,KAGG,uEAHK,KAGL;IAAA,IAFHC,eAEG,uEAFe,IAEf;IACHL,oBAAoB,CAAC,UAACM,SAAD,EAAe;MAClC,yBAA2BlB,IAAI,CAACC,WAAL,EAA3B;UAAckB,QAAd,sBAAQ/B,IAAR;;MACA,IAAMgC,WAAW,GAAGvB,MAAM,CAACC,IAAP,CAAYoB,SAAS,CAACvB,YAAtB,EAAoC0B,IAApC;;MAGlB,UAACC,IAAD;QAAA,OAAUA,IAAI,IAAIR,EAAlB;OAHkB,CAApB;MAKA,IAAItB,gBAAgB,GAAGgB,QAAQ,GAC3Be,cAAc,CAACL,SAAS,CAACvB,YAAX,EAAyBmB,EAAzB,EAA6B,IAA7B,CADa,GAE3BU,sBAAsB,CAACN,SAAS,CAACvB,YAAX,EAAyBmB,EAAzB,CAF1B;MAGAP,kBAAkB,CAAC;QAAEQ,KAAK,EAALA,KAAF;QAASU,IAAI,EAAEL,WAAW,GAAG,UAAH,GAAgB;OAA3C,CAAlB;;MACA,IAAIJ,KAAK,IAAIC,eAAb,EAA8B;QAC5B,IAAMS,YAAY,GAAGT,eAAe,CAACF,KAAhB,GAAwBA,KAAK,GAAG,CAArD;QACA,IAAMY,UAAU,GAAGD,YAAY,GAAGT,eAAe,CAACF,KAAnB,GAA2BA,KAA1D;QACA,IAAMa,QAAQ,GAAGF,YAAY,GAAGX,KAAK,GAAG,CAAX,GAAeE,eAAe,CAACF,KAAhB,GAAwB,CAApE;QACA,IAAMc,UAAU,GAAGV,QAAQ,CACxBW,KADgB,CACVH,UADU,EACEC,QADF,EAEhBG,GAFgB,CAEZ,UAACC,GAAD;UAAA,OAASA,GAAG,CAAC7B,MAAD,CAAZ;SAFY,CAAnB;;QAGA,IAAIc,eAAe,CAACQ,IAAhB,KAAyB,UAA7B,EAAyC;UACvCjC,gBAAgB,GAAGyC,IAAI,CAACf,SAAS,CAACvB,YAAX,EAAyBkC,UAAzB,CAAvB;SADF,MAEO;UACL,IAAMK,eAAe,GAAGL,UAAU,CAACM,MAAX,CACtB,UAACC,CAAD,EAAIC,GAAJ;YAAA,uCAAkBD,CAAlB,2BAAsBC,GAAtB,EAA4B,IAA5B;WADsB,EAEtB,EAFsB,CAAxB;UAIA7C,gBAAgB,mCACX0B,SAAS,CAACvB,YADC,GAEXuC,eAFW,CAAhB;;;;MAOJ,IAAMI,SAAS,GAAG;QAChB3C,YAAY,EAAEH,gBADE;QAEhBD,SAAS,EAAEK,oBAAoB,CAC7BuB,QAD6B,EAE7BtB,MAAM,CAACC,IAAP,CAAYN,gBAAZ,CAF6B;OAFjC;;MAOA,IAAIuB,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKwB,SAAhC,EAA2C;QACzClC,WAAW,CACTc,QAAQ,CAACqB,MAAT,CAAgB,UAACR,GAAD;UAAA,OAASM,SAAS,CAAC3C,YAAV,CAAuBqC,GAAG,CAAC7B,MAAD,CAA1B,CAAT;SAAhB,CADS,EAETmC,SAAS,CAAC/C,SAFD,EAGTwB,KAHS,CAAX;;;MAOF,OAAOuB,SAAP;KA/CkB,CAApB;GAPF;;EA0DA,IAAMG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD,EAAa;IACnC,IAAI,CAAClC,QAAL,EAAe;IACfD,kBAAkB,CAAC,IAAD,CAAlB;IACAK,oBAAoB,CAAC,YAAM;MACzB,yBAAmCZ,IAAI,CAACC,WAAL,EAAnC;UAAsBkB,QAAtB,sBAAQwB,YAAR;;MAEA,IAAML,SAAS,GAAG;QAChB/C,SAAS,EAAEmD,OADK;QAEhB/C,YAAY,EAAEF,eAAe,CAAC0B,QAAD,EAAWuB,OAAX;OAF/B;MAKApC,WAAW,CAACgC,SAAS,CAAC/C,SAAX,CAAX;MACAc,WAAW,CAACqC,OAAO,GAAGvB,QAAH,GAAc,EAAtB,EAA0BmB,SAAS,CAAC/C,SAApC,CAAX;MAEA,OAAO+C,SAAP;KAXkB,CAApB;GAHF;;EAkBA,OAAO;IACLM,OAAO,EAAE;MACPC,SAAS,EAAEhC,eADJ;MAEPtB,SAAS,EAAEkD;KAHR;IAKLK,KAAK,EAAE;MACLnC,SAAS,EAATA;;GANJ;AASD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortablePlugin.js","sources":["../../../../src/plugins/sortable/SortablePlugin.tsx"],"sourcesContent":["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(\n appendHeaderFormatter(formatter),\n mergeClassNameToColumnHeader('with-sortable'),\n )(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\n ? sorterGroups(sortingConfig)(composedRows, rowsData, groupedBy)\n : 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"],"names":["decorateColumn","column","grid","props","isSortableColumnActive","col","sortable","groupedRows","formatter","sortHeaderFormatter","sortabular","sort","getSortingColumns","getState","sortingColumns","onSort","actions","strategy","strategies","byProperty","compose","appendHeaderFormatter","mergeClassNameToColumnHeader","composeRows","rows","getInstance","state","isDataSorted","groupedBy","sortEmptyLast","rowsData","composedRows","decoratedColumns","sortingConfig","columns","isEmpty","orderBy","emptyLast","sorterGroups","sorter","SortablePlugin","createInstancePlugin","registerStateHook","useSortableState","registerHotKeys","key","handler","cellIndex","property"],"mappings":";;;;;;;;;;;;;;;;;AAWA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,IAAT,EAAkB;
|
|
1
|
+
{"version":3,"file":"SortablePlugin.js","sources":["../../../../src/plugins/sortable/SortablePlugin.tsx"],"sourcesContent":["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(\n appendHeaderFormatter(formatter),\n mergeClassNameToColumnHeader('with-sortable'),\n )(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\n ? sorterGroups(sortingConfig)(composedRows, rowsData, groupedBy)\n : 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"],"names":["decorateColumn","column","grid","props","isSortableColumnActive","col","sortable","groupedRows","formatter","sortHeaderFormatter","sortabular","sort","getSortingColumns","getState","sortingColumns","onSort","actions","strategy","strategies","byProperty","compose","appendHeaderFormatter","mergeClassNameToColumnHeader","composeRows","rows","getInstance","state","isDataSorted","groupedBy","sortEmptyLast","rowsData","composedRows","decoratedColumns","sortingConfig","columns","isEmpty","orderBy","emptyLast","sorterGroups","sorter","SortablePlugin","createInstancePlugin","registerStateHook","useSortableState","registerHotKeys","key","handler","cellIndex","property"],"mappings":";;;;;;;;;;;;;;;;;AAWA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,IAAT,EAAkB;EACvC,kBAEIA,IAFJ,CACEC,KADF;0CACWC,sBADX;MACWA,sBADX,sCACoC,UAACC,GAAD;IAAA,OAASA,GAAG,CAACC,QAAb;GADpC;MAC2DC,WAD3D,eAC2DA,WAD3D;EAIA,IAAIA,WAAJ,EAAiB,OAAON,MAAP;EACjB,IAAI,CAACG,sBAAsB,CAACH,MAAD,CAA3B,EAAqC,OAAOA,MAAP;EAErC,IAAMO,SAAS,GAAGC,mBAAmB,CACnCC,UAAU,CAACC,IAAX,CAAgB;IACdC,iBAAiB,EAAE;MAAA,OAAMV,IAAI,CAACW,QAAL,GAAgBC,cAAhB,IAAkC,EAAxC;KADL;IAEdC,MAAM,EAAEb,IAAI,CAACc,OAAL,CAAaL,IAFP;IAGdM,QAAQ,EAAEP,UAAU,CAACQ,UAAX,CAAsBC;GAHlC,CADmC,EAMnCjB,IANmC,CAArC;EASA,OAAOkB,OAAO,CACZC,qBAAqB,CAACb,SAAD,CADT,EAEZc,4BAA4B,CAAC,eAAD,CAFhB,CAAP,CAGLrB,MAHK,CAAP;AAID,CArBD;;AAuBA,IAAMsB,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAOtB,IAAP,EAAgB;EAClC,wBAMIA,IAAI,CAACuB,WAAL,EANJ;MACWX,cADX,qBACEY,KADF,CACWZ,cADX;gDAEEX,KAFF;MAEWwB,YAFX,yBAEWA,YAFX;MAEyBpB,WAFzB,yBAEyBA,WAFzB;MAEsCqB,SAFtC,yBAEsCA,SAFtC;MAEiDC,aAFjD,yBAEiDA,aAFjD;MAGQC,QAHR,qBAGEN,IAHF;MAIEO,YAJF,qBAIEA,YAJF;MAKEC,gBALF,qBAKEA,gBALF;;EAQA,IAAMC,aAAa,GAAG;IACpBC,OAAO,EAAEF,gBADW;IAEpBlB,cAAc,EAAE,CAACqB,OAAO,CAACrB,cAAD,CAAR,IAA4BA,cAFxB;IAGpBH,IAAI,EAAEyB,OAHc;IAIpBC,SAAS,EAAER;GAJb,CATkC;;EAiBlC,IAAItB,WAAW,IAAI,CAACqB,SAApB,EAA+B;IAC7B,OAAO,CAACD,YAAD,GACHW,YAAY,CAACL,aAAD,CAAZ,CAA4BF,YAA5B,EAA0CD,QAA1C,EAAoDF,SAApD,CADG,GAEHJ,IAFJ;;;EAKF,OAAO,CAACG,YAAD,GAAgBY,MAAM,CAACN,aAAD,CAAN,CAAsBT,IAAtB,CAAhB,GAA8CA,IAArD;AACD,CAxBD;;IA0BagB,cAAc,GAAGC,oBAAoB,CAAC,UAAD,EAAa;EAC7DC,iBAAiB,EAAEC,gBAD0C;EAE7D3C,cAAc,EAAdA,cAF6D;EAG7DuB,WAAW,EAAXA,WAH6D;EAI7DqB,eAJ6D,2BAI7C1C,IAJ6C,EAIvC;IACpB,OAAO;MACL2C,GAAG,EAAE,QADA;MAELC,OAAO,EAAE,uBAAmB;QAAA,IAAhBC,SAAgB,QAAhBA,SAAgB;;QAC1B,yBAGI7C,IAAI,CAACuB,WAAL,EAHJ;YACad,IADb,sBACEK,OADF,CACaL,IADb;YAEEqB,gBAFF,sBAEEA,gBAFF;;QAIA,IAAM/B,MAAM,GAAG+B,gBAAgB,CAACe,SAAD,CAA/B;QACA,IAAI,CAAC9C,MAAL,EAAa;QACbU,IAAI,CAACV,MAAM,CAAC+C,QAAR,CAAJ;;KATJ;;AAL2D,CAAb;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkIfSortable.js","sources":["../../../../src/plugins/sortable/checkIfSortable.tsx"],"sourcesContent":["/* eslint-disable no-plusplus */\n/* eslint-disable no-loops/no-loops */\nexport const checkIfSortable = (column, rows) => {\n for (let index = 0; index < rows.length; index++) {\n const element = rows[index][column];\n if (!(element === null || element === undefined)) {\n // PUI-6452\n return true;\n }\n }\n return false;\n};\n\nexport default checkIfSortable;\n"],"names":["checkIfSortable","column","rows","index","length","element","undefined"],"mappings":"AAAA;;AACA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD,EAASC,IAAT,EAAkB;
|
|
1
|
+
{"version":3,"file":"checkIfSortable.js","sources":["../../../../src/plugins/sortable/checkIfSortable.tsx"],"sourcesContent":["/* eslint-disable no-plusplus */\n/* eslint-disable no-loops/no-loops */\nexport const checkIfSortable = (column, rows) => {\n for (let index = 0; index < rows.length; index++) {\n const element = rows[index][column];\n if (!(element === null || element === undefined)) {\n // PUI-6452\n return true;\n }\n }\n return false;\n};\n\nexport default checkIfSortable;\n"],"names":["checkIfSortable","column","rows","index","length","element","undefined"],"mappings":"AAAA;;AACA;IACaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD,EAASC,IAAT,EAAkB;EAC/C,KAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGD,IAAI,CAACE,MAAjC,EAAyCD,KAAK,EAA9C,EAAkD;IAChD,IAAME,OAAO,GAAGH,IAAI,CAACC,KAAD,CAAJ,CAAYF,MAAZ,CAAhB;;IACA,IAAI,EAAEI,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAKC,SAAlC,CAAJ,EAAkD;;MAEhD,OAAO,IAAP;;;;EAGJ,OAAO,KAAP;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortHeaderFormatter.js","sources":["../../../../src/plugins/sortable/sortHeaderFormatter.tsx"],"sourcesContent":["import React from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { ArrowheadDown, ArrowheadUp } from '@elliemae/ds-icons';\n\nconst blockName = 'data-grid-sort-header';\n\nconst SortHeaderContainer = aggregatedClasses('div')(blockName);\n\nconst iconColor = ['brand-primary', 800];\n\nconst SortHeader = React.memo(({ value, onClick, sortState }) => {\n const sortIndicator = sortState === 'asc' ? <ArrowheadUp color={iconColor} /> : <ArrowheadDown color={iconColor} />;\n return (\n <SortHeaderContainer onClick={onClick}>\n <span className=\"header-value\">{value}</span>\n {sortState && sortIndicator}\n </SortHeaderContainer>\n );\n});\n\nconst sortHeaderFormatter =\n (sortable, grid) =>\n (value, { columnIndex, property }) => {\n const {\n state: { sortingColumns },\n } = grid.getInstance();\n const { onClick, className } = sortable(value, { columnIndex, property });\n return (\n <SortHeader\n className={className}\n onClick={onClick}\n sortState={sortingColumns[property] && sortingColumns[property].direction}\n value={value}\n />\n );\n };\n\nexport default sortHeaderFormatter;\n"],"names":["blockName","SortHeaderContainer","aggregatedClasses","iconColor","SortHeader","React","memo","value","onClick","sortState","sortIndicator","sortHeaderFormatter","sortable","grid","columnIndex","property","getInstance","sortingColumns","state","className","direction"],"mappings":";;;;AAIA,IAAMA,SAAS,GAAG,uBAAlB;AAEA,IAAMC,mBAAmB,GAAGC,iBAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,CAA5B;AAEA,IAAMG,SAAS,GAAG,CAAC,eAAD,EAAkB,GAAlB,CAAlB;AAEA,IAAMC,UAAU,gBAAGC,KAAK,CAACC,IAAN,CAAW,gBAAmC;
|
|
1
|
+
{"version":3,"file":"sortHeaderFormatter.js","sources":["../../../../src/plugins/sortable/sortHeaderFormatter.tsx"],"sourcesContent":["import React from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { ArrowheadDown, ArrowheadUp } from '@elliemae/ds-icons';\n\nconst blockName = 'data-grid-sort-header';\n\nconst SortHeaderContainer = aggregatedClasses('div')(blockName);\n\nconst iconColor = ['brand-primary', 800];\n\nconst SortHeader = React.memo(({ value, onClick, sortState }) => {\n const sortIndicator = sortState === 'asc' ? <ArrowheadUp color={iconColor} /> : <ArrowheadDown color={iconColor} />;\n return (\n <SortHeaderContainer onClick={onClick}>\n <span className=\"header-value\">{value}</span>\n {sortState && sortIndicator}\n </SortHeaderContainer>\n );\n});\n\nconst sortHeaderFormatter =\n (sortable, grid) =>\n (value, { columnIndex, property }) => {\n const {\n state: { sortingColumns },\n } = grid.getInstance();\n const { onClick, className } = sortable(value, { columnIndex, property });\n return (\n <SortHeader\n className={className}\n onClick={onClick}\n sortState={sortingColumns[property] && sortingColumns[property].direction}\n value={value}\n />\n );\n };\n\nexport default sortHeaderFormatter;\n"],"names":["blockName","SortHeaderContainer","aggregatedClasses","iconColor","SortHeader","React","memo","value","onClick","sortState","sortIndicator","sortHeaderFormatter","sortable","grid","columnIndex","property","getInstance","sortingColumns","state","className","direction"],"mappings":";;;;AAIA,IAAMA,SAAS,GAAG,uBAAlB;AAEA,IAAMC,mBAAmB,GAAGC,iBAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,CAA5B;AAEA,IAAMG,SAAS,GAAG,CAAC,eAAD,EAAkB,GAAlB,CAAlB;AAEA,IAAMC,UAAU,gBAAGC,KAAK,CAACC,IAAN,CAAW,gBAAmC;EAAA,IAAhCC,KAAgC,QAAhCA,KAAgC;MAAzBC,OAAyB,QAAzBA,OAAyB;MAAhBC,SAAgB,QAAhBA,SAAgB;EAC/D,IAAMC,aAAa,GAAGD,SAAS,KAAK,KAAd,gBAAsB,oBAAC,WAAD;IAAa,KAAK,EAAEN;IAA1C,gBAA0D,oBAAC,aAAD;IAAe,KAAK,EAAEA;IAAtG;EACA,oBACE,oBAAC,mBAAD;IAAqB,OAAO,EAAEK;kBAC5B;IAAM,SAAS,EAAC;KAAgBD,KAAhC,CADF,EAEGE,SAAS,IAAIC,aAFhB,CADF;AAMD,CARkB,CAAnB;;IAUMC,mBAAmB,GACvB,SADIA,mBACJ,CAACC,QAAD,EAAWC,IAAX;EAAA,OACA,UAACN,KAAD,SAAsC;IAAA,IAA5BO,WAA4B,SAA5BA,WAA4B;QAAfC,QAAe,SAAfA,QAAe;;IACpC,wBAEIF,IAAI,CAACG,WAAL,EAFJ;QACWC,cADX,qBACEC,KADF,CACWD,cADX;;IAGA,gBAA+BL,QAAQ,CAACL,KAAD,EAAQ;MAAEO,WAAW,EAAXA,WAAF;MAAeC,QAAQ,EAARA;KAAvB,CAAvC;QAAQP,OAAR,aAAQA,OAAR;QAAiBW,SAAjB,aAAiBA,SAAjB;;IACA,oBACE,oBAAC,UAAD;MACE,SAAS,EAAEA,SADb;MAEE,OAAO,EAAEX,OAFX;MAGE,SAAS,EAAES,cAAc,CAACF,QAAD,CAAd,IAA4BE,cAAc,CAACF,QAAD,CAAd,CAAyBK,SAHlE;MAIE,KAAK,EAAEb;MALX;GANF;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortTree.js","sources":["../../../../src/plugins/sortable/sortTree.tsx"],"sourcesContent":["import * as sort from 'sortabular';\n\nconst deepSorting = (sortConfig, rows = []) =>\n sort.sorter(sortConfig)(\n rows.map(row =>\n row.children && row.children.length\n ? {\n ...row,\n children: deepSorting(sortConfig, row.children),\n }\n : row,\n ),\n );\nfunction sortTree(sortConfig) {\n return rows => deepSorting(sortConfig, rows);\n}\n\nexport default sortTree;\n"],"names":["deepSorting","sortConfig","rows","sort","sorter","map","row","children","length","sortTree"],"mappings":";;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD;
|
|
1
|
+
{"version":3,"file":"sortTree.js","sources":["../../../../src/plugins/sortable/sortTree.tsx"],"sourcesContent":["import * as sort from 'sortabular';\n\nconst deepSorting = (sortConfig, rows = []) =>\n sort.sorter(sortConfig)(\n rows.map(row =>\n row.children && row.children.length\n ? {\n ...row,\n children: deepSorting(sortConfig, row.children),\n }\n : row,\n ),\n );\nfunction sortTree(sortConfig) {\n return rows => deepSorting(sortConfig, rows);\n}\n\nexport default sortTree;\n"],"names":["deepSorting","sortConfig","rows","sort","sorter","map","row","children","length","sortTree"],"mappings":";;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD;EAAA,IAAaC,IAAb,uEAAoB,EAApB;EAAA,OAClBC,UAAI,CAACC,MAAL,CAAYH,UAAZ,EACEC,IAAI,CAACG,GAAL,CAAS,UAAAC,GAAG;IAAA,OACVA,GAAG,CAACC,QAAJ,IAAgBD,GAAG,CAACC,QAAJ,CAAaC,MAA7B,mCAESF,GAFT;MAGMC,QAAQ,EAAEP,WAAW,CAACC,UAAD,EAAaK,GAAG,CAACC,QAAjB;SAEvBD,GANM;GAAZ,CADF,CADkB;AAAA,CAApB;;AAWA,SAASG,QAAT,CAAkBR,UAAlB,EAA8B;EAC5B,OAAO,UAAAC,IAAI;IAAA,OAAIF,WAAW,CAACC,UAAD,EAAaC,IAAb,CAAf;GAAX;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorter.js","sources":["../../../../src/plugins/sortable/sorter.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport { get } from '@elliemae/ds-utilities';\nimport moment from 'moment';\n\nexport const sorter = ({ columns, sortingColumns, sort, emptyLast } = {}) => (\n data,\n) => {\n if (!columns) {\n throw new Error('sort.sorter - Missing \"columns\" argument!');\n }\n\n if (!sort) {\n throw new Error('sort.sorter - Missing \"sort\" argument!');\n }\n\n if (!sortingColumns) {\n return data;\n }\n const columnIndexList = new Array(sortingColumns.length);\n const orderList = new Array(sortingColumns.length);\n\n let actualSortFunction = sort;\n if (emptyLast) {\n actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {\n const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);\n\n const keys = Object.keys(sortingColumns);\n\n const withData = sortedData.filter((r) => keys.some((key) => !!r[key]));\n const withoutData = sortedData.filter((r) => keys.some((key) => !r[key]));\n\n return [...withData, ...withoutData];\n };\n }\n\n Object.keys(sortingColumns).forEach((sortingColumnKey) => {\n const realColumn = columns.find(\n (column) => column.property === sortingColumnKey,\n );\n if (!realColumn) return;\n const columnSorter =\n realColumn.sort ||\n function resolveValue(row) {\n const { property, sortBy } = realColumn;\n const value = row[sortBy || property];\n // Pick resolved value by convention\n const resolvedValue = get(row, `_${property}`, value);\n\n if (realColumn.type === 'DateTime') {\n return moment(resolvedValue);\n }\n\n return typeof resolvedValue === 'string'\n ? resolvedValue.toLowerCase()\n : resolvedValue;\n };\n\n const sortingColumn = sortingColumns[sortingColumnKey];\n\n columnIndexList[sortingColumn.position] = columnSorter;\n\n orderList[sortingColumn.position] = sortingColumn.direction;\n });\n return actualSortFunction(data, columnIndexList, orderList);\n};\n\nexport const sorterGroups = ({\n columns,\n sortingColumns,\n sort,\n emptyLast,\n} = {}) => (data, rowsData) => {\n if (!columns) {\n throw new Error('sort.sorter - Missing \"columns\" argument!');\n }\n\n if (!sort) {\n throw new Error('sort.sorter - Missing \"sort\" argument!');\n }\n\n if (!sortingColumns) {\n return data;\n }\n\n const columnIndexList = new Array(sortingColumns.length);\n const orderList = new Array(sortingColumns.length);\n\n let actualSortFunction = sort;\n if (emptyLast) {\n actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {\n const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);\n\n const keys = Object.keys(sortingColumns);\n\n const withData = sortedData.filter((r) => keys.some((key) => !!r[key]));\n const withoutData = sortedData.filter((r) => keys.some((key) => !r[key]));\n\n return [...withData, ...withoutData];\n };\n }\n\n Object.keys(sortingColumns).forEach((sortingColumnKey) => {\n const realColumn = columns.find(\n (column) => column.property === sortingColumnKey,\n );\n if (!realColumn) return;\n const columnSorter =\n realColumn.sort ||\n function resolveValue(row) {\n const { property, sortBy } = realColumn;\n const value = row[sortBy || property];\n // Pick resolved value by convention\n const resolvedValue = get(row, `_${property}`, value);\n\n if (realColumn.type === 'DateTime') {\n return moment(resolvedValue);\n }\n\n return typeof resolvedValue === 'string'\n ? resolvedValue.toLowerCase()\n : resolvedValue;\n };\n\n const sortingColumn = sortingColumns[sortingColumnKey];\n\n columnIndexList[sortingColumn.position] = columnSorter;\n\n orderList[sortingColumn.position] = sortingColumn.direction;\n });\n\n const groups = {};\n const preserveData = {};\n data.forEach((c) => {\n preserveData[c.id] = { ...c };\n });\n\n rowsData.forEach((group) => {\n groups[group.id] = {\n children: actualSortFunction(\n group.children.map((c) => ({\n parentNode: preserveData[c.id].parentNode,\n data: c,\n ...c,\n })),\n columnIndexList,\n orderList,\n ), // sort internally\n };\n });\n\n const sorted = actualSortFunction(\n data.map((r) => ({\n ...r.data,\n ...r,\n })),\n columnIndexList,\n orderList,\n ); // sort global\n let ssortGlobal = [];\n sorted\n .filter((s) => !s.isGroup)\n .forEach((sr) => {\n if (groups[sr.parentNode.id]) {\n ssortGlobal = [\n ...ssortGlobal,\n preserveData[sr.parentNode.id],\n ...groups[sr.parentNode.id].children,\n ];\n delete groups[sr.parentNode.id];\n }\n });\n return ssortGlobal;\n};\n"],"names":["sorter","columns","sortingColumns","sort","emptyLast","data","Error","columnIndexList","Array","length","orderList","actualSortFunction","innerData","innerColumnIndexList","innerOrderList","sortedData","keys","Object","withData","filter","r","some","key","withoutData","forEach","sortingColumnKey","realColumn","find","column","property","columnSorter","resolveValue","row","sortBy","value","resolvedValue","get","type","moment","toLowerCase","sortingColumn","position","direction","sorterGroups","rowsData","groups","preserveData","c","id","group","children","map","parentNode","sorted","ssortGlobal","s","isGroup","sr"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sorter.js","sources":["../../../../src/plugins/sortable/sorter.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport { get } from '@elliemae/ds-utilities';\nimport moment from 'moment';\n\nexport const sorter = ({ columns, sortingColumns, sort, emptyLast } = {}) => (\n data,\n) => {\n if (!columns) {\n throw new Error('sort.sorter - Missing \"columns\" argument!');\n }\n\n if (!sort) {\n throw new Error('sort.sorter - Missing \"sort\" argument!');\n }\n\n if (!sortingColumns) {\n return data;\n }\n const columnIndexList = new Array(sortingColumns.length);\n const orderList = new Array(sortingColumns.length);\n\n let actualSortFunction = sort;\n if (emptyLast) {\n actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {\n const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);\n\n const keys = Object.keys(sortingColumns);\n\n const withData = sortedData.filter((r) => keys.some((key) => !!r[key]));\n const withoutData = sortedData.filter((r) => keys.some((key) => !r[key]));\n\n return [...withData, ...withoutData];\n };\n }\n\n Object.keys(sortingColumns).forEach((sortingColumnKey) => {\n const realColumn = columns.find(\n (column) => column.property === sortingColumnKey,\n );\n if (!realColumn) return;\n const columnSorter =\n realColumn.sort ||\n function resolveValue(row) {\n const { property, sortBy } = realColumn;\n const value = row[sortBy || property];\n // Pick resolved value by convention\n const resolvedValue = get(row, `_${property}`, value);\n\n if (realColumn.type === 'DateTime') {\n return moment(resolvedValue);\n }\n\n return typeof resolvedValue === 'string'\n ? resolvedValue.toLowerCase()\n : resolvedValue;\n };\n\n const sortingColumn = sortingColumns[sortingColumnKey];\n\n columnIndexList[sortingColumn.position] = columnSorter;\n\n orderList[sortingColumn.position] = sortingColumn.direction;\n });\n return actualSortFunction(data, columnIndexList, orderList);\n};\n\nexport const sorterGroups = ({\n columns,\n sortingColumns,\n sort,\n emptyLast,\n} = {}) => (data, rowsData) => {\n if (!columns) {\n throw new Error('sort.sorter - Missing \"columns\" argument!');\n }\n\n if (!sort) {\n throw new Error('sort.sorter - Missing \"sort\" argument!');\n }\n\n if (!sortingColumns) {\n return data;\n }\n\n const columnIndexList = new Array(sortingColumns.length);\n const orderList = new Array(sortingColumns.length);\n\n let actualSortFunction = sort;\n if (emptyLast) {\n actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {\n const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);\n\n const keys = Object.keys(sortingColumns);\n\n const withData = sortedData.filter((r) => keys.some((key) => !!r[key]));\n const withoutData = sortedData.filter((r) => keys.some((key) => !r[key]));\n\n return [...withData, ...withoutData];\n };\n }\n\n Object.keys(sortingColumns).forEach((sortingColumnKey) => {\n const realColumn = columns.find(\n (column) => column.property === sortingColumnKey,\n );\n if (!realColumn) return;\n const columnSorter =\n realColumn.sort ||\n function resolveValue(row) {\n const { property, sortBy } = realColumn;\n const value = row[sortBy || property];\n // Pick resolved value by convention\n const resolvedValue = get(row, `_${property}`, value);\n\n if (realColumn.type === 'DateTime') {\n return moment(resolvedValue);\n }\n\n return typeof resolvedValue === 'string'\n ? resolvedValue.toLowerCase()\n : resolvedValue;\n };\n\n const sortingColumn = sortingColumns[sortingColumnKey];\n\n columnIndexList[sortingColumn.position] = columnSorter;\n\n orderList[sortingColumn.position] = sortingColumn.direction;\n });\n\n const groups = {};\n const preserveData = {};\n data.forEach((c) => {\n preserveData[c.id] = { ...c };\n });\n\n rowsData.forEach((group) => {\n groups[group.id] = {\n children: actualSortFunction(\n group.children.map((c) => ({\n parentNode: preserveData[c.id].parentNode,\n data: c,\n ...c,\n })),\n columnIndexList,\n orderList,\n ), // sort internally\n };\n });\n\n const sorted = actualSortFunction(\n data.map((r) => ({\n ...r.data,\n ...r,\n })),\n columnIndexList,\n orderList,\n ); // sort global\n let ssortGlobal = [];\n sorted\n .filter((s) => !s.isGroup)\n .forEach((sr) => {\n if (groups[sr.parentNode.id]) {\n ssortGlobal = [\n ...ssortGlobal,\n preserveData[sr.parentNode.id],\n ...groups[sr.parentNode.id].children,\n ];\n delete groups[sr.parentNode.id];\n }\n });\n return ssortGlobal;\n};\n"],"names":["sorter","columns","sortingColumns","sort","emptyLast","data","Error","columnIndexList","Array","length","orderList","actualSortFunction","innerData","innerColumnIndexList","innerOrderList","sortedData","keys","Object","withData","filter","r","some","key","withoutData","forEach","sortingColumnKey","realColumn","find","column","property","columnSorter","resolveValue","row","sortBy","value","resolvedValue","get","type","moment","toLowerCase","sortingColumn","position","direction","sorterGroups","rowsData","groups","preserveData","c","id","group","children","map","parentNode","sorted","ssortGlobal","s","isGroup","sr"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortableState.js","sources":["../../../../src/plugins/sortable/useSortableState.tsx"],"sourcesContent":["import * as sortabular from 'sortabular/dist';\nimport { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { checkIfSortable } from './checkIfSortable';\n\nexport function useSortableState(grid) {\n const { onSort, sortingColumns: sortingColumnsProp, pagination } = grid.props;\n\n const [sortingColumns, setSortingColumns] = useDerivedStateFromProps(\n sortingColumnsProp,\n );\n\n const handleSort = selectedColumn => {\n // support for pagination\n const { composedRows = {}, props } = grid.getInstance();\n const { allRows, rows } = composedRows;\n const serverSidePagination =\n pagination &&\n composedRows.amount !== (composedRows.rows && composedRows.rows.length);\n if (\n props.serverSideData ||\n serverSidePagination ||\n checkIfSortable(selectedColumn, allRows || rows || composedRows)\n ) {\n setSortingColumns(prevSortingColumns => {\n const nextSortingColumns = sortabular.byColumn({\n sortingColumns: prevSortingColumns,\n sortingOrder: {\n FIRST: 'asc',\n asc: 'desc',\n desc: 'asc',\n },\n selectedColumn,\n });\n const { columns } = grid.getInstance();\n let columnSorted = columns.find(col => col.property === selectedColumn);\n columnSorted = {\n ...columnSorted,\n originalProperty: columnSorted.property,\n };\n onSort(nextSortingColumns, selectedColumn, columnSorted);\n return nextSortingColumns;\n });\n }\n };\n\n return {\n state: { sortingColumns },\n actions: {\n sort: handleSort,\n },\n };\n}\n"],"names":["useSortableState","grid","props","onSort","sortingColumnsProp","sortingColumns","pagination","useDerivedStateFromProps","setSortingColumns","handleSort","selectedColumn","getInstance","composedRows","allRows","rows","serverSidePagination","amount","length","serverSideData","checkIfSortable","prevSortingColumns","nextSortingColumns","sortabular","byColumn","sortingOrder","FIRST","asc","desc","columns","columnSorted","find","col","property","originalProperty","state","actions","sort"],"mappings":";;;;;;;;;AAIO,SAASA,gBAAT,CAA0BC,IAA1B,EAAgC;
|
|
1
|
+
{"version":3,"file":"useSortableState.js","sources":["../../../../src/plugins/sortable/useSortableState.tsx"],"sourcesContent":["import * as sortabular from 'sortabular/dist';\nimport { useDerivedStateFromProps } from '@elliemae/ds-utilities';\nimport { checkIfSortable } from './checkIfSortable';\n\nexport function useSortableState(grid) {\n const { onSort, sortingColumns: sortingColumnsProp, pagination } = grid.props;\n\n const [sortingColumns, setSortingColumns] = useDerivedStateFromProps(\n sortingColumnsProp,\n );\n\n const handleSort = selectedColumn => {\n // support for pagination\n const { composedRows = {}, props } = grid.getInstance();\n const { allRows, rows } = composedRows;\n const serverSidePagination =\n pagination &&\n composedRows.amount !== (composedRows.rows && composedRows.rows.length);\n if (\n props.serverSideData ||\n serverSidePagination ||\n checkIfSortable(selectedColumn, allRows || rows || composedRows)\n ) {\n setSortingColumns(prevSortingColumns => {\n const nextSortingColumns = sortabular.byColumn({\n sortingColumns: prevSortingColumns,\n sortingOrder: {\n FIRST: 'asc',\n asc: 'desc',\n desc: 'asc',\n },\n selectedColumn,\n });\n const { columns } = grid.getInstance();\n let columnSorted = columns.find(col => col.property === selectedColumn);\n columnSorted = {\n ...columnSorted,\n originalProperty: columnSorted.property,\n };\n onSort(nextSortingColumns, selectedColumn, columnSorted);\n return nextSortingColumns;\n });\n }\n };\n\n return {\n state: { sortingColumns },\n actions: {\n sort: handleSort,\n },\n };\n}\n"],"names":["useSortableState","grid","props","onSort","sortingColumnsProp","sortingColumns","pagination","useDerivedStateFromProps","setSortingColumns","handleSort","selectedColumn","getInstance","composedRows","allRows","rows","serverSidePagination","amount","length","serverSideData","checkIfSortable","prevSortingColumns","nextSortingColumns","sortabular","byColumn","sortingOrder","FIRST","asc","desc","columns","columnSorted","find","col","property","originalProperty","state","actions","sort"],"mappings":";;;;;;;;;AAIO,SAASA,gBAAT,CAA0BC,IAA1B,EAAgC;EACrC,kBAAmEA,IAAI,CAACC,KAAxE;MAAQC,MAAR,eAAQA,MAAR;MAAgCC,kBAAhC,eAAgBC,cAAhB;MAAoDC,UAApD,eAAoDA,UAApD;;EAEA,4BAA4CC,wBAAwB,CAClEH,kBADkE,CAApE;;MAAOC,cAAP;MAAuBG,iBAAvB;;EAIA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,cAAc,EAAI;;IAEnC,wBAAqCT,IAAI,CAACU,WAAL,EAArC;kDAAQC,YAAR;QAAQA,YAAR,sCAAuB,EAAvB;QAA2BV,KAA3B,qBAA2BA,KAA3B;;IACA,IAAQW,OAAR,GAA0BD,YAA1B,CAAQC,OAAR;QAAiBC,IAAjB,GAA0BF,YAA1B,CAAiBE,IAAjB;IACA,IAAMC,oBAAoB,GACxBT,UAAU,IACVM,YAAY,CAACI,MAAb,MAAyBJ,YAAY,CAACE,IAAb,IAAqBF,YAAY,CAACE,IAAb,CAAkBG,MAAhE,CAFF;;IAGA,IACEf,KAAK,CAACgB,cAAN,IACAH,oBADA,IAEAI,eAAe,CAACT,cAAD,EAAiBG,OAAO,IAAIC,IAAX,IAAmBF,YAApC,CAHjB,EAIE;MACAJ,iBAAiB,CAAC,UAAAY,kBAAkB,EAAI;QACtC,IAAMC,kBAAkB,GAAGC,UAAU,CAACC,QAAX,CAAoB;UAC7ClB,cAAc,EAAEe,kBAD6B;UAE7CI,YAAY,EAAE;YACZC,KAAK,EAAE,KADK;YAEZC,GAAG,EAAE,MAFO;YAGZC,IAAI,EAAE;WALqC;UAO7CjB,cAAc,EAAdA;SAPyB,CAA3B;;QASA,yBAAoBT,IAAI,CAACU,WAAL,EAApB;YAAQiB,OAAR,sBAAQA,OAAR;;QACA,IAAIC,YAAY,GAAGD,OAAO,CAACE,IAAR,CAAa,UAAAC,GAAG;UAAA,OAAIA,GAAG,CAACC,QAAJ,KAAiBtB,cAArB;SAAhB,CAAnB;QACAmB,YAAY,mCACPA,YADO;UAEVI,gBAAgB,EAAEJ,YAAY,CAACG;UAFjC;QAIA7B,MAAM,CAACkB,kBAAD,EAAqBX,cAArB,EAAqCmB,YAArC,CAAN;QACA,OAAOR,kBAAP;OAjBe,CAAjB;;GAZJ;;EAkCA,OAAO;IACLa,KAAK,EAAE;MAAE7B,cAAc,EAAdA;KADJ;IAEL8B,OAAO,EAAE;MACPC,IAAI,EAAE3B;;GAHV;AAMD;;;;"}
|