@revolist/revogrid 3.6.7 → 3.6.8
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/custom-element/_baseIteratee.js +3 -1
- package/custom-element/_baseIteratee.js.map +1 -0
- package/custom-element/columnService.js +6 -4
- package/custom-element/columnService.js.map +1 -0
- package/custom-element/consts.js +3 -1
- package/custom-element/consts.js.map +1 -0
- package/custom-element/data.store.js +55 -33
- package/custom-element/data.store.js.map +1 -0
- package/custom-element/debounce.js +3 -1
- package/custom-element/debounce.js.map +1 -0
- package/custom-element/dimension.helpers.js +3 -1
- package/custom-element/dimension.helpers.js.map +1 -0
- package/custom-element/each.js +2 -0
- package/custom-element/each.js.map +1 -0
- package/custom-element/filter.button.js +2 -0
- package/custom-element/filter.button.js.map +1 -0
- package/custom-element/identity.js +2 -0
- package/custom-element/identity.js.map +1 -0
- package/custom-element/index.d.ts +9 -16
- package/custom-element/index.js +4 -15
- package/custom-element/index.js.map +1 -0
- package/custom-element/isSymbol.js +3 -1
- package/custom-element/isSymbol.js.map +1 -0
- package/custom-element/keys.js +3 -1
- package/custom-element/keys.js.map +1 -0
- package/custom-element/localScrollService.js +2 -0
- package/custom-element/localScrollService.js.map +1 -0
- package/custom-element/resize-observer.js +2 -0
- package/custom-element/resize-observer.js.map +1 -0
- package/custom-element/revo-grid.js +29 -154
- package/custom-element/revo-grid.js.map +1 -0
- package/custom-element/revogr-clipboard.js +4 -4
- package/custom-element/revogr-clipboard.js.map +1 -0
- package/custom-element/revogr-data.js +2 -0
- package/custom-element/revogr-data.js.map +1 -0
- package/custom-element/revogr-data2.js +14 -3
- package/custom-element/revogr-data2.js.map +1 -0
- package/custom-element/revogr-edit.js +2 -0
- package/custom-element/revogr-edit.js.map +1 -0
- package/custom-element/revogr-edit2.js +7 -3
- package/custom-element/revogr-edit2.js.map +1 -0
- package/custom-element/revogr-filter-panel.js +10 -6
- package/custom-element/revogr-filter-panel.js.map +1 -0
- package/custom-element/revogr-focus.js +2 -0
- package/custom-element/revogr-focus.js.map +1 -0
- package/custom-element/revogr-focus2.js +8 -2
- package/custom-element/revogr-focus2.js.map +1 -0
- package/custom-element/revogr-header.js +2 -0
- package/custom-element/revogr-header.js.map +1 -0
- package/custom-element/revogr-header2.js +11 -3
- package/custom-element/revogr-header2.js.map +1 -0
- package/custom-element/revogr-order-editor.js +2 -0
- package/custom-element/revogr-order-editor.js.map +1 -0
- package/custom-element/revogr-order-editor2.js +8 -3
- package/custom-element/revogr-order-editor2.js.map +1 -0
- package/custom-element/revogr-overlay-selection.js +2 -0
- package/custom-element/revogr-overlay-selection.js.map +1 -0
- package/custom-element/revogr-overlay-selection2.js +42 -40
- package/custom-element/revogr-overlay-selection2.js.map +1 -0
- package/custom-element/revogr-row-headers.js +2 -0
- package/custom-element/revogr-row-headers.js.map +1 -0
- package/custom-element/revogr-row-headers2.js +9 -2
- package/custom-element/revogr-row-headers2.js.map +1 -0
- package/custom-element/revogr-scroll-virtual.js +2 -0
- package/custom-element/revogr-scroll-virtual.js.map +1 -0
- package/custom-element/revogr-scroll-virtual2.js +5 -2
- package/custom-element/revogr-scroll-virtual2.js.map +1 -0
- package/custom-element/revogr-temp-range.js +2 -0
- package/custom-element/revogr-temp-range.js.map +1 -0
- package/custom-element/revogr-temp-range2.js +8 -4
- package/custom-element/revogr-temp-range2.js.map +1 -0
- package/custom-element/revogr-viewport-scroll.js +2 -0
- package/custom-element/revogr-viewport-scroll.js.map +1 -0
- package/custom-element/revogr-viewport-scroll2.js +6 -11
- package/custom-element/revogr-viewport-scroll2.js.map +1 -0
- package/custom-element/selection.utils.js +2 -0
- package/custom-element/selection.utils.js.map +1 -0
- package/custom-element/themeService.js +65 -0
- package/custom-element/themeService.js.map +1 -0
- package/custom-element/toInteger.js +2 -0
- package/custom-element/toInteger.js.map +1 -0
- package/custom-element/toNumber.js +3 -1
- package/custom-element/toNumber.js.map +1 -0
- package/custom-element/utils.js +2 -0
- package/custom-element/utils.js.map +1 -0
- package/dist/cjs/{debounce-6cea2774.js → debounce-a0628875.js} +3 -1
- package/dist/cjs/debounce-a0628875.js.map +1 -0
- package/dist/cjs/{index-cb904e00.js → index-c209f988.js} +667 -315
- package/dist/cjs/index-c209f988.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +6 -26
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/{resize-observer-bf327d6a.js → resize-observer-cc749e66.js} +2 -0
- package/dist/cjs/resize-observer-cc749e66.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.js +9 -60
- package/dist/cjs/revo-grid.cjs.js.map +1 -0
- package/dist/cjs/revo-grid_11.cjs.entry.js +169 -180
- package/dist/cjs/revo-grid_11.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-clipboard.cjs.entry.js +4 -3
- package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +11 -6
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
- package/dist/collection/collection-manifest.json +16 -16
- package/dist/collection/components/button/button.js +2 -1
- package/dist/collection/components/button/button.js.map +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +86 -80
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
- package/dist/collection/components/data/cellRenderer.js +5 -5
- package/dist/collection/components/data/cellRenderer.js.map +1 -0
- package/dist/collection/components/data/columnService.js +9 -8
- package/dist/collection/components/data/columnService.js.map +1 -0
- package/dist/collection/components/data/revogr-data.js +258 -226
- package/dist/collection/components/data/revogr-data.js.map +1 -0
- package/dist/collection/components/data/rowRenderer.js +2 -1
- package/dist/collection/components/data/rowRenderer.js.map +1 -0
- package/dist/collection/components/header/headerCellRenderer.js +6 -7
- package/dist/collection/components/header/headerCellRenderer.js.map +1 -0
- package/dist/collection/components/header/headerRenderer.js +7 -8
- package/dist/collection/components/header/headerRenderer.js.map +1 -0
- package/dist/collection/components/header/revogr-header.js +259 -233
- package/dist/collection/components/header/revogr-header.js.map +1 -0
- package/dist/collection/components/order/orderRenderer.js +3 -6
- package/dist/collection/components/order/orderRenderer.js.map +1 -0
- package/dist/collection/components/order/revogr-order-editor.js +279 -252
- package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
- package/dist/collection/components/order/rowOrderService.js +2 -1
- package/dist/collection/components/order/rowOrderService.js.map +1 -0
- package/dist/collection/components/overlay/autofill.service.js +8 -7
- package/dist/collection/components/overlay/autofill.service.js.map +1 -0
- package/dist/collection/components/overlay/clipboard.service.js +4 -3
- package/dist/collection/components/overlay/clipboard.service.js.map +1 -0
- package/dist/collection/components/overlay/editors/edit.utils.js +2 -1
- package/dist/collection/components/overlay/editors/edit.utils.js.map +1 -0
- package/dist/collection/components/overlay/editors/text.js +4 -3
- package/dist/collection/components/overlay/editors/text.js.map +1 -0
- package/dist/collection/components/overlay/keyboard.service.js +6 -5
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
- package/dist/collection/components/overlay/revogr-edit.js +112 -96
- package/dist/collection/components/overlay/revogr-edit.js.map +1 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +546 -482
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
- package/dist/collection/components/overlay/selection.utils.js +2 -1
- package/dist/collection/components/overlay/selection.utils.js.map +1 -0
- package/dist/collection/components/revo-grid/revo-grid-style.css +7 -13
- package/dist/collection/components/revo-grid/revo-grid.js +1668 -1638
- package/dist/collection/components/revo-grid/revo-grid.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.helpers.js +1 -0
- package/dist/collection/components/revo-grid/viewport.helpers.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.interfaces.js +1 -3
- package/dist/collection/components/revo-grid/viewport.interfaces.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.js +4 -7
- package/dist/collection/components/revo-grid/viewport.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.resize.service.js +3 -2
- package/dist/collection/components/revo-grid/viewport.resize.service.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js +1 -0
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.section.js +5 -7
- package/dist/collection/components/revo-grid/viewport.section.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.service.js +7 -6
- package/dist/collection/components/revo-grid/viewport.service.js.map +1 -0
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +161 -147
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
- package/dist/collection/components/rowHeaders/row-header-render.js +1 -0
- package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +2 -4
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +172 -168
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +159 -137
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
- package/dist/collection/components/selection-focus/revogr-focus.js +153 -128
- package/dist/collection/components/selection-focus/revogr-focus.js.map +1 -0
- package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +1 -1
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js +92 -77
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +1 -0
- package/dist/collection/global/global.js +3 -2
- package/dist/collection/global/global.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/plugins/autoSizeColumn.js +7 -6
- package/dist/collection/plugins/autoSizeColumn.js.map +1 -0
- package/dist/collection/plugins/basePlugin.js +1 -0
- package/dist/collection/plugins/basePlugin.js.map +1 -0
- package/dist/collection/plugins/dispatcher.js +1 -0
- package/dist/collection/plugins/dispatcher.js.map +1 -0
- package/dist/collection/plugins/export/csv.js +2 -1
- package/dist/collection/plugins/export/csv.js.map +1 -0
- package/dist/collection/plugins/export/export.plugin.js +6 -5
- package/dist/collection/plugins/export/export.plugin.js.map +1 -0
- package/dist/collection/plugins/export/types.js +1 -3
- package/dist/collection/plugins/export/types.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/equal.js +1 -0
- package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +3 -2
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +3 -2
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/set.js +1 -0
- package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +1 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js +1 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
- package/dist/collection/plugins/filter/filter.button.js +7 -12
- package/dist/collection/plugins/filter/filter.button.js.map +1 -0
- package/dist/collection/plugins/filter/filter.plugin.js +5 -4
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
- package/dist/collection/plugins/filter/filter.pop.js +254 -238
- package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
- package/dist/collection/plugins/filter/filter.service.js +9 -8
- package/dist/collection/plugins/filter/filter.service.js.map +1 -0
- package/dist/collection/plugins/filter/filter.style.css +2 -3
- package/dist/collection/plugins/filter/filter.types.js +1 -3
- package/dist/collection/plugins/filter/filter.types.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +6 -5
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +4 -3
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +4 -3
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js +2 -1
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +3 -2
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +14 -13
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +6 -10
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -3
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js +2 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +2 -1
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js +8 -7
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +1 -0
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js +2 -1
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +8 -7
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.sign.js +2 -1
- package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
- package/dist/collection/plugins/stretchPlugin.js +4 -3
- package/dist/collection/plugins/stretchPlugin.js.map +1 -0
- package/dist/collection/plugins/trimmed/trimmed.plugin.js +1 -0
- package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +1 -0
- package/dist/collection/services/cell.helpers.js +2 -1
- package/dist/collection/services/cell.helpers.js.map +1 -0
- package/dist/collection/services/column.data.provider.js +14 -13
- package/dist/collection/services/column.data.provider.js.map +1 -0
- package/dist/collection/services/data.provider.js +4 -3
- package/dist/collection/services/data.provider.js.map +1 -0
- package/dist/collection/services/dimension.provider.js +5 -4
- package/dist/collection/services/dimension.provider.js.map +1 -0
- package/dist/collection/services/localScrollService.js +2 -1
- package/dist/collection/services/localScrollService.js.map +1 -0
- package/dist/collection/services/resizable.directive.js +3 -4
- package/dist/collection/services/resizable.directive.js.map +1 -0
- package/dist/collection/services/selection.store.connector.js +3 -2
- package/dist/collection/services/selection.store.connector.js.map +1 -0
- package/dist/collection/services/viewport.provider.js +4 -3
- package/dist/collection/services/viewport.provider.js.map +1 -0
- package/dist/collection/store/dataSource/data.proxy.js +1 -0
- package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
- package/dist/collection/store/dataSource/data.store.js +10 -9
- package/dist/collection/store/dataSource/data.store.js.map +1 -0
- package/dist/collection/store/dimension/dimension.helpers.js +5 -4
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
- package/dist/collection/store/dimension/dimension.store.js +9 -7
- package/dist/collection/store/dimension/dimension.store.js.map +1 -0
- package/dist/collection/store/selection/selection.helpers.js +2 -1
- package/dist/collection/store/selection/selection.helpers.js.map +1 -0
- package/dist/collection/store/selection/selection.store.js +4 -3
- package/dist/collection/store/selection/selection.store.js.map +1 -0
- package/dist/collection/store/selection/selection.store.service.js +2 -1
- package/dist/collection/store/selection/selection.store.service.js.map +1 -0
- package/dist/collection/store/storeTypes.js +1 -0
- package/dist/collection/store/storeTypes.js.map +1 -0
- package/dist/collection/store/viewPort/viewport.helpers.js +2 -1
- package/dist/collection/store/viewPort/viewport.helpers.js.map +1 -0
- package/dist/collection/store/viewPort/viewport.store.js +4 -3
- package/dist/collection/store/viewPort/viewport.store.js.map +1 -0
- package/dist/collection/themeManager/theme.compact.js +1 -0
- package/dist/collection/themeManager/theme.compact.js.map +1 -0
- package/dist/collection/themeManager/theme.default.js +1 -0
- package/dist/collection/themeManager/theme.default.js.map +1 -0
- package/dist/collection/themeManager/theme.material.js +1 -0
- package/dist/collection/themeManager/theme.material.js.map +1 -0
- package/dist/collection/themeManager/themeService.js +9 -8
- package/dist/collection/themeManager/themeService.js.map +1 -0
- package/dist/collection/utils/closestPolifill.js +1 -0
- package/dist/collection/utils/closestPolifill.js.map +1 -0
- package/dist/collection/utils/consts.js +1 -0
- package/dist/collection/utils/consts.js.map +1 -0
- package/dist/collection/utils/generateAlphabetHeader.js +1 -0
- package/dist/collection/utils/generateAlphabetHeader.js.map +1 -0
- package/dist/collection/utils/keyCodes.js +1 -0
- package/dist/collection/utils/keyCodes.js.map +1 -0
- package/dist/collection/utils/keyCodes.utils.js +4 -3
- package/dist/collection/utils/keyCodes.utils.js.map +1 -0
- package/dist/collection/utils/platform.js +1 -0
- package/dist/collection/utils/platform.js.map +1 -0
- package/dist/collection/utils/resizeObserver.js +1 -0
- package/dist/collection/utils/resizeObserver.js.map +1 -0
- package/dist/collection/utils/store.utils.js +1 -0
- package/dist/collection/utils/store.utils.js.map +1 -0
- package/dist/collection/utils/utils.js +1 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/esm/{debounce-e4e6dd45.js → debounce-cb7aac48.js} +3 -1
- package/dist/esm/debounce-cb7aac48.js.map +1 -0
- package/dist/esm/{index-6f753b3c.js → index-f21f8a13.js} +667 -311
- package/dist/esm/index-f21f8a13.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +6 -26
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/{resize-observer-00c48d78.js → resize-observer-4f34a839.js} +2 -0
- package/dist/esm/resize-observer-4f34a839.js.map +1 -0
- package/dist/esm/revo-grid.js +7 -61
- package/dist/esm/revo-grid.js.map +1 -0
- package/dist/esm/revo-grid_11.entry.js +169 -180
- package/dist/esm/revo-grid_11.entry.js.map +1 -0
- package/dist/esm/revogr-clipboard.entry.js +4 -3
- package/dist/esm/revogr-clipboard.entry.js.map +1 -0
- package/dist/esm/revogr-filter-panel.entry.js +11 -6
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
- package/dist/esm-es5/{debounce-e4e6dd45.js → debounce-cb7aac48.js} +2 -1
- package/dist/esm-es5/debounce-cb7aac48.js.map +1 -0
- package/dist/esm-es5/index-f21f8a13.js +5 -0
- package/dist/esm-es5/index-f21f8a13.js.map +1 -0
- package/dist/esm-es5/index.js +1 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -1
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/{resize-observer-00c48d78.js → resize-observer-4f34a839.js} +2 -1
- package/dist/esm-es5/resize-observer-4f34a839.js.map +1 -0
- package/dist/esm-es5/revo-grid.js +2 -1
- package/dist/esm-es5/revo-grid.js.map +1 -0
- package/dist/esm-es5/revo-grid_11.entry.js +3 -2
- package/dist/esm-es5/revo-grid_11.entry.js.map +1 -0
- package/dist/esm-es5/revogr-clipboard.entry.js +3 -2
- package/dist/esm-es5/revogr-clipboard.entry.js.map +1 -0
- package/dist/esm-es5/revogr-filter-panel.entry.js +3 -2
- package/dist/esm-es5/revogr-filter-panel.entry.js.map +1 -0
- package/dist/revo-grid/{debounce-5a33c710.system.js → debounce-3aba7c4d.system.js} +2 -1
- package/dist/revo-grid/debounce-3aba7c4d.system.js.map +1 -0
- package/dist/revo-grid/debounce-cb7aac48.js +5 -0
- package/dist/revo-grid/debounce-cb7aac48.js.map +1 -0
- package/dist/revo-grid/index-20224007.system.js +6 -0
- package/dist/revo-grid/index-20224007.system.js.map +1 -0
- package/dist/revo-grid/index-f21f8a13.js +6 -0
- package/dist/revo-grid/index-f21f8a13.js.map +1 -0
- package/dist/revo-grid/index.esm.js +2 -0
- package/dist/revo-grid/index.esm.js.map +1 -0
- package/dist/revo-grid/index.system.js +2 -1
- package/dist/revo-grid/index.system.js.map +1 -0
- package/dist/revo-grid/{resize-observer-8af0bc0e.system.js → resize-observer-2a36c9e4.system.js} +2 -1
- package/dist/revo-grid/resize-observer-2a36c9e4.system.js.map +1 -0
- package/dist/revo-grid/resize-observer-4f34a839.js +5 -0
- package/dist/revo-grid/resize-observer-4f34a839.js.map +1 -0
- package/dist/revo-grid/revo-grid.esm.js +2 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -0
- package/dist/revo-grid/revo-grid.js +1 -7
- package/dist/revo-grid/revo-grid.system.js +2 -1
- package/dist/revo-grid/revo-grid.system.js.map +1 -0
- package/dist/revo-grid/revo-grid_11.entry.js +2 -1
- package/dist/revo-grid/revo-grid_11.entry.js.map +1 -0
- package/dist/revo-grid/revo-grid_11.system.entry.js +3 -2
- package/dist/revo-grid/revo-grid_11.system.entry.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard.entry.js +2 -1
- package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard.system.entry.js +3 -2
- package/dist/revo-grid/revogr-clipboard.system.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +2 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.system.entry.js +3 -2
- package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +1 -0
- package/dist/types/components/data/cellRenderer.d.ts +1 -1
- package/dist/types/components/data/columnService.d.ts +4 -4
- package/dist/types/components/header/headerCellRenderer.d.ts +1 -1
- package/dist/types/components/header/headerRenderer.d.ts +1 -1
- package/dist/types/components/order/orderRenderer.d.ts +1 -1
- package/dist/types/components/order/rowOrderService.d.ts +1 -1
- package/dist/types/components/overlay/autofill.service.d.ts +1 -1
- package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
- package/dist/types/components/overlay/editors/text.d.ts +1 -1
- package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +9 -3
- package/dist/types/components/overlay/selection.utils.d.ts +1 -1
- package/dist/types/components/revo-grid/viewport.d.ts +1 -1
- package/dist/types/components/revo-grid/viewport.interfaces.d.ts +5 -5
- package/dist/types/components/revo-grid/viewport.scrolling.service.d.ts +1 -1
- package/dist/types/components/revo-grid/viewport.section.d.ts +1 -1
- package/dist/types/components/revo-grid/viewport.service.d.ts +3 -3
- package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
- package/dist/types/components.d.ts +26 -0
- package/dist/types/plugins/autoSizeColumn.d.ts +1 -1
- package/dist/types/plugins/dispatcher.d.ts +1 -1
- package/dist/types/plugins/export/csv.d.ts +1 -1
- package/dist/types/plugins/export/export.plugin.d.ts +1 -1
- package/dist/types/plugins/export/types.d.ts +2 -2
- package/dist/types/plugins/filter/filter.button.d.ts +1 -1
- package/dist/types/plugins/filter/filter.plugin.d.ts +6 -6
- package/dist/types/plugins/filter/filter.pop.d.ts +4 -4
- package/dist/types/plugins/filter/filter.service.d.ts +1 -1
- package/dist/types/plugins/filter/filter.types.d.ts +5 -5
- package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +1 -1
- package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +1 -1
- package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +5 -5
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
- package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +5 -5
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -1
- package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
- package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +2 -2
- package/dist/types/services/column.data.provider.d.ts +4 -4
- package/dist/types/services/data.provider.d.ts +1 -1
- package/dist/types/services/dimension.provider.d.ts +2 -2
- package/dist/types/services/localScrollService.d.ts +1 -1
- package/dist/types/services/resizable.directive.d.ts +2 -2
- package/dist/types/services/selection.store.connector.d.ts +2 -2
- package/dist/types/services/viewport.provider.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +95 -20
- package/dist/types/store/dataSource/data.proxy.d.ts +1 -1
- package/dist/types/store/dataSource/data.store.d.ts +4 -4
- package/dist/types/store/dimension/dimension.helpers.d.ts +3 -3
- package/dist/types/store/selection/selection.store.d.ts +1 -1
- package/dist/types/store/viewPort/viewport.helpers.d.ts +2 -2
- package/loader/index.d.ts +10 -1
- package/loader/package.json +1 -0
- package/package.json +10 -10
- package/dist/cjs/css-shim-9f5bc84d.js +0 -9
- package/dist/cjs/dom-fcb646f0.js +0 -78
- package/dist/esm/css-shim-e1e1ea5e.js +0 -7
- package/dist/esm/dom-21bd1807.js +0 -76
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm-es5/css-shim-e1e1ea5e.js +0 -4
- package/dist/esm-es5/dom-21bd1807.js +0 -24
- package/dist/esm-es5/index-6f753b3c.js +0 -4
- package/dist/revo-grid/css-shim-bcf89cc0.system.js +0 -4
- package/dist/revo-grid/css-shim-e1e1ea5e.js +0 -4
- package/dist/revo-grid/debounce-726bdadb.js +0 -4
- package/dist/revo-grid/dom-21bd1807.js +0 -22
- package/dist/revo-grid/dom-726246e2.system.js +0 -24
- package/dist/revo-grid/index-f14b41a0.system.js +0 -5
- package/dist/revo-grid/index-f30d1de1.js +0 -5
- package/dist/revo-grid/resize-observer-00c48d78.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stretchPlugin.js","sourceRoot":"","sources":["../../src/plugins/stretchPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { each } from 'lodash';\nimport { RevoGrid, RevoPlugin } from '../interfaces';\nimport { ColumnCollection } from '../services/column.data.provider';\nimport DimensionProvider, { ColumnItems } from '../services/dimension.provider';\nimport { getScrollbarWidth } from '../utils/utils';\nimport BasePlugin from './basePlugin';\n\n/**\n * This plugin serves to recalculate columns initially\n * Base on empty space if there is any\n * Currently plugin supports only increasing last column\n */\ntype ScrollChange = {\n type: RevoGrid.DimensionType;\n hasScroll: boolean;\n};\ntype StretchedData = {\n initialSize: number;\n size: number;\n index: number;\n};\nexport default class StretchColumn extends BasePlugin {\n private stretchedColumn: StretchedData|null = null;\n private readonly scrollSize;\n constructor(\n revogrid: HTMLRevoGridElement,\n private dimensionProvider: DimensionProvider\n ) {\n super(revogrid);\n this.scrollSize = getScrollbarWidth(document);\n const beforecolumnapplied = ({ detail: { columns } }: CustomEvent<ColumnCollection>) => this.applyStretch(columns);\n this.addEventListener('beforecolumnapplied', beforecolumnapplied);\n }\n\n private setScroll({ type, hasScroll }: ScrollChange) {\n if (type === 'rgRow' && this.stretchedColumn && this.stretchedColumn?.initialSize === this.stretchedColumn.size) {\n if (hasScroll) {\n this.stretchedColumn.size -= this.scrollSize;\n this.apply();\n this.dropChanges();\n }\n }\n }\n\n private activateChanges() {\n const setScroll = ({ detail }: CustomEvent<ScrollChange>) => this.setScroll(detail);\n this.addEventListener('scrollchange', setScroll);\n }\n\n private dropChanges() {\n this.stretchedColumn = null;\n this.removeEventListener('scrollchange');\n }\n\n private apply() {\n if (!this.stretchedColumn) {\n return;\n }\n const type: RevoGrid.DimensionCols = 'rgCol';\n this.dimensionProvider.setDimensionSize(type, { [this.stretchedColumn.index]: this.stretchedColumn.size });\n }\n\n applyStretch(columns: ColumnItems) {\n this.dropChanges();\n let sizeDifference = this.revogrid.clientWidth - 1;\n each(columns, (_c, type: RevoGrid.DimensionCols) => {\n const realSize = this.dimensionProvider.stores[type].store.get('realSize');\n sizeDifference -= realSize;\n });\n if (sizeDifference > 0) {\n // currently plugin accepts last column\n const index = columns.rgCol.length - 1;\n const last = columns.rgCol[index];\n // has column\n // no auto size applied\n // size for column shouldn't be defined\n const colSize = last?.size || this.revogrid.colSize || 0;\n const size = sizeDifference + colSize - 1;\n if (last && !last.autoSize && (colSize < size)) {\n this.stretchedColumn = {\n initialSize: size,\n index,\n size\n };\n this.apply();\n this.activateChanges();\n }\n }\n }\n}\n\nexport function isStretchPlugin(plugin: RevoPlugin.Plugin|StretchColumn): plugin is StretchColumn {\n return !!(plugin as StretchColumn).applyStretch;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trimmed.plugin.js","sourceRoot":"","sources":["../../../src/plugins/trimmed/trimmed.plugin.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAA0C,EAA4C,EAAE,CAAC,CAAC;EACzH,GAAG,CAAC,CAAC,EAAE,MAAM;IACX,QAAQ,CAAC,EAAE;MACT,KAAK,SAAS;QACZ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAiB,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAgB,EAAE,CAAS,EAAE,EAAE;UAC5D,6DAA6D;UAC7D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;WAChB;UACD,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,MAAM;KACT;EACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,YAAqB;EACtD,MAAM,OAAO,GAAkB,EAAE,CAAC;EAElC,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE;IACnC,iCAAiC;IACjC,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;MACtC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD;GACF;EACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { Observable, PluginSubscribe } from '../../interfaces';\nimport { DataSourceState } from '../../store/dataSource/data.store';\n\nexport type TrimmedEntity = Record<number, boolean>;\nexport type Trimmed = Record<string, TrimmedEntity>;\n\n/**\n * Hide items from main collection\n * But keep them in store\n */\nexport const trimmedPlugin = <T>(store: Observable<DataSourceState<T, any>>): PluginSubscribe<DataSourceState<T, any>> => ({\n set(k, newVal) {\n switch (k) {\n case 'trimmed':\n const proxy = store.get('proxyItems');\n const trimmed = gatherTrimmedItems(newVal as Trimmed);\n\n const newItems = proxy.reduce((result: number[], v: number) => {\n // check if present in new trimmed remove from items (filter)\n if (!trimmed[v]) {\n result.push(v);\n }\n return result;\n }, []);\n\n store.set('items', newItems);\n break;\n }\n },\n});\n\nexport function gatherTrimmedItems(trimmedItems: Trimmed) {\n const trimmed: TrimmedEntity = {};\n\n for (let trimmedKey in trimmedItems) {\n // trimmed overweight not trimmed\n for (let t in trimmedItems[trimmedKey]) {\n trimmed[t] = trimmed[t] || trimmedItems[trimmedKey][t];\n }\n }\n return trimmed;\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { DATA_COL, DATA_ROW } from
|
|
4
|
+
import { DATA_COL, DATA_ROW } from "../utils/consts";
|
|
5
5
|
export function getCell(cell) {
|
|
6
6
|
return {
|
|
7
7
|
x: parseInt(cell.getAttribute(DATA_COL), 10),
|
|
8
8
|
y: parseInt(cell.getAttribute(DATA_ROW), 10),
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
+
//# sourceMappingURL=cell.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell.helpers.js","sourceRoot":"","sources":["../../src/services/cell.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,UAAU,OAAO,CAAC,IAAiB;EACvC,OAAO;IACL,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC5C,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;GAC7C,CAAC;AACJ,CAAC","sourcesContent":["import { DATA_COL, DATA_ROW } from '../utils/consts';\nimport { Selection } from '../interfaces';\n\nexport function getCell(cell: HTMLElement): Selection.Cell {\n return {\n x: parseInt(cell.getAttribute(DATA_COL), 10),\n y: parseInt(cell.getAttribute(DATA_ROW), 10),\n };\n}\n"]}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import reduce from
|
|
5
|
-
import each from
|
|
6
|
-
import find from
|
|
7
|
-
import DataStore, { getSourceItem, getSourceItemVirtualIndexByProp, setSourceByVirtualIndex } from
|
|
8
|
-
import { columnTypes } from
|
|
9
|
-
import GroupingColumnPlugin, { isColGrouping } from
|
|
4
|
+
import reduce from "lodash/reduce";
|
|
5
|
+
import each from "lodash/each";
|
|
6
|
+
import find from "lodash/find";
|
|
7
|
+
import DataStore, { getSourceItem, getSourceItemVirtualIndexByProp, setSourceByVirtualIndex } from "../store/dataSource/data.store";
|
|
8
|
+
import { columnTypes } from "../store/storeTypes";
|
|
9
|
+
import GroupingColumnPlugin, { isColGrouping } from "../plugins/groupingColumn/grouping.col.plugin";
|
|
10
10
|
export default class ColumnDataProvider {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.sorting = null;
|
|
13
|
-
this.dataSources = reduce(columnTypes, (sources, k) => {
|
|
14
|
-
sources[k] = new DataStore(k);
|
|
15
|
-
return sources;
|
|
16
|
-
}, {});
|
|
17
|
-
}
|
|
18
11
|
get order() {
|
|
19
12
|
return reduce(this.sorting, (r, c, prop) => {
|
|
20
13
|
r[prop] = c.order;
|
|
@@ -24,6 +17,13 @@ export default class ColumnDataProvider {
|
|
|
24
17
|
get stores() {
|
|
25
18
|
return this.dataSources;
|
|
26
19
|
}
|
|
20
|
+
constructor() {
|
|
21
|
+
this.sorting = null;
|
|
22
|
+
this.dataSources = reduce(columnTypes, (sources, k) => {
|
|
23
|
+
sources[k] = new DataStore(k);
|
|
24
|
+
return sources;
|
|
25
|
+
}, {});
|
|
26
|
+
}
|
|
27
27
|
column(c, pin) {
|
|
28
28
|
return this.getColumn(c, pin || 'rgCol');
|
|
29
29
|
}
|
|
@@ -189,3 +189,4 @@ export default class ColumnDataProvider {
|
|
|
189
189
|
return 'rgCol';
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
+
//# sourceMappingURL=column.data.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.data.provider.js","sourceRoot":"","sources":["../../src/services/column.data.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport each from 'lodash/each';\nimport find from 'lodash/find';\n\nimport DataStore, { getSourceItem, getSourceItemVirtualIndexByProp, Groups, setSourceByVirtualIndex } from '../store/dataSource/data.store';\nimport { columnTypes } from '../store/storeTypes';\nimport { ColumnItems } from './dimension.provider';\nimport { RevoGrid } from '../interfaces';\nimport ColumnRegular = RevoGrid.ColumnRegular;\nimport DimensionCols = RevoGrid.DimensionCols;\nimport ColumnProp = RevoGrid.ColumnProp;\nimport GroupingColumnPlugin, { ColumnGrouping, isColGrouping } from '../plugins/groupingColumn/grouping.col.plugin';\n\nexport type ColumnCollection = {\n columns: ColumnItems;\n columnGrouping: ColumnGrouping;\n maxLevel: number;\n sort: Record<ColumnProp, ColumnRegular>;\n};\n\nexport type ColumnDataSources = Record<DimensionCols, DataStore<ColumnRegular, DimensionCols>>;\ntype Sorting = Record<ColumnProp, ColumnRegular>;\ntype SortingOrder = Record<ColumnProp, 'asc' | 'desc'>;\n\nexport default class ColumnDataProvider {\n private readonly dataSources: ColumnDataSources;\n sorting: Sorting | null = null;\n\n get order() {\n return reduce(\n this.sorting,\n (r: SortingOrder, c, prop) => {\n r[prop] = c.order;\n return r;\n },\n {},\n );\n }\n\n get stores() {\n return this.dataSources;\n }\n constructor() {\n this.dataSources = reduce(\n columnTypes,\n (sources: Partial<ColumnDataSources>, k: DimensionCols) => {\n sources[k] = new DataStore(k);\n return sources;\n },\n {},\n ) as ColumnDataSources;\n }\n\n column(c: number, pin?: RevoGrid.DimensionColPin): ColumnRegular | undefined {\n return this.getColumn(c, pin || 'rgCol');\n }\n\n getColumn(virtualIndex: number, type: DimensionCols): ColumnRegular | undefined {\n return getSourceItem(this.dataSources[type].store, virtualIndex);\n }\n\n getRawColumns() {\n return reduce(this.dataSources, (result: ColumnItems, item, type: RevoGrid.DimensionCols) => {\n result[type] = item.store.get('source');\n return result;\n }, {\n rgCol: [],\n colPinStart: [],\n colPinEnd: []\n });\n }\n\n getColumns(type: DimensionCols | 'all' = 'all') {\n if (type !== 'all') {\n return this.dataSources[type].store.get('source');\n }\n return columnTypes.reduce((r: ColumnRegular[], t) => {\n r.push(...this.dataSources[t].store.get('source'));\n return r;\n }, []);\n }\n\n getColumnIndexByProp(prop: ColumnProp, type: DimensionCols): number {\n return getSourceItemVirtualIndexByProp(this.dataSources[type].store, prop);\n }\n\n getColumnByProp(prop: ColumnProp, type: DimensionCols): ColumnRegular | undefined {\n const items = this.dataSources[type].store.get('source');\n return find(items, { prop });\n }\n\n refreshByType(type: DimensionCols) {\n this.dataSources[type].refresh();\n }\n\n setColumns(data: ColumnCollection): ColumnCollection {\n each(columnTypes, k => {\n // set columns data\n this.dataSources[k].updateData(data.columns[k], {\n // max depth level\n depth: data.maxLevel,\n\n // groups\n groups: reduce(\n data.columnGrouping[k],\n (res: Groups, g) => {\n if (!res[g.level]) {\n res[g.level] = [];\n }\n res[g.level].push(g);\n return res;\n },\n {},\n ),\n });\n });\n this.sorting = data.sort;\n return data;\n }\n\n updateColumns(cols: ColumnRegular[]) {\n // collect column by type and propert\n const columnByKey: Partial<Record<DimensionCols, Record<ColumnProp, ColumnRegular>>> = cols.reduce(\n (res: Partial<Record<DimensionCols, Record<ColumnProp, ColumnRegular>>>, c) => {\n const type = ColumnDataProvider.getColumnType(c);\n if (!res[type]) {\n res[type] = {};\n }\n res[type][c.prop] = c;\n return res;\n },\n {},\n );\n\n // find indexes in source\n const colByIndex: Partial<Record<DimensionCols, Record<number, ColumnRegular>>> = {};\n each(columnByKey, (colsToUpdate, type: DimensionCols) => {\n const items = this.dataSources[type].store.get('source');\n colByIndex[type] = items.reduce((result: Record<number, ColumnRegular>, rgCol, index) => {\n const colToUpdateIfExists = colsToUpdate[rgCol.prop];\n if (colToUpdateIfExists) {\n result[index] = colToUpdateIfExists;\n }\n return result;\n }, {});\n });\n each(colByIndex, (colsToUpdate, type: DimensionCols) => setSourceByVirtualIndex(this.dataSources[type].store, colsToUpdate));\n }\n\n updateColumn(column: ColumnRegular, index: number) {\n const type = ColumnDataProvider.getColumnType(column);\n setSourceByVirtualIndex(this.dataSources[type].store, { [index]: column });\n }\n\n updateColumnSorting(column: ColumnRegular, index: number, sorting: 'asc' | 'desc', additive: boolean): ColumnRegular {\n if (!additive) {\n this.clearSorting();\n }\n column.order = sorting;\n this.sorting[column.prop] = column;\n this.updateColumn(column, index);\n return column;\n }\n\n clearSorting(): void {\n const types = reduce(\n this.sorting,\n (r: { [key in Partial<DimensionCols>]: boolean }, c: ColumnRegular) => {\n const k = ColumnDataProvider.getColumnType(c);\n r[k] = true;\n return r;\n },\n {} as { [key in Partial<DimensionCols>]: boolean },\n );\n each(types, (_, type: DimensionCols) => {\n const cols = this.dataSources[type].store.get('source');\n each(cols, (c: ColumnRegular) => (c.order = undefined));\n this.dataSources[type].setData({ source: [...cols] });\n });\n\n this.sorting = {};\n }\n\n static getSizes(cols: ColumnRegular[]): RevoGrid.ViewSettingSizeProp {\n return reduce(\n cols,\n (res: RevoGrid.ViewSettingSizeProp, c: ColumnRegular, i: number) => {\n if (c.size) {\n res[i] = c.size;\n }\n return res;\n },\n {},\n );\n }\n\n static getColumnByProp(columns: RevoGrid.ColumnData, prop: ColumnProp): ColumnRegular | undefined {\n return find(columns, c => {\n if (isColGrouping(c)) {\n return ColumnDataProvider.getColumnByProp(c.children, prop);\n }\n return c.prop === prop;\n }) as ColumnRegular | undefined;\n }\n\n // columns processing\n static getColumns(columns: RevoGrid.ColumnData, level: number = 0, types?: RevoGrid.ColumnTypes): ColumnCollection {\n return reduce(\n columns,\n (res: ColumnCollection, colData: RevoGrid.ColumnDataSchema) => {\n /** Grouped column */\n if (isColGrouping(colData)) {\n return GroupingColumnPlugin.gatherGroup(res, colData, ColumnDataProvider.getColumns(colData.children, level + 1, types), level);\n }\n /** Regular column */\n const regularColumn = {\n ...(colData.columnType && types && types[colData.columnType]),\n ...colData,\n };\n // not pin\n if (!regularColumn.pin) {\n res.columns.rgCol.push(regularColumn);\n // pin\n } else {\n res.columns[regularColumn.pin].push(regularColumn);\n }\n if (regularColumn.order) {\n res.sort[regularColumn.prop] = regularColumn;\n }\n\n // trigger setup hook if present\n regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);\n return res;\n },\n {\n columns: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n columnGrouping: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n maxLevel: level,\n sort: {},\n },\n );\n }\n\n static getColumnType(rgCol: ColumnRegular): DimensionCols {\n if (rgCol.pin) {\n return rgCol.pin;\n }\n return 'rgCol';\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import reduce from
|
|
5
|
-
import DataStore, { getSourceItem, getVisibleSourceItem, setSourceByVirtualIndex } from
|
|
6
|
-
import { isRowType, rowTypes } from
|
|
4
|
+
import reduce from "lodash/reduce";
|
|
5
|
+
import DataStore, { getSourceItem, getVisibleSourceItem, setSourceByVirtualIndex } from "../store/dataSource/data.store";
|
|
6
|
+
import { isRowType, rowTypes } from "../store/storeTypes";
|
|
7
7
|
export class DataProvider {
|
|
8
8
|
constructor(dimensionProvider) {
|
|
9
9
|
this.dimensionProvider = dimensionProvider;
|
|
@@ -48,3 +48,4 @@ export class DataProvider {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
+
//# sourceMappingURL=data.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.provider.js","sourceRoot":"","sources":["../../src/services/data.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\n\nimport DataStore, { getSourceItem, getVisibleSourceItem, Groups, setSourceByVirtualIndex } from '../store/dataSource/data.store';\nimport { isRowType, rowTypes } from '../store/storeTypes';\nimport DimensionProvider from './dimension.provider';\nimport { RevoGrid, Edition } from '../interfaces';\nimport { Trimmed } from '../plugins/trimmed/trimmed.plugin';\nimport { GroupLabelTemplateFunc } from '../plugins/groupingRow/grouping.row.types';\nimport DimensionRows = RevoGrid.DimensionRows;\nimport DataType = RevoGrid.DataType;\n\nexport type RowDataSources = { [T in DimensionRows]: DataStore<DataType, DimensionRows> };\n\nexport class DataProvider {\n public readonly stores: RowDataSources;\n constructor(private dimensionProvider: DimensionProvider) {\n this.stores = reduce(\n rowTypes,\n (sources: Partial<RowDataSources>, k: DimensionRows) => {\n sources[k] = new DataStore(k);\n return sources;\n },\n {},\n ) as RowDataSources;\n }\n\n setData(\n data: DataType[],\n type: DimensionRows = 'rgRow',\n grouping?: { depth: number; groups?: Groups, customRenderer?: GroupLabelTemplateFunc },\n silent = false,\n ): DataType[] {\n // set rgRow data\n this.stores[type].updateData([...data], grouping, silent);\n this.dimensionProvider.setData(data, type, type !== 'rgRow');\n return data;\n }\n\n getModel(virtualIndex: number, type: DimensionRows = 'rgRow') {\n const store = this.stores[type].store;\n return getSourceItem(store, virtualIndex);\n }\n\n setCellData({ type, rowIndex, prop, val }: Edition.BeforeSaveDataDetails) {\n const model = this.getModel(rowIndex, type);\n model[prop] = val;\n setSourceByVirtualIndex(this.stores[type].store, { [rowIndex]: model });\n }\n\n refresh(type: DimensionRows | 'all' = 'all') {\n if (isRowType(type)) {\n this.refreshItems(type);\n }\n rowTypes.forEach((t: DimensionRows) => this.refreshItems(t));\n }\n\n refreshItems(type: DimensionRows = 'rgRow') {\n const items = this.stores[type].store.get('items');\n this.stores[type].setData({ items: [...items] });\n }\n\n setGrouping({ depth }: { depth: number }, type: DimensionRows = 'rgRow') {\n this.stores[type].setData({ groupingDepth: depth });\n }\n\n setTrimmed(trimmed: Partial<Trimmed>, type: DimensionRows = 'rgRow') {\n const store = this.stores[type];\n store.addTrimmed(trimmed);\n if (type === 'rgRow') {\n this.dimensionProvider.setData(getVisibleSourceItem(store.store), type);\n }\n }\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import reduce from
|
|
5
|
-
import { columnTypes, rowTypes } from
|
|
6
|
-
import DimensionStore from
|
|
7
|
-
import { getItemByIndex } from
|
|
4
|
+
import reduce from "lodash/reduce";
|
|
5
|
+
import { columnTypes, rowTypes } from "../store/storeTypes";
|
|
6
|
+
import DimensionStore from "../store/dimension/dimension.store";
|
|
7
|
+
import { getItemByIndex } from "../store/dimension/dimension.helpers";
|
|
8
8
|
export default class DimensionProvider {
|
|
9
9
|
constructor(viewports) {
|
|
10
10
|
this.viewports = viewports;
|
|
@@ -96,3 +96,4 @@ export default class DimensionProvider {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
//# sourceMappingURL=dimension.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension.provider.js","sourceRoot":"","sources":["../../src/services/dimension.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport { columnTypes, rowTypes } from '../store/storeTypes';\nimport DimensionStore from '../store/dimension/dimension.store';\nimport ViewportProvider from './viewport.provider';\nimport { RevoGrid } from '../interfaces';\nimport { getItemByIndex } from '../store/dimension/dimension.helpers';\n\nexport type ColumnItems = Record<RevoGrid.DimensionCols, RevoGrid.ColumnRegular[]>;\n\nexport type DimensionStores = { [T in RevoGrid.MultiDimensionType]: DimensionStore };\nexport default class DimensionProvider {\n public readonly stores: DimensionStores;\n constructor(private viewports: ViewportProvider) {\n this.stores = reduce(\n [...rowTypes, ...columnTypes],\n (sources: Partial<DimensionStores>, k: RevoGrid.MultiDimensionType) => {\n sources[k] = new DimensionStore();\n return sources;\n },\n {},\n ) as DimensionStores;\n }\n\n setDimensionSize(dimensionType: RevoGrid.MultiDimensionType, sizes: RevoGrid.ViewSettingSizeProp): void {\n this.stores[dimensionType].setDimensionSize(sizes);\n this.viewports.stores[dimensionType].setViewPortDimension(sizes);\n }\n\n setRealSize(realCount: number, type: RevoGrid.MultiDimensionType): void {\n this.viewports.stores[type].setViewport({ realCount });\n this.stores[type].setRealSize(realCount);\n }\n\n /**\n * Apply new custom sizes to dimension and view port\n * @param type - dimension type\n * @param sizes - new custom sizes\n * @param keepOld - keep old sizes merge new with old\n */\n setCustomSizes(type: RevoGrid.MultiDimensionType, sizes: RevoGrid.ViewSettingSizeProp, keepOld = false) {\n let newSizes = sizes;\n if (keepOld) {\n const oldSizes = this.stores[type].store.get('sizes');\n newSizes = {\n ...oldSizes,\n ...sizes,\n };\n }\n this.stores[type].setDimensionSize(newSizes);\n this.viewports.stores[type].setViewPortDimension(\n newSizes,\n !keepOld ? this.stores[type].store.get('originItemSize') : undefined\n );\n }\n\n /**\n * Sets dimension data and view port coordinate\n * @param items - data/column items\n * @param type - dimension type\n */\n setData(items: RevoGrid.ColumnRegular[] | RevoGrid.DataType[], type: RevoGrid.MultiDimensionType, noVirtual = false) {\n this.setRealSize(items.length, type);\n if (noVirtual) {\n this.setNoVirtual(type);\n }\n this.setViewPortCoordinate({\n coordinate: this.viewports.stores[type].store.get('lastCoordinate'),\n type,\n });\n }\n\n private setNoVirtual(type: RevoGrid.MultiDimensionType) {\n const dimension: RevoGrid.DimensionSettingsState = this.stores[type].getCurrentState();\n this.viewports.stores[type].setViewport({ virtualSize: dimension.realSize });\n }\n\n dropColumns() {\n for (let type of columnTypes) {\n this.stores[type].drop();\n this.viewports.stores[type].clear();\n }\n }\n\n setColumns(\n type: RevoGrid.MultiDimensionType,\n newLength: number,\n sizes?: RevoGrid.ViewSettingSizeProp,\n noVirtual = false\n ) {\n this.setRealSize(newLength, type);\n this.setCustomSizes(type, sizes);\n\n if (noVirtual) {\n this.setNoVirtual(type);\n }\n this.setViewPortCoordinate({\n coordinate: this.viewports.stores[type].store.get('lastCoordinate'),\n type,\n });\n }\n\n setViewPortCoordinate({ coordinate, type }: { coordinate: number; type: RevoGrid.MultiDimensionType }): void {\n const dimension: RevoGrid.DimensionSettingsState = this.stores[type].getCurrentState();\n this.viewports.stores[type].setViewPortCoordinate(coordinate, dimension);\n }\n\n getViewPortPos(e: RevoGrid.ViewPortScrollEvent): number {\n const dimension: RevoGrid.DimensionSettingsState = this.stores[e.dimension].getCurrentState();\n const item = getItemByIndex(dimension, e.coordinate);\n\n return item.start;\n }\n\n setSettings(data: Partial<RevoGrid.DimensionSettingsState>, dimensionType: RevoGrid.DimensionType): void {\n let stores: RevoGrid.MultiDimensionType[] = [];\n switch (dimensionType) {\n case 'rgCol':\n stores = columnTypes;\n break;\n case 'rgRow':\n stores = rowTypes;\n break;\n }\n for (let s of stores) {\n this.stores[s].setStore(data);\n }\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { scaleValue } from
|
|
4
|
+
import { scaleValue } from "../utils/utils";
|
|
5
5
|
const initialParams = {
|
|
6
6
|
contentSize: 0,
|
|
7
7
|
clientSize: 0,
|
|
@@ -81,3 +81,4 @@ export default class LocalScrollService {
|
|
|
81
81
|
return scaleValue(pos, to, from);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
//# sourceMappingURL=localScrollService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localScrollService.js","sourceRoot":"","sources":["../../src/services/localScrollService.ts"],"names":[],"mappings":"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","sourcesContent":["import { scaleValue } from '../utils/utils';\nimport { RevoGrid } from '../interfaces';\n\ninterface Config {\n beforeScroll(e: RevoGrid.ViewPortScrollEvent): void;\n afterScroll(e: RevoGrid.ViewPortScrollEvent): void;\n}\n\ntype Params = {\n contentSize: number;\n virtualContentSize?: number;\n clientSize: number;\n virtualSize: number;\n maxSize?: number;\n};\n\nconst initialParams: Params = {\n contentSize: 0,\n clientSize: 0,\n virtualSize: 0,\n maxSize: 0,\n};\n\nexport default class LocalScrollService {\n private preventArtificialScroll: Record<RevoGrid.DimensionType, number|null> = { rgRow: null, rgCol: null };\n // to check if scroll changed\n private previousScroll: Record<RevoGrid.DimensionType, number> = { rgRow: 0, rgCol: 0 };\n private params: Record<RevoGrid.DimensionType, Params> = { rgRow: { ...initialParams }, rgCol: { ...initialParams } };\n\n constructor(private cfg: Config) {}\n\n static getVirtualContentSize(contentSize: number, clientSize: number, virtualSize: number = 0): number {\n return contentSize + (virtualSize ? clientSize - virtualSize : 0);\n }\n\n setParams(params: Params, dimension: RevoGrid.DimensionType) {\n const virtualContentSize = LocalScrollService.getVirtualContentSize(params.contentSize, params.clientSize, params.virtualSize);\n this.params[dimension] = {\n ...params,\n maxSize: virtualContentSize - params.clientSize,\n virtualContentSize,\n };\n }\n\n // apply scroll values after scroll done\n setScroll(e: RevoGrid.ViewPortScrollEvent) {\n this.cancelScroll(e.dimension);\n this.preventArtificialScroll[e.dimension] = window.requestAnimationFrame(() => {\n const params = this.getParams(e.dimension);\n e.coordinate = Math.ceil(e.coordinate);\n this.previousScroll[e.dimension] = this.wrapCoordinate(e.coordinate, params);\n this.preventArtificialScroll[e.dimension] = null;\n this.cfg.afterScroll({\n ...e,\n coordinate: params.virtualSize ? this.convert(e.coordinate, params, false) : e.coordinate,\n });\n });\n }\n\n // initiate scrolling event\n scroll(coordinate: number, dimension: RevoGrid.DimensionType, force: boolean = false, delta?: number) {\n this.cancelScroll(dimension);\n if (!force && this.previousScroll[dimension] === coordinate) {\n this.previousScroll[dimension] = 0;\n return;\n }\n\n const param: Params = this.getParams(dimension);\n this.cfg.beforeScroll({\n dimension: dimension,\n coordinate: param.virtualSize ? this.convert(coordinate, param) : coordinate,\n delta,\n });\n }\n\n private getParams(dimension: RevoGrid.DimensionType): Params {\n return this.params[dimension];\n }\n\n // check if scroll outside of region to avoid looping\n private wrapCoordinate(c: number, param: Params): number {\n if (c < 0) {\n return 0;\n }\n\n if (c > param.maxSize) {\n return param.maxSize;\n }\n return c;\n }\n\n // prevent already started scroll, performance optimization\n private cancelScroll(dimension: RevoGrid.DimensionType): boolean {\n if (typeof this.preventArtificialScroll[dimension] === 'number') {\n window.cancelAnimationFrame(this.preventArtificialScroll[dimension]);\n this.preventArtificialScroll[dimension] = null;\n return true;\n }\n return false;\n }\n\n /* convert virtual to real and back, scale range */\n private convert(pos: number, param: Params, toReal: boolean = true): number {\n const minRange: number = param.clientSize;\n const from: [number, number] = [0, param.virtualContentSize - minRange];\n const to: [number, number] = [0, param.contentSize - param.virtualSize];\n if (toReal) {\n return scaleValue(pos, from, to);\n }\n return scaleValue(pos, to, from);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { h } from
|
|
4
|
+
import { h } from "@stencil/core";
|
|
5
5
|
var ResizeEvents;
|
|
6
6
|
(function (ResizeEvents) {
|
|
7
7
|
ResizeEvents["start"] = "resize:start";
|
|
@@ -249,7 +249,6 @@ export const ResizableElement = (props, children) => {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
-
return (h("div", Object.assign({}, props, { ref: (e) => directive === null || directive === void 0 ? void 0 : directive.set(e) }),
|
|
253
|
-
children,
|
|
254
|
-
resizeEls));
|
|
252
|
+
return (h("div", Object.assign({}, props, { ref: (e) => directive === null || directive === void 0 ? void 0 : directive.set(e) }), children, resizeEls));
|
|
255
253
|
};
|
|
254
|
+
//# sourceMappingURL=resizable.directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizable.directive.js","sourceRoot":"","sources":["../../src/services/resizable.directive.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { RevoGrid } from '../interfaces';\n\ntype Props = {\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\n fitParent: boolean; // false\n minWidth: number; // 0\n minHeight: number; // 0\n\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\n maxWidth?: number;\n maxHeight?: number;\n\n onResize?(e: ResizeEvent): void;\n onDoubleClick?(): void;\n};\n\nexport type ResizeEvent = {\n eventName: string;\n changedX?: number;\n changedY?: number;\n width?: number;\n height?: number;\n};\n\nenum ResizeEvents {\n start = 'resize:start',\n move = 'resize:move',\n end = 'resize:end',\n}\n\nconst RESIZE_MASK: { [key: string]: any } = {\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\n};\n\nconst DISABLE_MASK = {\n l: 0b0001,\n t: 0b0010,\n w: 0b0100,\n h: 0b1000,\n};\n\nconst defaultProps = (props: Partial<Props>): Props => {\n return {\n ...props,\n fitParent: props.fitParent || false,\n active: props.active || [],\n disableAttributes: props.disableAttributes || [],\n minWidth: props.minWidth || 0,\n minHeight: props.minHeight || 0,\n };\n};\n\nexport class ResizeDirective {\n private $el: HTMLElement;\n private props: Props;\n private minW: number;\n private minH: number;\n private maxW: number;\n private maxH: number;\n\n private mouseX: number = 0;\n private mouseY: number = 0;\n\n private width: number = 0;\n private height: number = 0;\n\n private changeX: number = 0;\n private changeY: number = 0;\n\n private parent: { width: number; height: number };\n private resizeState: number;\n private activeResizer: HTMLElement | null;\n private disableCalcMap: number = 0b1111;\n\n private mouseMoveFunc: () => void;\n private mouseUpFunc: () => void;\n\n constructor(private initialProps: Partial<Props>, private $event?: (e: ResizeEvent) => void) {\n this.props = defaultProps(initialProps);\n this.mouseMoveFunc = this.handleMove.bind(this);\n this.mouseUpFunc = this.handleUp.bind(this);\n\n this.minW = this.props.minWidth;\n this.minH = this.props.minHeight;\n this.maxW = this.props.maxWidth;\n this.maxH = this.props.maxHeight;\n this.parent = { width: 0, height: 0 };\n this.resizeState = 0;\n }\n\n set($el: HTMLElement) {\n this.$el = $el;\n this.props.disableAttributes.forEach(attr => {\n switch (attr) {\n case 'l':\n this.disableCalcMap &= ~DISABLE_MASK.l;\n break;\n case 't':\n this.disableCalcMap &= ~DISABLE_MASK.t;\n break;\n case 'w':\n this.disableCalcMap &= ~DISABLE_MASK.w;\n break;\n case 'h':\n this.disableCalcMap &= ~DISABLE_MASK.h;\n }\n });\n }\n emitEvent(eventName: string, additionalOptions?: any) {\n if (!this.$event) {\n return;\n }\n this.$event({\n eventName,\n width: this.width + this.changeX,\n height: this.height + this.changeY,\n changedX: this.changeX,\n changedY: this.changeY,\n ...additionalOptions,\n });\n }\n\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n const event = e as TouchEvent;\n return event.touches?.length >= 0;\n }\n\n handleMove(event: MouseEvent | TouchEvent) {\n if (!this.resizeState) {\n return;\n }\n let eventY, eventX;\n if (ResizeDirective.isTouchEvent(event)) {\n eventY = event.touches[0].clientY;\n eventX = event.touches[0].clientX;\n } else {\n eventY = event.clientY;\n eventX = event.clientX;\n }\n let isX = this.resizeState & RESIZE_MASK['resizable-r'].bit || this.resizeState & RESIZE_MASK['resizable-l'].bit;\n\n let isY = this.resizeState & RESIZE_MASK['resizable-t'].bit || this.resizeState & RESIZE_MASK['resizable-b'].bit;\n\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\n let diffY = eventY - this.mouseY;\n let changedY = this.changeY + diffY;\n const newHeight = this.height + changedY;\n // if overcrossed min height\n if (newHeight < this.minH) {\n changedY = -(this.height - this.minH);\n }\n // if overcrossed max heiht\n if (this.maxH && newHeight > this.maxH) {\n changedY = this.maxH - this.height;\n }\n\n this.changeY = changedY;\n this.mouseY = eventY;\n\n if (this.activeResizer) {\n this.activeResizer.style.bottom = `${-this.changeY}px`;\n }\n }\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\n let diffX = eventX - this.mouseX;\n let changedX = this.changeX + diffX;\n const newWidth = this.width + changedX;\n\n // if overcrossed min width\n if (newWidth < this.minW) {\n changedX = -(this.width - this.minW);\n }\n // if overcrossed max width\n if (this.maxW && newWidth > this.maxW) {\n changedX = this.maxW - this.width;\n }\n\n this.changeX = changedX;\n this.mouseX = eventX;\n\n if (this.activeResizer) {\n this.activeResizer.style.right = `${-this.changeX}px`;\n }\n }\n this.emitEvent(ResizeEvents.move);\n }\n\n handleDown(event: MouseEvent | TouchEvent) {\n if (event.defaultPrevented) {\n return;\n }\n // stop other events if resize in progress\n event.preventDefault();\n\n this.dropInitial();\n for (let elClass in RESIZE_MASK) {\n const target = event.target as HTMLElement | null;\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\n if (ResizeDirective.isTouchEvent(event)) {\n this.setInitials(event.touches[0], target);\n } else {\n event.preventDefault && event.preventDefault();\n this.setInitials(event, target);\n }\n this.resizeState = RESIZE_MASK[elClass].bit;\n const eventName = ResizeEvents.start;\n this.emitEvent(eventName);\n break;\n }\n }\n this.bindMove();\n }\n\n handleUp(e: MouseEvent) {\n e.preventDefault();\n if (this.resizeState !== 0) {\n this.resizeState = 0;\n document.body.style.cursor = '';\n const eventName = ResizeEvents.end;\n this.emitEvent(eventName);\n }\n this.dropInitial();\n this.unbindMove();\n }\n\n private setInitials({ clientX, clientY }: { clientX: number; clientY: number }, target?: HTMLElement) {\n const computedStyle = getComputedStyle(this.$el);\n this.$el.classList.add('active');\n this.activeResizer = target;\n\n if (this.disableCalcMap & DISABLE_MASK.w) {\n this.mouseX = clientX;\n this.width = this.$el.clientWidth;\n this.parent.width = this.$el.parentElement.clientWidth;\n\n // min width\n const minPaddingX = parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight);\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\n\n // max width\n if (this.initialProps.maxWidth) {\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\n }\n }\n\n if (this.disableCalcMap & DISABLE_MASK.h) {\n this.mouseY = clientY;\n this.height = this.$el.clientHeight;\n this.parent.height = this.$el.parentElement.clientHeight;\n\n // min height\n const minPaddingY = parseFloat(computedStyle.paddingTop) + parseFloat(computedStyle.paddingBottom);\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\n // max height\n if (this.initialProps.maxHeight) {\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\n }\n }\n }\n\n private dropInitial() {\n this.changeX = this.changeY = this.minW = this.minH;\n this.width = this.height = 0;\n if (this.activeResizer) {\n this.activeResizer.removeAttribute('style');\n }\n this.$el.classList.remove('active');\n this.activeResizer = null;\n }\n\n private bindMove() {\n document.documentElement.addEventListener('mouseup', this.mouseUpFunc, true);\n document.documentElement.addEventListener('touchend', this.mouseUpFunc, true);\n document.documentElement.addEventListener('mousemove', this.mouseMoveFunc, true);\n document.documentElement.addEventListener('touchmove', this.mouseMoveFunc, true);\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\n }\n\n private unbindMove() {\n document.documentElement.removeEventListener('mouseup', this.mouseUpFunc, true);\n document.documentElement.removeEventListener('touchend', this.mouseUpFunc, true);\n document.documentElement.removeEventListener('mousemove', this.mouseMoveFunc, true);\n document.documentElement.removeEventListener('touchmove', this.mouseMoveFunc, true);\n document.documentElement.removeEventListener('mouseleave', this.mouseUpFunc);\n }\n}\n\nexport const ResizableElement = (props: Partial<Props> & RevoGrid.CellProps, children: VNode[]) => {\n const resizeEls: VNode[] = [];\n const directive =\n (props.canResize &&\n new ResizeDirective(props, e => {\n if (e.eventName === ResizeEvents.end) {\n props.onResize && props.onResize(e);\n }\n })) ||\n null;\n if (props.canResize) {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick && props.onDoubleClick();\n }}\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\n class={`resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n } else {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick && props.onDoubleClick();\n }}\n class={`no-resize resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n }\n return (\n <div {...props} ref={(e: HTMLElement) => directive?.set(e)}>\n {children}\n {resizeEls}\n </div>\n );\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { cropCellToMax, isHiddenStore, nextCell } from
|
|
5
|
-
import { SelectionStore } from
|
|
4
|
+
import { cropCellToMax, isHiddenStore, nextCell } from "../store/selection/selection.helpers";
|
|
5
|
+
import { SelectionStore } from "../store/selection/selection.store";
|
|
6
6
|
export const EMPTY_INDEX = -1;
|
|
7
7
|
export default class SelectionStoreConnector {
|
|
8
8
|
constructor() {
|
|
@@ -214,3 +214,4 @@ export default class SelectionStoreConnector {
|
|
|
214
214
|
return stores;
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
+
//# sourceMappingURL=selection.store.connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.store.connector.js","sourceRoot":"","sources":["../../src/services/selection.store.connector.ts"],"names":[],"mappings":"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","sourcesContent":["import { Edition, Selection } from '../interfaces';\nimport { cropCellToMax, isHiddenStore, nextCell } from '../store/selection/selection.helpers';\nimport { SelectionStore } from '../store/selection/selection.store';\n\nimport Cell = Selection.Cell;\nimport EditCellStore = Edition.EditCellStore;\n\ntype StoresMatrix = { [y: number]: { [x: number]: SelectionStore } };\ntype StoreByDimension = Record<number, SelectionStore>;\ntype FocusedStore = {\n entity: SelectionStore;\n cell: Selection.Cell;\n position: Selection.Cell;\n};\n\nexport const EMPTY_INDEX = -1;\n\nexport default class SelectionStoreConnector {\n // dirty flag required to cleanup whole store in case visibility of panels changed\n private dirty = false;\n private readonly stores: StoresMatrix = {};\n\n readonly columnStores: StoreByDimension = {};\n readonly rowStores: { [y: number]: SelectionStore } = {};\n\n get focusedStore(): FocusedStore | null {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const focused = this.stores[y][x]?.store.get('focus');\n if (focused) {\n return {\n entity: this.stores[y][x],\n cell: focused,\n position: {\n x: parseInt(x, 10),\n y: parseInt(y, 10)\n }\n };\n }\n }\n }\n return null;\n }\n\n get edit(): EditCellStore | undefined {\n return this.focusedStore?.entity.store.get('edit');\n }\n\n get focused(): Cell | undefined {\n return this.focusedStore?.entity.store.get('focus');\n }\n\n get selectedRange(): Selection.RangeArea | undefined {\n return this.focusedStore?.entity.store.get('range');\n }\n\n private readonly sections: Element[] = [];\n registerSection(e?: Element) {\n if (!e) {\n this.sections.length = 0;\n // some elements removed, rebuild stores\n this.dirty = true;\n return;\n }\n if (this.sections.indexOf(e) === -1) {\n this.sections.push(e);\n }\n }\n\n // check if require to cleanup all stores\n beforeUpdate() {\n if (this.dirty) {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x].dispose();\n }\n }\n this.dirty = false;\n }\n }\n\n registerColumn(x: number): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(x)) {\n return new SelectionStore();\n }\n if (this.columnStores[x]) {\n return this.columnStores[x];\n }\n this.columnStores[x] = new SelectionStore();\n return this.columnStores[x];\n }\n\n registerRow(y: number): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (this.rowStores[y]) {\n return this.rowStores[y];\n }\n this.rowStores[y] = new SelectionStore();\n return this.rowStores[y];\n }\n\n /**\n * Cross store proxy, based on multiple dimensions\n */\n register({ x, y }: Selection.Cell): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(x) || isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (!this.stores[y]) {\n this.stores[y] = {};\n }\n if (this.stores[y][x]) {\n // Store already registered. Do not register twice\n return this.stores[y][x];\n }\n this.stores[y][x] = new SelectionStore();\n // proxy update\n this.stores[y][x]?.onChange('range', c => {\n this.columnStores[x].setRangeArea(c);\n this.rowStores[y].setRangeArea(c);\n });\n // clean up on remove\n this.stores[y][x]?.store.on('dispose', () => {\n this.columnStores[x]?.dispose();\n this.rowStores[y]?.dispose();\n delete this.rowStores[y];\n delete this.columnStores[x];\n if (this.stores[y]) {\n delete this.stores[y][x];\n }\n // clear empty rows\n if (!Object.keys(this.stores[y] || {}).length) {\n delete this.stores[y];\n }\n });\n return this.stores[y][x];\n }\n\n setEditByCell({ x, y }: Selection.Cell, editCell: Selection.Cell) {\n const store = this.stores[y][x];\n this.focus(store, { focus: editCell, end: editCell });\n this.setEdit('');\n }\n\n focus(store: SelectionStore, { focus, end }: { focus: Cell; end: Cell }) {\n let currentStorePointer: Selection.Cell;\n // clear all stores focus leave only active one\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const s = this.stores[y][x];\n // clear other stores, only one area can be selected\n if (s !== store) {\n s.clearFocus();\n } else {\n currentStorePointer = { x: parseInt(x, 10), y: parseInt(y, 10) };\n }\n }\n }\n if (!currentStorePointer) {\n return;\n }\n\n // check is focus in next store\n const lastCell = store.store.get('lastCell');\n // item in new store\n const nextItem: Partial<Cell> | null = nextCell(focus, lastCell);\n\n let nextStore;\n if (nextItem) {\n for (let i in nextItem) {\n let type: keyof Cell = i as keyof Cell;\n let stores;\n switch (type) {\n case 'x':\n stores = this.getXStores(currentStorePointer.y);\n break;\n case 'y':\n stores = this.getYStores(currentStorePointer.x);\n break;\n }\n if (nextItem[type] >= 0) {\n nextStore = stores[++currentStorePointer[type]];\n } else {\n nextStore = stores[--currentStorePointer[type]];\n const nextLastCell = nextStore?.store.get('lastCell');\n if (nextLastCell) {\n nextItem[type] = nextLastCell[type] + nextItem[type];\n }\n }\n }\n }\n\n // if next store present - update\n if (nextStore) {\n let item = { ...focus, ...nextItem };\n this.focus(nextStore, { focus: item, end: item });\n return;\n }\n\n focus = cropCellToMax(focus, lastCell);\n end = cropCellToMax(focus, lastCell);\n\n store.setFocus(focus, end);\n }\n\n clearAll(): void {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x]?.clearFocus();\n }\n }\n }\n\n setEdit(val: string | boolean) {\n if (!this.focusedStore) {\n return;\n }\n this.focusedStore.entity.setEdit(val);\n }\n\n private getXStores(y: number) {\n return this.stores[y];\n }\n\n private getYStores(x: number) {\n const stores: { [p: number]: SelectionStore } = {};\n for (let i in this.stores) {\n stores[i] = this.stores[i][x];\n }\n return stores;\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import reduce from
|
|
5
|
-
import { columnTypes, rowTypes } from
|
|
6
|
-
import ViewportStore from
|
|
4
|
+
import reduce from "lodash/reduce";
|
|
5
|
+
import { columnTypes, rowTypes } from "../store/storeTypes";
|
|
6
|
+
import ViewportStore from "../store/viewPort/viewport.store";
|
|
7
7
|
export default class ViewportProvider {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.stores = reduce([...rowTypes, ...columnTypes], (sources, k) => {
|
|
@@ -15,3 +15,4 @@ export default class ViewportProvider {
|
|
|
15
15
|
this.stores[dimensionType].setViewport(data);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
//# sourceMappingURL=viewport.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.provider.js","sourceRoot":"","sources":["../../src/services/viewport.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAI7D,MAAM,CAAC,OAAO,OAAO,gBAAgB;EAEnC;IACE,IAAI,CAAC,MAAM,GAAG,MAAM,CAClB,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,EAC7B,CAAC,OAAgC,EAAE,CAA8B,EAAE,EAAE;MACnE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;MACjC,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,EAAE,CACe,CAAC;EACtB,CAAC;EAED,WAAW,CAAC,aAA0C,EAAE,IAAqC;IAC3F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EAC/C,CAAC;CACF","sourcesContent":["import reduce from 'lodash/reduce';\nimport { columnTypes, rowTypes } from '../store/storeTypes';\nimport ViewportStore from '../store/viewPort/viewport.store';\nimport { RevoGrid } from '../interfaces';\n\nexport type ViewportStores = { [T in RevoGrid.MultiDimensionType]: ViewportStore };\nexport default class ViewportProvider {\n readonly stores: ViewportStores;\n constructor() {\n this.stores = reduce(\n [...rowTypes, ...columnTypes],\n (sources: Partial<ViewportStores>, k: RevoGrid.MultiDimensionType) => {\n sources[k] = new ViewportStore();\n return sources;\n },\n {},\n ) as ViewportStores;\n }\n\n setViewport(dimensionType: RevoGrid.MultiDimensionType, data: Partial<RevoGrid.ViewportState>): void {\n this.stores[dimensionType].setViewport(data);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.proxy.js","sourceRoot":"","sources":["../../../src/store/dataSource/data.proxy.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAwB,EAA0B,EAAE,CAAC,CAAC;EAChF,GAAG,CAAC,CAAC,EAAE,MAAM;IACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;MACf,OAAO;KACR;IACD;;;OAGG;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAA0B,EAAE,CAAC,EAAE,EAAE;MAC3E,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;MACZ,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IACP;;;OAGG;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,CAAS,EAAE,EAAE;MACxD,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;QACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;OACX;MACD,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;EAC/B,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,CAAc;EAC7B,OAAO,CAAC,KAAK,YAAY,CAAC;AAC5B,CAAC","sourcesContent":["import { Observable, PluginSubscribe } from '../../interfaces';\nimport { DataSourceState } from '../../store/dataSource/data.store';\n\ntype State = DataSourceState<any, any>;\n\n/**\n * All items\n * Used as proxy for sorting\n * Keep order but do not modify final source\n */\nexport const proxyPlugin = (store: Observable<State>): PluginSubscribe<State> => ({\n set(k, newVal) {\n if (!isProxy(k)) {\n return;\n }\n /**\n * Getting existing collection of items\n * Mark indexes as visible\n */\n const oldItems = store.get('items').reduce((r: Record<number, boolean>, v) => {\n r[v] = true;\n return r;\n }, {});\n /**\n * Check if new values where present in items\n * Filter item collection according presense\n */\n const newItems = newVal.reduce((r: number[], i: number) => {\n if (oldItems[i]) {\n r.push(i);\n }\n return r;\n }, []);\n store.set('items', newItems);\n },\n});\n\nfunction isProxy(k: keyof State): k is 'proxyItems' {\n return k === 'proxyItems';\n}\n"]}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { createStore } from
|
|
5
|
-
import findIndex from
|
|
6
|
-
import range from
|
|
7
|
-
import { trimmedPlugin } from
|
|
8
|
-
import { setStore } from
|
|
9
|
-
import { proxyPlugin } from
|
|
4
|
+
import { createStore } from "@stencil/store";
|
|
5
|
+
import findIndex from "lodash/findIndex";
|
|
6
|
+
import range from "lodash/range";
|
|
7
|
+
import { trimmedPlugin } from "../../plugins/trimmed/trimmed.plugin";
|
|
8
|
+
import { setStore } from "../../utils/store.utils";
|
|
9
|
+
import { proxyPlugin } from "./data.proxy";
|
|
10
10
|
export default class DataStore {
|
|
11
|
+
get store() {
|
|
12
|
+
return this.dataStore;
|
|
13
|
+
}
|
|
11
14
|
constructor(type) {
|
|
12
15
|
const store = (this.dataStore = createStore({
|
|
13
16
|
items: [],
|
|
@@ -21,9 +24,6 @@ export default class DataStore {
|
|
|
21
24
|
store.use(proxyPlugin(store));
|
|
22
25
|
store.use(trimmedPlugin(store));
|
|
23
26
|
}
|
|
24
|
-
get store() {
|
|
25
|
-
return this.dataStore;
|
|
26
|
-
}
|
|
27
27
|
/**
|
|
28
28
|
* full data source update
|
|
29
29
|
* @param source - data column/rgRow source
|
|
@@ -129,3 +129,4 @@ export function getSourceItemVirtualIndexByProp(store, prop) {
|
|
|
129
129
|
const physicalIndex = findIndex(source, { prop });
|
|
130
130
|
return items.indexOf(physicalIndex);
|
|
131
131
|
}
|
|
132
|
+
//# sourceMappingURL=data.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.store.js","sourceRoot":"","sources":["../../../src/store/dataSource/data.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { createStore } from '@stencil/store';\nimport findIndex from 'lodash/findIndex';\nimport range from 'lodash/range';\n\nimport { Trimmed, trimmedPlugin } from '../../plugins/trimmed/trimmed.plugin';\nimport { setStore } from '../../utils/store.utils';\nimport { Observable, RevoGrid } from '../../interfaces';\nimport { proxyPlugin } from './data.proxy';\nimport { GroupLabelTemplateFunc } from '../../plugins/groupingRow/grouping.row.types';\nimport DataType = RevoGrid.DataType;\nimport ColumnRegular = RevoGrid.ColumnRegular;\nimport DimensionRows = RevoGrid.DimensionRows;\nimport DimensionCols = RevoGrid.DimensionCols;\n\nexport interface Group extends RevoGrid.ColumnProperties {\n name: string;\n children: RevoGrid.ColumnRegular[];\n // props/ids\n ids: (string | number)[];\n}\nexport type Groups = Record<any, any>;\nexport type GDataType = DataType | ColumnRegular;\nexport type GDimension = DimensionRows | DimensionCols;\nexport type DataSourceState<T extends GDataType, ST extends GDimension> = {\n // items - index based array for mapping to source tree\n items: number[];\n // all items, used as proxy for sorting, trimming and others\n proxyItems: number[];\n // original data source\n source: T[];\n // grouping\n groupingDepth: number;\n groups: Groups;\n groupingCustomRenderer?: GroupLabelTemplateFunc;\n // data source type\n type: ST;\n // trim data, to hide entities from visible data source\n trimmed: Trimmed;\n};\n\nexport default class DataStore<T extends GDataType, ST extends GDimension> {\n private readonly dataStore: Observable<DataSourceState<T, ST>>;\n get store(): Observable<DataSourceState<T, ST>> {\n return this.dataStore;\n }\n constructor(type: ST) {\n const store = (this.dataStore = createStore({\n items: [],\n proxyItems: [],\n source: [],\n groupingDepth: 0,\n groups: {},\n type,\n trimmed: {},\n }));\n store.use(proxyPlugin(store));\n store.use(trimmedPlugin(store));\n }\n\n /**\n * full data source update\n * @param source - data column/rgRow source\n * @param grouping - grouping information if present\n */\n updateData(\n source: T[],\n grouping?: { depth: number; groups?: Groups; customRenderer?: GroupLabelTemplateFunc },\n silent = false,\n ) {\n // during full update we do drop trim\n if (!silent) {\n this.store.set('trimmed', {});\n }\n // clear items\n this.store.set('items', []);\n const items = range(0, source?.length || 0);\n\n // set proxy first\n setStore(this.store, {\n source,\n proxyItems: [...items],\n });\n // update data items\n this.store.set('items', items);\n // apply grooping if present\n if (grouping) {\n setStore(this.store, {\n groupingDepth: grouping.depth,\n groups: grouping.groups,\n groupingCustomRenderer: grouping.customRenderer,\n });\n }\n }\n\n addTrimmed(some: Partial<Trimmed>) {\n let trimmed = this.store.get('trimmed');\n trimmed = { ...trimmed, ...some };\n setStore(this.store, { trimmed });\n }\n\n // local data update\n setData(input: Partial<DataSourceState<T, ST>>) {\n const data: Partial<DataSourceState<T, ST>> = {\n ...input,\n };\n setStore(this.store, data);\n }\n\n refresh() {\n const source = this.store.get('source');\n this.store.set('source', [...source]);\n }\n}\n/**\n * get physical index by virtual\n * @param store - store to process\n */\nexport function getPhysical(store: Observable<DataSourceState<any, any>>, virtualIndex: number) {\n const items = store.get('items');\n return items[virtualIndex];\n}\n\n/**\n * get all visible items\n * @param store - store to process\n */\nexport function getVisibleSourceItem(store: Observable<DataSourceState<any, any>>) {\n const source = store.get('source');\n return store.get('items').map(v => source[v]);\n}\n\n/**\n * get mapped item from source\n * @param store - store to process\n * @param virtualIndex - virtual index to process\n */\nexport function getSourceItem(store: Observable<DataSourceState<any, any>>, virtualIndex: number) {\n const items = store.get('items');\n const source = store.get('source');\n return source[items[virtualIndex]];\n}\n\n/**\n * set item to source\n * @param store - store to process\n * @param modelByIndex - collection of rows with virtual indexes to setup\n */\nexport function setSourceByVirtualIndex<T>(store: Observable<DataSourceState<T, any>>, modelByIndex: Record<number, T>) {\n const items = store.get('items');\n const source = store.get('source');\n\n for (let virtualIndex in modelByIndex) {\n const realIndex = items[virtualIndex];\n source[realIndex] = modelByIndex[virtualIndex];\n }\n store.set('source', [...source]);\n}\n\n/**\n * set item to source\n * @param store - store to process\n * @param modelByIndex - collection of rows with physical indexes to setup\n */\nexport function setSourceByPhysicalIndex<T>(store: Observable<DataSourceState<T, any>>, modelByIndex: Record<number, T>) {\n const source = store.get('source');\n for (let index in modelByIndex) {\n source[index] = modelByIndex[index];\n }\n store.set('source', [...source]);\n}\n\nexport function setItems<T>(store: Observable<DataSourceState<T, any>>, items: number[]) {\n store.set('items', items);\n}\n\nexport function getSourceItemVirtualIndexByProp(store: Observable<DataSourceState<any, any>>, prop: RevoGrid.ColumnProp) {\n const items = store.get('items');\n const source = store.get('source');\n const physicalIndex = findIndex(source, { prop });\n return items.indexOf(physicalIndex);\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import each from
|
|
5
|
-
import sortedIndex from
|
|
6
|
-
import reduce from
|
|
7
|
-
import { mergeSortedArray } from
|
|
4
|
+
import each from "lodash/each";
|
|
5
|
+
import sortedIndex from "lodash/sortedIndex";
|
|
6
|
+
import reduce from "lodash/reduce";
|
|
7
|
+
import { mergeSortedArray } from "../../utils/utils";
|
|
8
8
|
/**
|
|
9
9
|
* Pre-calculation
|
|
10
10
|
* Dimension sizes for each cell
|
|
@@ -108,3 +108,4 @@ export function getItemByIndex(dimension, index) {
|
|
|
108
108
|
item.end = item.start + dimension.originItemSize;
|
|
109
109
|
return item;
|
|
110
110
|
}
|
|
111
|
+
//# sourceMappingURL=dimension.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension.helpers.js","sourceRoot":"","sources":["../../../src/store/dimension/dimension.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import each from 'lodash/each';\nimport sortedIndex from 'lodash/sortedIndex';\nimport reduce from 'lodash/reduce';\n\nimport { mergeSortedArray } from '../../utils/utils';\nimport { RevoGrid } from '../../interfaces';\n\nexport type DimensionPosition = Pick<RevoGrid.DimensionSettingsState, 'indexes' | 'positionIndexes' | 'originItemSize' | 'positionIndexToItem'>;\ntype DimensionIndexInput = Pick<RevoGrid.DimensionSettingsState, 'indexes' | 'originItemSize' | 'indexToItem'>;\nexport type DimensionSize = Pick<RevoGrid.DimensionSettingsState, 'indexes' | 'positionIndexes' | 'positionIndexToItem' | 'indexToItem' | 'realSize' | 'sizes'>;\n/**\n * Pre-calculation\n * Dimension sizes for each cell\n */\nexport function calculateDimensionData(\n state: RevoGrid.DimensionSettingsState,\n newSizes: RevoGrid.ViewSettingSizeProp): DimensionSize {\n let positionIndexes: number[] = [];\n\n const positionIndexToItem: { [position: number]: RevoGrid.PositionItem } = {};\n const indexToItem: { [index: number]: RevoGrid.PositionItem } = {};\n\n // to compare how real width changed\n let newTotal = 0;\n\n // combine all sizes\n const sizes: RevoGrid.ViewSettingSizeProp = { ...state.sizes, ...newSizes };\n // prepare order sorted new sizes and calculate changed real size\n let newIndexes: number[] = [];\n each(newSizes, (size: number, index: string) => {\n // if first introduced custom size\n if (!state.sizes[index]) {\n newTotal += size - (state.realSize ? state.originItemSize : 0);\n newIndexes.splice(sortedIndex(newIndexes, parseInt(index, 10)), 0, parseInt(index, 10));\n } else {\n newTotal += size - state.sizes[index];\n }\n });\n\n // add order to cached order collection for faster linking\n const updatedIndexesCache: number[] = mergeSortedArray(state.indexes, newIndexes);\n\n // fill new coordinates\n reduce(\n updatedIndexesCache,\n (previous: RevoGrid.PositionItem | undefined, itemIndex: number, i: number) => {\n const newItem: RevoGrid.PositionItem = {\n itemIndex,\n start: 0,\n end: 0,\n };\n if (previous) {\n newItem.start = (itemIndex - previous.itemIndex - 1) * state.originItemSize + previous.end;\n } else {\n newItem.start = itemIndex * state.originItemSize;\n }\n newItem.end = newItem.start + sizes[itemIndex];\n positionIndexes.push(newItem.start);\n indexToItem[itemIndex] = positionIndexToItem[i] = newItem;\n return newItem;\n },\n undefined,\n );\n\n return {\n indexes: updatedIndexesCache,\n positionIndexes: [...positionIndexes],\n positionIndexToItem: { ...positionIndexToItem },\n indexToItem,\n realSize: state.realSize + newTotal,\n sizes,\n };\n}\n\nexport function getItemByPosition({ indexes, positionIndexes, originItemSize, positionIndexToItem }: DimensionPosition, pos: number) {\n const item: RevoGrid.PositionItem = {\n itemIndex: 0,\n start: 0,\n end: 0,\n };\n const currentPlace: number = indexes.length ? sortedIndex(positionIndexes, pos) : 0;\n // not found or first index\n if (!currentPlace) {\n item.itemIndex = Math.floor(pos / originItemSize);\n item.start = item.itemIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n }\n const positionItem: RevoGrid.PositionItem = positionIndexToItem[currentPlace - 1];\n // if item has specified size\n if (positionItem.end > pos) {\n return positionItem;\n }\n // special size item was present before\n const relativePos: number = pos - positionItem.end;\n const relativeIndex: number = Math.floor(relativePos / originItemSize);\n item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;\n item.start = positionItem.end + relativeIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n}\n\n\nexport function getItemByIndex(dimension: DimensionIndexInput, index: number) {\n let item: RevoGrid.PositionItem = {\n itemIndex: index,\n start: 0,\n end: 0,\n };\n // if item has specified size\n if (dimension.indexToItem[index]) {\n return dimension.indexToItem[index];\n }\n\n const currentPlace: number = dimension.indexes.length ? sortedIndex(dimension.indexes, index) : 0;\n // not found or first index\n if (!currentPlace) {\n item.start = item.itemIndex * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n }\n // special size item was present before\n\n const positionItem: RevoGrid.PositionItem = dimension.indexToItem[dimension.indexes[currentPlace - 1]];\n item.start = positionItem.end + (index - positionItem.itemIndex - 1) * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n}\n"]}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* Storing pre-calculated
|
|
6
6
|
* Dimension information and sizes
|
|
7
7
|
*/
|
|
8
|
-
import { createStore } from
|
|
9
|
-
import reduce from
|
|
10
|
-
import { setStore } from
|
|
11
|
-
import { calculateDimensionData } from
|
|
8
|
+
import { createStore } from "@stencil/store";
|
|
9
|
+
import reduce from "lodash/reduce";
|
|
10
|
+
import { setStore } from "../../utils/store.utils";
|
|
11
|
+
import { calculateDimensionData } from "./dimension.helpers";
|
|
12
12
|
function initialBase() {
|
|
13
13
|
return {
|
|
14
14
|
indexes: [],
|
|
@@ -22,11 +22,12 @@ function initialBase() {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
function initialState() {
|
|
25
|
-
return Object.assign(Object.assign({}, initialBase()), {
|
|
25
|
+
return Object.assign(Object.assign({}, initialBase()), {
|
|
26
26
|
// size which all items can take
|
|
27
|
-
realSize: 0,
|
|
27
|
+
realSize: 0,
|
|
28
28
|
// initial item size if it wasn't changed
|
|
29
|
-
originItemSize: 0, frameOffset: 0
|
|
29
|
+
originItemSize: 0, frameOffset: 0
|
|
30
|
+
});
|
|
30
31
|
}
|
|
31
32
|
export default class DimensionStore {
|
|
32
33
|
constructor() {
|
|
@@ -60,3 +61,4 @@ export default class DimensionStore {
|
|
|
60
61
|
return dimensionData;
|
|
61
62
|
}
|
|
62
63
|
}
|
|
64
|
+
//# sourceMappingURL=dimension.store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension.store.js","sourceRoot":"","sources":["../../../src/store/dimension/dimension.store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAiB,MAAM,qBAAqB,CAAC;AAK5E,SAAS,WAAW;EAClB,OAAO;IACL,OAAO,EAAE,EAAE;IACX,qBAAqB;IACrB,KAAK,EAAE,EAAE;IACT,mCAAmC;IACnC,mBAAmB,EAAE,EAAE;IACvB,kCAAkC;IAClC,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;GACpB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;EACnB,uCACK,WAAW,EAAE;IAChB,gCAAgC;IAChC,QAAQ,EAAE,CAAC;IAEX,yCAAyC;IACzC,cAAc,EAAE,CAAC,EACjB,WAAW,EAAE,CAAC,IACd;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,cAAc;EAEjC;IACE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;EAC3C,CAAC;EAED,eAAe;IACb,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;IAClD,OAAO,MAAM,CACX,IAAI,EACJ,CAAC,CAAkC,EAAE,CAAO,EAAE,EAAE;MAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAC/B,CAAC,CAAC,CAAC,CAAC,GAAG,IAAa,CAAC;MACrB,OAAO,CAAC,CAAC;IACX,CAAC,EACD,KAAK,CACN,CAAC;EACJ,CAAC;EAED,WAAW,CAAC,KAAa;IACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;MAC9B,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KAC5E;IACD,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;EACrC,CAAC;EAED,QAAQ,CAAmC,IAAgB;IACzD,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;EAC7B,CAAC;EAED,IAAI;IACF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;EACtC,CAAC;EAED,gBAAgB,CAAC,KAAmC;IAClD,MAAM,aAAa,GAAkB,sBAAsB,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3F,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;EACvB,CAAC;CACF","sourcesContent":["/**\n * Storing pre-calculated\n * Dimension information and sizes\n */\n\nimport { createStore } from '@stencil/store';\nimport reduce from 'lodash/reduce';\n\nimport { setStore } from '../../utils/store.utils';\nimport { calculateDimensionData, DimensionSize } from './dimension.helpers';\nimport { Observable, RevoGrid } from '../../interfaces';\n\ntype Item = keyof RevoGrid.DimensionSettingsState;\n\nfunction initialBase(): RevoGrid.DimensionCalc {\n return {\n indexes: [],\n // item index to size\n sizes: {},\n // order in indexes[] to coordinate\n positionIndexToItem: {},\n // initial element to coordinate ^\n indexToItem: {},\n positionIndexes: []\n };\n}\n\nfunction initialState(): RevoGrid.DimensionSettingsState {\n return {\n ...initialBase(),\n // size which all items can take\n realSize: 0,\n\n // initial item size if it wasn't changed\n originItemSize: 0,\n frameOffset: 0,\n };\n}\n\nexport default class DimensionStore {\n readonly store: Observable<RevoGrid.DimensionSettingsState>;\n constructor() {\n this.store = createStore(initialState());\n }\n\n getCurrentState(): RevoGrid.DimensionSettingsState {\n const state = initialState();\n const keys: Item[] = Object.keys(state) as Item[];\n return reduce(\n keys,\n (r: RevoGrid.DimensionSettingsState, k: Item) => {\n const data = this.store.get(k);\n r[k] = data as never;\n return r;\n },\n state,\n );\n }\n\n setRealSize(count: number): void {\n let realSize = 0;\n for (let i = 0; i < count; i++) {\n realSize += this.store.get('sizes')[i] || this.store.get('originItemSize');\n }\n setStore(this.store, { realSize });\n }\n\n setStore<T extends { [key: string]: any }>(data: Partial<T>) {\n setStore(this.store, data);\n }\n\n drop() {\n setStore(this.store, initialBase());\n }\n\n setDimensionSize(sizes: RevoGrid.ViewSettingSizeProp) {\n const dimensionData: DimensionSize = calculateDimensionData(this.getCurrentState(), sizes);\n setStore(this.store, dimensionData);\n return dimensionData;\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { EMPTY_INDEX } from
|
|
4
|
+
import { EMPTY_INDEX } from "../../services/selection.store.connector";
|
|
5
5
|
export function isHiddenStore(pos) {
|
|
6
6
|
return pos === EMPTY_INDEX;
|
|
7
7
|
}
|
|
@@ -54,3 +54,4 @@ export function getRange(start, end) {
|
|
|
54
54
|
export function isRangeSingleCell(a) {
|
|
55
55
|
return a.x === a.x1 && a.y === a.y1;
|
|
56
56
|
}
|
|
57
|
+
//# sourceMappingURL=selection.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.helpers.js","sourceRoot":"","sources":["../../../src/store/selection/selection.helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAIvE,MAAM,UAAU,aAAa,CAAC,GAAW;EACvC,OAAO,GAAG,KAAK,WAAW,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAU,EAAE,QAAc;EACjD,MAAM,QAAQ,GAAkB,EAAE,CAAC;EACnC,IAAI,KAAK,GAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAEvC,sBAAsB;EACtB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;MACf,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;MACtB,OAAO,QAAQ,CAAC;KACjB;GACF;EACD,kBAAkB;EAClB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;MAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;MACpC,OAAO,QAAQ,CAAC;KACjB;GACF;EACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,QAAc;EACtD,MAAM,OAAO,qBAAc,IAAI,CAAE,CAAC;EAClC,IAAI,KAAK,GAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EACvC,sBAAsB;EACtB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;MACf,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAChB;GACF;EACD,kBAAkB;EAClB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;MAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC9B;GACF;EACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,GAAU;EAC/C,OAAO,KAAK,IAAI,GAAG;IACjB,CAAC,CAAC;MACE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;MAC3B,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;MAC3B,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;MAC5B,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAC7B;IACH,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAY;EAC5C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC","sourcesContent":["import { Selection } from '../../interfaces';\nimport { EMPTY_INDEX } from '../../services/selection.store.connector';\nimport Cell = Selection.Cell;\nimport RangeArea = Selection.RangeArea;\n\nexport function isHiddenStore(pos: number) {\n return pos === EMPTY_INDEX;\n}\n\nexport function nextCell(cell: Cell, lastCell: Cell): Partial<Cell> | null {\n const nextItem: Partial<Cell> = {};\n let types: (keyof Cell)[] = ['x', 'y'];\n\n // previous item check\n for (let t of types) {\n if (cell[t] < 0) {\n nextItem[t] = cell[t];\n return nextItem;\n }\n }\n // next item check\n for (let t of types) {\n if (cell[t] >= lastCell[t]) {\n nextItem[t] = cell[t] - lastCell[t];\n return nextItem;\n }\n }\n return null;\n}\n\nexport function cropCellToMax(cell: Cell, lastCell: Cell): Cell {\n const newCell: Cell = { ...cell };\n let types: (keyof Cell)[] = ['x', 'y'];\n // previous item check\n for (let t of types) {\n if (cell[t] < 0) {\n newCell[t] = 0;\n }\n }\n // next item check\n for (let t of types) {\n if (cell[t] >= lastCell[t]) {\n newCell[t] = lastCell[t] - 1;\n }\n }\n return newCell;\n}\n\nexport function getRange(start?: Cell, end?: Cell): RangeArea | null {\n return start && end\n ? {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n x1: Math.max(start.x, end.x),\n y1: Math.max(start.y, end.y),\n }\n : null;\n}\n\nexport function isRangeSingleCell(a: RangeArea): boolean {\n return a.x === a.x1 && a.y === a.y1;\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import { createStore } from
|
|
5
|
-
import { setStore } from
|
|
6
|
-
import { getRange } from
|
|
4
|
+
import { createStore } from "@stencil/store";
|
|
5
|
+
import { setStore } from "../../utils/store.utils";
|
|
6
|
+
import { getRange } from "./selection.helpers";
|
|
7
7
|
function defaultState() {
|
|
8
8
|
return {
|
|
9
9
|
range: null,
|
|
@@ -69,3 +69,4 @@ export class SelectionStore {
|
|
|
69
69
|
this.store.dispose();
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
+
//# sourceMappingURL=selection.store.js.map
|