@guiexpert/table 1.0.2 → 1.0.5
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/esm2022/guiexpert-table.mjs +5 -0
- package/esm2022/index.mjs +140 -0
- package/esm2022/lib/table/action/action-id.type.mjs +20 -0
- package/esm2022/lib/table/action/on-action-triggered.if.mjs +2 -0
- package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +21 -0
- package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
- package/esm2022/lib/table/action/shortcut.service.mjs +114 -0
- package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +19 -0
- package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +2 -0
- package/esm2022/lib/table/checkbox/checkbox-model.mjs +50 -0
- package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +107 -0
- package/esm2022/lib/table/color/color-rgb.if.mjs +2 -0
- package/esm2022/lib/table/color/color-rgb.mjs +11 -0
- package/esm2022/lib/table/color/ge-css-color-util.mjs +26 -0
- package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +2 -0
- package/esm2022/lib/table/color/three-color-gradient-arg.mjs +17 -0
- package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +2 -0
- package/esm2022/lib/table/color/two-color-gradient-arg.mjs +13 -0
- package/esm2022/lib/table/css-vars.mjs +238 -0
- package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +2 -0
- package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +12 -0
- package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +2 -0
- package/esm2022/lib/table/data/chunk/request-chunk.mjs +22 -0
- package/esm2022/lib/table/data/common/aligns.mjs +19 -0
- package/esm2022/lib/table/data/common/area-map-factory.mjs +7 -0
- package/esm2022/lib/table/data/common/area-map.mjs +11 -0
- package/esm2022/lib/table/data/common/area-map.type.mjs +2 -0
- package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
- package/esm2022/lib/table/data/common/args-render-cell-div.mjs +2 -0
- package/esm2022/lib/table/data/common/boolean-function.mjs +3 -0
- package/esm2022/lib/table/data/common/cell-range.mjs +36 -0
- package/esm2022/lib/table/data/common/checkbox-column-def.mjs +13 -0
- package/esm2022/lib/table/data/common/checked-type.mjs +2 -0
- package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +9 -0
- package/esm2022/lib/table/data/common/event/ge-key-event.mjs +9 -0
- package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +11 -0
- package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +30 -0
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +2 -0
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +13 -0
- package/esm2022/lib/table/data/common/filter-function.mjs +2 -0
- package/esm2022/lib/table/data/common/get-t.mjs +2 -0
- package/esm2022/lib/table/data/common/index-and-px.mjs +9 -0
- package/esm2022/lib/table/data/common/size.if.mjs +2 -0
- package/esm2022/lib/table/data/common/size.mjs +9 -0
- package/esm2022/lib/table/data/common/sizes.mjs +33 -0
- package/esm2022/lib/table/data/common/sort-item.mjs +9 -0
- package/esm2022/lib/table/data/common/sort-state.type.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-arrow.type.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-row-if.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-row.mjs +19 -0
- package/esm2022/lib/table/data/common/value-label.if.mjs +2 -0
- package/esm2022/lib/table/data/common/value-label.mjs +9 -0
- package/esm2022/lib/table/data/div-scope.type.mjs +2 -0
- package/esm2022/lib/table/data/event/mouse-target-data.mjs +36 -0
- package/esm2022/lib/table/data/geo-data.mjs +15 -0
- package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/auto-restore-options.mjs +40 -0
- package/esm2022/lib/table/data/options/default-row-heights.if.mjs +2 -0
- package/esm2022/lib/table/data/options/default-row-heights.mjs +11 -0
- package/esm2022/lib/table/data/options/icon.if.mjs +2 -0
- package/esm2022/lib/table/data/options/icon.mjs +11 -0
- package/esm2022/lib/table/data/options/sorted-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/sorted-options.mjs +12 -0
- package/esm2022/lib/table/data/options/table-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/table-options.mjs +44 -0
- package/esm2022/lib/table/data/options/tree-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/tree-options.mjs +14 -0
- package/esm2022/lib/table/data/side-ident.type.mjs +2 -0
- package/esm2022/lib/table/data/table-model-and-options.if.mjs +2 -0
- package/esm2022/lib/table/data/table-model-and-options.mjs +9 -0
- package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +14 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +137 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +47 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +163 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +84 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +15 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +88 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +181 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +76 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +51 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +133 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +18 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +110 -0
- package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +52 -0
- package/esm2022/lib/table/data/tablemodel/padding.mjs +13 -0
- package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/table-model.mjs +308 -0
- package/esm2022/lib/table/ele-scope.mjs +199 -0
- package/esm2022/lib/table/event-adapter.mjs +17 -0
- package/esm2022/lib/table/event-listener.if.mjs +2 -0
- package/esm2022/lib/table/factory/table-factory.mjs +186 -0
- package/esm2022/lib/table/factory/tree-factory.mjs +32 -0
- package/esm2022/lib/table/focus/focus-model.if.mjs +2 -0
- package/esm2022/lib/table/focus/focus-model.mjs +33 -0
- package/esm2022/lib/table/focus/focus.type.mjs +2 -0
- package/esm2022/lib/table/input-handler.mjs +25 -0
- package/esm2022/lib/table/mouse-handler.mjs +196 -0
- package/esm2022/lib/table/render-scope.mjs +719 -0
- package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +8 -0
- package/esm2022/lib/table/renderer/cell-render.if.mjs +2 -0
- package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +47 -0
- package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
- package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +24 -0
- package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
- package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
- package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +12 -0
- package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
- package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +4 -0
- package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +2 -0
- package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
- package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +36 -0
- package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
- package/esm2022/lib/table/renderer/number-cell-renderer.mjs +21 -0
- package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +44 -0
- package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
- package/esm2022/lib/table/renderer/renderer.mjs +7 -0
- package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +27 -0
- package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +15 -0
- package/esm2022/lib/table/selection/selection-model.if.mjs +2 -0
- package/esm2022/lib/table/selection/selection-model.mjs +99 -0
- package/esm2022/lib/table/selection/selection-service.mjs +101 -0
- package/esm2022/lib/table/selection/selection.type.mjs +2 -0
- package/esm2022/lib/table/service/abstract-store-state.service.mjs +50 -0
- package/esm2022/lib/table/service/convenience-dom.service.mjs +405 -0
- package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +13 -0
- package/esm2022/lib/table/service/data/html-style.type.mjs +2 -0
- package/esm2022/lib/table/service/dom-service.if.mjs +2 -0
- package/esm2022/lib/table/service/ge-filter.service.mjs +98 -0
- package/esm2022/lib/table/service/simple-dom-service.mjs +34 -0
- package/esm2022/lib/table/service/sorter.service.mjs +27 -0
- package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
- package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
- package/esm2022/lib/table/service/store-state-sorting.service.mjs +29 -0
- package/esm2022/lib/table/service/tree-row.service.mjs +23 -0
- package/esm2022/lib/table/table-api.mjs +42 -0
- package/esm2022/lib/table/table-scope.mjs +364 -0
- package/{src/index.ts → index.d.ts} +4 -24
- package/lib/table/action/action-id.type.d.ts +2 -0
- package/{src/lib/table/action/on-action-triggered.if.ts → lib/table/action/on-action-triggered.if.d.ts} +1 -4
- package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
- package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
- package/lib/table/action/shortcut.service.d.ts +18 -0
- package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
- package/lib/table/checkbox/checkbox-model.d.ts +12 -0
- package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
- package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
- package/lib/table/color/color-rgb.d.ts +7 -0
- package/lib/table/color/color-rgb.if.d.ts +5 -0
- package/lib/table/color/ge-css-color-util.d.ts +7 -0
- package/lib/table/color/three-color-gradient-arg.d.ts +11 -0
- package/lib/table/color/three-color-gradient-arg.if.d.ts +9 -0
- package/lib/table/color/two-color-gradient-arg.d.ts +9 -0
- package/lib/table/color/two-color-gradient-arg.if.d.ts +7 -0
- package/lib/table/css-vars.d.ts +9 -0
- package/lib/table/data/chunk/chunk.data-event.d.ts +9 -0
- package/lib/table/data/chunk/chunk.data-event.if.d.ts +4 -0
- package/lib/table/data/chunk/request-chunk.d.ts +14 -0
- package/lib/table/data/chunk/request-chunk.if.d.ts +9 -0
- package/lib/table/data/common/aligns.d.ts +24 -0
- package/lib/table/data/common/area-map-factory.d.ts +5 -0
- package/lib/table/data/common/area-map.d.ts +7 -0
- package/lib/table/data/common/area-map.type.d.ts +5 -0
- package/{src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts → lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts} +10 -11
- package/lib/table/data/common/args-render-cell-div.d.ts +17 -0
- package/lib/table/data/common/boolean-function.d.ts +3 -0
- package/lib/table/data/common/cell-range.d.ts +19 -0
- package/lib/table/data/common/checkbox-column-def.d.ts +13 -0
- package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
- package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
- package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
- package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
- package/lib/table/data/common/event/input/table-cell-update-event.d.ts +9 -0
- package/{src/lib/table/data/common/event/input/table-cell-update-event.if.ts → lib/table/data/common/event/input/table-cell-update-event.if.d.ts} +4 -7
- package/lib/table/data/common/index-and-px.d.ts +5 -0
- package/lib/table/data/common/size.d.ts +6 -0
- package/lib/table/data/common/size.if.d.ts +4 -0
- package/lib/table/data/common/sizes.d.ts +32 -0
- package/lib/table/data/common/sort-item.d.ts +6 -0
- package/lib/table/data/common/tree-row-if.d.ts +10 -0
- package/lib/table/data/common/tree-row.d.ts +11 -0
- package/lib/table/data/common/value-label.d.ts +6 -0
- package/lib/table/data/common/value-label.if.d.ts +4 -0
- package/lib/table/data/div-scope.type.d.ts +7 -0
- package/lib/table/data/event/mouse-target-data.d.ts +15 -0
- package/lib/table/data/geo-data.d.ts +8 -0
- package/lib/table/data/options/auto-restore-options.d.ts +11 -0
- package/lib/table/data/options/auto-restore-options.if.d.ts +16 -0
- package/lib/table/data/options/default-row-heights.d.ts +7 -0
- package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
- package/lib/table/data/options/icon.d.ts +7 -0
- package/lib/table/data/options/icon.if.d.ts +5 -0
- package/lib/table/data/options/sorted-options.d.ts +8 -0
- package/{src/lib/table/data/options/sorted-options.if.ts → lib/table/data/options/sorted-options.if.d.ts} +3 -6
- package/lib/table/data/options/table-options.d.ts +41 -0
- package/lib/table/data/options/table-options.if.d.ts +42 -0
- package/lib/table/data/options/tree-options.d.ts +9 -0
- package/lib/table/data/options/tree-options.if.d.ts +7 -0
- package/lib/table/data/table-model-and-options.d.ts +8 -0
- package/{src/lib/table/data/table-model-and-options.if.ts → lib/table/data/table-model-and-options.if.d.ts} +2 -4
- package/{src/lib/table/data/tablemodel/area-ident.type.ts → lib/table/data/tablemodel/area-ident.type.d.ts} +1 -10
- package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +47 -0
- package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +19 -0
- package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +51 -0
- package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +41 -0
- package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
- package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +28 -0
- package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
- package/lib/table/data/tablemodel/areamodel/area-model.d.ts +37 -0
- package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +158 -0
- package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
- package/{src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts → lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts} +1 -1
- package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +21 -0
- package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +11 -0
- package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +9 -0
- package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +10 -0
- package/lib/table/data/tablemodel/column/column-def.d.ts +52 -0
- package/lib/table/data/tablemodel/column/column-def.if.d.ts +25 -0
- package/lib/table/data/tablemodel/padding.d.ts +7 -0
- package/lib/table/data/tablemodel/table-model.d.ts +88 -0
- package/lib/table/data/tablemodel/table-model.if.d.ts +56 -0
- package/lib/table/ele-scope.d.ts +37 -0
- package/lib/table/event-adapter.d.ts +12 -0
- package/lib/table/event-listener.if.d.ts +11 -0
- package/lib/table/factory/table-factory.d.ts +65 -0
- package/lib/table/factory/tree-factory.d.ts +6 -0
- package/lib/table/focus/focus-model.d.ts +15 -0
- package/lib/table/focus/focus-model.if.d.ts +8 -0
- package/{src/lib/table/focus/focus.type.ts → lib/table/focus/focus.type.d.ts} +0 -3
- package/lib/table/input-handler.d.ts +6 -0
- package/lib/table/mouse-handler.d.ts +25 -0
- package/lib/table/render-scope.d.ts +86 -0
- package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +9 -0
- package/{src/lib/table/renderer/cell-render.if.ts → lib/table/renderer/cell-render.if.d.ts} +1 -10
- package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +15 -0
- package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
- package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +8 -0
- package/{src/lib/table/renderer/edit/edit-cell-renderer.type.ts → lib/table/renderer/edit/edit-cell-renderer.type.d.ts} +0 -1
- package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -0
- package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +3 -0
- package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
- package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
- package/lib/table/renderer/progress-bar-cell-renderer.d.ts +15 -0
- package/lib/table/renderer/renderer.d.ts +5 -0
- package/lib/table/renderer/star-rating-cell-renderer.d.ts +13 -0
- package/lib/table/renderer/true-false-cell-renderer.d.ts +8 -0
- package/lib/table/selection/selection-model.d.ts +21 -0
- package/lib/table/selection/selection-model.if.d.ts +11 -0
- package/lib/table/selection/selection-service.d.ts +17 -0
- package/{src/lib/table/selection/selection.type.ts → lib/table/selection/selection.type.d.ts} +0 -3
- package/lib/table/service/abstract-store-state.service.d.ts +10 -0
- package/lib/table/service/convenience-dom.service.d.ts +46 -0
- package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
- package/lib/table/service/data/html-style.type.d.ts +3 -0
- package/lib/table/service/dom-service.if.d.ts +9 -0
- package/lib/table/service/ge-filter.service.d.ts +5 -0
- package/lib/table/service/simple-dom-service.d.ts +10 -0
- package/lib/table/service/sorter.service.d.ts +3 -0
- package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
- package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
- package/lib/table/service/store-state-sorting.service.d.ts +11 -0
- package/lib/table/service/tree-row.service.d.ts +5 -0
- package/lib/table/table-api.d.ts +18 -0
- package/lib/table/table-scope.d.ts +56 -0
- package/package.json +17 -10
- package/.eslintrc.json +0 -42
- package/LICENSE +0 -35
- package/README.md +0 -102
- package/jest.config.ts +0 -18
- package/ng-package.json +0 -7
- package/project.json +0 -47
- package/src/lib/table/action/action-id.type.ts +0 -24
- package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +0 -29
- package/src/lib/table/action/shortcut-actionid-mapping.type.ts +0 -3
- package/src/lib/table/action/shortcut.service.ts +0 -134
- package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +0 -27
- package/src/lib/table/checkbox/checkbox-model.if.ts +0 -16
- package/src/lib/table/checkbox/checkbox-model.ts +0 -62
- package/src/lib/table/checkbox/tree-checkbox-model.ts +0 -123
- package/src/lib/table/color/color-rgb.if.ts +0 -7
- package/src/lib/table/color/color-rgb.ts +0 -10
- package/src/lib/table/color/ge-css-color-util.ts +0 -43
- package/src/lib/table/color/three-color-gradient-arg.if.ts +0 -10
- package/src/lib/table/color/three-color-gradient-arg.ts +0 -14
- package/src/lib/table/color/two-color-gradient-arg.if.ts +0 -8
- package/src/lib/table/color/two-color-gradient-arg.ts +0 -12
- package/src/lib/table/css-vars.ts +0 -243
- package/src/lib/table/data/common/aligns.ts +0 -19
- package/src/lib/table/data/common/area-map-factory.ts +0 -14
- package/src/lib/table/data/common/area-map.ts +0 -11
- package/src/lib/table/data/common/area-map.type.ts +0 -5
- package/src/lib/table/data/common/args-render-cell-div.ts +0 -18
- package/src/lib/table/data/common/boolean-function.ts +0 -4
- package/src/lib/table/data/common/cell-range.ts +0 -57
- package/src/lib/table/data/common/checkbox-column-def.ts +0 -25
- package/src/lib/table/data/common/event/ge-cell-indices.ts +0 -9
- package/src/lib/table/data/common/event/ge-key-event.ts +0 -10
- package/src/lib/table/data/common/event/ge-model-change-event.ts +0 -13
- package/src/lib/table/data/common/event/ge-mouse-event.ts +0 -38
- package/src/lib/table/data/common/event/input/table-cell-update-event.ts +0 -14
- package/src/lib/table/data/common/index-and-px.ts +0 -9
- package/src/lib/table/data/common/size.if.ts +0 -4
- package/src/lib/table/data/common/size.ts +0 -9
- package/src/lib/table/data/common/sizes.ts +0 -35
- package/src/lib/table/data/common/sort-item.ts +0 -11
- package/src/lib/table/data/common/tree-row-if.ts +0 -11
- package/src/lib/table/data/common/tree-row.ts +0 -16
- package/src/lib/table/data/common/value-label.if.ts +0 -6
- package/src/lib/table/data/common/value-label.ts +0 -13
- package/src/lib/table/data/div-scope.type.ts +0 -5
- package/src/lib/table/data/event/mouse-target-data.ts +0 -45
- package/src/lib/table/data/geo-data.ts +0 -13
- package/src/lib/table/data/options/auto-restore-options.if.ts +0 -21
- package/src/lib/table/data/options/auto-restore-options.ts +0 -50
- package/src/lib/table/data/options/default-row-heights.if.ts +0 -5
- package/src/lib/table/data/options/default-row-heights.ts +0 -10
- package/src/lib/table/data/options/icon.if.ts +0 -7
- package/src/lib/table/data/options/icon.ts +0 -10
- package/src/lib/table/data/options/sorted-options.ts +0 -15
- package/src/lib/table/data/options/table-options.if.ts +0 -54
- package/src/lib/table/data/options/table-options.ts +0 -66
- package/src/lib/table/data/options/tree-options.if.ts +0 -10
- package/src/lib/table/data/options/tree-options.ts +0 -32
- package/src/lib/table/data/table-model-and-options.ts +0 -13
- package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +0 -183
- package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +0 -59
- package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +0 -210
- package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +0 -120
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +0 -23
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +0 -105
- package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +0 -215
- package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +0 -186
- package/src/lib/table/data/tablemodel/areamodel/area-model.ts +0 -110
- package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +0 -61
- package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +0 -167
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +0 -12
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +0 -18
- package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +0 -148
- package/src/lib/table/data/tablemodel/column/column-def.if.ts +0 -28
- package/src/lib/table/data/tablemodel/column/column-def.ts +0 -104
- package/src/lib/table/data/tablemodel/padding.ts +0 -9
- package/src/lib/table/data/tablemodel/table-model.if.ts +0 -90
- package/src/lib/table/data/tablemodel/table-model.ts +0 -352
- package/src/lib/table/ele-scope.ts +0 -283
- package/src/lib/table/event-adapter.ts +0 -28
- package/src/lib/table/event-listener.if.ts +0 -19
- package/src/lib/table/factory/table-factory.ts +0 -378
- package/src/lib/table/factory/tree-factory.ts +0 -51
- package/src/lib/table/focus/focus-model.if.ts +0 -14
- package/src/lib/table/focus/focus-model.ts +0 -48
- package/src/lib/table/input-handler.ts +0 -34
- package/src/lib/table/mouse-handler.ts +0 -236
- package/src/lib/table/render-scope.ts +0 -936
- package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +0 -27
- package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +0 -63
- package/src/lib/table/renderer/checkbox-cell-renderer.ts +0 -39
- package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +0 -39
- package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +0 -25
- package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +0 -24
- package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +0 -28
- package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +0 -6
- package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +0 -7
- package/src/lib/table/renderer/edit/input-cell-renderer.ts +0 -41
- package/src/lib/table/renderer/edit/select-cell-renderer.ts +0 -60
- package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +0 -26
- package/src/lib/table/renderer/number-cell-renderer.ts +0 -38
- package/src/lib/table/renderer/progress-bar-cell-renderer.ts +0 -60
- package/src/lib/table/renderer/renderer.ts +0 -11
- package/src/lib/table/renderer/star-rating-cell-renderer.ts +0 -45
- package/src/lib/table/renderer/true-false-cell-renderer.ts +0 -28
- package/src/lib/table/selection/selection-model.if.ts +0 -20
- package/src/lib/table/selection/selection-model.ts +0 -109
- package/src/lib/table/selection/selection-service.ts +0 -120
- package/src/lib/table/service/abstract-store-state.service.ts +0 -105
- package/src/lib/table/service/convenience-dom.service.ts +0 -548
- package/src/lib/table/service/data/collapsed-expanded.data.ts +0 -11
- package/src/lib/table/service/data/html-style.type.ts +0 -1
- package/src/lib/table/service/dom-service.if.ts +0 -16
- package/src/lib/table/service/ge-filter.service.ts +0 -123
- package/src/lib/table/service/simple-dom-service.ts +0 -46
- package/src/lib/table/service/sorter.service.ts +0 -30
- package/src/lib/table/service/store-state-collapsed-expand.service.ts +0 -76
- package/src/lib/table/service/store-state-scroll-pos.service.ts +0 -40
- package/src/lib/table/service/store-state-sorting.service.ts +0 -41
- package/src/lib/table/service/tree-row.service.ts +0 -31
- package/src/lib/table/table-api.ts +0 -61
- package/src/lib/table/table-scope.ts +0 -433
- package/src/test-setup.ts +0 -1
- package/tsconfig.json +0 -22
- package/tsconfig.lib.json +0 -19
- package/tsconfig.lib.prod.json +0 -7
- package/tsconfig.spec.json +0 -20
- /package/{src/lib/table/data/common/checked-type.ts → lib/table/data/common/checked-type.d.ts} +0 -0
- /package/{src/lib/table/data/common/filter-function.ts → lib/table/data/common/filter-function.d.ts} +0 -0
- /package/{src/lib/table/data/common/get-t.ts → lib/table/data/common/get-t.d.ts} +0 -0
- /package/{src/lib/table/data/common/sort-state.type.ts → lib/table/data/common/sort-state.type.d.ts} +0 -0
- /package/{src/lib/table/data/common/tree-arrow.type.ts → lib/table/data/common/tree-arrow.type.d.ts} +0 -0
- /package/{src/lib/table/data/side-ident.type.ts → lib/table/data/side-ident.type.d.ts} +0 -0
- /package/{src/lib/table/renderer/renderer-cleanup-fn.type.ts → lib/table/renderer/renderer-cleanup-fn.type.d.ts} +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CellRange } from "../data/common/cell-range";
|
|
2
|
+
export class SelectionService {
|
|
3
|
+
tableScope;
|
|
4
|
+
getSelectionModel;
|
|
5
|
+
getFocusModel;
|
|
6
|
+
previousEvt;
|
|
7
|
+
constructor(tableScope) {
|
|
8
|
+
this.tableScope = tableScope;
|
|
9
|
+
if (this.tableScope.tableOptions?.getSelectionModel) {
|
|
10
|
+
this.getSelectionModel = this.tableScope.tableOptions.getSelectionModel;
|
|
11
|
+
}
|
|
12
|
+
if (this.tableScope.tableOptions?.getFocusModel) {
|
|
13
|
+
this.getFocusModel = this.tableScope.tableOptions.getFocusModel;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
onMouseClicked(evt, _previousEvt) {
|
|
17
|
+
let dirty = false;
|
|
18
|
+
let deletePreviousEvent = false;
|
|
19
|
+
if (this.getSelectionModel && this.getFocusModel) {
|
|
20
|
+
const sm = this.getSelectionModel();
|
|
21
|
+
const fm = this.getFocusModel();
|
|
22
|
+
if (sm && fm) {
|
|
23
|
+
// Focus:
|
|
24
|
+
if (!fm.hasFocus(evt.rowIndex, evt.columnIndex)) {
|
|
25
|
+
fm.setFocus(evt.rowIndex, evt.columnIndex);
|
|
26
|
+
dirty = true;
|
|
27
|
+
}
|
|
28
|
+
// Selection:
|
|
29
|
+
if (!evt.originalEvent?.shiftKey) {
|
|
30
|
+
if (sm.hasSelection()) {
|
|
31
|
+
sm.clear();
|
|
32
|
+
dirty = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (evt.originalEvent?.shiftKey && this.previousEvt) {
|
|
36
|
+
sm.addSelection(this.createRangeByEvents(evt, this.previousEvt));
|
|
37
|
+
deletePreviousEvent = true;
|
|
38
|
+
dirty = true;
|
|
39
|
+
}
|
|
40
|
+
else if (evt.originalEvent?.ctrlKey || evt.originalEvent?.metaKey) {
|
|
41
|
+
sm.addSelection(CellRange.singleCell(evt.rowIndex, evt.columnIndex));
|
|
42
|
+
deletePreviousEvent = true;
|
|
43
|
+
dirty = true;
|
|
44
|
+
}
|
|
45
|
+
else if (evt.originalEvent?.altKey && (evt.originalEvent?.ctrlKey || evt.originalEvent?.metaKey)) {
|
|
46
|
+
sm.removeSelection(CellRange.singleCell(evt.rowIndex, evt.columnIndex));
|
|
47
|
+
deletePreviousEvent = true;
|
|
48
|
+
dirty = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (deletePreviousEvent) {
|
|
53
|
+
this.previousEvt = undefined;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.previousEvt = evt?.clone();
|
|
57
|
+
}
|
|
58
|
+
return dirty;
|
|
59
|
+
}
|
|
60
|
+
onActionTriggered(actionId) {
|
|
61
|
+
if (this.getSelectionModel && this.getFocusModel) {
|
|
62
|
+
const sm = this.getSelectionModel();
|
|
63
|
+
const fm = this.getFocusModel();
|
|
64
|
+
if (sm && fm) {
|
|
65
|
+
if (actionId === "SELECT_ALL") {
|
|
66
|
+
sm.selectAll();
|
|
67
|
+
this.tableScope.repaint();
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
if (actionId === "DESELECT_ALL") {
|
|
71
|
+
sm.clear();
|
|
72
|
+
this.tableScope.repaint();
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
if (actionId === "TOGGLE_SELECTION") {
|
|
76
|
+
const [row, col] = fm.getFocus();
|
|
77
|
+
sm.togglePoint(row, col);
|
|
78
|
+
this.tableScope.repaint();
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
createRangeByEvents(evt, previousEvt) {
|
|
86
|
+
if (!previousEvt) {
|
|
87
|
+
previousEvt = evt;
|
|
88
|
+
}
|
|
89
|
+
const r1 = Math.min(evt.rowIndex, previousEvt?.rowIndex);
|
|
90
|
+
const r2 = Math.max(evt.rowIndex, previousEvt?.rowIndex);
|
|
91
|
+
const c1 = Math.min(evt.columnIndex, previousEvt?.columnIndex);
|
|
92
|
+
const c2 = Math.max(evt.columnIndex, previousEvt?.columnIndex);
|
|
93
|
+
return CellRange.create({
|
|
94
|
+
rowIndex1: r1,
|
|
95
|
+
columnIndex1: c1,
|
|
96
|
+
rowIndex2: r2,
|
|
97
|
+
columnIndex2: c2
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvc2VsZWN0aW9uL3NlbGVjdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUt0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUU47SUFOWCxpQkFBaUIsQ0FBMEI7SUFDM0MsYUFBYSxDQUFzQjtJQUNuQyxXQUFXLENBQWdCO0lBR3JDLFlBQ3FCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFFekMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRTtZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7U0FDekU7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRTtZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFHRCxjQUFjLENBQUMsR0FBaUIsRUFBRSxZQUFzQztRQUN0RSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUVaLFNBQVM7Z0JBQ1QsSUFBSSxDQUFD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QUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR08sbUJBQW1CLENBQUMsR0FBaUIsRUFBRSxXQUEwQjtRQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDbkI7UUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VNb3VzZUV2ZW50IH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBUYWJsZVNjb3BlIH0gZnJvbSBcIi4uL3RhYmxlLXNjb3BlXCI7XG5pbXBvcnQgeyBHZXRUIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2dldC10XCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbElmIH0gZnJvbSBcIi4vc2VsZWN0aW9uLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBGb2N1c01vZGVsSWYgfSBmcm9tIFwiLi4vZm9jdXMvZm9jdXMtbW9kZWwuaWZcIjtcbmltcG9ydCB7IENlbGxSYW5nZSB9IGZyb20gXCIuLi9kYXRhL2NvbW1vbi9jZWxsLXJhbmdlXCI7XG5pbXBvcnQgeyBPbkFjdGlvblRyaWdnZXJlZElmIH0gZnJvbSBcIi4uL2FjdGlvbi9vbi1hY3Rpb24tdHJpZ2dlcmVkLmlmXCI7XG5pbXBvcnQgeyBBY3Rpb25JZCB9IGZyb20gXCIuLi9hY3Rpb24vYWN0aW9uLWlkLnR5cGVcIjtcblxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uQWN0aW9uVHJpZ2dlcmVkSWYge1xuXG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25Nb2RlbD86IEdldFQ8U2VsZWN0aW9uTW9kZWxJZj47XG4gIHByb3RlY3RlZCBnZXRGb2N1c01vZGVsPzogR2V0VDxGb2N1c01vZGVsSWY+O1xuICBwcm90ZWN0ZWQgcHJldmlvdXNFdnQ/OiBHZU1vdXNlRXZlbnQ7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFibGVTY29wZTogVGFibGVTY29wZVxuICApIHtcbiAgICBpZiAodGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucz8uZ2V0U2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgIHRoaXMuZ2V0U2VsZWN0aW9uTW9kZWwgPSB0aGlzLnRhYmxlU2NvcGUudGFibGVPcHRpb25zLmdldFNlbGVjdGlvbk1vZGVsO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucz8uZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgdGhpcy5nZXRGb2N1c01vZGVsID0gdGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucy5nZXRGb2N1c01vZGVsO1xuICAgIH1cbiAgfVxuXG5cbiAgb25Nb3VzZUNsaWNrZWQoZXZ0OiBHZU1vdXNlRXZlbnQsIF9wcmV2aW91c0V2dDogR2VNb3VzZUV2ZW50IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgbGV0IGRpcnR5ID0gZmFsc2U7XG4gICAgbGV0IGRlbGV0ZVByZXZpb3VzRXZlbnQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmdldFNlbGVjdGlvbk1vZGVsICYmIHRoaXMuZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgY29uc3Qgc20gPSB0aGlzLmdldFNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICBjb25zdCBmbSA9IHRoaXMuZ2V0Rm9jdXNNb2RlbCgpO1xuICAgICAgaWYgKHNtICYmIGZtKSB7XG5cbiAgICAgICAgLy8gRm9jdXM6XG4gICAgICAgIGlmICghZm0uaGFzRm9jdXMoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgICAgZm0uc2V0Rm9jdXMoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpO1xuICAgICAgICAgIGRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlbGVjdGlvbjpcbiAgICAgICAgaWYgKCFldnQub3JpZ2luYWxFdmVudD8uc2hpZnRLZXkpIHtcbiAgICAgICAgICBpZiAoc20uaGFzU2VsZWN0aW9uKCkpIHtcbiAgICAgICAgICAgIHNtLmNsZWFyKCk7XG4gICAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChldnQub3JpZ2luYWxFdmVudD8uc2hpZnRLZXkgJiYgdGhpcy5wcmV2aW91c0V2dCkge1xuICAgICAgICAgIHNtLmFkZFNlbGVjdGlvbih0aGlzLmNyZWF0ZVJhbmdlQnlFdmVudHMoZXZ0LCB0aGlzLnByZXZpb3VzRXZ0KSk7XG4gICAgICAgICAgZGVsZXRlUHJldmlvdXNFdmVudCA9IHRydWU7XG4gICAgICAgICAgZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZXZ0Lm9yaWdpbmFsRXZlbnQ/LmN0cmxLZXkgfHwgZXZ0Lm9yaWdpbmFsRXZlbnQ/Lm1ldGFLZXkpIHtcbiAgICAgICAgICBzbS5hZGRTZWxlY3Rpb24oQ2VsbFJhbmdlLnNpbmdsZUNlbGwoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKTtcbiAgICAgICAgICBkZWxldGVQcmV2aW91c0V2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICBkaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIGlmIChldnQub3JpZ2luYWxFdmVudD8uYWx0S2V5ICYmIChldnQub3JpZ2luYWxFdmVudD8uY3RybEtleSB8fCBldnQub3JpZ2luYWxFdmVudD8ubWV0YUtleSkpIHtcbiAgICAgICAgICBzbS5yZW1vdmVTZWxlY3Rpb24oQ2VsbFJhbmdlLnNpbmdsZUNlbGwoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKTtcbiAgICAgICAgICBkZWxldGVQcmV2aW91c0V2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlbGV0ZVByZXZpb3VzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJldmlvdXNFdnQgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlvdXNFdnQgPSBldnQ/LmNsb25lKCk7XG4gICAgfVxuICAgIHJldHVybiBkaXJ0eTtcbiAgfVxuXG4gIG9uQWN0aW9uVHJpZ2dlcmVkKGFjdGlvbklkOiBBY3Rpb25JZCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldFNlbGVjdGlvbk1vZGVsICYmIHRoaXMuZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgY29uc3Qgc20gPSB0aGlzLmdldFNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICBjb25zdCBmbSA9IHRoaXMuZ2V0Rm9jdXNNb2RlbCgpO1xuICAgICAgaWYgKHNtICYmIGZtKSB7XG4gICAgICAgIGlmIChhY3Rpb25JZCA9PT0gXCJTRUxFQ1RfQUxMXCIpIHtcbiAgICAgICAgICBzbS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLnRhYmxlU2NvcGUucmVwYWludCgpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25JZCA9PT0gXCJERVNFTEVDVF9BTExcIikge1xuICAgICAgICAgIHNtLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy50YWJsZVNjb3BlLnJlcGFpbnQoKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uSWQgPT09IFwiVE9HR0xFX1NFTEVDVElPTlwiKSB7XG4gICAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IGZtLmdldEZvY3VzKCk7XG4gICAgICAgICAgc20udG9nZ2xlUG9pbnQocm93LCBjb2wpO1xuICAgICAgICAgIHRoaXMudGFibGVTY29wZS5yZXBhaW50KCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuICBwcml2YXRlIGNyZWF0ZVJhbmdlQnlFdmVudHMoZXZ0OiBHZU1vdXNlRXZlbnQsIHByZXZpb3VzRXZ0PzogR2VNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCFwcmV2aW91c0V2dCkge1xuICAgICAgcHJldmlvdXNFdnQgPSBldnQ7XG4gICAgfVxuICAgIGNvbnN0IHIxID0gTWF0aC5taW4oZXZ0LnJvd0luZGV4LCBwcmV2aW91c0V2dD8ucm93SW5kZXgpO1xuICAgIGNvbnN0IHIyID0gTWF0aC5tYXgoZXZ0LnJvd0luZGV4LCBwcmV2aW91c0V2dD8ucm93SW5kZXgpO1xuICAgIGNvbnN0IGMxID0gTWF0aC5taW4oZXZ0LmNvbHVtbkluZGV4LCBwcmV2aW91c0V2dD8uY29sdW1uSW5kZXgpO1xuICAgIGNvbnN0IGMyID0gTWF0aC5tYXgoZXZ0LmNvbHVtbkluZGV4LCBwcmV2aW91c0V2dD8uY29sdW1uSW5kZXgpO1xuICAgIHJldHVybiBDZWxsUmFuZ2UuY3JlYXRlKHtcbiAgICAgIHJvd0luZGV4MTogcjEsXG4gICAgICBjb2x1bW5JbmRleDE6IGMxLFxuICAgICAgcm93SW5kZXgyOiByMixcbiAgICAgIGNvbHVtbkluZGV4MjogYzJcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvc2VsZWN0aW9uL3NlbGVjdGlvbi50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTZWxlY3Rpb25UeXBlID0gXCJub25lXCIgfCBcImNlbGxcIiB8IFwicm93XCIgfCBcImNvbHVtblwiIHwgXCJyYW5nZVwiO1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uTW9kZSA9IFwic2luZ2xlXCIgfCBcIm11bHRpXCI7XG5cblxuXG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export class AbstractStoreStateService {
|
|
2
|
+
getStorageKeyFn;
|
|
3
|
+
constructor(fn) {
|
|
4
|
+
this.getStorageKeyFn = fn;
|
|
5
|
+
}
|
|
6
|
+
autoConvertMapToObject(item) {
|
|
7
|
+
const obj = {};
|
|
8
|
+
if (item instanceof Map) {
|
|
9
|
+
const map = item;
|
|
10
|
+
for (const item of [...map]) {
|
|
11
|
+
const [key, value] = item;
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
obj[key] = value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return obj;
|
|
17
|
+
}
|
|
18
|
+
checkAndPersistItem(keySuffix, item) {
|
|
19
|
+
const fn = this.getStorageKeyFn;
|
|
20
|
+
if (fn) {
|
|
21
|
+
const key = fn();
|
|
22
|
+
if (key) {
|
|
23
|
+
const subKey = key + keySuffix;
|
|
24
|
+
if ((item + "").includes("Map")) {
|
|
25
|
+
const obj = this.autoConvertMapToObject(item);
|
|
26
|
+
this.persistItem(subKey, obj);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.persistItem(subKey, item);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
persistItem(subKey, item) {
|
|
35
|
+
if (item) {
|
|
36
|
+
localStorage.setItem(subKey, JSON.stringify(item));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
localStorage.removeItem(subKey);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
loadFromLocalStorage(subKey) {
|
|
43
|
+
const item = localStorage.getItem(subKey);
|
|
44
|
+
if (item) {
|
|
45
|
+
return JSON.parse(item);
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc3RvcmUtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9zZXJ2aWNlL2Fic3RyYWN0LXN0b3JlLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQix5QkFBeUI7SUFHbkMsZUFBZSxDQUErQjtJQUd4RCxZQUFZLEVBQStCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFTO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUF3QixDQUFDO1lBRXJDLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQ0osR0FBRyxFQUNILEtBQUssQ0FDTixHQUFHLElBQUksQ0FBQztnQkFDVCxhQUFhO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDbEI7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQU1TLG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQy9CO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNoQzthQUVGO1NBQ0Y7SUFDSCxDQUFDO0lBRVMsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFxQjtRQUN6RCxJQUFJLElBQUksRUFBRTtZQUNSLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFUyxvQkFBb0IsQ0FBSSxNQUFjO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7U0FDOUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0F1Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRTdG9yYWdlS2V5Rm4gfSBmcm9tIFwiLi4vZGF0YS9vcHRpb25zL2F1dG8tcmVzdG9yZS1vcHRpb25zLmlmXCI7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3RvcmVTdGF0ZVNlcnZpY2Uge1xuXG5cbiAgcHJvdGVjdGVkIGdldFN0b3JhZ2VLZXlGbj86IHVuZGVmaW5lZCB8IEdldFN0b3JhZ2VLZXlGbjtcblxuXG4gIGNvbnN0cnVjdG9yKGZuOiBHZXRTdG9yYWdlS2V5Rm4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmdldFN0b3JhZ2VLZXlGbiA9IGZuO1xuICB9XG5cbiAgYXV0b0NvbnZlcnRNYXBUb09iamVjdChpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgY29uc3QgbWFwID0gaXRlbSBhcyBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgWy4uLm1hcF0pIHtcbiAgICAgICAgY29uc3QgW1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICBdID0gaXRlbTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gYWJzdHJhY3QgZ2V0U3ViS2V5KCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBjaGVja0FuZFBlcnNpc3RJdGVtKGtleVN1ZmZpeDogc3RyaW5nLCBpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZ2V0U3RvcmFnZUtleUZuO1xuICAgIGlmIChmbikge1xuICAgICAgY29uc3Qga2V5ID0gZm4oKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3Qgc3ViS2V5ID0ga2V5ICsga2V5U3VmZml4O1xuICAgICAgICBpZiAoKGl0ZW0gKyBcIlwiKS5pbmNsdWRlcyhcIk1hcFwiKSkge1xuICAgICAgICAgIGNvbnN0IG9iaiA9IHRoaXMuYXV0b0NvbnZlcnRNYXBUb09iamVjdChpdGVtKTtcbiAgICAgICAgICB0aGlzLnBlcnNpc3RJdGVtKHN1YktleSwgb2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBlcnNpc3RJdGVtKHN1YktleSwgaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwZXJzaXN0SXRlbShzdWJLZXk6IHN0cmluZywgaXRlbTogc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN1YktleSwgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzdWJLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkRnJvbUxvY2FsU3RvcmFnZTxVPihzdWJLZXk6IHN0cmluZyk6IFUgfCBudWxsIHtcbiAgICBjb25zdCBpdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3ViS2V5KTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoaXRlbSkgYXMgVTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBwcml2YXRlIGxvYWRJdGVtcygpIHtcbiAgLy8gICBjb25zdCBmbiA9IHRoaXMuZ2V0U3RvcmFnZUtleUZuO1xuICAvLyAgIGlmIChmbikge1xuICAvLyAgICAgY29uc3Qga2V5ID0gZm4oKTtcbiAgLy8gICAgIGlmIChrZXkpIHtcbiAgLy8gICAgICAgLy8gQSBtYWluIGtleSBpcyBnaXZlbiBieSBmdW5jdGlvbiBmcm9tIG9wdGlvbnNcbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5ID0ga2V5ICsgdGhpcy5DSEVDS0VEX1NUQVRFO1xuICAvLyAgICAgICBjb25zdCBhcnIgPSB0aGlzLmxvYWRGcm9tTG9jYWxTdG9yYWdlPEFycmF5PHN0cmluZyB8IG51bWJlcj4+KHN1YktleSk7XG4gIC8vICAgICAgIGlmIChhcnIpIHtcbiAgLy8gICAgICAgICB0aGlzLmNoZWNrZWRTdGF0ZUlkcy5sZW5ndGggPSAwO1xuICAvLyAgICAgICAgIGFyci5mb3JFYWNoKGEgPT4gdGhpcy5jaGVja2VkU3RhdGVJZHMucHVzaChhKSk7XG4gIC8vICAgICAgIH1cbiAgLy9cbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5MiA9IGtleSArIHRoaXMuQ09MTEFQU0VEX0VYUEFOREVEX1NUQVRFO1xuICAvLyAgICAgICBjb25zdCBkYXRhID0gdGhpcy5sb2FkRnJvbUxvY2FsU3RvcmFnZTxDb2xsYXBzZWRFeHBhbmRlZERhdGE+KHN1YktleTIpO1xuICAvLyAgICAgICBpZiAoZGF0YSkge1xuICAvLyAgICAgICAgIHRoaXMuY29sbGFwc2VkRXhwYW5kZWRTdGF0ZSA9IGRhdGE7XG4gIC8vICAgICAgIH1cbiAgLy9cbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5MyA9IGtleSArIHRoaXMuU0VMRUNURURfU1RBVEU7XG4gIC8vICAgICAgIGNvbnN0IGFycjMgPSB0aGlzLmxvYWRGcm9tTG9jYWxTdG9yYWdlPG9iamVjdD4oc3ViS2V5Myk7XG4gIC8vICAgICAgIGlmIChhcnIzKSB7XG4gIC8vICAgICAgICAgY29uc3QgbWFwOiBNYXA8c3RyaW5nIHwgbnVtYmVyLCBzdHJpbmdbXT4gPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGFycjMpKTtcbiAgLy8gICAgICAgICBpZiAobWFwKSB7XG4gIC8vICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhdGVJZHMuY2xlYXIoKTtcbiAgLy8gICAgICAgICAgIG1hcC5mb3JFYWNoKChjb2wsIGspID0+IHRoaXMuc2VsZWN0ZWRTdGF0ZUlkcy5zZXQoaywgY29sKSk7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vXG4gIC8vICAgICAgIGNvbnN0IHN1YktleTQgPSBrZXkgKyB0aGlzLlNDUk9MTF9TVEFURTtcbiAgLy8gICAgICAgbGV0IHNjcm9sbE9mZnNldCA9IHRoaXMubG9hZEZyb21Mb2NhbFN0b3JhZ2U8W251bWJlciwgbnVtYmVyXT4oc3ViS2V5NCk7XG4gIC8vICAgICAgIHRoaXMuc2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0ID8gc2Nyb2xsT2Zmc2V0IDogWzAsIDBdO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG5cbn1cbiJdfQ==
|