@revolist/revogrid 3.6.2 → 3.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-element/_baseIteratee.js +3 -1
- package/custom-element/_baseIteratee.js.map +1 -0
- package/custom-element/columnService.js +6 -4
- package/custom-element/columnService.js.map +1 -0
- package/custom-element/consts.js +3 -1
- package/custom-element/consts.js.map +1 -0
- package/custom-element/data.store.js +55 -33
- package/custom-element/data.store.js.map +1 -0
- package/custom-element/debounce.js +3 -1
- package/custom-element/debounce.js.map +1 -0
- package/custom-element/dimension.helpers.js +3 -1
- package/custom-element/dimension.helpers.js.map +1 -0
- package/custom-element/each.js +2 -0
- package/custom-element/each.js.map +1 -0
- package/custom-element/filter.button.js +2 -0
- package/custom-element/filter.button.js.map +1 -0
- package/custom-element/identity.js +2 -0
- package/custom-element/identity.js.map +1 -0
- package/custom-element/index.d.ts +9 -16
- package/custom-element/index.js +4 -15
- package/custom-element/index.js.map +1 -0
- package/custom-element/isSymbol.js +3 -1
- package/custom-element/isSymbol.js.map +1 -0
- package/custom-element/keys.js +3 -1
- package/custom-element/keys.js.map +1 -0
- package/custom-element/localScrollService.js +2 -0
- package/custom-element/localScrollService.js.map +1 -0
- package/custom-element/resize-observer.js +5 -3
- package/custom-element/resize-observer.js.map +1 -0
- package/custom-element/revo-grid.js +39 -159
- package/custom-element/revo-grid.js.map +1 -0
- package/custom-element/revogr-clipboard.js +4 -4
- package/custom-element/revogr-clipboard.js.map +1 -0
- package/custom-element/revogr-data.js +2 -0
- package/custom-element/revogr-data.js.map +1 -0
- package/custom-element/revogr-data2.js +14 -3
- package/custom-element/revogr-data2.js.map +1 -0
- package/custom-element/revogr-edit.js +2 -0
- package/custom-element/revogr-edit.js.map +1 -0
- package/custom-element/revogr-edit2.js +7 -3
- package/custom-element/revogr-edit2.js.map +1 -0
- package/custom-element/revogr-filter-panel.js +10 -6
- package/custom-element/revogr-filter-panel.js.map +1 -0
- package/custom-element/revogr-focus.js +2 -0
- package/custom-element/revogr-focus.js.map +1 -0
- package/custom-element/revogr-focus2.js +8 -2
- package/custom-element/revogr-focus2.js.map +1 -0
- package/custom-element/revogr-header.js +2 -0
- package/custom-element/revogr-header.js.map +1 -0
- package/custom-element/revogr-header2.js +11 -3
- package/custom-element/revogr-header2.js.map +1 -0
- package/custom-element/revogr-order-editor.js +2 -0
- package/custom-element/revogr-order-editor.js.map +1 -0
- package/custom-element/revogr-order-editor2.js +8 -3
- package/custom-element/revogr-order-editor2.js.map +1 -0
- package/custom-element/revogr-overlay-selection.js +2 -0
- package/custom-element/revogr-overlay-selection.js.map +1 -0
- package/custom-element/revogr-overlay-selection2.js +15 -3
- package/custom-element/revogr-overlay-selection2.js.map +1 -0
- package/custom-element/revogr-row-headers.js +2 -0
- package/custom-element/revogr-row-headers.js.map +1 -0
- package/custom-element/revogr-row-headers2.js +9 -3
- package/custom-element/revogr-row-headers2.js.map +1 -0
- package/custom-element/revogr-scroll-virtual.js +2 -0
- package/custom-element/revogr-scroll-virtual.js.map +1 -0
- package/custom-element/revogr-scroll-virtual2.js +5 -2
- package/custom-element/revogr-scroll-virtual2.js.map +1 -0
- package/custom-element/revogr-temp-range.js +2 -0
- package/custom-element/revogr-temp-range.js.map +1 -0
- package/custom-element/revogr-temp-range2.js +8 -4
- package/custom-element/revogr-temp-range2.js.map +1 -0
- package/custom-element/revogr-viewport-scroll.js +2 -0
- package/custom-element/revogr-viewport-scroll.js.map +1 -0
- package/custom-element/revogr-viewport-scroll2.js +6 -11
- package/custom-element/revogr-viewport-scroll2.js.map +1 -0
- package/custom-element/selection.utils.js +2 -0
- package/custom-element/selection.utils.js.map +1 -0
- package/custom-element/themeService.js +65 -0
- package/custom-element/themeService.js.map +1 -0
- package/custom-element/toInteger.js +2 -0
- package/custom-element/toInteger.js.map +1 -0
- package/custom-element/toNumber.js +3 -1
- package/custom-element/toNumber.js.map +1 -0
- package/custom-element/utils.js +2 -0
- package/custom-element/utils.js.map +1 -0
- package/dist/cjs/{debounce-6cea2774.js → debounce-25dce8a1.js} +3 -1
- package/dist/cjs/debounce-25dce8a1.js.map +1 -0
- package/dist/cjs/{index-cb904e00.js → index-5f3dfe40.js} +577 -283
- package/dist/cjs/index-5f3dfe40.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +5 -16
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/{resize-observer-bf327d6a.js → resize-observer-7f159b88.js} +5 -3
- package/dist/cjs/resize-observer-7f159b88.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.js +11 -59
- package/dist/cjs/revo-grid.cjs.js.map +1 -0
- package/dist/cjs/revo-grid_11.cjs.entry.js +153 -150
- package/dist/cjs/revo-grid_11.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-clipboard.cjs.entry.js +4 -3
- package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +11 -6
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/button/button.js +1 -0
- package/dist/collection/components/button/button.js.map +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +82 -80
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
- package/dist/collection/components/data/cellRenderer.js +2 -2
- package/dist/collection/components/data/cellRenderer.js.map +1 -0
- package/dist/collection/components/data/columnService.js +4 -3
- package/dist/collection/components/data/columnService.js.map +1 -0
- package/dist/collection/components/data/revogr-data.js +240 -219
- package/dist/collection/components/data/revogr-data.js.map +1 -0
- package/dist/collection/components/data/rowRenderer.js +1 -0
- package/dist/collection/components/data/rowRenderer.js.map +1 -0
- package/dist/collection/components/header/headerCellRenderer.js +2 -3
- package/dist/collection/components/header/headerCellRenderer.js.map +1 -0
- package/dist/collection/components/header/headerRenderer.js +2 -3
- package/dist/collection/components/header/headerRenderer.js.map +1 -0
- package/dist/collection/components/header/revogr-header.js +244 -229
- package/dist/collection/components/header/revogr-header.js.map +1 -0
- package/dist/collection/components/order/orderRenderer.js +2 -5
- package/dist/collection/components/order/orderRenderer.js.map +1 -0
- package/dist/collection/components/order/revogr-order-editor.js +257 -248
- package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
- package/dist/collection/components/order/rowOrderService.js +1 -0
- package/dist/collection/components/order/rowOrderService.js.map +1 -0
- package/dist/collection/components/overlay/autofill.service.js +1 -0
- package/dist/collection/components/overlay/autofill.service.js.map +1 -0
- package/dist/collection/components/overlay/clipboard.service.js +1 -0
- package/dist/collection/components/overlay/clipboard.service.js.map +1 -0
- package/dist/collection/components/overlay/editors/edit.utils.js +1 -0
- package/dist/collection/components/overlay/editors/edit.utils.js.map +1 -0
- package/dist/collection/components/overlay/editors/text.js +1 -0
- package/dist/collection/components/overlay/editors/text.js.map +1 -0
- package/dist/collection/components/overlay/keyboard.service.js +1 -0
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
- package/dist/collection/components/overlay/revogr-edit.js +106 -94
- package/dist/collection/components/overlay/revogr-edit.js.map +1 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +488 -466
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
- package/dist/collection/components/overlay/selection.utils.js +1 -0
- package/dist/collection/components/overlay/selection.utils.js.map +1 -0
- package/dist/collection/components/revo-grid/revo-grid-style.css +7 -13
- package/dist/collection/components/revo-grid/revo-grid.js +1565 -1618
- package/dist/collection/components/revo-grid/revo-grid.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.helpers.js +1 -0
- package/dist/collection/components/revo-grid/viewport.helpers.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.interfaces.js +1 -3
- package/dist/collection/components/revo-grid/viewport.interfaces.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.js +2 -5
- package/dist/collection/components/revo-grid/viewport.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.resize.service.js +1 -0
- package/dist/collection/components/revo-grid/viewport.resize.service.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js +1 -0
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.section.js +2 -4
- package/dist/collection/components/revo-grid/viewport.section.js.map +1 -0
- package/dist/collection/components/revo-grid/viewport.service.js +8 -2
- package/dist/collection/components/revo-grid/viewport.service.js.map +1 -0
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +151 -142
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
- package/dist/collection/components/rowHeaders/row-header-render.js +1 -0
- package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +2 -4
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +161 -164
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +147 -135
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
- package/dist/collection/components/selection-focus/revogr-focus.js +141 -125
- package/dist/collection/components/selection-focus/revogr-focus.js.map +1 -0
- package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +1 -1
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js +83 -74
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +1 -0
- package/dist/collection/global/global.js +1 -0
- package/dist/collection/global/global.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/plugins/autoSizeColumn.js +1 -0
- package/dist/collection/plugins/autoSizeColumn.js.map +1 -0
- package/dist/collection/plugins/basePlugin.js +1 -0
- package/dist/collection/plugins/basePlugin.js.map +1 -0
- package/dist/collection/plugins/dispatcher.js +1 -0
- package/dist/collection/plugins/dispatcher.js.map +1 -0
- package/dist/collection/plugins/export/csv.js +1 -0
- package/dist/collection/plugins/export/csv.js.map +1 -0
- package/dist/collection/plugins/export/export.plugin.js +1 -0
- package/dist/collection/plugins/export/export.plugin.js.map +1 -0
- package/dist/collection/plugins/export/types.js +1 -3
- package/dist/collection/plugins/export/types.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/equal.js +1 -0
- package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/set.js +1 -0
- package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +1 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js +1 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
- package/dist/collection/plugins/filter/filter.button.js +6 -11
- package/dist/collection/plugins/filter/filter.button.js.map +1 -0
- package/dist/collection/plugins/filter/filter.plugin.js +1 -0
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
- package/dist/collection/plugins/filter/filter.pop.js +239 -234
- package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
- package/dist/collection/plugins/filter/filter.service.js +1 -0
- package/dist/collection/plugins/filter/filter.service.js.map +1 -0
- package/dist/collection/plugins/filter/filter.style.css +2 -3
- package/dist/collection/plugins/filter/filter.types.js +1 -3
- package/dist/collection/plugins/filter/filter.types.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -0
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +1 -0
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +1 -0
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +6 -5
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +3 -7
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -3
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js +1 -0
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +1 -0
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js +1 -0
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +4 -3
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.sign.js +1 -0
- package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
- package/dist/collection/plugins/stretchPlugin.js +1 -0
- package/dist/collection/plugins/stretchPlugin.js.map +1 -0
- package/dist/collection/plugins/trimmed/trimmed.plugin.js +1 -0
- package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +1 -0
- package/dist/collection/services/cell.helpers.js +1 -0
- package/dist/collection/services/cell.helpers.js.map +1 -0
- package/dist/collection/services/column.data.provider.js +8 -7
- package/dist/collection/services/column.data.provider.js.map +1 -0
- package/dist/collection/services/data.provider.js +1 -0
- package/dist/collection/services/data.provider.js.map +1 -0
- package/dist/collection/services/dimension.provider.js +1 -0
- package/dist/collection/services/dimension.provider.js.map +1 -0
- package/dist/collection/services/localScrollService.js +1 -0
- package/dist/collection/services/localScrollService.js.map +1 -0
- package/dist/collection/services/resizable.directive.js +2 -3
- package/dist/collection/services/resizable.directive.js.map +1 -0
- package/dist/collection/services/selection.store.connector.js +1 -0
- package/dist/collection/services/selection.store.connector.js.map +1 -0
- package/dist/collection/services/viewport.provider.js +1 -0
- package/dist/collection/services/viewport.provider.js.map +1 -0
- package/dist/collection/store/dataSource/data.proxy.js +1 -0
- package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
- package/dist/collection/store/dataSource/data.store.js +4 -3
- package/dist/collection/store/dataSource/data.store.js.map +1 -0
- package/dist/collection/store/dimension/dimension.helpers.js +1 -0
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
- package/dist/collection/store/dimension/dimension.store.js +5 -3
- package/dist/collection/store/dimension/dimension.store.js.map +1 -0
- package/dist/collection/store/selection/selection.helpers.js +1 -0
- package/dist/collection/store/selection/selection.helpers.js.map +1 -0
- package/dist/collection/store/selection/selection.store.js +1 -0
- package/dist/collection/store/selection/selection.store.js.map +1 -0
- package/dist/collection/store/selection/selection.store.service.js +1 -0
- package/dist/collection/store/selection/selection.store.service.js.map +1 -0
- package/dist/collection/store/storeTypes.js +1 -0
- package/dist/collection/store/storeTypes.js.map +1 -0
- package/dist/collection/store/viewPort/viewport.helpers.js +1 -0
- package/dist/collection/store/viewPort/viewport.helpers.js.map +1 -0
- package/dist/collection/store/viewPort/viewport.store.js +1 -1
- package/dist/collection/store/viewPort/viewport.store.js.map +1 -0
- package/dist/collection/themeManager/theme.compact.js +1 -0
- package/dist/collection/themeManager/theme.compact.js.map +1 -0
- package/dist/collection/themeManager/theme.default.js +1 -0
- package/dist/collection/themeManager/theme.default.js.map +1 -0
- package/dist/collection/themeManager/theme.material.js +1 -0
- package/dist/collection/themeManager/theme.material.js.map +1 -0
- package/dist/collection/themeManager/themeService.js +6 -5
- package/dist/collection/themeManager/themeService.js.map +1 -0
- package/dist/collection/utils/closestPolifill.js +1 -0
- package/dist/collection/utils/closestPolifill.js.map +1 -0
- package/dist/collection/utils/consts.js +1 -0
- package/dist/collection/utils/consts.js.map +1 -0
- package/dist/collection/utils/generateAlphabetHeader.js +1 -0
- package/dist/collection/utils/generateAlphabetHeader.js.map +1 -0
- package/dist/collection/utils/keyCodes.js +1 -0
- package/dist/collection/utils/keyCodes.js.map +1 -0
- package/dist/collection/utils/keyCodes.utils.js +1 -0
- package/dist/collection/utils/keyCodes.utils.js.map +1 -0
- package/dist/collection/utils/platform.js +1 -0
- package/dist/collection/utils/platform.js.map +1 -0
- package/dist/collection/utils/resizeObserver.js +1 -0
- package/dist/collection/utils/resizeObserver.js.map +1 -0
- package/dist/collection/utils/store.utils.js +1 -0
- package/dist/collection/utils/store.utils.js.map +1 -0
- package/dist/collection/utils/utils.js +1 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/esm/{debounce-e4e6dd45.js → debounce-7221834a.js} +3 -1
- package/dist/esm/debounce-7221834a.js.map +1 -0
- package/dist/esm/{index-6f753b3c.js → index-068eebfc.js} +577 -279
- package/dist/esm/index-068eebfc.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +5 -16
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/{resize-observer-00c48d78.js → resize-observer-d817c4b6.js} +5 -3
- package/dist/esm/resize-observer-d817c4b6.js.map +1 -0
- package/dist/esm/revo-grid.js +9 -60
- package/dist/esm/revo-grid.js.map +1 -0
- package/dist/esm/revo-grid_11.entry.js +153 -150
- package/dist/esm/revo-grid_11.entry.js.map +1 -0
- package/dist/esm/revogr-clipboard.entry.js +4 -3
- package/dist/esm/revogr-clipboard.entry.js.map +1 -0
- package/dist/esm/revogr-filter-panel.entry.js +11 -6
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
- package/dist/esm-es5/{debounce-e4e6dd45.js → debounce-7221834a.js} +2 -1
- package/dist/esm-es5/debounce-7221834a.js.map +1 -0
- package/dist/esm-es5/index-068eebfc.js +5 -0
- package/dist/esm-es5/index-068eebfc.js.map +1 -0
- package/dist/esm-es5/index.js +1 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -1
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/{resize-observer-00c48d78.js → resize-observer-d817c4b6.js} +2 -1
- package/dist/esm-es5/resize-observer-d817c4b6.js.map +1 -0
- package/dist/esm-es5/revo-grid.js +2 -1
- package/dist/esm-es5/revo-grid.js.map +1 -0
- package/dist/esm-es5/revo-grid_11.entry.js +3 -2
- package/dist/esm-es5/revo-grid_11.entry.js.map +1 -0
- package/dist/esm-es5/revogr-clipboard.entry.js +3 -2
- package/dist/esm-es5/revogr-clipboard.entry.js.map +1 -0
- package/dist/esm-es5/revogr-filter-panel.entry.js +3 -2
- package/dist/esm-es5/revogr-filter-panel.entry.js.map +1 -0
- package/dist/revo-grid/debounce-7221834a.js +5 -0
- package/dist/revo-grid/debounce-7221834a.js.map +1 -0
- package/dist/revo-grid/{debounce-5a33c710.system.js → debounce-fa358fc7.system.js} +2 -1
- package/dist/revo-grid/debounce-fa358fc7.system.js.map +1 -0
- package/dist/revo-grid/index-068eebfc.js +6 -0
- package/dist/revo-grid/index-068eebfc.js.map +1 -0
- package/dist/revo-grid/index-36847b63.system.js +6 -0
- package/dist/revo-grid/index-36847b63.system.js.map +1 -0
- package/dist/revo-grid/index.esm.js +2 -0
- package/dist/revo-grid/index.esm.js.map +1 -0
- package/dist/revo-grid/index.system.js +2 -1
- package/dist/revo-grid/index.system.js.map +1 -0
- package/dist/revo-grid/{resize-observer-8af0bc0e.system.js → resize-observer-64c845eb.system.js} +2 -1
- package/dist/revo-grid/resize-observer-64c845eb.system.js.map +1 -0
- package/dist/revo-grid/resize-observer-d817c4b6.js +5 -0
- package/dist/revo-grid/resize-observer-d817c4b6.js.map +1 -0
- package/dist/revo-grid/revo-grid.esm.js +2 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -0
- package/dist/revo-grid/revo-grid.js +0 -2
- package/dist/revo-grid/revo-grid.system.js +2 -1
- package/dist/revo-grid/revo-grid.system.js.map +1 -0
- package/dist/revo-grid/revo-grid_11.entry.js +2 -1
- package/dist/revo-grid/revo-grid_11.entry.js.map +1 -0
- package/dist/revo-grid/revo-grid_11.system.entry.js +3 -2
- package/dist/revo-grid/revo-grid_11.system.entry.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard.entry.js +2 -1
- package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard.system.entry.js +3 -2
- package/dist/revo-grid/revogr-clipboard.system.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +2 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.system.entry.js +3 -2
- package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +1 -0
- package/dist/types/components/data/cellRenderer.d.ts +1 -1
- package/dist/types/components/data/columnService.d.ts +4 -4
- package/dist/types/components/header/headerCellRenderer.d.ts +1 -1
- package/dist/types/components/header/headerRenderer.d.ts +1 -1
- package/dist/types/components/order/orderRenderer.d.ts +1 -1
- package/dist/types/components/order/rowOrderService.d.ts +1 -1
- package/dist/types/components/overlay/autofill.service.d.ts +1 -1
- package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
- package/dist/types/components/overlay/editors/text.d.ts +1 -1
- package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
- package/dist/types/components/overlay/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 +6 -3
- package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
- package/dist/types/components.d.ts +26 -0
- package/dist/types/plugins/autoSizeColumn.d.ts +1 -1
- package/dist/types/plugins/dispatcher.d.ts +1 -1
- package/dist/types/plugins/export/csv.d.ts +1 -1
- package/dist/types/plugins/export/export.plugin.d.ts +1 -1
- package/dist/types/plugins/export/types.d.ts +2 -2
- package/dist/types/plugins/filter/filter.button.d.ts +1 -1
- package/dist/types/plugins/filter/filter.plugin.d.ts +6 -6
- package/dist/types/plugins/filter/filter.pop.d.ts +4 -4
- package/dist/types/plugins/filter/filter.service.d.ts +1 -1
- package/dist/types/plugins/filter/filter.types.d.ts +5 -5
- package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +1 -1
- package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +1 -1
- package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +5 -5
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
- package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +5 -5
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -1
- package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
- package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +2 -2
- package/dist/types/services/column.data.provider.d.ts +4 -4
- package/dist/types/services/data.provider.d.ts +1 -1
- package/dist/types/services/dimension.provider.d.ts +2 -2
- package/dist/types/services/localScrollService.d.ts +1 -1
- package/dist/types/services/resizable.directive.d.ts +2 -2
- package/dist/types/services/selection.store.connector.d.ts +2 -2
- package/dist/types/services/viewport.provider.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +91 -19
- 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 +9 -0
- package/loader/package.json +1 -0
- package/package.json +1 -1
- package/dist/cjs/css-shim-9f5bc84d.js +0 -9
- package/dist/cjs/dom-fcb646f0.js +0 -78
- package/dist/esm/css-shim-e1e1ea5e.js +0 -7
- package/dist/esm/dom-21bd1807.js +0 -76
- package/dist/esm-es5/css-shim-e1e1ea5e.js +0 -4
- package/dist/esm-es5/dom-21bd1807.js +0 -24
- package/dist/esm-es5/index-6f753b3c.js +0 -4
- package/dist/revo-grid/css-shim-bcf89cc0.system.js +0 -4
- package/dist/revo-grid/css-shim-e1e1ea5e.js +0 -4
- package/dist/revo-grid/debounce-726bdadb.js +0 -4
- package/dist/revo-grid/dom-21bd1807.js +0 -22
- package/dist/revo-grid/dom-726246e2.system.js +0 -24
- package/dist/revo-grid/index-f14b41a0.system.js +0 -5
- package/dist/revo-grid/index-f30d1de1.js +0 -5
- package/dist/revo-grid/resize-observer-00c48d78.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revogr-focus.js","sourceRoot":"","sources":["../../../src/components/selection-focus/revogr-focus.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMxD,MAAM,OAAO,WAAW;;;;;;;;EAcd,OAAO,CAAC,CAAc,EAAE,KAAqB;IACnD,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,CAAC;MAChB,KAAK,EAAE,SAAS;MAChB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;MACnB,KAAK;MACL,MAAM;KACP,CAAC,CAAC;EACL,CAAC;EAED,kBAAkB;IAChB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,YAAY,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;EACjE,CAAC;EAED,MAAM;IACJ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,IAAI,EAAE;MACR,MAAM,KAAK,GAAG,UAAU,iCAEjB,IAAI,KACP,EAAE,EAAE,IAAI,CAAC,CAAC,EACV,EAAE,EAAE,IAAI,CAAC,CAAC,KAEZ,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CACxB,CAAC;MACF,OAAO,EAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;KACnD;EACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host, Element, Event, EventEmitter } from '@stencil/core';\nimport { Observable, RevoGrid, Selection } from '../../interfaces';\nimport { getSourceItem } from '../../store/dataSource/data.store';\nimport { FOCUS_CLASS } from '../../utils/consts';\nimport { ColumnSource, RowSource } from '../data/columnService';\nimport { getElStyle } from '../overlay/selection.utils';\n\n@Component({\n tag: 'revogr-focus',\n styleUrl: 'revogr-focus-style.scss',\n})\nexport class RevogrFocus {\n @Element() el: HTMLElement;\n\n /** Dynamic stores */\n @Prop() dataStore!: RowSource;\n @Prop() colData!: ColumnSource;\n @Prop() selectionStore!: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow!: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol!: Observable<RevoGrid.DimensionSettingsState>;\n @Event({ eventName: 'afterfocus' }) afterFocus: EventEmitter<{\n model: any;\n column: RevoGrid.ColumnRegular;\n }>;\n\n private changed(e: HTMLElement, focus: Selection.Cell): void {\n e?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n const model = getSourceItem(this.dataStore, focus.y);\n const column = getSourceItem(this.colData, focus.x);\n this.afterFocus.emit({\n model,\n column\n });\n }\n\n componentDidRender(): void {\n const currentFocus = this.selectionStore.get('focus');\n currentFocus && this.el && this.changed(this.el, currentFocus);\n }\n\n render() {\n const data = this.selectionStore.get('focus');\n if (data) {\n const style = getElStyle(\n {\n ...data,\n x1: data.x,\n y1: data.y,\n },\n this.dimensionRow.state,\n this.dimensionCol.state,\n );\n return <Host class={FOCUS_CLASS} style={style} />;\n }\n }\n}\n"]}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { h, Host } from '@stencil/core';
|
|
5
5
|
import { throttle } from 'lodash';
|
|
6
6
|
import { TMP_SELECTION_BG_CLASS } from '../../utils/consts';
|
|
7
7
|
import { getElStyle } from '../overlay/selection.utils';
|
|
8
8
|
export class RevogrFocus {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.onChange = throttle((e) => this.doChange(e), 300);
|
|
11
|
+
this.selectionStore = undefined;
|
|
12
|
+
this.dimensionRow = undefined;
|
|
13
|
+
this.dimensionCol = undefined;
|
|
11
14
|
}
|
|
12
15
|
doChange(e) {
|
|
13
16
|
e === null || e === void 0 ? void 0 : e.scrollIntoView({
|
|
@@ -43,8 +46,7 @@ export class RevogrFocus {
|
|
|
43
46
|
return (h(Host, { class: {
|
|
44
47
|
[TMP_SELECTION_BG_CLASS]: true,
|
|
45
48
|
[type || '']: true,
|
|
46
|
-
}, style: style },
|
|
47
|
-
h("div", { class: directionClass, ref: (e) => (this.el = e) })));
|
|
49
|
+
}, style: style }, h("div", { class: directionClass, ref: (e) => (this.el = e) })));
|
|
48
50
|
}
|
|
49
51
|
getRange() {
|
|
50
52
|
const range = this.selectionStore.get('range');
|
|
@@ -58,84 +60,91 @@ export class RevogrFocus {
|
|
|
58
60
|
return Object.assign(Object.assign({}, focus), { x1: focus.x, y1: focus.y });
|
|
59
61
|
}
|
|
60
62
|
static get is() { return "revogr-temp-range"; }
|
|
61
|
-
static get originalStyleUrls() {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
63
|
+
static get originalStyleUrls() {
|
|
64
|
+
return {
|
|
65
|
+
"$": ["revogr-temp-range-style.scss"]
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
static get styleUrls() {
|
|
69
|
+
return {
|
|
70
|
+
"$": ["revogr-temp-range-style.css"]
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
static get properties() {
|
|
74
|
+
return {
|
|
75
|
+
"selectionStore": {
|
|
76
|
+
"type": "unknown",
|
|
77
|
+
"mutable": false,
|
|
78
|
+
"complexType": {
|
|
79
|
+
"original": "Observable<Selection.SelectionStoreState>",
|
|
80
|
+
"resolved": "ObservableMap<SelectionStoreState>",
|
|
81
|
+
"references": {
|
|
82
|
+
"Observable": {
|
|
83
|
+
"location": "import",
|
|
84
|
+
"path": "../../interfaces"
|
|
85
|
+
},
|
|
86
|
+
"Selection": {
|
|
87
|
+
"location": "import",
|
|
88
|
+
"path": "../../interfaces"
|
|
89
|
+
}
|
|
82
90
|
}
|
|
91
|
+
},
|
|
92
|
+
"required": false,
|
|
93
|
+
"optional": false,
|
|
94
|
+
"docs": {
|
|
95
|
+
"tags": [],
|
|
96
|
+
"text": "Dynamic stores"
|
|
83
97
|
}
|
|
84
98
|
},
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"location": "import",
|
|
101
|
-
"path": "../../interfaces"
|
|
102
|
-
},
|
|
103
|
-
"RevoGrid": {
|
|
104
|
-
"location": "import",
|
|
105
|
-
"path": "../../interfaces"
|
|
99
|
+
"dimensionRow": {
|
|
100
|
+
"type": "unknown",
|
|
101
|
+
"mutable": false,
|
|
102
|
+
"complexType": {
|
|
103
|
+
"original": "Observable<RevoGrid.DimensionSettingsState>",
|
|
104
|
+
"resolved": "ObservableMap<DimensionSettingsState>",
|
|
105
|
+
"references": {
|
|
106
|
+
"Observable": {
|
|
107
|
+
"location": "import",
|
|
108
|
+
"path": "../../interfaces"
|
|
109
|
+
},
|
|
110
|
+
"RevoGrid": {
|
|
111
|
+
"location": "import",
|
|
112
|
+
"path": "../../interfaces"
|
|
113
|
+
}
|
|
106
114
|
}
|
|
115
|
+
},
|
|
116
|
+
"required": false,
|
|
117
|
+
"optional": false,
|
|
118
|
+
"docs": {
|
|
119
|
+
"tags": [],
|
|
120
|
+
"text": ""
|
|
107
121
|
}
|
|
108
122
|
},
|
|
109
|
-
"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"location": "import",
|
|
125
|
-
"path": "../../interfaces"
|
|
126
|
-
},
|
|
127
|
-
"RevoGrid": {
|
|
128
|
-
"location": "import",
|
|
129
|
-
"path": "../../interfaces"
|
|
123
|
+
"dimensionCol": {
|
|
124
|
+
"type": "unknown",
|
|
125
|
+
"mutable": false,
|
|
126
|
+
"complexType": {
|
|
127
|
+
"original": "Observable<RevoGrid.DimensionSettingsState>",
|
|
128
|
+
"resolved": "ObservableMap<DimensionSettingsState>",
|
|
129
|
+
"references": {
|
|
130
|
+
"Observable": {
|
|
131
|
+
"location": "import",
|
|
132
|
+
"path": "../../interfaces"
|
|
133
|
+
},
|
|
134
|
+
"RevoGrid": {
|
|
135
|
+
"location": "import",
|
|
136
|
+
"path": "../../interfaces"
|
|
137
|
+
}
|
|
130
138
|
}
|
|
139
|
+
},
|
|
140
|
+
"required": false,
|
|
141
|
+
"optional": false,
|
|
142
|
+
"docs": {
|
|
143
|
+
"tags": [],
|
|
144
|
+
"text": ""
|
|
131
145
|
}
|
|
132
|
-
},
|
|
133
|
-
"required": false,
|
|
134
|
-
"optional": false,
|
|
135
|
-
"docs": {
|
|
136
|
-
"tags": [],
|
|
137
|
-
"text": ""
|
|
138
146
|
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
141
149
|
}
|
|
150
|
+
//# sourceMappingURL=revogr-temp-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revogr-temp-range.js","sourceRoot":"","sources":["../../../src/components/selection-temp-range/revogr-temp-range.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMxD,MAAM,OAAO,WAAW;;IAOL,aAAQ,GAAG,QAAQ,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;;;;;EAExE,QAAQ,CAAC,CAAc;IAC7B,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,CAAC;MAChB,KAAK,EAAE,SAAS;MAChB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;EACL,CAAC;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,EAAE,EAAE;MACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxB;EACH,CAAC;EAED,MAAM;IACJ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,EAAE;MACT,OAAO;KACR;IACD,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,IAAI,UAAU,GAAG,OAAO,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE;MACV,OAAO;KACR;IACD,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;MACpB,UAAU,GAAG,KAAK,CAAC;KACpB;IACD,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;MACpB,UAAU,GAAG,MAAM,CAAC;KACrB;IACD,MAAM,cAAc,GAAG,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,sBAAsB,CAAC,EAAE,IAAI;QAC9B,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI;OACnB,EACD,KAAK,EAAE,KAAK;MAEZ,WAAK,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAI,CACjE,CACR,CAAC;EACJ,CAAC;EAEO,QAAQ;IACd,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,KAAK,EAAE;MACT,OAAO,KAAK,CAAC;KACd;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE;MACV,OAAO,IAAI,CAAC;KACb;IACD,uCACK,KAAK,KACR,EAAE,EAAE,KAAK,CAAC,CAAC,EACX,EAAE,EAAE,KAAK,CAAC,CAAC,IACX;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport { throttle } from 'lodash';\nimport { Observable, RevoGrid, Selection } from '../../interfaces';\nimport { TMP_SELECTION_BG_CLASS } from '../../utils/consts';\nimport { getElStyle } from '../overlay/selection.utils';\n\n@Component({\n tag: 'revogr-temp-range',\n styleUrl: 'revogr-temp-range-style.scss',\n})\nexport class RevogrFocus {\n el: HTMLElement;\n\n /** Dynamic stores */\n @Prop() selectionStore: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n private readonly onChange = throttle((e: HTMLElement) => this.doChange(e), 300);\n\n private doChange(e: HTMLElement): void {\n e?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n componentDidRender(): void {\n if (this.el) {\n this.onChange(this.el);\n }\n }\n\n render() {\n const data = this.selectionStore.get('tempRange');\n const type = this.selectionStore.get('tempRangeType');\n if (!data) {\n return;\n }\n let directionY = 'bottom';\n let derectionX = 'right';\n const range = this.getRange();\n if (!range) {\n return;\n }\n if (data.y < range.y) {\n directionY = 'top';\n }\n if (data.x < range.x) {\n derectionX = 'left';\n }\n const directionClass = `${derectionX} ${directionY}`;\n const style = getElStyle(data, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <Host\n class={{\n [TMP_SELECTION_BG_CLASS]: true,\n [type || '']: true,\n }}\n style={style}\n >\n <div class={directionClass} ref={(e: HTMLElement) => (this.el = e)} />\n </Host>\n );\n }\n\n private getRange(): Selection.RangeArea | null {\n const range = this.selectionStore.get('range');\n if (range) {\n return range;\n }\n const focus = this.selectionStore.get('focus');\n if (!focus) {\n return null;\n }\n return {\n ...focus,\n x1: focus.x,\n y1: focus.y,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/global/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD,OAAO,CAAC,GAAG,CAAC,EAAE;EACZ,IAAI,KAAK,GAAwB,GAAW,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;EAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;GACtB;EAED,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;EACjD,IAAI,WAAW,KAAK,KAAK,EAAE;IACzB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;GACxC;EACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC,CAAC","sourcesContent":["import { setMode } from '@stencil/core';\nimport ThemeService from '../themeManager/themeService';\n\nsetMode(elm => {\n let theme: string | undefined = (elm as any).theme || elm.getAttribute('theme');\n if (typeof theme === 'string') {\n theme = theme.trim();\n }\n\n const parsedTheme = ThemeService.getTheme(theme);\n if (parsedTheme !== theme) {\n elm.setAttribute('theme', parsedTheme);\n }\n return parsedTheme;\n});\n"]}
|
package/dist/collection/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from './components';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoSizeColumn.js","sourceRoot":"","sources":["../../src/plugins/autoSizeColumn.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plugin module for revo-grid grid system\n * Add support for automatic column resize\n */\nimport each from 'lodash/each';\nimport reduce from 'lodash/reduce';\nimport BasePlugin from './basePlugin';\nimport { RevoGrid, Edition } from '../interfaces';\nimport ColumnDataProvider, { ColumnCollection } from '../services/column.data.provider';\nimport { DataProvider } from '../services/data.provider';\nimport { columnTypes } from '../store/storeTypes';\nimport DimensionProvider, { ColumnItems } from '../services/dimension.provider';\nimport { getSourceItem } from '../store/dataSource/data.store';\n\ninterface Column extends RevoGrid.ColumnRegular {\n index: number;\n}\n\ntype AutoSizeColumns = Record<RevoGrid.DimensionCols, ColumnRecords>;\ntype ColumnRecords = Record<any, Column>;\ntype SourceSetEvent = { type: RevoGrid.DimensionRows; source: RevoGrid.DataType[] };\ntype EditEvent = Edition.BeforeSaveDataDetails | Edition.BeforeRangeSaveDataDetails;\ntype Resolve = (cols: Partial<AutoSizeColumns>) => void;\ntype Reject = () => void;\n\nexport type AutoSizeColumnConfig = {\n // ui behavior mode\n mode?: ColumnAutoSizeMode;\n /**\n * autoSize for all columns\n * if allColumnes true all columns treated as autoSize, worse for performance\n * false by default\n */\n allColumns?: boolean;\n /**\n * assumption per characted size\n * by default defined as 8, can be changed in this config\n */\n letterBlockSize?: number;\n /** make size calculation exact\n * by default it based on assumption each character takes some space defined in letterBlockSize */\n preciseSize?: boolean;\n};\n\nconst LETTER_BLOCK_SIZE = 7;\n\nenum ColumnAutoSizeMode {\n // increases column width on header click according the largest text value\n headerClickAutosize = 'headerClickAutoSize',\n // increases column width on data set and text edit, decreases performance\n autoSizeOnTextOverlap = 'autoSizeOnTextOverlap',\n // increases and decreases column width based on all items sizes, worst for performance\n autoSizeAll = 'autoSizeAll',\n}\n\nexport default class AutoSizeColumn extends BasePlugin {\n private autoSizeColumns: Partial<AutoSizeColumns> | null = null;\n private readonly letterBlockSize: number;\n\n /** for config option when @preciseSize enabled */\n private readonly precsizeCalculationArea: HTMLElement;\n\n /** for edge case when no columns defined before data */\n private dataResolve: Resolve | null = null;\n private dataReject: Reject | null = null;\n\n constructor(\n revogrid: HTMLRevoGridElement,\n private providers: {\n dataProvider: DataProvider;\n dimensionProvider: DimensionProvider;\n columnProvider: ColumnDataProvider;\n },\n private config?: AutoSizeColumnConfig,\n ) {\n super(revogrid);\n this.letterBlockSize = config?.letterBlockSize || LETTER_BLOCK_SIZE;\n\n // create test container to check text width\n if (config?.preciseSize) {\n this.precsizeCalculationArea = this.initiatePresizeElement();\n revogrid.appendChild(this.precsizeCalculationArea);\n }\n\n const aftersourceset = ({ detail: { source } }: CustomEvent<SourceSetEvent>) => {\n this.setSource(source);\n };\n const afteredit = ({ detail }: CustomEvent<EditEvent>) => {\n this.afteredit(detail);\n };\n const afterEditAll = ({ detail }: CustomEvent<EditEvent>) => {\n this.afterEditAll(detail);\n };\n const beforecolumnsset = ({ detail: { columns } }: CustomEvent<ColumnCollection>) => {\n this.columnSet(columns);\n };\n const headerDblClick = ({ detail }: CustomEvent<RevoGrid.InitialHeaderClick>) => {\n const type = ColumnDataProvider.getColumnType(detail);\n const size = this.getColumnSize(detail.index, type);\n if (size) {\n this.providers.dimensionProvider.setDimensionSize(type, {\n [detail.index]: size,\n });\n }\n };\n this.addEventListener('beforecolumnsset', beforecolumnsset);\n switch (config?.mode) {\n case ColumnAutoSizeMode.autoSizeOnTextOverlap:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afteredit);\n break;\n case ColumnAutoSizeMode.autoSizeAll:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afterEditAll);\n break;\n default:\n this.addEventListener('headerdblClick', headerDblClick);\n break;\n }\n }\n\n private async setSource(source: RevoGrid.DataType[]): Promise<void> {\n let autoSize = this.autoSizeColumns;\n if (this.dataReject) {\n this.dataReject();\n this.clearPromise();\n }\n\n /** If data set first and no column provided await until get one */\n if (!autoSize) {\n const request = new Promise((resolve: Resolve, reject: Reject) => {\n this.dataResolve = resolve;\n this.dataReject = reject;\n });\n try {\n autoSize = await request;\n } catch (e) {\n return;\n }\n }\n\n // calculate sizes\n each(autoSize, (_v, type: RevoGrid.DimensionCols) => {\n const sizes: RevoGrid.ViewSettingSizeProp = {};\n each(autoSize[type], rgCol => {\n // calculate size\n rgCol.size = sizes[rgCol.index] = source.reduce((prev, rgRow) => Math.max(prev, this.getLength(rgRow[rgCol.prop])), this.getLength(rgCol.name || ''));\n });\n this.providers.dimensionProvider.setDimensionSize(type, sizes);\n });\n }\n\n private getLength(len?: any): number {\n const padding = 15;\n if (!len) {\n return 0;\n }\n try {\n const str = len.toString();\n\n /**if exact calculation required proxy with html element, slow operation */\n if (this.config?.preciseSize) {\n this.precsizeCalculationArea.innerText = str;\n return this.precsizeCalculationArea.scrollWidth + padding * 2;\n }\n return str.length * this.letterBlockSize + padding * 2;\n } catch (e) {\n return 0;\n }\n }\n\n private afteredit(e: EditEvent): void {\n let data: Record<string, RevoGrid.DataType>;\n if (this.isRangeEdit(e)) {\n data = e.data;\n } else {\n data = { 0: { [e.prop]: e.val } };\n }\n each(this.autoSizeColumns, (columns, type: RevoGrid.DimensionCols) => {\n const sizes: RevoGrid.ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n // calculate size\n const size = reduce(\n data,\n (prev: number | undefined, rgRow) => {\n if (typeof rgRow[rgCol.prop] === 'undefined') {\n return prev;\n }\n return Math.max(prev || 0, this.getLength(rgRow[rgCol.prop]));\n },\n undefined,\n );\n\n if (size && rgCol.size < size) {\n rgCol.size = sizes[rgCol.index] = size;\n }\n });\n\n this.providers.dimensionProvider.setDimensionSize(type, sizes);\n });\n }\n\n private afterEditAll(e: EditEvent): void {\n const props: Record<any, true> = {};\n if (this.isRangeEdit(e)) {\n each(e.data, r => each(r, (_v, p) => (props[p] = true)));\n } else {\n props[e.prop] = true;\n }\n each(this.autoSizeColumns, (columns, type: RevoGrid.DimensionCols) => {\n const sizes: RevoGrid.ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n if (props[rgCol.prop]) {\n const size = this.getColumnSize(rgCol.index, type);\n if (size) {\n sizes[rgCol.index] = size;\n }\n }\n });\n this.providers.dimensionProvider.setDimensionSize(type, sizes);\n });\n }\n\n private getColumnSize(index: number, type: RevoGrid.DimensionCols): number {\n const rgCol = this.autoSizeColumns[type][index];\n if (!rgCol) {\n return 0;\n }\n return reduce(\n this.providers.dataProvider.stores,\n (r, s) => {\n const perStore = reduce(\n s.store.get('items'),\n (prev, _row, i) => {\n const item = getSourceItem(s.store, i);\n return Math.max(prev || 0, this.getLength(item[rgCol.prop]));\n },\n 0,\n );\n return Math.max(r, perStore);\n },\n rgCol.size || 0,\n );\n }\n\n private columnSet(columns: ColumnItems): void {\n for (let t of columnTypes) {\n const type = t as RevoGrid.DimensionCols;\n const cols = columns[type];\n\n for (let i in cols) {\n if (cols[i].autoSize || this.config?.allColumns) {\n if (!this.autoSizeColumns) {\n this.autoSizeColumns = {};\n }\n if (!this.autoSizeColumns[type]) {\n this.autoSizeColumns[type] = {};\n }\n this.autoSizeColumns[type][i] = {\n ...cols[i],\n index: parseInt(i, 10),\n };\n }\n }\n }\n\n if (this.dataResolve) {\n this.dataResolve(this.autoSizeColumns);\n this.clearPromise();\n }\n }\n\n private clearPromise() {\n this.dataResolve = null;\n this.dataReject = null;\n }\n\n private isRangeEdit(e: EditEvent): e is Edition.BeforeRangeSaveDataDetails {\n return !!(e as Edition.BeforeRangeSaveDataDetails).data;\n }\n\n private initiatePresizeElement(): HTMLElement {\n const styleForFontTest: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n fontSize: '14px',\n height: '0',\n width: '0',\n whiteSpace: 'nowrap',\n top: '0',\n overflowX: 'scroll',\n };\n\n const el = document.createElement('div');\n for (let s in styleForFontTest) {\n el.style[s] = styleForFontTest[s];\n }\n el.classList.add('revo-test-container');\n return el;\n }\n\n destroy() {\n super.destroy();\n this.precsizeCalculationArea?.remove();\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basePlugin.js","sourceRoot":"","sources":["../../src/plugins/basePlugin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAgB,UAAU;EAEtC,YAAsB,QAA6B;IAA7B,aAAQ,GAAR,QAAQ,CAAqB;IADlC,kBAAa,GAA6C,EAAE,CAAC;EACxB,CAAC;EAC7C,gBAAgB,CAAC,IAAY,EAAE,IAA8B;IACrE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;EAClC,CAAC;EAES,mBAAmB,CAAC,IAAY;IACxC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;EAClC,CAAC;EAES,IAAI,CAAC,SAAiB,EAAE,MAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;EACf,CAAC;EAES,kBAAkB;IAC1B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;MACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;KAChC;EACH,CAAC;EAED,OAAO;IACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC5B,CAAC;CACF","sourcesContent":["import { RevoPlugin } from '../interfaces';\n\nexport default abstract class BasePlugin implements RevoPlugin.Plugin {\n private readonly subscriptions: Record<string, (e: CustomEvent) => void> = {};\n constructor(protected revogrid: HTMLRevoGridElement) {}\n protected addEventListener(name: string, func: (e: CustomEvent) => void) {\n this.revogrid.addEventListener(name, func);\n this.subscriptions[name] = func;\n }\n\n protected removeEventListener(type: string) {\n this.revogrid.removeEventListener(type, this.subscriptions[type]);\n delete this.subscriptions[type];\n }\n\n protected emit(eventName: string, detail?: any) {\n const event = new CustomEvent(eventName, { detail: detail, cancelable: true });\n this.revogrid.dispatchEvent(event);\n return event;\n }\n\n protected clearSubscriptions() {\n for (let type in this.subscriptions) {\n this.removeEventListener(type);\n }\n }\n\n destroy() {\n this.clearSubscriptions();\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/plugins/dispatcher.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAc,EACd,SAAiB,EACjB,MAAY;EAEZ,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE;IACvC,MAAM;IACN,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;GACd,CAAC,CAAC;EACH,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,KAAK,CAAC,CAAC;EAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC3B,CAA2B,EAC3B,SAAiB,EACjB,MAAY;EAEZ,CAAC,CAAC,cAAc,EAAE,CAAC;EACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["type Target = HTMLElement | Element | null;\n/**\n * Dispatch custom event to element\n */\nexport function dispatch(\n target: Target,\n eventName: string,\n detail?: any\n): CustomEvent {\n const event = new CustomEvent(eventName, {\n detail,\n cancelable: true,\n bubbles: true,\n });\n target?.dispatchEvent(event);\n return event;\n}\n\n/**\n * Dispatch event by other event target\n */\nexport function dispatchOnEvent(\n e: MouseEvent | CustomEvent,\n eventName: string,\n detail?: any\n ): CustomEvent {\n e.preventDefault();\n return dispatch(e.target as Target, eventName, detail);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv.js","sourceRoot":"","sources":["../../../src/plugins/export/csv.ts"],"names":[],"mappings":"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","sourcesContent":["import { getGroupingName, isGrouping } from '../groupingRow/grouping.service';\nimport { CSVFormat, DataInput, Formatter } from './types';\n\nconst INITIAL: CSVFormat = {\n mime: 'text/csv',\n fileKind: 'csv',\n // BOM signature\n bom: true,\n columnDelimiter: ',',\n rowDelimiter: '\\r\\n',\n encoding: '',\n};\n\nexport type CSVFormatter = (options: Partial<CSVFormat>, data: DataInput) => string;\n\n// The ASCII character code 13 is called a Carriage Return or CR.\nconst CARRIAGE_RETURN = String.fromCharCode(13);\n// Chr(13) followed by a Chr(10) that compose a proper CRLF.\nconst LINE_FEED = String.fromCharCode(10);\nconst DOUBLE_QT = String.fromCharCode(34);\nconst NO_BREAK_SPACE = String.fromCharCode(0xfeff);\nconst escapeRegex = new RegExp('\"', 'g');\n\nexport default class ExportCsv implements Formatter {\n readonly options: Readonly<CSVFormat>;\n constructor(options: Partial<CSVFormat> = {}) {\n this.options = { ...INITIAL, ...options };\n }\n\n doExport({ data, headers, props }: DataInput) {\n let result = this.options.bom ? NO_BREAK_SPACE : '';\n\n // any header\n if (headers?.length > 0) {\n headers.forEach(header => {\n // ignore empty\n if (!header.length) {\n return;\n }\n result += this.prepareHeader(header, this.options.columnDelimiter);\n result += this.options.rowDelimiter;\n });\n }\n\n data.forEach((rgRow, index) => {\n if (index > 0) {\n result += this.options.rowDelimiter;\n }\n // support grouping\n if (isGrouping(rgRow)) {\n result += this.parseCell(getGroupingName(rgRow), this.options.columnDelimiter);\n return;\n }\n result += props.map(p => this.parseCell(rgRow[p], this.options.columnDelimiter)).join(this.options.columnDelimiter);\n });\n\n return result;\n }\n\n private prepareHeader(columnHeaders: string[], columnDelimiter: string) {\n let result = '';\n const newColumnHeaders = columnHeaders.map(v => this.parseCell(v, columnDelimiter, true));\n result += newColumnHeaders.join(columnDelimiter);\n return result;\n }\n\n private parseCell(value: any, columnDelimiter: string, force = false) {\n let escape = value;\n if (typeof value !== 'string') {\n escape = JSON.stringify(value);\n }\n const toEscape = [CARRIAGE_RETURN, DOUBLE_QT, LINE_FEED, columnDelimiter];\n if (typeof escape === 'undefined') {\n return '';\n }\n if (escape !== '' && (force || toEscape.some(i => escape.indexOf(i) >= 0))) {\n return `\"${escape.replace(escapeRegex, '\"\"')}\"`;\n }\n\n return escape;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.plugin.js","sourceRoot":"","sources":["../../../src/plugins/export/export.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import fill from 'lodash/fill';\nimport { RevoGrid } from '../../interfaces';\nimport { Group, Groups } from '../../store/dataSource/data.store';\nimport { ColSource, CSVFormat, DataInput, Formatter } from './types';\n\nimport { columnTypes, rowTypes } from '../../store/storeTypes';\nimport { timeout } from '../../utils/utils';\nimport BasePlugin from '../basePlugin';\nimport ExportCsv from './csv';\n\nenum ExportTypes {\n csv = 'csv',\n}\n\nexport type ExportFormat = Partial<CSVFormat>;\n\nexport default class ExportFilePlugin extends BasePlugin {\n /** Exports string */\n async exportString(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return this.formatter(t, options).doExport(data);\n }\n\n /** Exports Blob */\n async exportBlob(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n return await this.getBlob(this.formatter(t, options));\n }\n\n /** Export file */\n async exportFile(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const formatter = this.formatter(t, options);\n const blob = await this.getBlob(formatter);\n\n // url\n const URL = window.URL || window.webkitURL;\n\n const a = document.createElement('a');\n const { filename, fileKind } = formatter.options;\n const name = `${filename}.${fileKind}`;\n const url = URL.createObjectURL(blob);\n\n a.style.display = 'none';\n a.setAttribute('href', url);\n a.setAttribute('download', name);\n this.revogrid.appendChild(a);\n a.dispatchEvent(new MouseEvent('click'));\n this.revogrid.removeChild(a);\n\n // delay for revoke, correct for some browsers\n await timeout(120);\n URL.revokeObjectURL(url);\n }\n\n /** Blob object */\n async getBlob(formatter: Formatter) {\n const type = `${formatter.options.mime};charset=${formatter.options.encoding}`;\n if (typeof Blob !== 'undefined') {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return new Blob([formatter.doExport(data)], { type });\n }\n return null;\n }\n\n // before event\n private async beforeexport() {\n let data = await this.getData();\n const event: CustomEvent<{ data: DataInput }> = this.emit('beforeexport', { data });\n if (event.defaultPrevented) {\n return null;\n }\n return event.detail.data;\n }\n\n private async getData(): Promise<DataInput> {\n const data = await this.getSource();\n const colSource: ColSource[] = [];\n const colPromises: Promise<ColSource>[] = [];\n columnTypes.forEach((t, i) => {\n colPromises.push(this.getColPerSource(t).then(s => (colSource[i] = s)));\n });\n await Promise.all(colPromises);\n const columns: ColSource = {\n headers: [],\n props: [],\n };\n for (let source of colSource) {\n source.headers.forEach((h, i) => {\n if (!columns.headers[i]) {\n columns.headers[i] = [];\n }\n columns.headers[i].push(...h);\n });\n columns.props.push(...source.props);\n }\n return {\n data,\n ...columns,\n };\n }\n\n private async getColPerSource(t: RevoGrid.DimensionCols) {\n const store = await this.revogrid.getColumnStore(t);\n const source = store.get('source');\n const virtualIndexes = store.get('items');\n const depth = store.get('groupingDepth');\n const groups = store.get('groups');\n const colNames: string[] = [];\n const colProps: RevoGrid.ColumnProp[] = [];\n const visibleItems = virtualIndexes.reduce((r: Record<string, number>, v, virtualIndex) => {\n const prop = source[v].prop;\n colNames.push(source[v].name || '');\n colProps.push(prop);\n r[prop] = virtualIndex;\n return r;\n }, {});\n const rows: string[][] = this.getGroupHeaders(depth, groups, virtualIndexes, visibleItems);\n rows.push(colNames);\n return {\n headers: rows,\n props: colProps,\n };\n }\n\n private getGroupHeaders(depth: number, groups: Groups, items: number[], visibleItems: Record<string, number>) {\n const rows: string[][] = [];\n const template = fill(new Array(items.length), '');\n for (let d = 0; d < depth; d++) {\n const rgRow = [...template];\n rows.push(rgRow);\n if (!groups[d]) {\n continue;\n }\n const levelGroups = groups[d];\n\n // add names of groups\n levelGroups.forEach((group: Group) => {\n const minIndex = this.findGroupStartIndex(group.ids, visibleItems);\n if (typeof minIndex === 'number') {\n rgRow[minIndex] = group.name;\n }\n });\n }\n return rows;\n }\n\n private findGroupStartIndex(ids: (string | number)[], visibleItems: Record<string, number>): number | undefined {\n let min: number | undefined;\n ids.forEach(id => {\n const current = visibleItems[id];\n if (typeof current === 'number') {\n if (typeof min !== 'number' || min > current) {\n min = current;\n }\n }\n });\n return min;\n }\n\n private async getSource() {\n const data: RevoGrid.DataType[][] = [];\n const promisesData: Promise<number>[] = [];\n rowTypes.forEach(t => {\n const dataPart: RevoGrid.DataType[] = [];\n data.push(dataPart);\n const promise = this.revogrid.getVisibleSource(t).then((d: RevoGrid.DataType[]) => dataPart.push(...d));\n promisesData.push(promise);\n });\n await Promise.all(promisesData);\n return data.reduce((r, v) => {\n r.push(...v);\n return r;\n }, []);\n }\n\n // get correct class for future multiple types support\n private formatter(type: ExportTypes, options: ExportFormat = {}) {\n switch (type) {\n case ExportTypes.csv:\n return new ExportCsv(options);\n default:\n throw new Error('Unknown format');\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/export/types.ts"],"names":[],"mappings":"","sourcesContent":["import { RevoGrid } from '../../interfaces';\n\nexport type ColSource = {\n headers: string[][];\n props: any[];\n};\nexport type DataInput = {\n data: RevoGrid.DataType[];\n} & ColSource;\n\nexport interface FormatterOptions {\n mime: string;\n encoding: string;\n}\n\nexport interface Formatter {\n options: FormatterOptions;\n doExport(data: DataInput): string;\n}\n\nexport interface CSVFormat extends FormatterOptions {\n fileKind: 'csv';\n bom: boolean;\n columnDelimiter: string;\n rowDelimiter: string;\n filename?: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal.js","sourceRoot":"","sources":["../../../../src/plugins/filter/conditions/equal.ts"],"names":[],"mappings":"AAEA,MAAM,EAAE,GAAkB,CAAC,KAAyB,EAAE,KAA+B,EAAE,EAAE;EACvF,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;IAC9D,OAAO,IAAI,CAAC;GACb;EACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;GAC/B;EAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;EACvD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO,IAAI,CAAC;GACb;EAED,OAAO,KAAK,CAAC,iBAAiB,EAAE,KAAK,SAAS,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAkB,CAAC,KAAyB,EAAE,KAA+B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtH,KAAK,CAAC,KAAK,GAAG,OAAqB,CAAC;AACpC,EAAE,CAAC,KAAK,GAAG,OAAqB,CAAC;AACjC,eAAe,EAAE,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam, ExtraField } from '../filter.types';\n\nconst eq: LogicFunction = (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) => {\n if (typeof value === 'undefined' || (value === null && !extra)) {\n return true;\n }\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n\n const filterVal = extra.toString().toLocaleLowerCase();\n if (filterVal.length === 0) {\n return true;\n }\n \n return value.toLocaleLowerCase() === filterVal;\n};\n\nexport const notEq: LogicFunction = (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) => !eq(value, extra);\nnotEq.extra = 'input' as ExtraField;\neq.extra = 'input' as ExtraField;\nexport default eq;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"greaterThan.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/number/greaterThan.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAkB,UAAU,KAAyB,EAAE,KAA+B;EAChG,IAAI,cAAsB,CAAC;EAE3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,cAAc,GAAG,UAAU,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,KAAK,GAAG,cAAc,CAAC;GAC/B;EACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AACvB,eAAe,MAAM,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\n\nconst gtThan: LogicFunction = function (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) {\n let conditionValue: number;\n\n if (typeof value === 'number') {\n conditionValue = parseFloat(extra?.toString());\n return value > conditionValue;\n }\n return false;\n};\n\ngtThan.extra = 'input';\nexport default gtThan;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"greaterThanOrEqual.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/number/greaterThanOrEqual.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,eAAe,CAAC;AAE/B,MAAM,QAAQ,GAAkB,UAAU,KAAyB,EAAE,KAA+B;EAClG,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;AACzB,eAAe,QAAQ,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\nimport eq from '../equal';\nimport gt from './greaterThan';\n\nconst gtThanEq: LogicFunction = function (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) {\n return eq(value, extra) || gt(value, extra);\n};\n\ngtThanEq.extra = 'input';\nexport default gtThanEq;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lessThan.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/number/lessThan.ts"],"names":[],"mappings":"AAEA,MAAM,EAAE,GAAkB,UAAU,KAAyB,EAAE,KAA+B;EAC5F,IAAI,cAAsB,CAAC;EAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,cAAc,GAAG,UAAU,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,KAAK,GAAG,cAAc,CAAC;GAC/B;OAAM;IACL,OAAO,KAAK,CAAC;GACd;AACH,CAAC,CAAC;AAEF,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC;AACnB,eAAe,EAAE,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\n\nconst lt: LogicFunction = function (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) {\n let conditionValue: number;\n if (typeof value === 'number') {\n conditionValue = parseFloat(extra?.toString());\n return value < conditionValue;\n } else {\n return false;\n }\n};\n\nlt.extra = 'input';\nexport default lt;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lessThanOrEqual.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/number/lessThanOrEqual.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,IAAI,GAAkB,UAAU,KAAyB,EAAE,KAA+B;EAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACrB,eAAe,IAAI,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\nimport eq from '../equal';\nimport lt from './lessThan';\n\nconst lsEq: LogicFunction = function (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) {\n return eq(value, extra) || lt(value, extra);\n};\n\nlsEq.extra = 'input';\nexport default lsEq;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/plugins/filter/conditions/set.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAkB,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;AAChH,MAAM,CAAC,MAAM,MAAM,GAAkB,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChF,eAAe,GAAG,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionParam } from '../filter.types';\n\nconst set: LogicFunction = (value: LogicFunctionParam) => !(value === '' || value === null || value === void 0);\nexport const notSet: LogicFunction = (value: LogicFunctionParam) => !set(value);\nexport default set;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beginswith.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/string/beginswith.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAkB,CAAC,KAAyB,EAAE,KAA+B,EAAE,EAAE;EAC/F,IAAI,CAAC,KAAK,EAAE;IACV,OAAO,KAAK,CAAC;GACd;EACD,IAAI,CAAC,KAAK,EAAE;IACV,OAAO,IAAI,CAAC;GACb;EACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;GAC/B;EACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;GAC/B;EACD,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;AAC3B,eAAe,UAAU,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\n\nconst beginsWith: LogicFunction = (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) => {\n if (!value) {\n return false;\n }\n if (!extra) {\n return true;\n }\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n if (typeof extra !== 'string') {\n extra = JSON.stringify(extra);\n }\n return value.toLocaleLowerCase().indexOf(extra.toLocaleLowerCase()) === 0;\n};\n\nbeginsWith.extra = 'input';\nexport default beginsWith;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../../../src/plugins/filter/conditions/string/contains.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAkB,CAAC,KAAyB,EAAE,KAA+B,EAAE,EAAE;EAC7F,IAAI,CAAC,KAAK,EAAE;IACV,OAAO,KAAK,CAAC;GACd;EACD,IAAI,KAAK,EAAE;IACT,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;MAC7B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;GAC/E;EACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,KAAyB,EAAE,KAA+B,EAAE,EAAE;EACvG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AACF,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC;AAC5B,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;AACzB,eAAe,QAAQ,CAAC","sourcesContent":["import { LogicFunction, LogicFunctionExtraParam, LogicFunctionParam } from '../../filter.types';\n\nconst contains: LogicFunction = (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) => {\n if (!value) {\n return false;\n }\n if (extra) {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n return value.toLocaleLowerCase().indexOf(extra.toString().toLowerCase()) > -1;\n }\n return true;\n};\n\nexport const notContains: LogicFunction = (value: LogicFunctionParam, extra?: LogicFunctionExtraParam) => {\n return !contains(value, extra);\n};\nnotContains.extra = 'input';\ncontains.extra = 'input';\nexport default contains;\n"]}
|
|
@@ -8,19 +8,13 @@ export const FILTER_PROP = 'hasFilter';
|
|
|
8
8
|
export const AND_OR_BUTTON = 'and-or-button';
|
|
9
9
|
export const TRASH_BUTTON = 'trash-button';
|
|
10
10
|
export const FilterButton = ({ column }) => {
|
|
11
|
-
return (h("span", null,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} },
|
|
16
|
-
h("svg", { class: "filter-img", viewBox: "0 0 64 64" },
|
|
17
|
-
h("g", { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" },
|
|
18
|
-
h("path", { d: "M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z", fill: "currentColor" }))))));
|
|
11
|
+
return (h("span", null, h("button", { class: {
|
|
12
|
+
[FILTER_BUTTON_CLASS]: true,
|
|
13
|
+
[FILTER_BUTTON_ACTIVE]: column && !!column[FILTER_PROP],
|
|
14
|
+
} }, h("svg", { class: "filter-img", viewBox: "0 0 64 64" }, h("g", { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, h("path", { d: "M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z", fill: "currentColor" }))))));
|
|
19
15
|
};
|
|
20
16
|
export const TrashButton = () => {
|
|
21
|
-
return (h("div", { class: { [TRASH_BUTTON]: true } },
|
|
22
|
-
h("svg", { class: "trash-img", viewBox: "0 0 24 24" },
|
|
23
|
-
h("path", { fill: "currentColor", d: "M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" }))));
|
|
17
|
+
return (h("div", { class: { [TRASH_BUTTON]: true } }, h("svg", { class: "trash-img", viewBox: "0 0 24 24" }, h("path", { fill: "currentColor", d: "M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" }))));
|
|
24
18
|
};
|
|
25
19
|
export const AndOrButton = ({ isAnd }) => {
|
|
26
20
|
return h("button", { class: { [AND_OR_BUTTON]: true, 'light revo-button': true } }, isAnd ? 'and' : 'or');
|
|
@@ -31,3 +25,4 @@ export function isFilterBtn(e) {
|
|
|
31
25
|
}
|
|
32
26
|
return e === null || e === void 0 ? void 0 : e.closest(`.${FILTER_BUTTON_CLASS}`);
|
|
33
27
|
}
|
|
28
|
+
//# sourceMappingURL=filter.button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.button.js","sourceRoot":"","sources":["../../../src/plugins/filter/filter.button.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;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAK3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAS,EAAE,EAAE;EAChD,OAAO,CACL;IACE,cACE,KAAK,EAAE;QACL,CAAC,mBAAmB,CAAC,EAAE,IAAI;QAC3B,CAAC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;OACxD;MAED,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAC,WAAW;QACzC,SAAG,MAAM,EAAC,MAAM,kBAAc,GAAG,EAAC,IAAI,EAAC,MAAM,eAAW,SAAS;UAC/D,YAAM,CAAC,EAAC,2GAA2G,EAAC,IAAI,EAAC,cAAc,GAAQ,CAC7I,CACA,CACC,CACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;EAC9B,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE;IAClC,WAAK,KAAK,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW;MACxC,YAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,8GAA8G,GAAG,CACzI,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAO,EAAE,EAAE;EAC5C,OAAO,cAAQ,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAU,CAAC;AAC9G,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAc;EACxC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;IAC7C,OAAO,IAAI,CAAC;GACb;EACD,OAAO,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC/C,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';\nexport const FILTER_PROP = 'hasFilter';\nexport const AND_OR_BUTTON = 'and-or-button';\nexport const TRASH_BUTTON = 'trash-button';\n\ntype Props = {\n column: RevoGrid.ColumnRegular;\n};\nexport const FilterButton = ({ column }: Props) => {\n return (\n <span>\n <button\n class={{\n [FILTER_BUTTON_CLASS]: true,\n [FILTER_BUTTON_ACTIVE]: column && !!column[FILTER_PROP],\n }}\n >\n <svg class=\"filter-img\" viewBox=\"0 0 64 64\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z\" fill=\"currentColor\"></path>\n </g>\n </svg>\n </button>\n </span>\n );\n};\n\nexport const TrashButton = () => {\n return (\n <div class={{ [TRASH_BUTTON]: true }}>\n <svg class=\"trash-img\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\" />\n </svg>\n </div>\n );\n};\nexport const AndOrButton = ({ isAnd }: any) => {\n return <button class={{ [AND_OR_BUTTON]: true, 'light revo-button': true }}>{isAnd ? 'and' : 'or'}</button>;\n};\n\nexport function isFilterBtn(e: HTMLElement) {\n if (e.classList.contains(FILTER_BUTTON_CLASS)) {\n return true;\n }\n return e?.closest(`.${FILTER_BUTTON_CLASS}`);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.plugin.js","sourceRoot":"","sources":["../../../src/plugins/filter/filter.plugin.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport BasePlugin from '../basePlugin';\nimport { RevoGrid } from '../../interfaces';\nimport { FILTER_PROP, isFilterBtn } from './filter.button';\nimport { MultiFilterItem } from './filter.pop';\nimport { filterEntities, filterNames, FilterType, filterTypes } from './filter.service';\nimport { LogicFunction } from './filter.types';\n\ntype CustomFilter = {\n columnFilterType: string; // property defined in column filter: string/number/abstract/enum...etc\n name: string;\n func: LogicFunction;\n};\n\nexport type FilterCaptions = {\n title: string;\n save: string;\n reset: string;\n cancel: string;\n};\n\nexport type FilterLocalization = {\n captions: FilterCaptions;\n filterNames: Record<FilterType, string>;\n};\n\n/**\n * @typedef ColumnFilterConfig\n * @type {object}\n * @property {FilterCollection|undefined} collection - preserved filter data\n * @property {string[]|undefined} include - filters to be included, if defined everything else out of scope will be ignored\n * @property {Record<string, CustomFilter>|undefined} customFilters - hash map of {FilterType:CustomFilter}.\n * @property {FilterLocalization|undefined} localization - translation for filter popup captions.\n * @property {MultiFilterItem|undefined} multiFilterItems - data for multi filtering.\n * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering.\n * A way to define your own filter types per column\n */\nexport type ColumnFilterConfig = {\n collection?: FilterCollection;\n include?: string[];\n customFilters?: Record<string, CustomFilter>;\n localization?: FilterLocalization;\n multiFilterItems?: MultiFilterItem;\n disableDynamicFiltering?: boolean;\n};\ntype HeaderEvent = CustomEvent<RevoGrid.ColumnRegular>;\ntype FilterCollectionItem = {\n filter: LogicFunction;\n type: FilterType;\n value?: any;\n};\n\nexport type FilterCollection = Record<RevoGrid.ColumnProp, FilterCollectionItem>;\n\nexport const FILTER_TRIMMED_TYPE = 'filter';\n\nexport default class FilterPlugin extends BasePlugin {\n private pop: HTMLRevogrFilterPanelElement;\n private filterCollection: FilterCollection = {};\n private multiFilterItems: MultiFilterItem = {};\n private possibleFilters: Record<string, string[]> = { ...filterTypes };\n private possibleFilterNames: Record<string, string> = { ...filterNames };\n private possibleFilterEntities: Record<string, LogicFunction> = { ...filterEntities };\n\n constructor(protected revogrid: HTMLRevoGridElement, uiid: string, config?: ColumnFilterConfig) {\n super(revogrid);\n if (config) {\n this.initConfig(config);\n }\n\n const headerclick = (e: HeaderEvent) => this.headerclick(e);\n\n const aftersourceset = async () => {\n const filterCollectionProps = Object.keys(this.filterCollection);\n if (filterCollectionProps.length > 0) {\n // handle old way of filtering by reworking FilterCollection to new MultiFilterItem\n filterCollectionProps.forEach((prop, index) => {\n if (!this.multiFilterItems[prop]) {\n this.multiFilterItems[prop] = [\n {\n id: index,\n type: this.filterCollection[prop].type,\n value: this.filterCollection[prop].value,\n relation: 'and',\n },\n ];\n }\n });\n }\n await this.runFiltering();\n };\n this.addEventListener('headerclick', headerclick);\n this.addEventListener('aftersourceset', aftersourceset);\n\n this.revogrid.registerVNode([\n <revogr-filter-panel\n uuid={`filter-${uiid}`}\n filterItems={this.multiFilterItems}\n filterNames={this.possibleFilterNames}\n filterEntities={this.possibleFilterEntities}\n filterCaptions={config?.localization?.captions}\n onFilterChange={e => this.onFilterChange(e.detail)}\n disableDynamicFiltering={config?.disableDynamicFiltering}\n ref={e => (this.pop = e)}\n />,\n ]);\n }\n\n private initConfig(config: ColumnFilterConfig) {\n if (config.collection) {\n this.filterCollection = { ...config.collection };\n }\n if (config.multiFilterItems) {\n this.multiFilterItems = { ...config.multiFilterItems };\n }\n if (config.customFilters) {\n for (let cType in config.customFilters) {\n const cFilter = config.customFilters[cType];\n if (!this.possibleFilters[cFilter.columnFilterType]) {\n this.possibleFilters[cFilter.columnFilterType] = [];\n }\n this.possibleFilters[cFilter.columnFilterType].push(cType);\n this.possibleFilterEntities[cType] = cFilter.func;\n this.possibleFilterNames[cType] = cFilter.name;\n }\n }\n\n /**\n * which filters has to be included/excluded\n * convinient way to exclude system filters\n */\n if (config.include) {\n const filters: Record<string, string[]> = {};\n\n for (let t in this.possibleFilters) {\n // validate filters, if appropriate function present\n const newTypes = this.possibleFilters[t].filter(f => config.include.indexOf(f) > -1);\n if (newTypes.length) {\n filters[t] = newTypes;\n }\n }\n // if any valid filters provided show them\n if (Object.keys(filters).length > 0) {\n this.possibleFilters = filters;\n }\n }\n\n if (config.localization) {\n if (config.localization.filterNames) {\n Object.entries(config.localization.filterNames).forEach(([k, v]) => {\n if (this.possibleFilterNames[k] != void 0) {\n this.possibleFilterNames[k] = v;\n }\n });\n }\n }\n }\n\n private async headerclick(e: HeaderEvent) {\n const el = e.detail.originalEvent?.target as HTMLElement;\n if (!isFilterBtn(el)) {\n return;\n }\n e.preventDefault();\n\n // close if same\n const changes = await this.pop.getChanges();\n if (changes && changes?.prop === e.detail.prop) {\n this.pop.show();\n return;\n }\n\n // filter button clicked, open filter dialog\n const gridPos = this.revogrid.getBoundingClientRect();\n const buttonPos = el.getBoundingClientRect();\n const prop = e.detail.prop;\n this.pop.filterTypes = this.getColumnFilter(e.detail.filter);\n this.pop.show({\n ...this.filterCollection[prop],\n x: buttonPos.x - gridPos.x,\n y: buttonPos.y - gridPos.y + buttonPos.height,\n prop,\n });\n }\n\n private getColumnFilter(type?: boolean | string | string[]): Record<string, string[]> {\n let filterType = 'string';\n if (!type) {\n return { [filterType]: this.possibleFilters[filterType] };\n }\n\n // if custom column filter\n if (this.isValidType(type)) {\n filterType = type;\n\n // if multiple filters applied\n } else if (typeof type === 'object' && type.length) {\n return type.reduce((r: Record<string, string[]>, multiType) => {\n if (this.isValidType(multiType)) {\n r[multiType] = this.possibleFilters[multiType];\n }\n return r;\n }, {});\n }\n return { [filterType]: this.possibleFilters[filterType] };\n }\n\n private isValidType(type: any): type is string {\n return !!(typeof type === 'string' && this.possibleFilters[type]);\n }\n\n // called on internal component change\n private async onFilterChange(filterItems: MultiFilterItem) {\n this.multiFilterItems = filterItems;\n this.runFiltering();\n }\n\n /**\n * Triggers grid filtering\n */\n async doFiltering(collection: FilterCollection, items: RevoGrid.DataType[], columns: RevoGrid.ColumnRegular[], filterItems: MultiFilterItem) {\n const columnsToUpdate: RevoGrid.ColumnRegular[] = [];\n\n columns.forEach(rgCol => {\n const column = { ...rgCol };\n const hasFilter = filterItems[column.prop];\n if (column[FILTER_PROP] && !hasFilter) {\n delete column[FILTER_PROP];\n columnsToUpdate.push(column);\n }\n if (!column[FILTER_PROP] && hasFilter) {\n columnsToUpdate.push(column);\n column[FILTER_PROP] = true;\n }\n });\n const itemsToFilter = this.getRowFilter(items, filterItems);\n // check is filter event prevented\n const { defaultPrevented, detail } = this.emit('beforefiltertrimmed', { collection, itemsToFilter, source: items, filterItems });\n if (defaultPrevented) {\n return;\n }\n\n // check is trimmed event prevented\n const isAddedEvent = await this.revogrid.addTrimmed(detail.itemsToFilter, FILTER_TRIMMED_TYPE);\n if (isAddedEvent.defaultPrevented) {\n return;\n }\n\n // applies the hasFilter to the columns to show filter icon\n await this.revogrid.updateColumns(columnsToUpdate);\n this.emit('afterFilterApply');\n }\n\n async clearFiltering() {\n this.multiFilterItems = {};\n await this.runFiltering();\n }\n\n private async runFiltering() {\n const collection: FilterCollection = {};\n\n // handle old filterCollection to return the first filter only (if any) from multiFilterItems\n const filterProps = Object.keys(this.multiFilterItems);\n\n for (const prop of filterProps) {\n // check if we have any filter for a column\n if (this.multiFilterItems[prop].length > 0) {\n const firstFilterItem = this.multiFilterItems[prop][0];\n collection[prop] = {\n filter: filterEntities[firstFilterItem.type],\n type: firstFilterItem.type,\n value: firstFilterItem.value,\n };\n }\n }\n\n this.filterCollection = collection;\n\n const { source, columns } = await this.getData();\n const { defaultPrevented, detail } = this.emit('beforefilterapply', { collection: this.filterCollection, source, columns, filterItems: this.multiFilterItems });\n if (defaultPrevented) {\n return;\n }\n this.doFiltering(detail.collection, detail.source, detail.columns, detail.filterItems);\n }\n\n private async getData() {\n const source = await this.revogrid.getSource();\n const columns = await this.revogrid.getColumns();\n return {\n source,\n columns,\n };\n }\n\n private getRowFilter(rows: RevoGrid.DataType[], filterItems: MultiFilterItem) {\n const propKeys = Object.keys(filterItems);\n\n const trimmed: Record<number, boolean> = {};\n let propFilterSatisfiedCount: number = 0;\n let lastFilterResults: boolean[] = [];\n\n // each rows\n rows.forEach((model, rowIndex) => {\n // working on all props\n for (const prop of propKeys) {\n const propFilters = filterItems[prop];\n\n propFilterSatisfiedCount = 0;\n lastFilterResults = [];\n\n // testing each filter for a prop\n for (const [filterIndex, filterData] of propFilters.entries()) {\n // the filter LogicFunction based on the type\n const filter = this.possibleFilterEntities[filterData.type];\n\n // THE MAGIC OF FILTERING IS HERE\n if (filterData.relation === 'or') {\n lastFilterResults = [];\n if (filter(model[prop], filterData.value)) {\n continue;\n }\n propFilterSatisfiedCount++;\n } else {\n // 'and' relation will need to know the next filter\n // so we save this current filter to include it in the next filter\n lastFilterResults.push(!filter(model[prop], filterData.value));\n\n // check first if we have a filter on the next index to pair it with this current filter\n const nextFilterData = propFilters[filterIndex + 1];\n // stop the sequence if there is no next filter or if the next filter is not an 'and' relation\n if (!nextFilterData || nextFilterData.relation !== 'and') {\n // let's just continue since for sure propFilterSatisfiedCount cannot be satisfied\n if (lastFilterResults.indexOf(true) === -1) {\n lastFilterResults = [];\n continue;\n }\n\n // we need to add all of the lastFilterResults since we need to satisfy all\n propFilterSatisfiedCount += lastFilterResults.length;\n lastFilterResults = [];\n }\n }\n } // end of propFilters forEach\n\n // add to the list of removed/trimmed rows of filter condition is satisfied\n if (propFilterSatisfiedCount === propFilters.length) trimmed[rowIndex] = true;\n } // end of for-of propKeys\n });\n return trimmed;\n }\n}\n"]}
|