@revolist/revogrid 3.6.13 → 3.6.16
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 +1 -3
- package/custom-element/columnService.js +4 -6
- package/custom-element/consts.js +1 -3
- package/custom-element/data.store.js +33 -55
- package/custom-element/debounce.js +1 -3
- package/custom-element/dimension.helpers.js +1 -3
- package/custom-element/each.js +0 -2
- package/custom-element/filter.button.js +0 -2
- package/custom-element/identity.js +0 -2
- package/custom-element/index.d.ts +16 -9
- package/custom-element/index.js +15 -4
- package/custom-element/isSymbol.js +1 -3
- package/custom-element/keys.js +1 -3
- package/custom-element/localScrollService.js +0 -2
- package/custom-element/resize-observer.js +0 -2
- package/custom-element/revo-grid.js +154 -29
- package/custom-element/revogr-clipboard.js +4 -4
- package/custom-element/revogr-data.js +0 -2
- package/custom-element/revogr-data2.js +3 -14
- package/custom-element/revogr-edit.js +0 -2
- package/custom-element/revogr-edit2.js +3 -7
- package/custom-element/revogr-filter-panel.js +6 -10
- package/custom-element/revogr-focus.js +0 -2
- package/custom-element/revogr-focus2.js +2 -8
- package/custom-element/revogr-header.js +0 -2
- package/custom-element/revogr-header2.js +3 -11
- package/custom-element/revogr-order-editor.js +0 -2
- package/custom-element/revogr-order-editor2.js +3 -8
- package/custom-element/revogr-overlay-selection.js +0 -2
- package/custom-element/revogr-overlay-selection2.js +3 -15
- package/custom-element/revogr-row-headers.js +0 -2
- package/custom-element/revogr-row-headers2.js +2 -9
- package/custom-element/revogr-scroll-virtual.js +0 -2
- package/custom-element/revogr-scroll-virtual2.js +2 -5
- package/custom-element/revogr-temp-range.js +0 -2
- package/custom-element/revogr-temp-range2.js +4 -8
- package/custom-element/revogr-viewport-scroll.js +0 -2
- package/custom-element/revogr-viewport-scroll2.js +11 -6
- package/custom-element/selection.utils.js +0 -2
- package/custom-element/toInteger.js +0 -2
- package/custom-element/toNumber.js +1 -3
- package/custom-element/utils.js +0 -2
- package/dist/cjs/css-shim-9f5bc84d.js +9 -0
- package/dist/cjs/{debounce-a0628875.js → debounce-6cea2774.js} +1 -3
- package/dist/cjs/dom-fcb646f0.js +78 -0
- package/dist/cjs/{index-c209f988.js → index-cb904e00.js} +315 -667
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +25 -5
- package/dist/cjs/{resize-observer-cc749e66.js → resize-observer-bf327d6a.js} +0 -2
- package/dist/cjs/revo-grid.cjs.js +59 -8
- package/dist/cjs/revo-grid_11.cjs.entry.js +144 -143
- package/dist/cjs/revogr-clipboard.cjs.entry.js +3 -4
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +6 -11
- package/dist/collection/collection-manifest.json +16 -16
- package/dist/collection/components/button/button.js +1 -2
- package/dist/collection/components/clipboard/revogr-clipboard.js +80 -86
- package/dist/collection/components/data/cellRenderer.js +5 -5
- package/dist/collection/components/data/columnService.js +8 -9
- package/dist/collection/components/data/revogr-data.js +226 -258
- package/dist/collection/components/data/rowRenderer.js +1 -2
- package/dist/collection/components/header/headerCellRenderer.js +7 -6
- package/dist/collection/components/header/headerRenderer.js +8 -7
- package/dist/collection/components/header/revogr-header.js +233 -259
- package/dist/collection/components/order/orderRenderer.js +6 -3
- package/dist/collection/components/order/revogr-order-editor.js +252 -279
- package/dist/collection/components/order/rowOrderService.js +1 -2
- package/dist/collection/components/overlay/autofill.service.js +7 -8
- package/dist/collection/components/overlay/clipboard.service.js +3 -4
- package/dist/collection/components/overlay/editors/edit.utils.js +1 -2
- package/dist/collection/components/overlay/editors/text.js +3 -4
- package/dist/collection/components/overlay/keyboard.service.js +5 -6
- package/dist/collection/components/overlay/revogr-edit.js +96 -112
- package/dist/collection/components/overlay/revogr-overlay-selection.js +476 -520
- package/dist/collection/components/overlay/selection.utils.js +1 -2
- package/dist/collection/components/revo-grid/revo-grid-style.css +13 -7
- package/dist/collection/components/revo-grid/revo-grid.js +1638 -1668
- package/dist/collection/components/revo-grid/viewport.helpers.js +0 -1
- package/dist/collection/components/revo-grid/viewport.interfaces.js +3 -1
- package/dist/collection/components/revo-grid/viewport.js +7 -4
- package/dist/collection/components/revo-grid/viewport.resize.service.js +2 -3
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js +0 -1
- package/dist/collection/components/revo-grid/viewport.section.js +7 -5
- package/dist/collection/components/revo-grid/viewport.service.js +6 -7
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +147 -161
- package/dist/collection/components/rowHeaders/row-header-render.js +0 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +4 -2
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +168 -172
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +137 -159
- package/dist/collection/components/selection-focus/revogr-focus.js +128 -153
- 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 +77 -92
- package/dist/collection/global/global.js +2 -3
- package/dist/collection/index.js +0 -1
- package/dist/collection/plugins/autoSizeColumn.js +6 -7
- package/dist/collection/plugins/basePlugin.js +0 -1
- package/dist/collection/plugins/dispatcher.js +0 -1
- package/dist/collection/plugins/export/csv.js +1 -2
- package/dist/collection/plugins/export/export.plugin.js +5 -6
- package/dist/collection/plugins/export/types.js +3 -1
- package/dist/collection/plugins/filter/conditions/equal.js +0 -1
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +0 -1
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +2 -3
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +0 -1
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +2 -3
- package/dist/collection/plugins/filter/conditions/set.js +0 -1
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +0 -1
- package/dist/collection/plugins/filter/conditions/string/contains.js +0 -1
- package/dist/collection/plugins/filter/filter.button.js +12 -7
- package/dist/collection/plugins/filter/filter.plugin.js +4 -5
- package/dist/collection/plugins/filter/filter.pop.js +238 -254
- package/dist/collection/plugins/filter/filter.service.js +8 -9
- package/dist/collection/plugins/filter/filter.style.css +3 -2
- package/dist/collection/plugins/filter/filter.types.js +3 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +5 -6
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +3 -4
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +3 -4
- package/dist/collection/plugins/groupingRow/grouping.const.js +1 -2
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +2 -3
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +13 -14
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +10 -6
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +3 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +1 -2
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -2
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js +7 -8
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js +1 -2
- package/dist/collection/plugins/sorting/sorting.plugin.js +7 -8
- package/dist/collection/plugins/sorting/sorting.sign.js +1 -2
- package/dist/collection/plugins/stretchPlugin.js +3 -4
- package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -1
- package/dist/collection/services/cell.helpers.js +1 -2
- package/dist/collection/services/column.data.provider.js +13 -14
- package/dist/collection/services/data.provider.js +3 -4
- package/dist/collection/services/dimension.provider.js +4 -5
- package/dist/collection/services/localScrollService.js +1 -2
- package/dist/collection/services/resizable.directive.js +4 -3
- package/dist/collection/services/selection.store.connector.js +2 -3
- package/dist/collection/services/viewport.provider.js +3 -4
- package/dist/collection/store/dataSource/data.proxy.js +0 -1
- package/dist/collection/store/dataSource/data.store.js +9 -10
- package/dist/collection/store/dimension/dimension.helpers.js +4 -5
- package/dist/collection/store/dimension/dimension.store.js +7 -9
- package/dist/collection/store/selection/selection.helpers.js +1 -2
- package/dist/collection/store/selection/selection.store.js +3 -4
- package/dist/collection/store/selection/selection.store.service.js +1 -2
- package/dist/collection/store/storeTypes.js +0 -1
- package/dist/collection/store/viewPort/viewport.helpers.js +1 -2
- package/dist/collection/store/viewPort/viewport.store.js +3 -4
- package/dist/collection/themeManager/theme.compact.js +0 -1
- package/dist/collection/themeManager/theme.default.js +0 -1
- package/dist/collection/themeManager/theme.material.js +0 -1
- package/dist/collection/themeManager/themeService.js +8 -9
- package/dist/collection/utils/closestPolifill.js +0 -1
- package/dist/collection/utils/consts.js +0 -1
- package/dist/collection/utils/generateAlphabetHeader.js +0 -1
- package/dist/collection/utils/keyCodes.js +0 -1
- package/dist/collection/utils/keyCodes.utils.js +3 -4
- package/dist/collection/utils/platform.js +0 -1
- package/dist/collection/utils/resizeObserver.js +0 -1
- package/dist/collection/utils/store.utils.js +0 -1
- package/dist/collection/utils/utils.js +0 -1
- package/dist/esm/css-shim-e1e1ea5e.js +7 -0
- package/dist/esm/{debounce-cb7aac48.js → debounce-e4e6dd45.js} +1 -3
- package/dist/esm/dom-21bd1807.js +76 -0
- package/dist/esm/{index-f21f8a13.js → index-6f753b3c.js} +311 -667
- package/dist/esm/index.js +0 -2
- package/dist/esm/loader.js +25 -5
- package/dist/esm/polyfills/css-shim.js +1 -0
- package/dist/esm/{resize-observer-4f34a839.js → resize-observer-00c48d78.js} +0 -2
- package/dist/esm/revo-grid.js +60 -6
- package/dist/esm/revo-grid_11.entry.js +144 -143
- package/dist/esm/revogr-clipboard.entry.js +3 -4
- package/dist/esm/revogr-filter-panel.entry.js +6 -11
- package/dist/esm-es5/css-shim-e1e1ea5e.js +4 -0
- package/dist/esm-es5/{debounce-cb7aac48.js → debounce-e4e6dd45.js} +1 -2
- package/dist/esm-es5/dom-21bd1807.js +24 -0
- package/dist/esm-es5/index-6f753b3c.js +4 -0
- package/dist/esm-es5/index.js +0 -1
- package/dist/esm-es5/loader.js +1 -2
- package/dist/esm-es5/{resize-observer-4f34a839.js → resize-observer-00c48d78.js} +1 -2
- package/dist/esm-es5/revo-grid.js +1 -2
- package/dist/esm-es5/revo-grid_11.entry.js +2 -3
- package/dist/esm-es5/revogr-clipboard.entry.js +2 -3
- package/dist/esm-es5/revogr-filter-panel.entry.js +2 -3
- package/dist/revo-grid/css-shim-bcf89cc0.system.js +4 -0
- package/dist/revo-grid/css-shim-e1e1ea5e.js +4 -0
- package/dist/revo-grid/{debounce-3aba7c4d.system.js → debounce-5a33c710.system.js} +1 -2
- package/dist/revo-grid/debounce-726bdadb.js +4 -0
- package/dist/revo-grid/dom-21bd1807.js +22 -0
- package/dist/revo-grid/dom-726246e2.system.js +24 -0
- package/dist/revo-grid/index-f14b41a0.system.js +5 -0
- package/dist/revo-grid/index-f30d1de1.js +5 -0
- package/dist/revo-grid/index.esm.js +0 -2
- package/dist/revo-grid/index.system.js +1 -2
- package/dist/revo-grid/resize-observer-00c48d78.js +4 -0
- package/dist/revo-grid/{resize-observer-2a36c9e4.system.js → resize-observer-8af0bc0e.system.js} +1 -2
- package/dist/revo-grid/revo-grid.esm.js +1 -2
- package/dist/revo-grid/revo-grid.js +7 -1
- package/dist/revo-grid/revo-grid.system.js +1 -2
- package/dist/revo-grid/revo-grid_11.entry.js +1 -2
- package/dist/revo-grid/revo-grid_11.system.entry.js +2 -3
- package/dist/revo-grid/revogr-clipboard.entry.js +1 -2
- package/dist/revo-grid/revogr-clipboard.system.entry.js +2 -3
- package/dist/revo-grid/revogr-filter-panel.entry.js +1 -2
- package/dist/revo-grid/revogr-filter-panel.system.entry.js +2 -3
- 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/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 +0 -26
- 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 +20 -95
- 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 +1 -10
- package/loader/package.json +0 -1
- package/package.json +3 -3
- package/custom-element/_baseIteratee.js.map +0 -1
- package/custom-element/columnService.js.map +0 -1
- package/custom-element/consts.js.map +0 -1
- package/custom-element/data.store.js.map +0 -1
- package/custom-element/debounce.js.map +0 -1
- package/custom-element/dimension.helpers.js.map +0 -1
- package/custom-element/each.js.map +0 -1
- package/custom-element/filter.button.js.map +0 -1
- package/custom-element/identity.js.map +0 -1
- package/custom-element/index.js.map +0 -1
- package/custom-element/isSymbol.js.map +0 -1
- package/custom-element/keys.js.map +0 -1
- package/custom-element/localScrollService.js.map +0 -1
- package/custom-element/resize-observer.js.map +0 -1
- package/custom-element/revo-grid.js.map +0 -1
- package/custom-element/revogr-clipboard.js.map +0 -1
- package/custom-element/revogr-data.js.map +0 -1
- package/custom-element/revogr-data2.js.map +0 -1
- package/custom-element/revogr-edit.js.map +0 -1
- package/custom-element/revogr-edit2.js.map +0 -1
- package/custom-element/revogr-filter-panel.js.map +0 -1
- package/custom-element/revogr-focus.js.map +0 -1
- package/custom-element/revogr-focus2.js.map +0 -1
- package/custom-element/revogr-header.js.map +0 -1
- package/custom-element/revogr-header2.js.map +0 -1
- package/custom-element/revogr-order-editor.js.map +0 -1
- package/custom-element/revogr-order-editor2.js.map +0 -1
- package/custom-element/revogr-overlay-selection.js.map +0 -1
- package/custom-element/revogr-overlay-selection2.js.map +0 -1
- package/custom-element/revogr-row-headers.js.map +0 -1
- package/custom-element/revogr-row-headers2.js.map +0 -1
- package/custom-element/revogr-scroll-virtual.js.map +0 -1
- package/custom-element/revogr-scroll-virtual2.js.map +0 -1
- package/custom-element/revogr-temp-range.js.map +0 -1
- package/custom-element/revogr-temp-range2.js.map +0 -1
- package/custom-element/revogr-viewport-scroll.js.map +0 -1
- package/custom-element/revogr-viewport-scroll2.js.map +0 -1
- package/custom-element/selection.utils.js.map +0 -1
- package/custom-element/themeService.js +0 -65
- package/custom-element/themeService.js.map +0 -1
- package/custom-element/toInteger.js.map +0 -1
- package/custom-element/toNumber.js.map +0 -1
- package/custom-element/utils.js.map +0 -1
- package/dist/cjs/debounce-a0628875.js.map +0 -1
- package/dist/cjs/index-c209f988.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/resize-observer-cc749e66.js.map +0 -1
- package/dist/cjs/revo-grid.cjs.js.map +0 -1
- package/dist/cjs/revo-grid_11.cjs.entry.js.map +0 -1
- package/dist/cjs/revogr-clipboard.cjs.entry.js.map +0 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +0 -1
- package/dist/collection/components/button/button.js.map +0 -1
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +0 -1
- package/dist/collection/components/data/cellRenderer.js.map +0 -1
- package/dist/collection/components/data/columnService.js.map +0 -1
- package/dist/collection/components/data/revogr-data.js.map +0 -1
- package/dist/collection/components/data/rowRenderer.js.map +0 -1
- package/dist/collection/components/header/headerCellRenderer.js.map +0 -1
- package/dist/collection/components/header/headerRenderer.js.map +0 -1
- package/dist/collection/components/header/revogr-header.js.map +0 -1
- package/dist/collection/components/order/orderRenderer.js.map +0 -1
- package/dist/collection/components/order/revogr-order-editor.js.map +0 -1
- package/dist/collection/components/order/rowOrderService.js.map +0 -1
- package/dist/collection/components/overlay/autofill.service.js.map +0 -1
- package/dist/collection/components/overlay/clipboard.service.js.map +0 -1
- package/dist/collection/components/overlay/editors/edit.utils.js.map +0 -1
- package/dist/collection/components/overlay/editors/text.js.map +0 -1
- package/dist/collection/components/overlay/keyboard.service.js.map +0 -1
- package/dist/collection/components/overlay/revogr-edit.js.map +0 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +0 -1
- package/dist/collection/components/overlay/selection.utils.js.map +0 -1
- package/dist/collection/components/revo-grid/revo-grid.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.helpers.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.interfaces.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.resize.service.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.section.js.map +0 -1
- package/dist/collection/components/revo-grid/viewport.service.js.map +0 -1
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +0 -1
- package/dist/collection/components/rowHeaders/row-header-render.js.map +0 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +0 -1
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +0 -1
- package/dist/collection/components/selection-focus/revogr-focus.js.map +0 -1
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +0 -1
- package/dist/collection/global/global.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/plugins/autoSizeColumn.js.map +0 -1
- package/dist/collection/plugins/basePlugin.js.map +0 -1
- package/dist/collection/plugins/dispatcher.js.map +0 -1
- package/dist/collection/plugins/export/csv.js.map +0 -1
- package/dist/collection/plugins/export/export.plugin.js.map +0 -1
- package/dist/collection/plugins/export/types.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/equal.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/set.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +0 -1
- package/dist/collection/plugins/filter/conditions/string/contains.js.map +0 -1
- package/dist/collection/plugins/filter/filter.button.js.map +0 -1
- package/dist/collection/plugins/filter/filter.plugin.js.map +0 -1
- package/dist/collection/plugins/filter/filter.pop.js.map +0 -1
- package/dist/collection/plugins/filter/filter.service.js.map +0 -1
- package/dist/collection/plugins/filter/filter.types.js.map +0 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +0 -1
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +0 -1
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +0 -1
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +0 -1
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +0 -1
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +0 -1
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +0 -1
- package/dist/collection/plugins/sorting/sorting.sign.js.map +0 -1
- package/dist/collection/plugins/stretchPlugin.js.map +0 -1
- package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +0 -1
- package/dist/collection/services/cell.helpers.js.map +0 -1
- package/dist/collection/services/column.data.provider.js.map +0 -1
- package/dist/collection/services/data.provider.js.map +0 -1
- package/dist/collection/services/dimension.provider.js.map +0 -1
- package/dist/collection/services/localScrollService.js.map +0 -1
- package/dist/collection/services/resizable.directive.js.map +0 -1
- package/dist/collection/services/selection.store.connector.js.map +0 -1
- package/dist/collection/services/viewport.provider.js.map +0 -1
- package/dist/collection/store/dataSource/data.proxy.js.map +0 -1
- package/dist/collection/store/dataSource/data.store.js.map +0 -1
- package/dist/collection/store/dimension/dimension.helpers.js.map +0 -1
- package/dist/collection/store/dimension/dimension.store.js.map +0 -1
- package/dist/collection/store/selection/selection.helpers.js.map +0 -1
- package/dist/collection/store/selection/selection.store.js.map +0 -1
- package/dist/collection/store/selection/selection.store.service.js.map +0 -1
- package/dist/collection/store/storeTypes.js.map +0 -1
- package/dist/collection/store/viewPort/viewport.helpers.js.map +0 -1
- package/dist/collection/store/viewPort/viewport.store.js.map +0 -1
- package/dist/collection/themeManager/theme.compact.js.map +0 -1
- package/dist/collection/themeManager/theme.default.js.map +0 -1
- package/dist/collection/themeManager/theme.material.js.map +0 -1
- package/dist/collection/themeManager/themeService.js.map +0 -1
- package/dist/collection/utils/closestPolifill.js.map +0 -1
- package/dist/collection/utils/consts.js.map +0 -1
- package/dist/collection/utils/generateAlphabetHeader.js.map +0 -1
- package/dist/collection/utils/keyCodes.js.map +0 -1
- package/dist/collection/utils/keyCodes.utils.js.map +0 -1
- package/dist/collection/utils/platform.js.map +0 -1
- package/dist/collection/utils/resizeObserver.js.map +0 -1
- package/dist/collection/utils/store.utils.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/esm/debounce-cb7aac48.js.map +0 -1
- package/dist/esm/index-f21f8a13.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/resize-observer-4f34a839.js.map +0 -1
- package/dist/esm/revo-grid.js.map +0 -1
- package/dist/esm/revo-grid_11.entry.js.map +0 -1
- package/dist/esm/revogr-clipboard.entry.js.map +0 -1
- package/dist/esm/revogr-filter-panel.entry.js.map +0 -1
- package/dist/esm-es5/debounce-cb7aac48.js.map +0 -1
- package/dist/esm-es5/index-f21f8a13.js +0 -5
- package/dist/esm-es5/index-f21f8a13.js.map +0 -1
- package/dist/esm-es5/index.js.map +0 -1
- package/dist/esm-es5/loader.js.map +0 -1
- package/dist/esm-es5/resize-observer-4f34a839.js.map +0 -1
- package/dist/esm-es5/revo-grid.js.map +0 -1
- package/dist/esm-es5/revo-grid_11.entry.js.map +0 -1
- package/dist/esm-es5/revogr-clipboard.entry.js.map +0 -1
- package/dist/esm-es5/revogr-filter-panel.entry.js.map +0 -1
- package/dist/revo-grid/debounce-3aba7c4d.system.js.map +0 -1
- package/dist/revo-grid/debounce-cb7aac48.js +0 -5
- package/dist/revo-grid/debounce-cb7aac48.js.map +0 -1
- package/dist/revo-grid/index-20224007.system.js +0 -6
- package/dist/revo-grid/index-20224007.system.js.map +0 -1
- package/dist/revo-grid/index-f21f8a13.js +0 -6
- package/dist/revo-grid/index-f21f8a13.js.map +0 -1
- package/dist/revo-grid/index.esm.js.map +0 -1
- package/dist/revo-grid/index.system.js.map +0 -1
- package/dist/revo-grid/resize-observer-2a36c9e4.system.js.map +0 -1
- package/dist/revo-grid/resize-observer-4f34a839.js +0 -5
- package/dist/revo-grid/resize-observer-4f34a839.js.map +0 -1
- package/dist/revo-grid/revo-grid.esm.js.map +0 -1
- package/dist/revo-grid/revo-grid.system.js.map +0 -1
- package/dist/revo-grid/revo-grid_11.entry.js.map +0 -1
- package/dist/revo-grid/revo-grid_11.system.entry.js.map +0 -1
- package/dist/revo-grid/revogr-clipboard.entry.js.map +0 -1
- package/dist/revo-grid/revogr-clipboard.system.entry.js.map +0 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +0 -1
- package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.row.expand.service.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.row.expand.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevoGrid } from '../../interfaces';\nimport { PSEUDO_GROUP_ITEM_ID, PSEUDO_GROUP_ITEM_VALUE, GROUP_EXPANDED, GROUP_DEPTH } from './grouping.const';\nimport { isGrouping, getParsedGroup, isSameGroup } from './grouping.service';\n\n// provide collapse data\nexport function doCollapse(pIndex: number, source: RevoGrid.DataType[]) {\n const model = source[pIndex];\n const collapseValue = model[PSEUDO_GROUP_ITEM_VALUE];\n const trimmed: Record<number, boolean> = {};\n let i = pIndex + 1;\n const total = source.length;\n while (i < total) {\n const currentModel = source[i];\n if (isGrouping(currentModel)) {\n const currentValue = currentModel[PSEUDO_GROUP_ITEM_VALUE];\n if (!currentValue.length || !currentValue.startsWith(collapseValue + ',')) {\n break;\n }\n currentModel[GROUP_EXPANDED] = false;\n }\n trimmed[i++] = true;\n }\n model[GROUP_EXPANDED] = false;\n return { trimmed };\n}\n\n/**\n *\n * @param pIndex - physical index\n * @param vIndex - virtual index, need to update item collection\n * @param source - data source\n * @param rowItemsIndexes - rgRow indexes\n */\nexport function doExpand(vIndex: number, source: RevoGrid.DataType[], rowItemsIndexes: number[]) {\n const physicalIndex = rowItemsIndexes[vIndex];\n const model = source[physicalIndex];\n const currentGroup = getParsedGroup(model[PSEUDO_GROUP_ITEM_ID]);\n const trimmed: Record<number, boolean> = {};\n\n // no group found\n if (!currentGroup) {\n return { trimmed };\n }\n\n const groupItems: number[] = [];\n model[GROUP_EXPANDED] = true;\n let i = physicalIndex + 1;\n const total = source.length;\n let groupLevelOnly = 0;\n\n // go through all rows\n while (i < total) {\n const currentModel = source[i];\n const isGroup = isGrouping(currentModel);\n // group found\n if (isGroup) {\n if (!isSameGroup(currentGroup, model, currentModel)) {\n break;\n } else if (!groupLevelOnly) {\n // if get group first it's group only level\n groupLevelOnly = currentModel[GROUP_DEPTH];\n }\n }\n // level 0 or same depth\n if (!groupLevelOnly || (isGroup && groupLevelOnly === currentModel[GROUP_DEPTH])) {\n trimmed[i] = false;\n groupItems.push(i);\n }\n i++;\n }\n const result: {\n trimmed: Record<number, boolean>;\n items?: number[];\n } = {\n trimmed,\n };\n if (groupItems.length) {\n const items = [...rowItemsIndexes];\n items.splice(vIndex + 1, 0, ...groupItems);\n result.items = items;\n }\n return result;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.row.plugin.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.row.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { Edition, RevoGrid } from '../../interfaces';\nimport ColumnDataProvider, { ColumnCollection } from '../../services/column.data.provider';\nimport { DataProvider } from '../../services/data.provider';\nimport { getPhysical, setItems } from '../../store/dataSource/data.store';\nimport { columnTypes } from '../../store/storeTypes';\nimport BasePlugin from '../basePlugin';\nimport { FILTER_TRIMMED_TYPE } from '../filter/filter.plugin';\nimport { TrimmedEntity } from '../trimmed/trimmed.plugin';\nimport { GROUPING_ROW_TYPE, GROUP_EXPANDED, GROUP_EXPAND_EVENT, PSEUDO_GROUP_COLUMN, PSEUDO_GROUP_ITEM_VALUE } from './grouping.const';\nimport { doExpand, doCollapse } from './grouping.row.expand.service';\nimport { BeforeSourceSetEvent, GroupingOptions, OnExpandEvent, SourceGather } from './grouping.row.types';\nimport { ExpandedOptions, gatherGrouping, isGrouping, isGroupingColumn } from './grouping.service';\nimport { processDoubleConversionTrimmed, TRIMMED_GROUPING } from './grouping.trimmed.service';\n\nexport default class GroupingRowPlugin extends BasePlugin {\n private options: GroupingOptions | undefined;\n\n get hasProps() {\n return this.options?.props && this.options?.props?.length;\n }\n\n get store() {\n return this.providers.dataProvider.stores[GROUPING_ROW_TYPE].store;\n }\n\n // proxy for items get\n get rowItems() {\n return this.store.get('items');\n }\n\n get trimmed() {\n return this.store.get('trimmed');\n }\n\n constructor(\n protected revogrid: HTMLRevoGridElement,\n private providers: {\n dataProvider: DataProvider;\n columnProvider: ColumnDataProvider;\n },\n ) {\n super(revogrid);\n }\n\n // befoce cell focus\n private onFocus(e: CustomEvent<Edition.BeforeSaveDataDetails>) {\n if (isGrouping(e.detail.model)) {\n e.preventDefault();\n }\n }\n\n // expand event triggered\n private onExpand({ virtualIndex }: OnExpandEvent) {\n const { source } = this.getSource();\n let newTrimmed = this.trimmed[TRIMMED_GROUPING];\n\n let i = getPhysical(this.store, virtualIndex);\n const model = source[i];\n const prevExpanded = model[GROUP_EXPANDED];\n if (!prevExpanded) {\n const { trimmed, items } = doExpand(virtualIndex, source, this.rowItems);\n newTrimmed = { ...newTrimmed, ...trimmed };\n if (items) {\n setItems(this.store, items);\n }\n } else {\n const { trimmed } = doCollapse(i, source);\n newTrimmed = { ...newTrimmed, ...trimmed };\n this.revogrid.clearFocus();\n }\n\n this.store.set('source', source);\n this.revogrid.addTrimmed(newTrimmed, TRIMMED_GROUPING);\n }\n\n // get source based on proxy item collection to preserve rgRow order\n private getSource(withoutGrouping = false) {\n const source = this.store.get('source');\n const items = this.store.get('proxyItems');\n let index = 0;\n // order important here, expected parent is first, then others\n return items.reduce(\n (result: SourceGather, i) => {\n const model = source[i];\n if (!withoutGrouping) {\n result.source.push(model);\n return result;\n }\n\n // grouping filter\n if (!isGrouping(model)) {\n result.source.push(model);\n result.oldNewIndexes[i] = index;\n index++;\n } else {\n if (model[GROUP_EXPANDED]) {\n result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;\n }\n }\n return result;\n },\n {\n source: [],\n prevExpanded: {},\n oldNewIndexes: {},\n },\n );\n }\n\n private setColumnGrouping(cols?: RevoGrid.ColumnRegular[]) {\n // if 0 column as holder\n if (cols?.length) {\n cols[0][PSEUDO_GROUP_COLUMN] = true;\n return true;\n }\n return false;\n }\n\n private setColumns({ columns }: ColumnCollection) {\n for (let type of columnTypes) {\n if (this.setColumnGrouping(columns[type])) {\n break;\n }\n }\n }\n\n // evaluate drag between groups\n private onDrag(e: CustomEvent<{ from: number; to: number }>) {\n const { from, to } = e.detail;\n const isDown = to - from >= 0;\n const { source } = this.getSource();\n const items = this.rowItems;\n let i = isDown ? from : to;\n const end = isDown ? to : from;\n for (; i < end; i++) {\n const model = source[items[i]];\n const isGroup = isGrouping(model);\n if (isGroup) {\n e.preventDefault();\n return;\n }\n }\n }\n\n private beforeTrimmedApply(trimmed: Record<number, boolean>, type: string) {\n /** Before filter apply remove grouping filtering */\n if (type === FILTER_TRIMMED_TYPE) {\n const source = this.store.get('source');\n for (let index in trimmed) {\n if (trimmed[index] && isGrouping(source[index])) {\n trimmed[index] = false;\n }\n }\n }\n }\n\n // subscribe to grid events to process them accordingly\n private subscribe() {\n /** if grouping present and new data source arrived */\n this.addEventListener('beforesourceset', ({ detail }: CustomEvent<BeforeSourceSetEvent>) => this.onDataSet(detail));\n this.addEventListener('beforecolumnsset', ({ detail }: CustomEvent<ColumnCollection>) => this.setColumns(detail));\n\n /**\n * filter applied need to clear grouping and apply again\n * based on new results can be new grouping\n */\n this.addEventListener('beforetrimmed', ({ detail: { trimmed, trimmedType } }) => this.beforeTrimmedApply(trimmed, trimmedType));\n /**\n * sorting applied need to clear grouping and apply again\n * based on new results whole grouping order will changed\n */\n this.addEventListener('afterSortingApply', () => this.doSourceUpdate({ ...this.options }));\n\n /**\n * Apply logic for focus inside of grouping\n * We can't focus on grouping rows, navigation only inside of groups for now\n */\n this.addEventListener('beforecellfocus', e => this.onFocus(e));\n /**\n * Prevent rgRow drag outside the group\n */\n this.addEventListener('roworderchanged', e => this.onDrag(e));\n\n /**\n * When grouping expand icon was clicked\n */\n this.addEventListener(GROUP_EXPAND_EVENT, ({ detail }: CustomEvent<OnExpandEvent>) => this.onExpand(detail));\n }\n\n /**\n * Starts global source update with group clearing and applying new one\n * Initiated when need to reapply grouping\n */\n private doSourceUpdate(options?: ExpandedOptions) {\n if (!this.hasProps) {\n return;\n }\n /**\n * Get source without grouping\n * @param newOldIndexMap - provides us mapping with new indexes vs old indexes, we would use it for trimmed mapping\n */\n const { source, prevExpanded, oldNewIndexes } = this.getSource(true);\n /**\n * Group again\n * @param oldNewIndexMap - provides us mapping with new indexes vs old indexes\n */\n const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup } = gatherGrouping(\n source,\n this.options?.props || [],\n {\n prevExpanded,\n ...options,\n },\n );\n\n // setup source\n this.providers.dataProvider.setData(\n sourceWithGroups,\n GROUPING_ROW_TYPE,\n { depth, customRenderer: options?.groupLabelTemplate },\n true,\n );\n this.updateTrimmed(trimmed, childrenByGroup, oldNewIndexes, oldNewIndexMap);\n }\n\n /**\n * Apply grouping on data set\n * Clear grouping from source\n * If source came from other plugin\n */\n private onDataSet(data: BeforeSourceSetEvent) {\n if (!this.hasProps || !data?.source || !data.source.length) {\n return;\n }\n const source = data.source.filter(s => !isGrouping(s));\n const expanded = this.revogrid.grouping || {};\n const { sourceWithGroups, depth, trimmed, oldNewIndexMap, childrenByGroup } = gatherGrouping(\n source,\n this.options?.props || [],\n {\n ...(expanded || {}),\n },\n );\n data.source = sourceWithGroups;\n this.providers.dataProvider.setGrouping({ depth });\n this.updateTrimmed(trimmed, childrenByGroup, oldNewIndexMap);\n }\n\n // apply grouping\n setGrouping(options: GroupingOptions) {\n // unsubscribe from all events when group applied\n this.clearSubscriptions();\n this.options = options;\n // clear props, no grouping exists\n if (!options.props || !Object.keys(options.props).length) {\n this.clearGrouping();\n return;\n }\n // props exist and source inited\n const { source } = this.getSource();\n if (source.length) {\n this.doSourceUpdate({ ...options });\n }\n // props exist and columns inited\n for (let t of columnTypes) {\n if (this.setColumnGrouping(this.providers.columnProvider.getColumns(t))) {\n this.providers.columnProvider.refreshByType(t);\n break;\n }\n }\n\n // if has any grouping subscribe to events again\n this.subscribe();\n }\n\n // clear grouping\n clearGrouping() {\n // clear columns\n columnTypes.forEach(t => {\n const cols = this.providers.columnProvider.getColumns(t);\n let deleted = false;\n cols.forEach(c => {\n if (isGroupingColumn(c)) {\n delete c[PSEUDO_GROUP_COLUMN];\n deleted = true;\n }\n });\n // if column store had grouping clear and refresh\n if (deleted) {\n this.providers.columnProvider.refreshByType(t);\n }\n });\n // clear rows\n const { source, oldNewIndexes } = this.getSource(true);\n this.providers.dataProvider.setData(source, GROUPING_ROW_TYPE, undefined, true);\n this.updateTrimmed(undefined, undefined, oldNewIndexes);\n }\n\n private updateTrimmed(\n trimmedGroup: TrimmedEntity = {},\n _childrenByGroup: Record<number, number[]> = {},\n firstLevelMap: Record<number, number>,\n secondLevelMap?: Record<number, number>,\n ) {\n // map previously trimmed data\n const trimemedOptionsToUpgrade = processDoubleConversionTrimmed(this.trimmed, firstLevelMap, secondLevelMap);\n for (let type in trimemedOptionsToUpgrade) {\n this.revogrid.addTrimmed(trimemedOptionsToUpgrade[type], type);\n }\n\n // const emptyGroups = this.filterOutEmptyGroups(trimemedOptionsToUpgrade, childrenByGroup);\n\n // setup trimmed data for grouping\n this.revogrid.addTrimmed({ ...trimmedGroup }, TRIMMED_GROUPING);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.row.renderer.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.row.renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,WAAyB,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUxH,SAAS,WAAW,CAAC,CAAa,EAAE,KAAwB,EAAE,YAAoB;EAChF,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,kBAAkB,EAAE;IAChD,MAAM,EAAE;MACN,KAAK;MACL,YAAY;KACb;IACD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;GACd,CAAC,CAAC;EACH,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,EAAE;EAC3C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC;EACtE,MAAM,IAAI,GAAW,KAAK,CAAC,iBAAiB,CAAC,CAAC;EAC9C,MAAM,QAAQ,GAAY,KAAK,CAAC,cAAc,CAAC,CAAC;EAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;EACpD,IAAI,CAAC,SAAS,EAAE;IACd,OAAO,EAAC,WAAW,oBAAK,KAAK,IAAE,QAAQ,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC;GACxE;EAED,IAAI,sBAAsB,EAAE;IAC1B,OAAO,CACL,EAAC,WAAW,oBAAK,KAAK,IAAE,QAAQ,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK;MACzD,WAAK,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAChD,sBAAsB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAC5D,CACM,CACf,CAAC;GACH;EAED,OAAO,CACL,EAAC,WAAW,oBAAK,KAAK,IAAE,QAAQ,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK;IACzD,cAAQ,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;MACzF,0BAAiB,MAAM,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,aAAa;QACxH,YACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,yRAAyR,GACrR,CACJ,CACC;IACR,IAAI,CACO,CACf,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,mBAAmB,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport RowRenderer, { RowProps } from '../../components/data/rowRenderer';\nimport { RevoGrid } from '../../interfaces';\nimport { GROUP_DEPTH, GROUP_EXPANDED, GROUP_EXPAND_BTN, GROUP_EXPAND_EVENT, PSEUDO_GROUP_ITEM } from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\ninterface GroupRowPros extends RowProps {\n model: RevoGrid.DataType;\n hasExpand: boolean;\n groupingCustomRenderer?: GroupLabelTemplateFunc;\n}\ntype Props = GroupRowPros & RevoGrid.PositionItem;\n\nfunction expandEvent(e: MouseEvent, model: RevoGrid.DataType, virtualIndex: number) {\n const event = new CustomEvent(GROUP_EXPAND_EVENT, {\n detail: {\n model,\n virtualIndex,\n },\n cancelable: true,\n bubbles: true,\n });\n e.target.dispatchEvent(event);\n}\n\nconst GroupingRowRenderer = (props: Props) => {\n const { model, itemIndex, hasExpand, groupingCustomRenderer } = props;\n const name: string = model[PSEUDO_GROUP_ITEM];\n const expanded: boolean = model[GROUP_EXPANDED];\n const depth = parseInt(model[GROUP_DEPTH], 10) || 0;\n if (!hasExpand) {\n return <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth} />;\n }\n\n if (groupingCustomRenderer) {\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n <div onClick={e => expandEvent(e, model, itemIndex)}>\n {groupingCustomRenderer(h, { name, itemIndex, expanded, depth })}\n </div>\n </RowRenderer>\n );\n }\n\n return (\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\n <button class={{ [GROUP_EXPAND_BTN]: true }} onClick={e => expandEvent(e, model, itemIndex)}>\n <svg aria-hidden=\"true\" style={{ transform: `rotate(${!expanded ? -90 : 0}deg)` }} focusable=\"false\" viewBox=\"0 0 448 512\">\n <path\n fill=\"currentColor\"\n d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"\n ></path>\n </svg>\n </button>\n {name}\n </RowRenderer>\n );\n};\nexport default GroupingRowRenderer;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.row.types.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.row.types.ts"],"names":[],"mappings":"","sourcesContent":["import { VNode } from '@stencil/core';\nimport { RevoGrid } from '../../interfaces';\n\nexport type GroupLabelTemplateFunc = (\n createElement: RevoGrid.HyperFunc<VNode>,\n props: { name: string; itemIndex: number; expanded: boolean; depth: number; },\n) => any;\n\nexport type GroupingOptions = {\n // properties array to group\n props?: RevoGrid.ColumnProp[];\n /** is expanded by default */\n expandedAll?: boolean;\n // custom group label\n groupLabelTemplate?: GroupLabelTemplateFunc;\n /** todo\n * choose column prop to which expand button will be applied\n * if not defined first column in grid\n */\n // applyToProp?: RevoGrid.ColumnProp;\n /**\n * todo\n * choose if render cells in grouping rgRow\n * true by default\n */\n // fullRow?: boolean;\n};\n\nexport type BeforeSourceSetEvent = {\n type: RevoGrid.DimensionRows;\n source: RevoGrid.DataType[];\n};\n\nexport type OnExpandEvent = {\n model: RevoGrid.DataType;\n virtualIndex: number;\n};\n\nexport type SourceGather = {\n source: RevoGrid.DataType[];\n prevExpanded: Record<string, boolean>;\n oldNewIndexes?: Record<number, number>;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.service.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevoGrid } from '../../interfaces';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n } from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | RevoGrid.DataType[]>\n\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(array: RevoGrid.DataType[], groupIds: RevoGrid.ColumnProp[], { prevExpanded, expandedAll }: ExpandedOptions) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map((groupId) => item[groupId] || null);\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach((value) => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n })\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n item[GROUP_ORIGINAL_INDEX] = originalIndex;\n const lastLevelItems = currentGroupLevel.get(lastLevelValue) as RevoGrid.DataType[];\n lastLevelItems.push(item);\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: RevoGrid.DataType[] = [];\n function flattenGroupMaps(groupedValues: GroupedData, parentIds: string[], isExpanded: boolean) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded = isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach((value) => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) => levelIds.slice(0, index + 1).join(','));\n pseudoGroupTestIds.forEach((pseudoGroupTestId) => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: RevoGrid.DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\nexport function isGrouping(rgRow?: RevoGrid.DataType) {\n return rgRow && typeof rgRow[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: RevoGrid.ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string): any[] {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safe guard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(currentGroup: any[], currentModel: RevoGrid.DataType, nextModel: RevoGrid.DataType) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.trimmed.service.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.trimmed.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,2BAA2B,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,eAAwB,EAAE,aAAqC,EAAE,cAAuC;EACrJ,MAAM,wBAAwB,GAAY,EAAE,CAAC;EAC7C;;KAEG;EACH,KAAK,IAAI,IAAI,IAAI,eAAe,EAAE;IAChC,IAAI,IAAI,KAAK,gBAAgB,EAAE;MAC7B,SAAS;KACV;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE;MAC9B;;;SAGG;MACH,IAAI,kBAAkB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;MACrD,IAAI,cAAc,EAAE;QAClB,kBAAkB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;OACzD;MAED;;;SAGG;MACH,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;QACvB,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QACpC;;WAEG;QACH,IAAI,kBAAkB,KAAK,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;UACrD,wBAAwB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;SAC3C;OACF;KACF;GACF;EACD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,gBAAyB,EAAE,kBAA4C,EAAE;EAC5G,MAAM,YAAY,GAAkB,EAAE,CAAC;EACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;EACxD,4BAA4B;EAC5B,KAAK,IAAI,UAAU,IAAI,eAAe,EAAE;IACtC,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACzG,IAAI,CAAC,WAAW,EAAE;MAChB,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;KACjC;GACF;EACD,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { gatherTrimmedItems, Trimmed, TrimmedEntity } from '../trimmed/trimmed.plugin';\n\nexport const TRIMMED_GROUPING = 'grouping';\n\n/**\n * Prepare trimming updated indexes for grouping\n * @param initiallyTrimed\n * @param firstLevelMap\n * @param secondLevelMap\n */\nexport function processDoubleConversionTrimmed(initiallyTrimed: Trimmed, firstLevelMap: Record<number, number>, secondLevelMap?: Record<number, number>) {\n const trimemedOptionsToUpgrade: Trimmed = {};\n /**\n * go through all groups except grouping\n */\n for (let type in initiallyTrimed) {\n if (type === TRIMMED_GROUPING) {\n continue;\n }\n const items = initiallyTrimed[type];\n const newItems: TrimmedEntity = {};\n\n for (let initialIndex in items) {\n /**\n * if item exists we find it in collection\n * we support 2 level of conversions\n */\n let newConversionIndex = firstLevelMap[initialIndex];\n if (secondLevelMap) {\n newConversionIndex = secondLevelMap[newConversionIndex];\n }\n\n /**\n * if item was trimmed previously\n * trimming makes sense to apply\n */\n if (items[initialIndex]) {\n newItems[newConversionIndex] = true;\n /**\n * If changes present apply changes to new source\n */\n if (newConversionIndex !== parseInt(initialIndex, 10)) {\n trimemedOptionsToUpgrade[type] = newItems;\n }\n }\n }\n }\n return trimemedOptionsToUpgrade;\n}\n\nexport function filterOutEmptyGroups(allTrimmedGroups: Trimmed, childrenByGroup: Record<number, number[]> = {}) {\n const trimmedGroup: TrimmedEntity = {};\n const allTrimmed = gatherTrimmedItems(allTrimmedGroups);\n // find is groups are filled\n for (let groupIndex in childrenByGroup) {\n const hasChidlren = childrenByGroup[groupIndex].filter(childIndex => !allTrimmed[childIndex]).length > 0;\n if (!hasChidlren) {\n trimmedGroup[groupIndex] = true;\n }\n }\n return trimmedGroup;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"columnDragPlugin.js","sourceRoot":"","sources":["../../../src/plugins/moveColumn/columnDragPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plugin for column manual move\n */\nimport debounce from 'lodash/debounce';\nimport each from 'lodash/each';\nimport { RevoGrid } from '../../interfaces';\nimport ColumnDataProvider from '../../services/column.data.provider';\nimport { DataProvider } from '../../services/data.provider';\nimport DimensionProvider from '../../services/dimension.provider';\nimport SelectionStoreConnector from '../../services/selection.store.connector';\nimport ViewportProvider from '../../services/viewport.provider';\nimport { getItemByPosition } from '../../store/dimension/dimension.helpers';\nimport BasePlugin from '../basePlugin';\nimport { ColumnOrderHandler } from './columnOrderHandler';\nimport { dispatch } from '../dispatcher';\nimport { isColGrouping } from '../groupingColumn/grouping.col.plugin';\n\nconst COLUMN_CLICK = 'column-click';\nconst MOVE = 'column-mouse-move';\nconst DRAG_END = 'column-drag-end';\nconst BEFORE_DRAG_END = 'before-column-drag-end';\n\n// use this event subscription to drop D&D for particular columns\nconst DRAG_START = 'column-drag-start';\n\nexport type DragStartEventDetails = {\n event: MouseEvent;\n data: RevoGrid.ColumnDataSchema;\n};\n\nexport type Providers = {\n data: DataProvider;\n dimension: DimensionProvider;\n selection: SelectionStoreConnector;\n column: ColumnDataProvider;\n viewport: ViewportProvider;\n};\ntype StaticData = {\n startPos: number;\n startItem: RevoGrid.PositionItem;\n data: RevoGrid.ColumnRegular;\n dataEl: HTMLElement;\n scrollEl: Element;\n gridEl: HTMLElement;\n cols: RevoGrid.DimensionSettingsState;\n};\n\ntype LocalSubscriptions = Record<string, LocalSubscription>;\ntype LocalSubscription = {\n target: Element | Document;\n callback(...params: any[]): void;\n};\nexport type EventData = {\n elRect: DOMRect;\n gridRect: DOMRect;\n scrollOffset: number;\n type: RevoGrid.DimensionCols;\n};\nexport default class ColumnPlugin extends BasePlugin {\n private moveFunc = debounce((e: MouseEvent) => this.doMove(e), 5);\n private staticDragData: StaticData | null = null;\n private dragData: EventData | null = null;\n private readonly orderUi: ColumnOrderHandler;\n protected readonly localSubscriptions: LocalSubscriptions = {};\n constructor(protected revogrid: HTMLRevoGridElement, private providers: Providers) {\n super(revogrid);\n this.orderUi = new ColumnOrderHandler();\n revogrid.registerVNode([this.orderUi.render()]);\n\n revogrid.classList.add('column-draggable');\n\n /** Register events */\n this.localSubscriptions['mouseleave'] = {\n target: document,\n callback: (e: MouseEvent) => this.onMouseOut(e),\n };\n this.localSubscriptions['mouseup'] = {\n target: document,\n callback: (e: MouseEvent) => this.onMouseUp(e),\n };\n\n this.localSubscriptions['mousemove'] = {\n target: document,\n callback: (e: MouseEvent) => this.move(e),\n };\n\n this.addEventListener(COLUMN_CLICK, ({ detail }) => this.dragStart(detail));\n }\n\n dragStart({ event, data }: DragStartEventDetails) {\n if (event.defaultPrevented) {\n return;\n }\n const { defaultPrevented } = dispatch(this.revogrid, DRAG_START, data);\n // check if allowed to drag particulat column\n if (defaultPrevented) {\n return;\n }\n this.clearOrder();\n const { mouseleave, mouseup, mousemove } = this.localSubscriptions;\n mouseleave.target.addEventListener('mouseleave', mouseleave.callback);\n mouseup.target.addEventListener('mouseup', mouseup.callback);\n\n const dataEl = (event.target as HTMLElement).closest('revogr-header');\n const scrollEl = (event.target as HTMLElement).closest('revogr-viewport-scroll');\n if (!dataEl || !scrollEl) {\n return;\n }\n\n if (isColGrouping(data)) {\n return;\n }\n\n const cols = this.getDimension(data.pin || 'rgCol');\n const gridRect = this.revogrid.getBoundingClientRect();\n const elRect = dataEl.getBoundingClientRect();\n const startItem = getItemByPosition(\n cols,\n getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left));\n \n this.staticDragData = {\n startPos: event.x,\n startItem,\n data,\n dataEl,\n scrollEl,\n gridEl: this.revogrid,\n cols,\n };\n this.dragData = this.getData(this.staticDragData);\n mousemove.target.addEventListener('mousemove', mousemove.callback);\n this.orderUi.start(event, {\n ...this.dragData,\n ...this.staticDragData,\n });\n }\n\n doMove(e: MouseEvent) {\n if (!this.staticDragData) {\n return;\n }\n\n const dragData = (this.dragData = this.getData(this.staticDragData));\n if (!dragData) {\n return;\n }\n const start = this.staticDragData.startPos;\n if (Math.abs(start - e.x) > 10) {\n const x = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);\n const rgCol = getItemByPosition(this.staticDragData.cols, x);\n this.orderUi.autoscroll(x, dragData.elRect.width);\n this.orderUi.showHandler(\n rgCol.end + dragData.scrollOffset,\n dragData.gridRect.width\n );\n }\n }\n\n move(e: MouseEvent): void {\n dispatch(this.revogrid, MOVE, { ...e });\n // then do move\n this.moveFunc(e);\n }\n onMouseOut(_: MouseEvent) {\n this.clearOrder();\n }\n onMouseUp(e: MouseEvent) {\n // apply new positions\n if (this.dragData) {\n let relativePos = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);\n if (relativePos < 0) {\n relativePos = 0;\n }\n const newPosition = getItemByPosition(this.staticDragData.cols, relativePos);\n\n const store = this.providers.column.stores[this.dragData.type].store;\n const items = [...store.get('items')];\n\n // prevent position change if needed\n const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_DRAG_END, {\n ...this.staticDragData,\n startPosition: this.staticDragData.startItem,\n newPosition,\n newItem: store.get('source')[items[this.staticDragData.startItem.itemIndex]]\n });\n if (!stopDrag) {\n // todo: if move item out of group remove item from group\n const toMove = items.splice(this.staticDragData.startItem.itemIndex, 1);\n items.splice(newPosition.itemIndex, 0, ...toMove);\n store.set('items', items);\n }\n dispatch(this.revogrid, DRAG_END, this.dragData);\n }\n this.clearOrder();\n }\n\n private clearLocalSubscriptions() {\n each(this.localSubscriptions, ({ target, callback }, key) => target.removeEventListener(key, callback));\n }\n\n clearOrder() {\n this.staticDragData = null;\n this.dragData = null;\n this.clearLocalSubscriptions();\n this.orderUi.stop(this.revogrid);\n }\n /**\n * Clearing subscription\n */\n protected clearSubscriptions() {\n super.clearSubscriptions();\n this.clearLocalSubscriptions();\n }\n\n private getData({\n gridEl,\n dataEl,\n data,\n }: StaticData): EventData {\n const gridRect = gridEl.getBoundingClientRect();\n const elRect = dataEl.getBoundingClientRect();\n const scrollOffset = elRect.left - gridRect.left;\n return {\n elRect,\n gridRect,\n type: data.pin || 'rgCol',\n scrollOffset,\n };\n }\n private getDimension(type: RevoGrid.MultiDimensionType) {\n return this.providers.dimension.stores[type].getCurrentState();\n }\n}\n\nexport function getLeftRelative(\n absoluteX: number,\n gridPos: number,\n offset: number\n): number {\n return absoluteX - gridPos - offset;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"columnOrderHandler.js","sourceRoot":"","sources":["../../../src/plugins/moveColumn/columnOrderHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,OAAO,kBAAkB;EAA/B;IAGU,WAAM,GAAG,CAAC,CAAC;EAoErB,CAAC;EAlEC,gBAAgB,CAAC,CAAa,EAAE,MAA0B;IACxD,IAAI,CAAC,MAAM,EAAE;MACX,OAAO;KACR;IACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EACxC,CAAC;EAED,UAAU,CAAC,GAAW,EAAE,iBAAyB,EAAE,SAAS,GAAG,YAAY;IACzE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MACtB,OAAO;KACR;IACD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,gEAAgE;IAChE,+BAA+B;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,SAAS,KAAK,CAAC;IACnE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;MAC/B,KAAK,EAAE,SAAS;MAChB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;EACL,CAAC;EAED,KAAK,CAAC,CAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAKxD,EAAE,MAAuB,MAAM;IAC9B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC7D,IAAI,mBAAmB,EAAE;MACvB,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;KACxD;IACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EACnC,CAAC;EAED,IAAI,CAAC,MAAe;;IAClB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,OAAO,EAAE;MAChB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;KAC5B;IACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;EAChC,CAAC;EAED,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,SAAS,GAAG,YAAY;IAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;MACjB,OAAO;KACR;IACD,qEAAqE;IACrE,IAAI,IAAI,CAAC,MAAM,EAAE;MACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IACD,kCAAkC;IAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,GAAG,KAAK,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;EAC9B,CAAC;EAED,MAAM;IACJ,OAAO,WAAK,KAAK,EAAC,iBAAiB,EAAC,MAAM,QAAC,GAAG,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAQ,CAAC;EACvG,CAAC;CACF","sourcesContent":["import { h } from '@stencil/core';\n\nconst COLUMN_DRAG_CLASS = 'column-drag-start';\n\nexport class ColumnOrderHandler {\n private element?: HTMLDivElement;\n private autoscrollEl?: HTMLElement;\n private offset = 0;\n\n renderAutoscroll(_: MouseEvent, parent: HTMLElement | null) {\n if (!parent) {\n return;\n }\n this.autoscrollEl = document.createElement('div');\n this.autoscrollEl.classList.add('drag-auto-scroll-y');\n parent.appendChild(this.autoscrollEl);\n }\n\n autoscroll(pos: number, dataContainerSize: number, direction = 'translateX') {\n if (!this.autoscrollEl) {\n return;\n }\n const helperOffset = 10;\n // calculate current y position inside of the grid active holder\n // 3 - size of element + border\n const maxScroll = Math.min(pos + helperOffset, dataContainerSize - 3);\n\n this.autoscrollEl.style.transform = `${direction}(${maxScroll}px)`;\n this.autoscrollEl.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n start(e: MouseEvent, { dataEl, gridRect, scrollEl, gridEl }: {\n dataEl: HTMLElement;\n gridRect: DOMRect;\n scrollEl: Element;\n gridEl: Element;\n }, dir: 'top' | 'left' = 'left') {\n gridEl.classList.add(COLUMN_DRAG_CLASS);\n const scrollContainerRect = scrollEl.getBoundingClientRect();\n if (scrollContainerRect) {\n this.offset = scrollContainerRect[dir] - gridRect[dir];\n }\n this.renderAutoscroll(e, dataEl);\n }\n\n stop(gridEl: Element) {\n gridEl.classList.remove(COLUMN_DRAG_CLASS);\n if (this.element) {\n this.element.hidden = true;\n }\n this.offset = 0;\n this.autoscrollEl?.remove();\n this.autoscrollEl = undefined;\n }\n\n showHandler(pos: number, size: number, direction = 'translateX') {\n if (!this.element) {\n return;\n }\n // do not allow overcross top of the scrollable area, header excluded\n if (this.offset) {\n pos = Math.max(pos, this.offset);\n }\n // can not be bigger then grid end\n pos = Math.min(pos, size);\n this.element.style.transform = `${direction}(${pos}px)`;\n this.element.hidden = false;\n }\n\n render() {\n return <div class=\"drag-position-y\" hidden ref={(el?: HTMLDivElement) => (this.element = el)}></div>;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.plugin.js","sourceRoot":"","sources":["../../../src/plugins/sorting/sorting.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import size from 'lodash/size';\n\nimport { RevoGrid } from '../../interfaces';\nimport { setStore } from '../../utils/store.utils';\nimport ColumnDataProvider from '../../services/column.data.provider';\nimport BasePlugin from '../basePlugin';\n\nimport DimensionRows = RevoGrid.DimensionRows;\n\nexport type SortingOrder = Record<RevoGrid.ColumnProp, RevoGrid.Order>;\ntype SortingOrderFunction = Record<RevoGrid.ColumnProp, RevoGrid.CellCompareFunc | undefined>;\ntype SourceSetEvent = {\n type: DimensionRows;\n source: RevoGrid.DataType[];\n};\ntype ColumnSetEvent = {\n order: SortingOrder;\n};\n\n/**\n * lifecycle\n * 1) @event beforesorting - sorting just started, nothing happened yet\n * 2) @metod updateColumnSorting - column sorting icon applied to grid and column get updated, data still untiuched\n * 3) @event beforesortingapply - before we applied sorting data to data source, you can prevent data apply from here\n * 4) @event afterSortingApply - sorting applied, just finished event\n *\n * If you prevent event it'll not reach farther steps\n */\n\nexport default class SortingPlugin extends BasePlugin {\n private sorting: SortingOrder | null = null;\n private sortingFunc: SortingOrderFunction | null = null;\n\n get hasSorting() {\n return !!this.sorting;\n }\n\n constructor(protected revogrid: HTMLRevoGridElement) {\n super(revogrid);\n\n const beforesourceset = ({ detail }: CustomEvent<SourceSetEvent>) => {\n if (this.hasSorting) {\n // is sorting allowed\n const event = this.emit('beforesourcesortingapply');\n // sorting prevented\n if (event.defaultPrevented) {\n return;\n }\n }\n const data = this.setData(detail.source, detail.type);\n if (data) {\n detail.source = data;\n }\n };\n const aftercolumnsset = async ({ detail: { order } }: CustomEvent<ColumnSetEvent>) => {\n\n const columns = await this.revogrid.getColumns();\n const sortingFunc : SortingOrderFunction = {};\n\n for (let prop in order) {\n const column = ColumnDataProvider.getColumnByProp(columns, prop);\n const cmp : RevoGrid.CellCompareFunc = column?.cellCompare || this.defaultCellCompare;\n \n sortingFunc[prop] = order[prop] == 'desc' ? this.descCellCompare(cmp) : cmp;\n }\n this.sort(order,sortingFunc);\n }\n const headerclick = async (e: CustomEvent<RevoGrid.InitialHeaderClick>) => {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!e.detail.column.sortable) {\n return;\n }\n\n this.headerclick(e.detail.column, e.detail.index, e.detail?.originalEvent?.shiftKey);\n };\n\n this.addEventListener('beforesourceset', beforesourceset);\n this.addEventListener('aftercolumnsset', aftercolumnsset);\n this.addEventListener('initialHeaderClick', headerclick);\n }\n\n private async headerclick(column: RevoGrid.ColumnRegular, index: number, additive: boolean) {\n let order: RevoGrid.Order = this.getNextOrder(column.order);\n const beforeEvent = this.emit('beforesorting', { column, order, additive });\n if (beforeEvent.defaultPrevented) {\n return;\n }\n order = beforeEvent.detail.order;\n const newCol = await this.revogrid.updateColumnSorting(beforeEvent.detail.column, index, order, additive);\n\n // apply sort data\n const beforeApplyEvent = this.emit('beforesortingapply', { column: newCol, order, additive });\n if (beforeApplyEvent.defaultPrevented) {\n return;\n }\n order = beforeApplyEvent.detail.order;\n\n const cellCmp : RevoGrid.CellCompareFunc = column?.cellCompare || this.defaultCellCompare;\n const cmp : RevoGrid.CellCompareFunc = order == 'asc' ? cellCmp : order == 'desc' ? this.descCellCompare(cellCmp) : undefined;\n\n if (additive && this.sorting) {\n\n const sorting : SortingOrder = {};\n const sortingFunc : SortingOrderFunction = {};\n\n Object.assign(sorting,this.sorting);\n Object.assign(sortingFunc,this.sortingFunc);\n\n if (column.prop in sorting && size(sorting) > 1 && order === undefined) {\n delete sorting[column.prop];\n delete sortingFunc[column.prop];\n }\n else {\n sorting[column.prop] = order;\n sortingFunc[column.prop] = cmp;\n }\n\n this.sort(sorting, sortingFunc);\n }\n else {\n this.sort(\n { [column.prop]: order },\n { [column.prop]: cmp }\n );\n }\n }\n\n private setData(data: RevoGrid.DataType[], type: DimensionRows): RevoGrid.DataType[] | void {\n // sorting available for rgRow type only\n if (type === 'rgRow' && this.sortingFunc) {\n return this.sortItems(data, this.sortingFunc);\n }\n }\n\n /**\n * Sorting apply, available for rgRow type only\n * @param sorting - per column sorting\n * @param data - this.stores['rgRow'].store.get('source')\n */\n private async sort(sorting: SortingOrder, sortingFunc: SortingOrderFunction) {\n if (!size(sorting)) {\n this.sorting = null;\n this.sortingFunc = null;\n return;\n }\n this.sorting = sorting;\n this.sortingFunc = sortingFunc;\n\n const store = await this.revogrid.getSourceStore();\n\n const source = store.get('source');\n const proxyItems = this.sortIndexByItems([...store.get('proxyItems')], source, this.sortingFunc);\n setStore(store, {\n proxyItems,\n source: [...source],\n });\n this.emit('afterSortingApply');\n }\n\n private defaultCellCompare(prop: RevoGrid.ColumnProp, a: RevoGrid.DataType, b: RevoGrid.DataType){\n const av = a[prop]?.toString().toLowerCase();\n const bv = b[prop]?.toString().toLowerCase();\n \n return av == bv ? 0 : av > bv ? 1 : -1;\n }\n\n private descCellCompare(cmp: RevoGrid.CellCompareFunc) {\n return (prop: RevoGrid.ColumnProp, a: RevoGrid.DataType, b: RevoGrid.DataType) : number => { return -1 * cmp(prop,a,b) }\n }\n\n private sortIndexByItems(indexes: number[], source: RevoGrid.DataType[], sortingFunc: SortingOrderFunction): number[] {\n // TODO - is there a situation where multiple kvps in the `sorting` object would cause this to break?\n for (let prop in sortingFunc) {\n if (typeof sortingFunc[prop] === 'undefined') {\n // Unsort indexes\n return [...Array(indexes.length).keys()];\n }\n }\n return indexes.sort((a, b) => {\n let sorted = 0;\n for (let prop in sortingFunc) {\n const cmp = sortingFunc[prop];\n const itemA = source[a];\n const itemB = source[b];\n sorted = cmp(prop, itemA, itemB);\n if (sorted) {\n break;\n }\n }\n return sorted;\n });\n }\n\n private sortItems(source: RevoGrid.DataType[], sortingFunc: SortingOrderFunction): RevoGrid.DataType[] {\n return source.sort((a, b) => {\n let sorted = 0;\n for (let prop in sortingFunc) {\n const cmp: RevoGrid.CellCompareFunc | undefined = sortingFunc[prop];\n if (!cmp) {\n continue;\n }\n sorted = cmp(prop, a, b);\n if (sorted) {\n break;\n }\n }\n return sorted;\n });\n }\n\n private getNextOrder(currentOrder: RevoGrid.Order): RevoGrid.Order {\n switch (currentOrder) {\n case undefined:\n return 'asc';\n case 'asc':\n return 'desc';\n case 'desc':\n return undefined;\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.sign.js","sourceRoot":"","sources":["../../../src/plugins/sorting/sorting.sign.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAK7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAS,EAAE,EAAE;EAC/C,OAAO,SAAG,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,CAAC;AACpC,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { RevoGrid } from '../../interfaces';\n\nexport const FILTER_BUTTON_CLASS = 'rv-filter';\nexport const FILTER_BUTTON_ACTIVE = 'active';\n\ntype Props = {\n column: RevoGrid.ColumnRegular;\n};\nexport const SortingSign = ({ column }: Props) => {\n return <i class={column.order} />;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.store.js","sourceRoot":"","sources":["../../../src/store/selection/selection.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { createStore } from '@stencil/store';\nimport { Observable, Selection } from '../../interfaces';\nimport { setStore } from '../../utils/store.utils';\nimport { getRange } from './selection.helpers';\n\ntype StoreState = Selection.SelectionStoreState;\n\nfunction defaultState(): StoreState {\n return {\n range: null,\n tempRange: null,\n tempRangeType: null,\n focus: null,\n edit: null,\n lastCell: null,\n };\n}\n\nexport class SelectionStore {\n readonly store: Observable<Selection.SelectionStoreState>;\n private unsubscribe: { (): void }[] = [];\n constructor() {\n this.store = createStore(defaultState());\n this.store.on('set', (key, newVal) => {\n if (key === 'tempRange' && !newVal) {\n this.store.set('tempRangeType', null);\n }\n });\n }\n\n onChange<Key extends keyof StoreState>(propName: Key, cb: (newValue: StoreState[Key]) => void) {\n this.unsubscribe.push(this.store.onChange(propName, cb));\n }\n\n clearFocus() {\n setStore(this.store, { focus: null, range: null, edit: null, tempRange: null });\n }\n\n setFocus(focus: Selection.Cell, end: Selection.Cell) {\n setStore(this.store, {\n focus,\n range: getRange(focus, end),\n edit: null,\n tempRange: null,\n });\n }\n\n setTempArea(range: Selection.TempRange | null) {\n setStore(this.store, { tempRange: range?.area, tempRangeType: range?.type, edit: null });\n }\n\n clearTemp() {\n setStore(this.store, { tempRange: null });\n }\n\n /** Can be applied from selection change or from simple keyboard change clicks */\n setRangeArea(range: Selection.RangeArea) {\n setStore(this.store, { range, edit: null, tempRange: null });\n }\n setRange(start: Selection.Cell, end: Selection.Cell) {\n this.setRangeArea(getRange(start, end));\n }\n\n setLastCell(lastCell: Selection.Cell) {\n setStore(this.store, { lastCell });\n }\n\n setEdit(val: string | boolean) {\n const focus = this.store.get('focus');\n if (focus && typeof val === 'string') {\n setStore(this.store, {\n edit: { x: focus.x, y: focus.y, val },\n });\n return;\n }\n setStore(this.store, { edit: null });\n }\n\n dispose() {\n this.unsubscribe.forEach(f => f());\n this.store.dispose();\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.store.service.js","sourceRoot":"","sources":["../../../src/store/selection/selection.store.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C,MAAM,CAAC,OAAO,OAAO,qBAAqB;EACxC,YAAmB,KAAgD,EAAU,MAAc;IAAxE,UAAK,GAAL,KAAK,CAA2C;IAAU,WAAM,GAAN,MAAM,CAAQ;IACzF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACrB,CAAC;EAED,IAAI,MAAM;IACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EAChC,CAAC;EAED,IAAI,OAAO;IACT,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EACjC,CAAC;EAED,IAAI,MAAM;IACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EACjC,CAAC;EAED,WAAW,CAAC,KAAY;IACtB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EACxC,CAAC;EAED,KAAK,CAAC,IAAW,EAAE,OAAO,GAAG,KAAK;IAChC,IAAI,CAAC,IAAI,EAAE;MACT,OAAO,KAAK,CAAC;KACd;IACD,IAAI,GAAG,GAAS,IAAI,CAAC;IAErB,aAAa;IACb,IAAI,OAAO,EAAE;MACX,IAAI,KAAK,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;MACjD,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;OACtD;KACF;IAED,eAAe;IACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;EACtC,CAAC;CACF","sourcesContent":["import { Edition, Observable, Selection } from '../../interfaces';\nimport { getRange } from './selection.helpers';\nimport Cell = Selection.Cell;\nimport Range = Selection.RangeArea;\n\ninterface Config {\n changeRange(range: Range): boolean;\n focus(focus: Cell, end: Cell): boolean;\n}\n\nexport default class SelectionStoreService {\n constructor(public store: Observable<Selection.SelectionStoreState>, private config: Config) {\n this.store = store;\n }\n\n get edited(): Edition.EditCellStore | null {\n return this.store.get('edit');\n }\n\n get focused(): Cell | null {\n return this.store.get('focus');\n }\n\n get ranged(): Range | null {\n return this.store.get('range');\n }\n\n changeRange(range: Range) {\n return this.config.changeRange(range);\n }\n\n focus(cell?: Cell, isMulti = false) {\n if (!cell) {\n return false;\n }\n let end: Cell = cell;\n\n // range edit\n if (isMulti) {\n let start: Cell | null = this.store.get('focus');\n if (start) {\n return this.config.changeRange(getRange(start, end));\n }\n }\n\n // single focus\n return this.config.focus(cell, end);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storeTypes.js","sourceRoot":"","sources":["../../src/store/storeTypes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAA6B,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAE3F,MAAM,UAAU,SAAS,CAAC,IAAkC;EAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC","sourcesContent":["import { RevoGrid } from '../interfaces';\n\nexport const rowTypes: RevoGrid.DimensionRows[] = ['rowPinStart', 'rgRow', 'rowPinEnd'];\nexport const columnTypes: RevoGrid.DimensionCols[] = ['colPinStart', 'rgCol', 'colPinEnd'];\n\nexport function isRowType(type: RevoGrid.DimensionRows | any): type is RevoGrid.DimensionRows {\n return rowTypes.indexOf(type) > -1;\n}\n"]}
|