balala-revogrid 1.0.0
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/LICENSE +21 -0
- package/dist/cjs/app-globals-D67EXhgK.js +16 -0
- package/dist/cjs/app-globals-D67EXhgK.js.map +1 -0
- package/dist/cjs/cell-renderer-B87qecTb.js +57 -0
- package/dist/cjs/cell-renderer-B87qecTb.js.map +1 -0
- package/dist/cjs/debounce-CcpHiH2p.js +498 -0
- package/dist/cjs/debounce-CcpHiH2p.js.map +1 -0
- package/dist/cjs/dimension.helpers-DA9-xqPT.js +3606 -0
- package/dist/cjs/dimension.helpers-DA9-xqPT.js.map +1 -0
- package/dist/cjs/edit.utils-CKsIiHlD.js +113 -0
- package/dist/cjs/edit.utils-CKsIiHlD.js.map +1 -0
- package/dist/cjs/events-DeLDyZlb.js +46 -0
- package/dist/cjs/events-DeLDyZlb.js.map +1 -0
- package/dist/cjs/filter.button-DSsWNs23.js +49 -0
- package/dist/cjs/filter.button-DSsWNs23.js.map +1 -0
- package/dist/cjs/grouping.row.renderer-BqR0ytMi.js +64 -0
- package/dist/cjs/grouping.row.renderer-BqR0ytMi.js.map +1 -0
- package/dist/cjs/header-cell-renderer-D-RjAVfe.js +1766 -0
- package/dist/cjs/header-cell-renderer-D-RjAVfe.js.map +1 -0
- package/dist/cjs/index-BF1c1pO3.js +2549 -0
- package/dist/cjs/index-BF1c1pO3.js.map +1 -0
- package/dist/cjs/index.cjs.js +6426 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +19 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.entry.js +3215 -0
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.js +31 -0
- package/dist/cjs/revo-grid.cjs.js.map +1 -0
- package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
- package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
- package/dist/cjs/revogr-attribution_9.cjs.entry.js +2629 -0
- package/dist/cjs/revogr-attribution_9.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +471 -0
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
- package/dist/cjs/revogr-data_4.cjs.entry.js +1420 -0
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +382 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
- package/dist/cjs/row-renderer-BTE7VKD9.js +49 -0
- package/dist/cjs/row-renderer-BTE7VKD9.js.map +1 -0
- package/dist/cjs/text-editor-BdhmcrkS.js +81 -0
- package/dist/cjs/text-editor-BdhmcrkS.js.map +1 -0
- package/dist/cjs/throttle-2ZxfGjEI.js +533 -0
- package/dist/cjs/throttle-2ZxfGjEI.js.map +1 -0
- package/dist/cjs/tree-data.plugin-BRjwZtxI.js +5350 -0
- package/dist/cjs/tree-data.plugin-BRjwZtxI.js.map +1 -0
- package/dist/cjs/viewport.helpers-BAovztDd.js +61 -0
- package/dist/cjs/viewport.helpers-BAovztDd.js.map +1 -0
- package/dist/cjs/viewport.store-BTbPlyF-.js +525 -0
- package/dist/cjs/viewport.store-BTbPlyF-.js.map +1 -0
- package/dist/collection/collection-manifest.json +30 -0
- package/dist/collection/components/attribution/revogr-attribution.js +20 -0
- package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +411 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
- package/dist/collection/components/data/cell-renderer.js +44 -0
- package/dist/collection/components/data/cell-renderer.js.map +1 -0
- package/dist/collection/components/data/column.service.js +333 -0
- package/dist/collection/components/data/column.service.js.map +1 -0
- package/dist/collection/components/data/revogr-data-style.css +95 -0
- package/dist/collection/components/data/revogr-data.js +939 -0
- package/dist/collection/components/data/revogr-data.js.map +1 -0
- package/dist/collection/components/data/row-highlight.plugin.js +51 -0
- package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
- package/dist/collection/components/data/row-renderer.js +37 -0
- package/dist/collection/components/data/row-renderer.js.map +1 -0
- package/dist/collection/components/editors/edit.utils.js +13 -0
- package/dist/collection/components/editors/edit.utils.js.map +1 -0
- package/dist/collection/components/editors/revogr-edit-style.css +16 -0
- package/dist/collection/components/editors/revogr-edit.js +346 -0
- package/dist/collection/components/editors/revogr-edit.js.map +1 -0
- package/dist/collection/components/editors/text-editor.js +74 -0
- package/dist/collection/components/editors/text-editor.js.map +1 -0
- package/dist/collection/components/extra/revogr-extra.js +125 -0
- package/dist/collection/components/extra/revogr-extra.js.map +1 -0
- package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.css +62 -0
- package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.js +644 -0
- package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.js.map +1 -0
- package/dist/collection/components/header/header-cell-renderer.js +49 -0
- package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
- package/dist/collection/components/header/header-group-renderer.js +29 -0
- package/dist/collection/components/header/header-group-renderer.js.map +1 -0
- package/dist/collection/components/header/header-renderer.js +100 -0
- package/dist/collection/components/header/header-renderer.js.map +1 -0
- package/dist/collection/components/header/resizable.directive.js +274 -0
- package/dist/collection/components/header/resizable.directive.js.map +1 -0
- package/dist/collection/components/header/resizable.element.js +36 -0
- package/dist/collection/components/header/resizable.element.js.map +1 -0
- package/dist/collection/components/header/revogr-header-style.css +164 -0
- package/dist/collection/components/header/revogr-header-unified-style.css +205 -0
- package/dist/collection/components/header/revogr-header-unified.js +1013 -0
- package/dist/collection/components/header/revogr-header-unified.js.map +1 -0
- package/dist/collection/components/header/revogr-header.js +852 -0
- package/dist/collection/components/header/revogr-header.js.map +1 -0
- package/dist/collection/components/order/order-renderer.js +50 -0
- package/dist/collection/components/order/order-renderer.js.map +1 -0
- package/dist/collection/components/order/order-row.service.js +72 -0
- package/dist/collection/components/order/order-row.service.js.map +1 -0
- package/dist/collection/components/order/revogr-order-editor.js +461 -0
- package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
- package/dist/collection/components/overlay/autofill.service.js +221 -0
- package/dist/collection/components/overlay/autofill.service.js.map +1 -0
- package/dist/collection/components/overlay/keyboard.service.js +178 -0
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +1606 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
- package/dist/collection/components/overlay/revogr-overlay-style.css +95 -0
- package/dist/collection/components/overlay/selection.utils.js +136 -0
- package/dist/collection/components/overlay/selection.utils.js.map +1 -0
- package/dist/collection/components/revoGrid/grid.helpers.js +33 -0
- package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
- package/dist/collection/components/revoGrid/plugin.service.js +81 -0
- package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
- package/dist/collection/components/revoGrid/revo-grid-style.css +897 -0
- package/dist/collection/components/revoGrid/revo-grid.js +4717 -0
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.helpers.js +51 -0
- package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.resize.service.js +55 -0
- package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js +139 -0
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.service.js +253 -0
- package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +291 -0
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
- package/dist/collection/components/rowHeaders/row-header-render.js +5 -0
- package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +70 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +938 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
- package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
- package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
- package/dist/collection/components/scrollable/revogr-scroll-style.css +34 -0
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +346 -0
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
- package/dist/collection/components/selectionFocus/revogr-focus-style.css +7 -0
- package/dist/collection/components/selectionFocus/revogr-focus.js +429 -0
- package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
- package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +28 -0
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js +171 -0
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
- package/dist/collection/components/vnode/vnode-converter.js +84 -0
- package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
- package/dist/collection/components/vnode/vnode.utils.js +18 -0
- package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
- package/dist/collection/global/global.js +19 -0
- package/dist/collection/global/global.js.map +1 -0
- package/dist/collection/index.js +13 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
- package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
- package/dist/collection/plugins/base.plugin.js +90 -0
- package/dist/collection/plugins/base.plugin.js.map +1 -0
- package/dist/collection/plugins/column-hide.plugin.js +532 -0
- package/dist/collection/plugins/column-hide.plugin.js.map +1 -0
- package/dist/collection/plugins/column-manage.plugin.js +1218 -0
- package/dist/collection/plugins/column-manage.plugin.js.map +1 -0
- package/dist/collection/plugins/column-stretch.plugin.js +921 -0
- package/dist/collection/plugins/column-stretch.plugin.js.map +1 -0
- package/dist/collection/plugins/column.auto-size.plugin.js +308 -0
- package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
- package/dist/collection/plugins/column.stretch.plugin.js +96 -0
- package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/column-move.helper.js +361 -0
- package/dist/collection/plugins/customColumnDrag/column-move.helper.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/custom-column-drag.plugin.js +145 -0
- package/dist/collection/plugins/customColumnDrag/custom-column-drag.plugin.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/drag.handler.js +726 -0
- package/dist/collection/plugins/customColumnDrag/drag.handler.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/example.js +282 -0
- package/dist/collection/plugins/customColumnDrag/example.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/index.js +8 -0
- package/dist/collection/plugins/customColumnDrag/index.js.map +1 -0
- package/dist/collection/plugins/customColumnDrag/types.js +2 -0
- package/dist/collection/plugins/customColumnDrag/types.js.map +1 -0
- package/dist/collection/plugins/dispatcher.js +40 -0
- package/dist/collection/plugins/dispatcher.js.map +1 -0
- package/dist/collection/plugins/enhanced-scrollbar.plugin.js +493 -0
- package/dist/collection/plugins/enhanced-scrollbar.plugin.js.map +1 -0
- package/dist/collection/plugins/export/csv.js +72 -0
- package/dist/collection/plugins/export/csv.js.map +1 -0
- package/dist/collection/plugins/export/export.plugin.js +157 -0
- package/dist/collection/plugins/export/export.plugin.js.map +1 -0
- package/dist/collection/plugins/export/types.js +2 -0
- package/dist/collection/plugins/export/types.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/equal.js +21 -0
- package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +14 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +11 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +16 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +11 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/set.js +7 -0
- package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +21 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js +25 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
- package/dist/collection/plugins/filter/filter.button.js +28 -0
- package/dist/collection/plugins/filter/filter.button.js.map +1 -0
- package/dist/collection/plugins/filter/filter.indexed.js +49 -0
- package/dist/collection/plugins/filter/filter.indexed.js.map +1 -0
- package/dist/collection/plugins/filter/filter.panel.js +610 -0
- package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
- package/dist/collection/plugins/filter/filter.plugin.js +388 -0
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
- package/dist/collection/plugins/filter/filter.style.css +165 -0
- package/dist/collection/plugins/filter/filter.types.js +9 -0
- package/dist/collection/plugins/filter/filter.types.js.map +1 -0
- package/dist/collection/plugins/grid-setup.js +131 -0
- package/dist/collection/plugins/grid-setup.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js +18 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +122 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +252 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +49 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +2 -0
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js +215 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +61 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
- package/dist/collection/plugins/index.js +26 -0
- package/dist/collection/plugins/index.js.map +1 -0
- package/dist/collection/plugins/manual-focus.plugin.js +353 -0
- package/dist/collection/plugins/manual-focus.plugin.js.map +1 -0
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +171 -0
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
- package/dist/collection/plugins/moveColumn/order-column.handler.js +69 -0
- package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
- package/dist/collection/plugins/pin-shadow.plugin.js +487 -0
- package/dist/collection/plugins/pin-shadow.plugin.js.map +1 -0
- package/dist/collection/plugins/resize-indicator.plugin.js +430 -0
- package/dist/collection/plugins/resize-indicator.plugin.js.map +1 -0
- package/dist/collection/plugins/row-select-plugin-2026228.js +1803 -0
- package/dist/collection/plugins/row-select-plugin-2026228.js.map +1 -0
- package/dist/collection/plugins/row-select.plugin.js +2096 -0
- package/dist/collection/plugins/row-select.plugin.js.map +1 -0
- package/dist/collection/plugins/rtl/rtl.plugin.js +110 -0
- package/dist/collection/plugins/rtl/rtl.plugin.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.func.js +82 -0
- package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +224 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
- package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.types.js +2 -0
- package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
- package/dist/collection/plugins/tree-data.plugin.js +447 -0
- package/dist/collection/plugins/tree-data.plugin.js.map +1 -0
- package/dist/collection/plugins/wcag/index.js +84 -0
- package/dist/collection/plugins/wcag/index.js.map +1 -0
- package/dist/collection/serve/controller.js +344 -0
- package/dist/collection/serve/data.js +201 -0
- package/dist/collection/serve/realData.js +4148 -0
- package/dist/collection/services/cell.helpers.js +12 -0
- package/dist/collection/services/cell.helpers.js.map +1 -0
- package/dist/collection/services/column.data.provider.js +122 -0
- package/dist/collection/services/column.data.provider.js.map +1 -0
- package/dist/collection/services/data.provider.js +89 -0
- package/dist/collection/services/data.provider.js.map +1 -0
- package/dist/collection/services/dimension.provider.js +257 -0
- package/dist/collection/services/dimension.provider.js.map +1 -0
- package/dist/collection/services/local.scroll.service.js +136 -0
- package/dist/collection/services/local.scroll.service.js.map +1 -0
- package/dist/collection/services/local.scroll.timer.js +84 -0
- package/dist/collection/services/local.scroll.timer.js.map +1 -0
- package/dist/collection/services/selection.store.connector.js +274 -0
- package/dist/collection/services/selection.store.connector.js.map +1 -0
- package/dist/collection/services/viewport.provider.js +17 -0
- package/dist/collection/services/viewport.provider.js.map +1 -0
- package/dist/collection/store/dataSource/data.proxy.js +45 -0
- package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
- package/dist/collection/store/dataSource/data.store.js +146 -0
- package/dist/collection/store/dataSource/data.store.js.map +1 -0
- package/dist/collection/store/dataSource/index.js +7 -0
- package/dist/collection/store/dataSource/index.js.map +1 -0
- package/dist/collection/store/dataSource/trimmed.plugin.js +34 -0
- package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
- package/dist/collection/store/dimension/dimension.helpers.js +101 -0
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js +29 -0
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
- package/dist/collection/store/dimension/dimension.store.js +124 -0
- package/dist/collection/store/dimension/dimension.store.js.map +1 -0
- package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
- package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
- package/dist/collection/store/dimension/index.js +6 -0
- package/dist/collection/store/dimension/index.js.map +1 -0
- package/dist/collection/store/index.js +17 -0
- package/dist/collection/store/index.js.map +1 -0
- package/dist/collection/store/selection/index.js +6 -0
- package/dist/collection/store/selection/index.js.map +1 -0
- package/dist/collection/store/selection/selection.helpers.js +49 -0
- package/dist/collection/store/selection/selection.helpers.js.map +1 -0
- package/dist/collection/store/selection/selection.store.js +85 -0
- package/dist/collection/store/selection/selection.store.js.map +1 -0
- package/dist/collection/store/vp/index.js +6 -0
- package/dist/collection/store/vp/index.js.map +1 -0
- package/dist/collection/store/vp/viewport.helpers.js +251 -0
- package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
- package/dist/collection/store/vp/viewport.store.js +256 -0
- package/dist/collection/store/vp/viewport.store.js.map +1 -0
- package/dist/collection/themeManager/theme.compact.js +9 -0
- package/dist/collection/themeManager/theme.compact.js.map +1 -0
- package/dist/collection/themeManager/theme.default.js +9 -0
- package/dist/collection/themeManager/theme.default.js.map +1 -0
- package/dist/collection/themeManager/theme.material.js +9 -0
- package/dist/collection/themeManager/theme.material.js.map +1 -0
- package/dist/collection/themeManager/theme.service.js +53 -0
- package/dist/collection/themeManager/theme.service.js.map +1 -0
- package/dist/collection/types/dimension.js +2 -0
- package/dist/collection/types/dimension.js.map +1 -0
- package/dist/collection/types/events.js +124 -0
- package/dist/collection/types/events.js.map +1 -0
- package/dist/collection/types/index.js +12 -0
- package/dist/collection/types/index.js.map +1 -0
- package/dist/collection/types/interfaces.js +6 -0
- package/dist/collection/types/interfaces.js.map +1 -0
- package/dist/collection/types/plugin.js +2 -0
- package/dist/collection/types/plugin.js.map +1 -0
- package/dist/collection/types/plugin.types.js +2 -0
- package/dist/collection/types/plugin.types.js.map +1 -0
- package/dist/collection/types/selection.js +2 -0
- package/dist/collection/types/selection.js.map +1 -0
- package/dist/collection/types/theme.js +2 -0
- package/dist/collection/types/theme.js.map +1 -0
- package/dist/collection/types/viewport.interfaces.js +2 -0
- package/dist/collection/types/viewport.interfaces.js.map +1 -0
- package/dist/collection/utils/batchGroupCollapse.js +190 -0
- package/dist/collection/utils/batchGroupCollapse.js.map +1 -0
- package/dist/collection/utils/browser.js +7 -0
- package/dist/collection/utils/browser.js.map +1 -0
- package/dist/collection/utils/cell-template-helper.js +181 -0
- package/dist/collection/utils/cell-template-helper.js.map +1 -0
- package/dist/collection/utils/closest.polifill.js +22 -0
- package/dist/collection/utils/closest.polifill.js.map +1 -0
- package/dist/collection/utils/column.utils.js +448 -0
- package/dist/collection/utils/column.utils.js.map +1 -0
- package/dist/collection/utils/consts.js +26 -0
- package/dist/collection/utils/consts.js.map +1 -0
- package/dist/collection/utils/events.js +39 -0
- package/dist/collection/utils/events.js.map +1 -0
- package/dist/collection/utils/header.utils.js +24 -0
- package/dist/collection/utils/header.utils.js.map +1 -0
- package/dist/collection/utils/index.js +133 -0
- package/dist/collection/utils/index.js.map +1 -0
- package/dist/collection/utils/key.codes.js +80 -0
- package/dist/collection/utils/key.codes.js.map +1 -0
- package/dist/collection/utils/key.utils.js +86 -0
- package/dist/collection/utils/key.utils.js.map +1 -0
- package/dist/collection/utils/mobile.js +7 -0
- package/dist/collection/utils/mobile.js.map +1 -0
- package/dist/collection/utils/platform.js +9 -0
- package/dist/collection/utils/platform.js.map +1 -0
- package/dist/collection/utils/row-header-utils.js +9 -0
- package/dist/collection/utils/row-header-utils.js.map +1 -0
- package/dist/collection/utils/store.types.js +2 -0
- package/dist/collection/utils/store.types.js.map +1 -0
- package/dist/collection/utils/store.utils.js +15 -0
- package/dist/collection/utils/store.utils.js.map +1 -0
- package/dist/esm/app-globals-C3ZHKjnB.js +14 -0
- package/dist/esm/app-globals-C3ZHKjnB.js.map +1 -0
- package/dist/esm/cell-renderer-C2Td6LKY.js +54 -0
- package/dist/esm/cell-renderer-C2Td6LKY.js.map +1 -0
- package/dist/esm/debounce-BfO9dz9v.js +488 -0
- package/dist/esm/debounce-BfO9dz9v.js.map +1 -0
- package/dist/esm/dimension.helpers-DDil7Dg0.js +3546 -0
- package/dist/esm/dimension.helpers-DDil7Dg0.js.map +1 -0
- package/dist/esm/edit.utils-ClxXX_x9.js +99 -0
- package/dist/esm/edit.utils-ClxXX_x9.js.map +1 -0
- package/dist/esm/events-BvSmBueA.js +43 -0
- package/dist/esm/events-BvSmBueA.js.map +1 -0
- package/dist/esm/filter.button-DmOE7VCJ.js +39 -0
- package/dist/esm/filter.button-DmOE7VCJ.js.map +1 -0
- package/dist/esm/grouping.row.renderer-6NYszUJA.js +60 -0
- package/dist/esm/grouping.row.renderer-6NYszUJA.js.map +1 -0
- package/dist/esm/header-cell-renderer-BVHTuFGE.js +1715 -0
- package/dist/esm/header-cell-renderer-BVHTuFGE.js.map +1 -0
- package/dist/esm/index-Dyptvvxf.js +2519 -0
- package/dist/esm/index-Dyptvvxf.js.map +1 -0
- package/dist/esm/index.js +6232 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +17 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/revo-grid.entry.js +3213 -0
- package/dist/esm/revo-grid.entry.js.map +1 -0
- package/dist/esm/revo-grid.js +27 -0
- package/dist/esm/revo-grid.js.map +1 -0
- package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
- package/dist/esm/revogr-attribution_9.entry.js +2619 -0
- package/dist/esm/revogr-attribution_9.entry.js.map +1 -0
- package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
- package/dist/esm/revogr-clipboard_3.entry.js +467 -0
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
- package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
- package/dist/esm/revogr-data_4.entry.js +1415 -0
- package/dist/esm/revogr-data_4.entry.js.map +1 -0
- package/dist/esm/revogr-filter-panel.entry.js +380 -0
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
- package/dist/esm/row-renderer-sb6QTqH-.js +46 -0
- package/dist/esm/row-renderer-sb6QTqH-.js.map +1 -0
- package/dist/esm/text-editor-CxXqoicM.js +79 -0
- package/dist/esm/text-editor-CxXqoicM.js.map +1 -0
- package/dist/esm/throttle-DXYrmEeb.js +525 -0
- package/dist/esm/throttle-DXYrmEeb.js.map +1 -0
- package/dist/esm/tree-data.plugin-C2eXkf9_.js +5319 -0
- package/dist/esm/tree-data.plugin-C2eXkf9_.js.map +1 -0
- package/dist/esm/viewport.helpers-VXhsJZtn.js +55 -0
- package/dist/esm/viewport.helpers-VXhsJZtn.js.map +1 -0
- package/dist/esm/viewport.store-C-GnV31k.js +512 -0
- package/dist/esm/viewport.store-C-GnV31k.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/revo-grid/app-globals-C3ZHKjnB.js +14 -0
- package/dist/revo-grid/app-globals-C3ZHKjnB.js.map +1 -0
- package/dist/revo-grid/cell-renderer-C2Td6LKY.js +54 -0
- package/dist/revo-grid/cell-renderer-C2Td6LKY.js.map +1 -0
- package/dist/revo-grid/debounce-BfO9dz9v.js +488 -0
- package/dist/revo-grid/debounce-BfO9dz9v.js.map +1 -0
- package/dist/revo-grid/dimension.helpers-DDil7Dg0.js +3546 -0
- package/dist/revo-grid/dimension.helpers-DDil7Dg0.js.map +1 -0
- package/dist/revo-grid/edit.utils-ClxXX_x9.js +99 -0
- package/dist/revo-grid/edit.utils-ClxXX_x9.js.map +1 -0
- package/dist/revo-grid/events-BvSmBueA.js +43 -0
- package/dist/revo-grid/events-BvSmBueA.js.map +1 -0
- package/dist/revo-grid/filter.button-DmOE7VCJ.js +39 -0
- package/dist/revo-grid/filter.button-DmOE7VCJ.js.map +1 -0
- package/dist/revo-grid/grouping.row.renderer-6NYszUJA.js +60 -0
- package/dist/revo-grid/grouping.row.renderer-6NYszUJA.js.map +1 -0
- package/dist/revo-grid/header-cell-renderer-BVHTuFGE.js +1715 -0
- package/dist/revo-grid/header-cell-renderer-BVHTuFGE.js.map +1 -0
- package/dist/revo-grid/index-Dyptvvxf.js +2490 -0
- package/dist/revo-grid/index-Dyptvvxf.js.map +1 -0
- package/dist/revo-grid/index.esm.js +6232 -0
- package/dist/revo-grid/index.esm.js.map +1 -0
- package/dist/revo-grid/loader.esm.js.map +1 -0
- package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
- package/dist/revo-grid/revo-grid.entry.js +3213 -0
- package/dist/revo-grid/revo-grid.entry.js.map +1 -0
- package/dist/revo-grid/revo-grid.esm.js +27 -0
- package/dist/revo-grid/revo-grid.esm.js.map +1 -0
- package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
- package/dist/revo-grid/revogr-attribution_9.entry.js +2619 -0
- package/dist/revo-grid/revogr-attribution_9.entry.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
- package/dist/revo-grid/revogr-clipboard_3.entry.js +467 -0
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
- package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
- package/dist/revo-grid/revogr-data_4.entry.js +1415 -0
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +380 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
- package/dist/revo-grid/row-renderer-sb6QTqH-.js +46 -0
- package/dist/revo-grid/row-renderer-sb6QTqH-.js.map +1 -0
- package/dist/revo-grid/text-editor-CxXqoicM.js +79 -0
- package/dist/revo-grid/text-editor-CxXqoicM.js.map +1 -0
- package/dist/revo-grid/throttle-DXYrmEeb.js +525 -0
- package/dist/revo-grid/throttle-DXYrmEeb.js.map +1 -0
- package/dist/revo-grid/tree-data.plugin-C2eXkf9_.js +5319 -0
- package/dist/revo-grid/tree-data.plugin-C2eXkf9_.js.map +1 -0
- package/dist/revo-grid/viewport.helpers-VXhsJZtn.js +55 -0
- package/dist/revo-grid/viewport.helpers-VXhsJZtn.js.map +1 -0
- package/dist/revo-grid/viewport.store-C-GnV31k.js +512 -0
- package/dist/revo-grid/viewport.store-C-GnV31k.js.map +1 -0
- package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
- package/dist/types/components/clipboard/revogr-clipboard.d.ts +89 -0
- package/dist/types/components/data/cell-renderer.d.ts +12 -0
- package/dist/types/components/data/column.service.d.ts +65 -0
- package/dist/types/components/data/revogr-data.d.ts +132 -0
- package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
- package/dist/types/components/data/row-renderer.d.ts +13 -0
- package/dist/types/components/editors/edit.utils.d.ts +3 -0
- package/dist/types/components/editors/revogr-edit.d.ts +63 -0
- package/dist/types/components/editors/text-editor.d.ts +43 -0
- package/dist/types/components/extra/revogr-extra.d.ts +38 -0
- package/dist/types/components/grouping-overlay/revogr-grouping-overlay.d.ts +71 -0
- package/dist/types/components/header/header-cell-renderer.d.ts +10 -0
- package/dist/types/components/header/header-group-renderer.d.ts +17 -0
- package/dist/types/components/header/header-renderer.d.ts +24 -0
- package/dist/types/components/header/resizable.directive.d.ts +60 -0
- package/dist/types/components/header/resizable.element.d.ts +5 -0
- package/dist/types/components/header/revogr-header-unified.d.ts +168 -0
- package/dist/types/components/header/revogr-header.d.ts +131 -0
- package/dist/types/components/order/order-renderer.d.ts +29 -0
- package/dist/types/components/order/order-row.service.d.ts +27 -0
- package/dist/types/components/order/revogr-order-editor.d.ts +56 -0
- package/dist/types/components/overlay/autofill.service.d.ts +80 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +29 -0
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +295 -0
- package/dist/types/components/overlay/selection.utils.d.ts +47 -0
- package/dist/types/components/revoGrid/grid.helpers.d.ts +17 -0
- package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
- package/dist/types/components/revoGrid/revo-grid.d.ts +801 -0
- package/dist/types/components/revoGrid/viewport.helpers.d.ts +42 -0
- package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
- package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +24 -0
- package/dist/types/components/revoGrid/viewport.service.d.ts +59 -0
- package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +51 -0
- package/dist/types/components/rowHeaders/row-header-render.d.ts +9 -0
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +159 -0
- package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
- package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +49 -0
- package/dist/types/components/selectionFocus/revogr-focus.d.ts +63 -0
- package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +28 -0
- package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
- package/dist/types/components/vnode/vnode.utils.d.ts +9 -0
- package/dist/types/components.d.ts +2928 -0
- package/dist/types/global/global.d.ts +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
- package/dist/types/plugins/base.plugin.d.ts +51 -0
- package/dist/types/plugins/column-hide.plugin.d.ts +110 -0
- package/dist/types/plugins/column-manage.plugin.d.ts +225 -0
- package/dist/types/plugins/column-stretch.plugin.d.ts +159 -0
- package/dist/types/plugins/column.auto-size.plugin.d.ts +69 -0
- package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
- package/dist/types/plugins/customColumnDrag/column-move.helper.d.ts +71 -0
- package/dist/types/plugins/customColumnDrag/custom-column-drag.plugin.d.ts +35 -0
- package/dist/types/plugins/customColumnDrag/drag.handler.d.ts +112 -0
- package/dist/types/plugins/customColumnDrag/example.d.ts +31 -0
- package/dist/types/plugins/customColumnDrag/index.d.ts +5 -0
- package/dist/types/plugins/customColumnDrag/types.d.ts +46 -0
- package/dist/types/plugins/dispatcher.d.ts +20 -0
- package/dist/types/plugins/enhanced-scrollbar.plugin.d.ts +76 -0
- package/dist/types/plugins/export/csv.d.ts +9 -0
- package/dist/types/plugins/export/export.plugin.d.ts +24 -0
- package/dist/types/plugins/export/types.d.ts +23 -0
- package/dist/types/plugins/filter/conditions/equal.d.ts +4 -0
- package/dist/types/plugins/filter/conditions/number/greaterThan.d.ts +3 -0
- package/dist/types/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +3 -0
- package/dist/types/plugins/filter/conditions/number/lessThan.d.ts +3 -0
- package/dist/types/plugins/filter/conditions/number/lessThanOrEqual.d.ts +3 -0
- package/dist/types/plugins/filter/conditions/set.d.ts +4 -0
- package/dist/types/plugins/filter/conditions/string/beginswith.d.ts +3 -0
- package/dist/types/plugins/filter/conditions/string/contains.d.ts +4 -0
- package/dist/types/plugins/filter/filter.button.d.ts +14 -0
- package/dist/types/plugins/filter/filter.indexed.d.ts +20 -0
- package/dist/types/plugins/filter/filter.panel.d.ts +53 -0
- package/dist/types/plugins/filter/filter.plugin.d.ts +73 -0
- package/dist/types/plugins/filter/filter.types.d.ts +129 -0
- package/dist/types/plugins/grid-setup.d.ts +65 -0
- package/dist/types/plugins/groupingRow/grouping.const.d.ts +14 -0
- package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +15 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +39 -0
- package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -0
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +144 -0
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +36 -0
- package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +10 -0
- package/dist/types/plugins/index.d.ts +22 -0
- package/dist/types/plugins/manual-focus.plugin.d.ts +113 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +50 -0
- package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
- package/dist/types/plugins/pin-shadow.plugin.d.ts +73 -0
- package/dist/types/plugins/resize-indicator.plugin.d.ts +71 -0
- package/dist/types/plugins/row-select-plugin-2026228.d.ts +367 -0
- package/dist/types/plugins/row-select.plugin.d.ts +378 -0
- package/dist/types/plugins/rtl/rtl.plugin.d.ts +37 -0
- package/dist/types/plugins/sorting/sorting.func.d.ts +9 -0
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +48 -0
- package/dist/types/plugins/sorting/sorting.sign.d.ts +6 -0
- package/dist/types/plugins/sorting/sorting.types.d.ts +14 -0
- package/dist/types/plugins/tree-data.plugin.d.ts +56 -0
- package/dist/types/plugins/wcag/index.d.ts +26 -0
- package/dist/types/services/cell.helpers.d.ts +2 -0
- package/dist/types/services/column.data.provider.d.ts +27 -0
- package/dist/types/services/data.provider.d.ts +36 -0
- package/dist/types/services/dimension.provider.d.ts +71 -0
- package/dist/types/services/local.scroll.service.d.ts +36 -0
- package/dist/types/services/local.scroll.timer.d.ts +32 -0
- package/dist/types/services/selection.store.connector.d.ts +74 -0
- package/dist/types/services/viewport.provider.d.ts +9 -0
- package/dist/types/stencil-public-runtime.d.ts +1709 -0
- package/dist/types/store/dataSource/data.proxy.d.ts +14 -0
- package/dist/types/store/dataSource/data.store.d.ts +77 -0
- package/dist/types/store/dataSource/index.d.ts +3 -0
- package/dist/types/store/dataSource/trimmed.plugin.d.ts +12 -0
- package/dist/types/store/dimension/dimension.helpers.d.ts +24 -0
- package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +15 -0
- package/dist/types/store/dimension/dimension.store.d.ts +34 -0
- package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
- package/dist/types/store/dimension/index.d.ts +2 -0
- package/dist/types/store/index.d.ts +8 -0
- package/dist/types/store/selection/index.d.ts +2 -0
- package/dist/types/store/selection/selection.helpers.d.ts +5 -0
- package/dist/types/store/selection/selection.store.d.ts +22 -0
- package/dist/types/store/vp/index.d.ts +7 -0
- package/dist/types/store/vp/viewport.helpers.d.ts +54 -0
- package/dist/types/store/vp/viewport.store.d.ts +38 -0
- package/dist/types/themeManager/theme.compact.d.ts +4 -0
- package/dist/types/themeManager/theme.default.d.ts +4 -0
- package/dist/types/themeManager/theme.material.d.ts +4 -0
- package/dist/types/themeManager/theme.service.d.ts +13 -0
- package/dist/types/types/dimension.d.ts +8 -0
- package/dist/types/types/events.d.ts +2 -0
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/interfaces.d.ts +795 -0
- package/dist/types/types/plugin.d.ts +9 -0
- package/dist/types/types/plugin.types.d.ts +48 -0
- package/dist/types/types/selection.d.ts +178 -0
- package/dist/types/types/theme.d.ts +7 -0
- package/dist/types/types/viewport.interfaces.d.ts +45 -0
- package/dist/types/utils/batchGroupCollapse.d.ts +77 -0
- package/dist/types/utils/browser.d.ts +1 -0
- package/dist/types/utils/cell-template-helper.d.ts +74 -0
- package/dist/types/utils/closest.polifill.d.ts +0 -0
- package/dist/types/utils/column.utils.d.ts +110 -0
- package/dist/types/utils/consts.d.ts +22 -0
- package/dist/types/utils/events.d.ts +5 -0
- package/dist/types/utils/header.utils.d.ts +2 -0
- package/dist/types/utils/index.d.ts +32 -0
- package/dist/types/utils/key.codes.d.ts +73 -0
- package/dist/types/utils/key.utils.d.ts +12 -0
- package/dist/types/utils/mobile.d.ts +1 -0
- package/dist/types/utils/platform.d.ts +4 -0
- package/dist/types/utils/row-header-utils.d.ts +2 -0
- package/dist/types/utils/store.types.d.ts +97 -0
- package/dist/types/utils/store.utils.d.ts +10 -0
- package/hydrate/index.d.ts +273 -0
- package/hydrate/index.js +39851 -0
- package/hydrate/index.mjs +39843 -0
- package/hydrate/package.json +12 -0
- package/loader/cdn.js +4 -0
- package/loader/index.cjs.js +4 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +4 -0
- package/loader/index.js +5 -0
- package/package.json +149 -0
- package/readme.md +303 -0
- package/standalone/column.service.js +1110 -0
- package/standalone/column.service.js.map +1 -0
- package/standalone/consts.js +30 -0
- package/standalone/consts.js.map +1 -0
- package/standalone/data.store.js +3101 -0
- package/standalone/data.store.js.map +1 -0
- package/standalone/debounce.js +215 -0
- package/standalone/debounce.js.map +1 -0
- package/standalone/dimension.helpers.js +229 -0
- package/standalone/dimension.helpers.js.map +1 -0
- package/standalone/filter.button.js +39 -0
- package/standalone/filter.button.js.map +1 -0
- package/standalone/grouping.service.js +234 -0
- package/standalone/grouping.service.js.map +1 -0
- package/standalone/header-group-renderer.js +634 -0
- package/standalone/header-group-renderer.js.map +1 -0
- package/standalone/index.d.ts +72 -0
- package/standalone/index.js +6272 -0
- package/standalone/index.js.map +1 -0
- package/standalone/index2.js +131 -0
- package/standalone/index2.js.map +1 -0
- package/standalone/local.scroll.timer.js +222 -0
- package/standalone/local.scroll.timer.js.map +1 -0
- package/standalone/platform.js +90 -0
- package/standalone/platform.js.map +1 -0
- package/standalone/revo-grid.d.ts +11 -0
- package/standalone/revo-grid.js +8734 -0
- package/standalone/revo-grid.js.map +1 -0
- package/standalone/revogr-attribution.d.ts +11 -0
- package/standalone/revogr-attribution.js +12 -0
- package/standalone/revogr-attribution.js.map +1 -0
- package/standalone/revogr-attribution2.js +32 -0
- package/standalone/revogr-attribution2.js.map +1 -0
- package/standalone/revogr-clipboard.d.ts +11 -0
- package/standalone/revogr-clipboard.js +12 -0
- package/standalone/revogr-clipboard.js.map +1 -0
- package/standalone/revogr-clipboard2.js +179 -0
- package/standalone/revogr-clipboard2.js.map +1 -0
- package/standalone/revogr-data.d.ts +11 -0
- package/standalone/revogr-data.js +12 -0
- package/standalone/revogr-data.js.map +1 -0
- package/standalone/revogr-data2.js +503 -0
- package/standalone/revogr-data2.js.map +1 -0
- package/standalone/revogr-edit.d.ts +11 -0
- package/standalone/revogr-edit.js +12 -0
- package/standalone/revogr-edit.js.map +1 -0
- package/standalone/revogr-edit2.js +330 -0
- package/standalone/revogr-edit2.js.map +1 -0
- package/standalone/revogr-extra.d.ts +11 -0
- package/standalone/revogr-extra.js +12 -0
- package/standalone/revogr-extra.js.map +1 -0
- package/standalone/revogr-extra2.js +73 -0
- package/standalone/revogr-extra2.js.map +1 -0
- package/standalone/revogr-filter-panel.d.ts +11 -0
- package/standalone/revogr-filter-panel.js +411 -0
- package/standalone/revogr-filter-panel.js.map +1 -0
- package/standalone/revogr-focus.d.ts +11 -0
- package/standalone/revogr-focus.js +12 -0
- package/standalone/revogr-focus.js.map +1 -0
- package/standalone/revogr-focus2.js +119 -0
- package/standalone/revogr-focus2.js.map +1 -0
- package/standalone/revogr-grouping-overlay.d.ts +11 -0
- package/standalone/revogr-grouping-overlay.js +12 -0
- package/standalone/revogr-grouping-overlay.js.map +1 -0
- package/standalone/revogr-grouping-overlay2.js +356 -0
- package/standalone/revogr-grouping-overlay2.js.map +1 -0
- package/standalone/revogr-header-unified.d.ts +11 -0
- package/standalone/revogr-header-unified.js +12 -0
- package/standalone/revogr-header-unified.js.map +1 -0
- package/standalone/revogr-header-unified2.js +781 -0
- package/standalone/revogr-header-unified2.js.map +1 -0
- package/standalone/revogr-header.d.ts +11 -0
- package/standalone/revogr-header.js +12 -0
- package/standalone/revogr-header.js.map +1 -0
- package/standalone/revogr-header2.js +343 -0
- package/standalone/revogr-header2.js.map +1 -0
- package/standalone/revogr-order-editor.d.ts +11 -0
- package/standalone/revogr-order-editor.js +12 -0
- package/standalone/revogr-order-editor.js.map +1 -0
- package/standalone/revogr-order-editor2.js +201 -0
- package/standalone/revogr-order-editor2.js.map +1 -0
- package/standalone/revogr-overlay-selection.d.ts +11 -0
- package/standalone/revogr-overlay-selection.js +12 -0
- package/standalone/revogr-overlay-selection.js.map +1 -0
- package/standalone/revogr-overlay-selection2.js +1068 -0
- package/standalone/revogr-overlay-selection2.js.map +1 -0
- package/standalone/revogr-row-headers.d.ts +11 -0
- package/standalone/revogr-row-headers.js +12 -0
- package/standalone/revogr-row-headers.js.map +1 -0
- package/standalone/revogr-row-headers2.js +625 -0
- package/standalone/revogr-row-headers2.js.map +1 -0
- package/standalone/revogr-scroll-virtual.d.ts +11 -0
- package/standalone/revogr-scroll-virtual.js +12 -0
- package/standalone/revogr-scroll-virtual.js.map +1 -0
- package/standalone/revogr-scroll-virtual2.js +235 -0
- package/standalone/revogr-scroll-virtual2.js.map +1 -0
- package/standalone/revogr-temp-range.d.ts +11 -0
- package/standalone/revogr-temp-range.js +12 -0
- package/standalone/revogr-temp-range.js.map +1 -0
- package/standalone/revogr-temp-range2.js +93 -0
- package/standalone/revogr-temp-range2.js.map +1 -0
- package/standalone/revogr-viewport-scroll.d.ts +11 -0
- package/standalone/revogr-viewport-scroll.js +12 -0
- package/standalone/revogr-viewport-scroll.js.map +1 -0
- package/standalone/revogr-viewport-scroll2.js +761 -0
- package/standalone/revogr-viewport-scroll2.js.map +1 -0
- package/standalone/row-renderer.js +41 -0
- package/standalone/row-renderer.js.map +1 -0
- package/standalone/selection.utils.js +179 -0
- package/standalone/selection.utils.js.map +1 -0
- package/standalone/throttle.js +75 -0
- package/standalone/throttle.js.map +1 -0
- package/standalone/toNumber.js +282 -0
- package/standalone/toNumber.js.map +1 -0
- package/standalone/vnode-converter.js +46 -0
- package/standalone/vnode-converter.js.map +1 -0
- package/standalone/vnode-html.d.ts +11 -0
- package/standalone/vnode-html.js +12 -0
- package/standalone/vnode-html.js.map +1 -0
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
import isArray from "lodash/isArray";
|
|
5
|
+
import reduce from "lodash/reduce";
|
|
6
|
+
import { columnTypes } from "../store/index";
|
|
7
|
+
export function getCellData(val) {
|
|
8
|
+
if (typeof val === 'undefined' || val === null) {
|
|
9
|
+
return '';
|
|
10
|
+
}
|
|
11
|
+
return val;
|
|
12
|
+
}
|
|
13
|
+
export function getCellRaw(model = {}, column) {
|
|
14
|
+
if (!column) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (column.cellParser) {
|
|
18
|
+
return column.cellParser(model, column);
|
|
19
|
+
}
|
|
20
|
+
return model[column.prop];
|
|
21
|
+
}
|
|
22
|
+
export function getCellDataParsed(model, column) {
|
|
23
|
+
return getCellData(getCellRaw(model, column));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get column type from column data
|
|
27
|
+
*/
|
|
28
|
+
export function getColumnType(rgCol) {
|
|
29
|
+
if (rgCol.pin) {
|
|
30
|
+
return rgCol.pin;
|
|
31
|
+
}
|
|
32
|
+
return 'rgCol';
|
|
33
|
+
}
|
|
34
|
+
export function getColumnSizes(cols) {
|
|
35
|
+
const res = {};
|
|
36
|
+
for (const [i, c] of cols.entries()) {
|
|
37
|
+
if (c.size) {
|
|
38
|
+
res[i] = c.size;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return res;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if column is grouping column
|
|
45
|
+
*/
|
|
46
|
+
export function isColGrouping(colData) {
|
|
47
|
+
return !!colData.children;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* This function is used to create a collection of columns.
|
|
51
|
+
*/
|
|
52
|
+
export function getColumns(columns, level = 0, types, resFromRoot) {
|
|
53
|
+
const collection = {
|
|
54
|
+
// columns as they are in stores per type
|
|
55
|
+
columns: {
|
|
56
|
+
rgCol: [],
|
|
57
|
+
colPinStart: [],
|
|
58
|
+
colPinEnd: [],
|
|
59
|
+
},
|
|
60
|
+
// columns indexed by prop for quick access
|
|
61
|
+
columnByProp: {},
|
|
62
|
+
// column grouping
|
|
63
|
+
columnGrouping: {
|
|
64
|
+
rgCol: [],
|
|
65
|
+
colPinStart: [],
|
|
66
|
+
colPinEnd: [],
|
|
67
|
+
},
|
|
68
|
+
// sorting
|
|
69
|
+
sort: {},
|
|
70
|
+
// max depth level for column grouping
|
|
71
|
+
maxLevel: level,
|
|
72
|
+
};
|
|
73
|
+
return reduce(columns, (res, colData) => {
|
|
74
|
+
var _a;
|
|
75
|
+
// Grouped column
|
|
76
|
+
if (isColGrouping(colData)) {
|
|
77
|
+
res = gatherGroup(res, colData, getColumns(colData.children, level + 1, types, res), resFromRoot === null || resFromRoot === void 0 ? void 0 : resFromRoot.columns, level);
|
|
78
|
+
return res;
|
|
79
|
+
}
|
|
80
|
+
// Column type
|
|
81
|
+
const columnDefinitionFromType = colData.columnType && (types === null || types === void 0 ? void 0 : types[colData.columnType]);
|
|
82
|
+
// Regular column
|
|
83
|
+
const regularColumn = Object.assign(Object.assign({}, columnDefinitionFromType), colData);
|
|
84
|
+
// Regular column, no Pin
|
|
85
|
+
if (!regularColumn.pin) {
|
|
86
|
+
res.columns.rgCol.push(regularColumn);
|
|
87
|
+
// Pin
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
res.columns[regularColumn.pin].push(regularColumn);
|
|
91
|
+
}
|
|
92
|
+
if (regularColumn.order) {
|
|
93
|
+
res.sort[regularColumn.prop] = regularColumn;
|
|
94
|
+
}
|
|
95
|
+
// it's possible that some columns have same prop, but better to avoid it
|
|
96
|
+
if (!res.columnByProp[regularColumn.prop]) {
|
|
97
|
+
res.columnByProp[regularColumn.prop] = [];
|
|
98
|
+
}
|
|
99
|
+
res.columnByProp[regularColumn.prop].push(regularColumn);
|
|
100
|
+
// trigger setup hook if present
|
|
101
|
+
(_a = regularColumn.beforeSetup) === null || _a === void 0 ? void 0 : _a.call(regularColumn, regularColumn);
|
|
102
|
+
return res;
|
|
103
|
+
}, collection);
|
|
104
|
+
}
|
|
105
|
+
export function gatherGroup(res, colData, collection, existingColumnsByType, level = 0) {
|
|
106
|
+
// group template - 使用展开运算符保留所有属性
|
|
107
|
+
const group = Object.assign(Object.assign({}, colData), { level, indexes: [] });
|
|
108
|
+
// check columns for update
|
|
109
|
+
columnTypes.forEach(type => {
|
|
110
|
+
const resultItem = res.columns[type];
|
|
111
|
+
const collectionItem = collection.columns[type];
|
|
112
|
+
// if column data
|
|
113
|
+
if (isArray(resultItem) && isArray(collectionItem)) {
|
|
114
|
+
// fill grouping
|
|
115
|
+
const itemLength = collectionItem.length;
|
|
116
|
+
if (itemLength) {
|
|
117
|
+
const columnLength = [...((existingColumnsByType === null || existingColumnsByType === void 0 ? void 0 : existingColumnsByType[type]) || []), ...resultItem].length;
|
|
118
|
+
// fill columns
|
|
119
|
+
resultItem.push(...collectionItem);
|
|
120
|
+
// fill indexes per each viewport
|
|
121
|
+
res.columnGrouping[type].push(Object.assign(Object.assign({}, group), { indexes: Array(itemLength).fill(columnLength).map((v, i) => v + i) }));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// merge column groupings
|
|
126
|
+
for (let k in collection.columnGrouping) {
|
|
127
|
+
const key = k;
|
|
128
|
+
const collectionItem = collection.columnGrouping[key];
|
|
129
|
+
res.columnGrouping[key].push(...collectionItem);
|
|
130
|
+
}
|
|
131
|
+
res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
|
|
132
|
+
res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
|
|
133
|
+
res.columnByProp = Object.assign(Object.assign({}, res.columnByProp), collection.columnByProp);
|
|
134
|
+
return res;
|
|
135
|
+
}
|
|
136
|
+
function findColumn(columns, prop) {
|
|
137
|
+
for (const c of columns) {
|
|
138
|
+
if (isColGrouping(c)) {
|
|
139
|
+
const found = findColumn(c.children, prop);
|
|
140
|
+
if (found) {
|
|
141
|
+
return found;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (c.prop === prop) {
|
|
145
|
+
return c;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
export function getColumnByProp(columns, prop) {
|
|
151
|
+
return findColumn(columns, prop);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 获取自动宽度列的配置选项
|
|
155
|
+
* 用于 convertCollectionToColumns 的第二个参数
|
|
156
|
+
*
|
|
157
|
+
* @param providers - PluginProviders 对象
|
|
158
|
+
* @param stretchPlugin - ColumnStretchPlugin 实例
|
|
159
|
+
* @returns 自动宽度列配置选项
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const stretchPlugin = providers.plugins.getByClass(ColumnStretchPlugin);
|
|
164
|
+
* const options = getStretchColumnOptions(providers, stretchPlugin);
|
|
165
|
+
* const columns = convertCollectionToColumns(providers, options);
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
export function getStretchColumnOptions(providers, stretchPlugin // ColumnStretchPlugin 实例
|
|
169
|
+
) {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
if (!stretchPlugin) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
const columnCollection = (_a = providers === null || providers === void 0 ? void 0 : providers.column) === null || _a === void 0 ? void 0 : _a.collection;
|
|
175
|
+
if (!columnCollection) {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
// 收集自动宽度列的 prop
|
|
179
|
+
const stretchColumnProps = new Set();
|
|
180
|
+
const manuallyResizedProps = new Set();
|
|
181
|
+
const stretchConfig = (_b = stretchPlugin.getStretchColumnConfig) === null || _b === void 0 ? void 0 : _b.call(stretchPlugin);
|
|
182
|
+
if (stretchConfig) {
|
|
183
|
+
// 根据配置类型确定自动宽度列
|
|
184
|
+
if (stretchConfig === 'last') {
|
|
185
|
+
// 最后一列
|
|
186
|
+
const rgColColumns = columnCollection.columns.rgCol;
|
|
187
|
+
if (rgColColumns && rgColColumns.length > 0) {
|
|
188
|
+
const lastCol = rgColColumns[rgColColumns.length - 1];
|
|
189
|
+
if (lastCol.prop) {
|
|
190
|
+
stretchColumnProps.add(lastCol.prop);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else if (stretchConfig === 'all') {
|
|
195
|
+
// 所有列
|
|
196
|
+
const dimensionTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
|
|
197
|
+
dimensionTypes.forEach(type => {
|
|
198
|
+
const cols = columnCollection.columns[type];
|
|
199
|
+
if (cols) {
|
|
200
|
+
cols.forEach((col) => {
|
|
201
|
+
if (col.prop) {
|
|
202
|
+
stretchColumnProps.add(col.prop);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else if (typeof stretchConfig === 'number') {
|
|
209
|
+
// 指定索引的列(从 columnCollection 中按顺序获取)
|
|
210
|
+
const allColumns = [];
|
|
211
|
+
const dimensionTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
|
|
212
|
+
dimensionTypes.forEach(type => {
|
|
213
|
+
const cols = columnCollection.columns[type];
|
|
214
|
+
if (cols) {
|
|
215
|
+
allColumns.push(...cols);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
if (stretchConfig >= 0 && stretchConfig < allColumns.length) {
|
|
219
|
+
const col = allColumns[stretchConfig];
|
|
220
|
+
if (col === null || col === void 0 ? void 0 : col.prop) {
|
|
221
|
+
stretchColumnProps.add(col.prop);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else if (typeof stretchConfig === 'string') {
|
|
226
|
+
// 指定 prop 的列
|
|
227
|
+
stretchColumnProps.add(stretchConfig);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// 获取手动调整过的列
|
|
231
|
+
if (stretchPlugin.isManuallyResized) {
|
|
232
|
+
stretchColumnProps.forEach(prop => {
|
|
233
|
+
if (stretchPlugin.isManuallyResized(prop)) {
|
|
234
|
+
manuallyResizedProps.add(prop);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
stretchColumnProps,
|
|
240
|
+
manuallyResizedProps,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* 将 ColumnCollection 转换为 revogrid.columns 格式
|
|
245
|
+
* 按照冻结顺序合并:左冻结列 -> 普通列 -> 右冻结列
|
|
246
|
+
* 并根据 columnGrouping 信息重建分组结构
|
|
247
|
+
*
|
|
248
|
+
* @param providers - PluginProviders 对象
|
|
249
|
+
* @param options - 可选配置
|
|
250
|
+
* @param options.stretchColumnProps - 自动宽度列的 prop 集合
|
|
251
|
+
* @param options.manuallyResizedProps - 被手动调整过的列的 prop 集合
|
|
252
|
+
* @returns 适用于 revogrid.columns 的列数组(包含分组)
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const columns = convertCollectionToColumns(this.providers, {
|
|
257
|
+
* stretchColumnProps: new Set(['displayName']),
|
|
258
|
+
* manuallyResizedProps: new Set(['priority'])
|
|
259
|
+
* });
|
|
260
|
+
* this.revogrid.columns = columns;
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
export function convertCollectionToColumns(providers, options) {
|
|
264
|
+
var _a;
|
|
265
|
+
const result = [];
|
|
266
|
+
const columnCollection = (_a = providers === null || providers === void 0 ? void 0 : providers.column) === null || _a === void 0 ? void 0 : _a.collection;
|
|
267
|
+
if (!columnCollection) {
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
270
|
+
const collectionColumns = columnCollection.columns;
|
|
271
|
+
const columnGrouping = columnCollection.columnGrouping;
|
|
272
|
+
const stretchColumnProps = (options === null || options === void 0 ? void 0 : options.stretchColumnProps) || new Set();
|
|
273
|
+
const manuallyResizedProps = (options === null || options === void 0 ? void 0 : options.manuallyResizedProps) || new Set();
|
|
274
|
+
// 按顺序处理:左冻结 -> 普通 -> 右冻结
|
|
275
|
+
const orderedTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
|
|
276
|
+
orderedTypes.forEach(type => {
|
|
277
|
+
var _a, _b, _c;
|
|
278
|
+
const columns = collectionColumns[type];
|
|
279
|
+
if (!columns || columns.length === 0) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
// 从 dimension store 获取实时的列宽
|
|
283
|
+
const dimensionSizes = ((_c = (_b = (_a = providers === null || providers === void 0 ? void 0 : providers.dimension) === null || _a === void 0 ? void 0 : _a.stores[type]) === null || _b === void 0 ? void 0 : _b.store) === null || _c === void 0 ? void 0 : _c.get('sizes')) || {};
|
|
284
|
+
// 获取该类型的分组信息
|
|
285
|
+
const groups = (columnGrouping === null || columnGrouping === void 0 ? void 0 : columnGrouping[type]) || [];
|
|
286
|
+
// 如果没有分组,直接添加所有列
|
|
287
|
+
if (groups.length === 0) {
|
|
288
|
+
columns.forEach((col, index) => {
|
|
289
|
+
const colAny = Object.assign({}, col);
|
|
290
|
+
// 设置 pin 属性
|
|
291
|
+
if (type === 'colPinStart') {
|
|
292
|
+
colAny.pin = 'colPinStart';
|
|
293
|
+
}
|
|
294
|
+
else if (type === 'colPinEnd') {
|
|
295
|
+
colAny.pin = 'colPinEnd';
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
delete colAny.pin;
|
|
299
|
+
}
|
|
300
|
+
// 从 dimension store 获取实时宽度
|
|
301
|
+
if (dimensionSizes[index] !== undefined) {
|
|
302
|
+
colAny.size = dimensionSizes[index];
|
|
303
|
+
}
|
|
304
|
+
// 处理自动宽度列:如果是自动宽度列且未被手动调整,移除 size 属性
|
|
305
|
+
if (col.prop && stretchColumnProps.has(col.prop) && !manuallyResizedProps.has(col.prop)) {
|
|
306
|
+
delete colAny.size;
|
|
307
|
+
}
|
|
308
|
+
result.push(colAny);
|
|
309
|
+
});
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
// 构建索引到分组的映射
|
|
313
|
+
const indexToGroup = new Map();
|
|
314
|
+
groups.forEach((group) => {
|
|
315
|
+
group.indexes.forEach((index) => {
|
|
316
|
+
indexToGroup.set(index, group);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
// 按原始顺序遍历列,遇到分组的第一个列时创建分组
|
|
320
|
+
const processedGroups = new Set();
|
|
321
|
+
columns.forEach((col, index) => {
|
|
322
|
+
const group = indexToGroup.get(index);
|
|
323
|
+
if (group && !processedGroups.has(group)) {
|
|
324
|
+
// 这是分组的第一个列,创建分组
|
|
325
|
+
processedGroups.add(group);
|
|
326
|
+
const children = [];
|
|
327
|
+
group.indexes.forEach((idx) => {
|
|
328
|
+
if (idx < columns.length) {
|
|
329
|
+
const childCol = columns[idx];
|
|
330
|
+
const colCopy = Object.assign({}, childCol);
|
|
331
|
+
// 设置子列的 pin 属性
|
|
332
|
+
if (type === 'colPinStart') {
|
|
333
|
+
colCopy.pin = 'colPinStart';
|
|
334
|
+
}
|
|
335
|
+
else if (type === 'colPinEnd') {
|
|
336
|
+
colCopy.pin = 'colPinEnd';
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
delete colCopy.pin;
|
|
340
|
+
}
|
|
341
|
+
// 从 dimension store 获取实时宽度
|
|
342
|
+
if (dimensionSizes[idx] !== undefined) {
|
|
343
|
+
colCopy.size = dimensionSizes[idx];
|
|
344
|
+
}
|
|
345
|
+
// 处理自动宽度列
|
|
346
|
+
if (childCol.prop && stretchColumnProps.has(childCol.prop) && !manuallyResizedProps.has(childCol.prop)) {
|
|
347
|
+
delete colCopy.size;
|
|
348
|
+
}
|
|
349
|
+
children.push(colCopy);
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
// 创建分组列
|
|
353
|
+
if (children.length > 0) {
|
|
354
|
+
const groupCol = {
|
|
355
|
+
name: group.name,
|
|
356
|
+
children: children,
|
|
357
|
+
};
|
|
358
|
+
// 设置分组的 pin 属性
|
|
359
|
+
if (type === 'colPinStart') {
|
|
360
|
+
groupCol.pin = 'colPinStart';
|
|
361
|
+
}
|
|
362
|
+
else if (type === 'colPinEnd') {
|
|
363
|
+
groupCol.pin = 'colPinEnd';
|
|
364
|
+
}
|
|
365
|
+
result.push(groupCol);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
else if (!group) {
|
|
369
|
+
// 不在任何分组中的列,直接添加
|
|
370
|
+
const colAny = Object.assign({}, col);
|
|
371
|
+
// 设置 pin 属性
|
|
372
|
+
if (type === 'colPinStart') {
|
|
373
|
+
colAny.pin = 'colPinStart';
|
|
374
|
+
}
|
|
375
|
+
else if (type === 'colPinEnd') {
|
|
376
|
+
colAny.pin = 'colPinEnd';
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
delete colAny.pin;
|
|
380
|
+
}
|
|
381
|
+
// 从 dimension store 获取实时宽度
|
|
382
|
+
if (dimensionSizes[index] !== undefined) {
|
|
383
|
+
colAny.size = dimensionSizes[index];
|
|
384
|
+
}
|
|
385
|
+
// 处理自动宽度列
|
|
386
|
+
if (col.prop && stretchColumnProps.has(col.prop) && !manuallyResizedProps.has(col.prop)) {
|
|
387
|
+
delete colAny.size;
|
|
388
|
+
}
|
|
389
|
+
result.push(colAny);
|
|
390
|
+
}
|
|
391
|
+
// 如果是分组中的非第一个列,跳过(已在分组中处理)
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
return result;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* 合并相邻的同名编组
|
|
398
|
+
* @param columns 列数组
|
|
399
|
+
* @returns 是否发生了合并
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```typescript
|
|
403
|
+
* const columns = [...];
|
|
404
|
+
* const hasMerged = mergeAdjacentGroups(columns);
|
|
405
|
+
* if (hasMerged) {
|
|
406
|
+
* // 列结构已更新
|
|
407
|
+
* }
|
|
408
|
+
* ```
|
|
409
|
+
*/
|
|
410
|
+
export function mergeAdjacentGroups(columns) {
|
|
411
|
+
if (!columns || columns.length === 0)
|
|
412
|
+
return false;
|
|
413
|
+
// 获取列或编组的实际 pin 值(编组可能在子列上有 pin)
|
|
414
|
+
const getEffectivePin = (col) => {
|
|
415
|
+
if (col.pin)
|
|
416
|
+
return col.pin;
|
|
417
|
+
if (col.children && col.children.length > 0) {
|
|
418
|
+
// 从第一个子列获取 pin
|
|
419
|
+
return col.children[0].pin;
|
|
420
|
+
}
|
|
421
|
+
return undefined;
|
|
422
|
+
};
|
|
423
|
+
let hasMerged = false;
|
|
424
|
+
let i = 0;
|
|
425
|
+
while (i < columns.length - 1) {
|
|
426
|
+
const current = columns[i];
|
|
427
|
+
const next = columns[i + 1];
|
|
428
|
+
const currentPin = getEffectivePin(current);
|
|
429
|
+
const nextPin = getEffectivePin(next);
|
|
430
|
+
// 检查是否可以合并:都是编组、名称相同、实际 pin 值相同
|
|
431
|
+
if (current.children &&
|
|
432
|
+
next.children &&
|
|
433
|
+
current.name === next.name &&
|
|
434
|
+
currentPin === nextPin) {
|
|
435
|
+
// 合并:将 next 的子列添加到 current
|
|
436
|
+
current.children.push(...next.children);
|
|
437
|
+
// 删除 next
|
|
438
|
+
columns.splice(i + 1, 1);
|
|
439
|
+
hasMerged = true;
|
|
440
|
+
// 不增加 i,继续检查当前位置
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
i++;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return hasMerged;
|
|
447
|
+
}
|
|
448
|
+
//# sourceMappingURL=column.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.utils.js","sourceRoot":"","sources":["../../src/utils/column.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import isArray from 'lodash/isArray';\nimport reduce from 'lodash/reduce';\n\nimport type {\n ColumnData,\n ColumnGrouping,\n ColumnProp,\n ColumnRegular,\n ColumnTypes,\n DataType,\n DimensionCols,\n ViewSettingSizeProp,\n} from '@type';\nimport { columnTypes, type Group as StoreGroup } from '@store';\n\nexport type ColumnItems = Record<DimensionCols, ColumnRegular[]>;\nexport interface ColumnGroup extends StoreGroup {\n level: number;\n}\nexport type ColumnGroupingCollection = Record<DimensionCols, ColumnGroup[]>;\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\nexport function getCellRaw(model: DataType = {}, column?: ColumnRegular) {\n if (!column) {\n return;\n }\n if (column.cellParser) {\n return column.cellParser(model, column);\n }\n return model[column.prop];\n}\n\nexport function getCellDataParsed(model: DataType, column: ColumnRegular) {\n return getCellData(getCellRaw(model, column));\n}\n\n/**\n * Column collection definition.\n * Used to access indexed data for columns.\n * Can be accessed via different events.\n */\nexport type ColumnCollection = {\n /**\n * Columns as they are in stores\n */\n columns: Record<DimensionCols, ColumnRegular[]>;\n /**\n * Columns indexed by prop for quick access, it's possible to have multiple columns with same prop but not recommended\n */\n columnByProp: Record<ColumnProp, ColumnRegular[]>;\n /**\n * Grouped columns\n */\n columnGrouping: ColumnGroupingCollection;\n /**\n * Max level of grouping\n */\n maxLevel: number;\n /**\n * Sorting\n */\n sort: Record<ColumnProp, ColumnRegular>;\n};\n\n/**\n * Get column type from column data\n */\nexport function getColumnType(rgCol: ColumnRegular): DimensionCols {\n if (rgCol.pin) {\n return rgCol.pin;\n }\n return 'rgCol';\n}\n\nexport function getColumnSizes(cols: ColumnRegular[]): ViewSettingSizeProp {\n const res: ViewSettingSizeProp = {};\n for (const [i, c] of cols.entries()) {\n if (c.size) {\n res[i] = c.size;\n }\n }\n return res;\n}\n\n\n/**\n * Check if column is grouping column\n */\nexport function isColGrouping(\n colData: ColumnGrouping | ColumnRegular,\n): colData is ColumnGrouping {\n return !!(colData as ColumnGrouping).children;\n}\n\n/**\n * This function is used to create a collection of columns.\n */\nexport function getColumns(\n columns: ColumnData,\n level = 0,\n types?: ColumnTypes,\n resFromRoot?: Partial<ColumnCollection>\n): ColumnCollection {\n const collection: ColumnCollection = {\n // columns as they are in stores per type\n columns: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // columns indexed by prop for quick access\n columnByProp: {},\n // column grouping\n columnGrouping: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // sorting\n sort: {},\n // max depth level for column grouping\n maxLevel: level,\n };\n\n return reduce(\n columns,\n (res: ColumnCollection, colData: ColumnGrouping | ColumnRegular) => {\n // Grouped column\n if (isColGrouping(colData)) {\n res = gatherGroup(\n res,\n colData,\n getColumns(colData.children, level + 1, types, res),\n resFromRoot?.columns,\n level,\n );\n return res;\n }\n // Column type\n const columnDefinitionFromType = colData.columnType && types?.[colData.columnType];\n // Regular column\n const regularColumn = {\n ...columnDefinitionFromType,\n ...colData,\n };\n // Regular column, no 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 // it's possible that some columns have same prop, but better to avoid it\n if (!res.columnByProp[regularColumn.prop]) {\n res.columnByProp[regularColumn.prop] = [];\n }\n res.columnByProp[regularColumn.prop].push(regularColumn);\n\n // trigger setup hook if present\n regularColumn.beforeSetup?.(regularColumn);\n return res;\n },\n collection,\n );\n}\n\nexport function gatherGroup<T extends ColumnCollection>(\n res: T,\n colData: ColumnGrouping,\n collection: T,\n existingColumnsByType?: ColumnCollection['columns'],\n level = 0,\n): T {\n // group template - 使用展开运算符保留所有属性\n const group: ColumnGroup = {\n ...colData,\n level,\n indexes: [],\n };\n\n // check columns for update\n columnTypes.forEach(type => {\n const resultItem = res.columns[type];\n const collectionItem = collection.columns[type];\n\n // if column data\n if (isArray(resultItem) && isArray(collectionItem)) {\n\n // fill grouping\n const itemLength = collectionItem.length;\n if (itemLength) {\n const columnLength = [...(existingColumnsByType?.[type] || []), ...resultItem].length;\n // fill columns\n resultItem.push(...collectionItem);\n\n // fill indexes per each viewport\n res.columnGrouping[type].push({\n ...group,\n indexes: Array(itemLength).fill(columnLength).map((v, i) => v + i),\n });\n }\n }\n });\n // merge column groupings\n for (let k in collection.columnGrouping) {\n const key = k as DimensionCols;\n const collectionItem = collection.columnGrouping[key];\n res.columnGrouping[key].push(...collectionItem);\n }\n res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);\n res.sort = { ...res.sort, ...collection.sort };\n res.columnByProp = {\n ...res.columnByProp,\n ...collection.columnByProp,\n };\n return res;\n}\n\nfunction findColumn(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n for (const c of columns) {\n if (isColGrouping(c)) {\n const found = findColumn(c.children, prop);\n if (found) {\n return found;\n }\n } else if (c.prop === prop) {\n return c;\n }\n }\n return undefined;\n}\n\nexport function getColumnByProp(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n return findColumn(columns, prop);\n}\n\n/**\n * 获取自动宽度列的配置选项\n * 用于 convertCollectionToColumns 的第二个参数\n * \n * @param providers - PluginProviders 对象\n * @param stretchPlugin - ColumnStretchPlugin 实例\n * @returns 自动宽度列配置选项\n * \n * @example\n * ```typescript\n * const stretchPlugin = providers.plugins.getByClass(ColumnStretchPlugin);\n * const options = getStretchColumnOptions(providers, stretchPlugin);\n * const columns = convertCollectionToColumns(providers, options);\n * ```\n */\nexport function getStretchColumnOptions(\n providers: any,\n stretchPlugin?: any // ColumnStretchPlugin 实例\n): {\n stretchColumnProps: Set<string>;\n manuallyResizedProps: Set<string>;\n} | undefined {\n if (!stretchPlugin) {\n return undefined;\n }\n\n const columnCollection = providers?.column?.collection;\n if (!columnCollection) {\n return undefined;\n }\n\n // 收集自动宽度列的 prop\n const stretchColumnProps = new Set<string>();\n const manuallyResizedProps = new Set<string>();\n \n const stretchConfig = stretchPlugin.getStretchColumnConfig?.();\n \n if (stretchConfig) {\n // 根据配置类型确定自动宽度列\n if (stretchConfig === 'last') {\n // 最后一列\n const rgColColumns = columnCollection.columns.rgCol;\n if (rgColColumns && rgColColumns.length > 0) {\n const lastCol = rgColColumns[rgColColumns.length - 1];\n if (lastCol.prop) {\n stretchColumnProps.add(lastCol.prop as string);\n }\n }\n } else if (stretchConfig === 'all') {\n // 所有列\n const dimensionTypes: DimensionCols[] = ['colPinStart', 'rgCol', 'colPinEnd'];\n dimensionTypes.forEach(type => {\n const cols = columnCollection.columns[type];\n if (cols) {\n cols.forEach((col: ColumnRegular) => {\n if (col.prop) {\n stretchColumnProps.add(col.prop as string);\n }\n });\n }\n });\n } else if (typeof stretchConfig === 'number') {\n // 指定索引的列(从 columnCollection 中按顺序获取)\n const allColumns: ColumnRegular[] = [];\n const dimensionTypes: DimensionCols[] = ['colPinStart', 'rgCol', 'colPinEnd'];\n dimensionTypes.forEach(type => {\n const cols = columnCollection.columns[type];\n if (cols) {\n allColumns.push(...cols);\n }\n });\n \n if (stretchConfig >= 0 && stretchConfig < allColumns.length) {\n const col = allColumns[stretchConfig];\n if (col?.prop) {\n stretchColumnProps.add(col.prop as string);\n }\n }\n } else if (typeof stretchConfig === 'string') {\n // 指定 prop 的列\n stretchColumnProps.add(stretchConfig);\n }\n }\n \n // 获取手动调整过的列\n if (stretchPlugin.isManuallyResized) {\n stretchColumnProps.forEach(prop => {\n if (stretchPlugin.isManuallyResized(prop)) {\n manuallyResizedProps.add(prop);\n }\n });\n }\n \n return {\n stretchColumnProps,\n manuallyResizedProps,\n };\n}\n\n/**\n * 将 ColumnCollection 转换为 revogrid.columns 格式\n * 按照冻结顺序合并:左冻结列 -> 普通列 -> 右冻结列\n * 并根据 columnGrouping 信息重建分组结构\n * \n * @param providers - PluginProviders 对象\n * @param options - 可选配置\n * @param options.stretchColumnProps - 自动宽度列的 prop 集合\n * @param options.manuallyResizedProps - 被手动调整过的列的 prop 集合\n * @returns 适用于 revogrid.columns 的列数组(包含分组)\n * \n * @example\n * ```typescript\n * const columns = convertCollectionToColumns(this.providers, {\n * stretchColumnProps: new Set(['displayName']),\n * manuallyResizedProps: new Set(['priority'])\n * });\n * this.revogrid.columns = columns;\n * ```\n */\nexport function convertCollectionToColumns(\n providers: any,\n options?: {\n stretchColumnProps?: Set<string>;\n manuallyResizedProps?: Set<string>;\n }\n): (ColumnRegular | ColumnGrouping)[] {\n const result: (ColumnRegular | ColumnGrouping)[] = [];\n \n const columnCollection = providers?.column?.collection;\n if (!columnCollection) {\n return result;\n }\n \n const collectionColumns = columnCollection.columns;\n const columnGrouping = columnCollection.columnGrouping;\n const stretchColumnProps = options?.stretchColumnProps || new Set<string>();\n const manuallyResizedProps = options?.manuallyResizedProps || new Set<string>();\n \n // 按顺序处理:左冻结 -> 普通 -> 右冻结\n const orderedTypes: DimensionCols[] = ['colPinStart', 'rgCol', 'colPinEnd'];\n \n orderedTypes.forEach(type => {\n const columns = collectionColumns[type];\n if (!columns || columns.length === 0) {\n return;\n }\n \n // 从 dimension store 获取实时的列宽\n const dimensionSizes = providers?.dimension?.stores[type]?.store?.get('sizes') || {};\n \n // 获取该类型的分组信息\n const groups = columnGrouping?.[type] || [];\n \n // 如果没有分组,直接添加所有列\n if (groups.length === 0) {\n columns.forEach((col: ColumnRegular, index: number) => {\n const colAny = { ...col } as any;\n \n // 设置 pin 属性\n if (type === 'colPinStart') {\n colAny.pin = 'colPinStart';\n } else if (type === 'colPinEnd') {\n colAny.pin = 'colPinEnd';\n } else {\n delete colAny.pin;\n }\n \n // 从 dimension store 获取实时宽度\n if (dimensionSizes[index] !== undefined) {\n colAny.size = dimensionSizes[index];\n }\n \n // 处理自动宽度列:如果是自动宽度列且未被手动调整,移除 size 属性\n if (col.prop && stretchColumnProps.has(col.prop as string) && !manuallyResizedProps.has(col.prop as string)) {\n delete colAny.size;\n }\n \n result.push(colAny);\n });\n return;\n }\n \n // 构建索引到分组的映射\n const indexToGroup = new Map<number, typeof groups[0]>();\n groups.forEach((group: any) => {\n group.indexes.forEach((index: number) => {\n indexToGroup.set(index, group);\n });\n });\n \n // 按原始顺序遍历列,遇到分组的第一个列时创建分组\n const processedGroups = new Set<typeof groups[0]>();\n \n columns.forEach((col: ColumnRegular, index: number) => {\n const group = indexToGroup.get(index);\n \n if (group && !processedGroups.has(group)) {\n // 这是分组的第一个列,创建分组\n processedGroups.add(group);\n \n const children: ColumnRegular[] = [];\n group.indexes.forEach((idx: number) => {\n if (idx < columns.length) {\n const childCol = columns[idx];\n const colCopy = { ...childCol } as any;\n \n // 设置子列的 pin 属性\n if (type === 'colPinStart') {\n colCopy.pin = 'colPinStart';\n } else if (type === 'colPinEnd') {\n colCopy.pin = 'colPinEnd';\n } else {\n delete colCopy.pin;\n }\n \n // 从 dimension store 获取实时宽度\n if (dimensionSizes[idx] !== undefined) {\n colCopy.size = dimensionSizes[idx];\n }\n \n // 处理自动宽度列\n if (childCol.prop && stretchColumnProps.has(childCol.prop as string) && !manuallyResizedProps.has(childCol.prop as string)) {\n delete colCopy.size;\n }\n \n children.push(colCopy);\n }\n });\n \n // 创建分组列\n if (children.length > 0) {\n const groupCol: any = {\n name: group.name,\n children: children,\n };\n \n // 设置分组的 pin 属性\n if (type === 'colPinStart') {\n groupCol.pin = 'colPinStart';\n } else if (type === 'colPinEnd') {\n groupCol.pin = 'colPinEnd';\n }\n \n result.push(groupCol);\n }\n } else if (!group) {\n // 不在任何分组中的列,直接添加\n const colAny = { ...col } as any;\n \n // 设置 pin 属性\n if (type === 'colPinStart') {\n colAny.pin = 'colPinStart';\n } else if (type === 'colPinEnd') {\n colAny.pin = 'colPinEnd';\n } else {\n delete colAny.pin;\n }\n \n // 从 dimension store 获取实时宽度\n if (dimensionSizes[index] !== undefined) {\n colAny.size = dimensionSizes[index];\n }\n \n // 处理自动宽度列\n if (col.prop && stretchColumnProps.has(col.prop as string) && !manuallyResizedProps.has(col.prop as string)) {\n delete colAny.size;\n }\n \n result.push(colAny);\n }\n // 如果是分组中的非第一个列,跳过(已在分组中处理)\n });\n });\n \n return result;\n}\n\n/**\n * 合并相邻的同名编组\n * @param columns 列数组\n * @returns 是否发生了合并\n * \n * @example\n * ```typescript\n * const columns = [...];\n * const hasMerged = mergeAdjacentGroups(columns);\n * if (hasMerged) {\n * // 列结构已更新\n * }\n * ```\n */\nexport function mergeAdjacentGroups(\n columns: (ColumnRegular | ColumnGrouping)[]\n): boolean {\n if (!columns || columns.length === 0) return false;\n\n // 获取列或编组的实际 pin 值(编组可能在子列上有 pin)\n const getEffectivePin = (col: any): 'colPinStart' | 'colPinEnd' | undefined => {\n if (col.pin) return col.pin;\n if (col.children && col.children.length > 0) {\n // 从第一个子列获取 pin\n return col.children[0].pin;\n }\n return undefined;\n };\n\n let hasMerged = false;\n let i = 0;\n while (i < columns.length - 1) {\n const current = columns[i] as any;\n const next = columns[i + 1] as any;\n\n const currentPin = getEffectivePin(current);\n const nextPin = getEffectivePin(next);\n\n // 检查是否可以合并:都是编组、名称相同、实际 pin 值相同\n if (\n current.children &&\n next.children &&\n current.name === next.name &&\n currentPin === nextPin\n ) {\n // 合并:将 next 的子列添加到 current\n current.children.push(...next.children);\n // 删除 next\n columns.splice(i + 1, 1);\n hasMerged = true;\n // 不增加 i,继续检查当前位置\n } else {\n i++;\n }\n }\n\n return hasMerged;\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
export const MIN_COL_SIZE = 30;
|
|
5
|
+
export const RESIZE_INTERVAL = 40;
|
|
6
|
+
export const DATA_COL = 'data-rgCol';
|
|
7
|
+
export const DATA_ROW = 'data-rgRow';
|
|
8
|
+
export const DISABLED_CLASS = 'disabled';
|
|
9
|
+
export const CELL_CLASS = 'rgCell';
|
|
10
|
+
export const ROW_HEADER_TYPE = 'rowHeaders';
|
|
11
|
+
export const HEADER_CLASS = 'rgHeaderCell';
|
|
12
|
+
export const HEADER_SORTABLE_CLASS = 'sortable';
|
|
13
|
+
export const HEADER_ROW_CLASS = 'header-rgRow';
|
|
14
|
+
export const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';
|
|
15
|
+
export const DRAG_ICON_CLASS = 'revo-drag-icon';
|
|
16
|
+
export const DRAGGABLE_CLASS = 'revo-draggable';
|
|
17
|
+
export const FOCUS_CLASS = 'focused-cell';
|
|
18
|
+
export const SELECTION_BORDER_CLASS = 'selection-border-range';
|
|
19
|
+
export const MOBILE_CLASS = 'mobile-handler';
|
|
20
|
+
export const TMP_SELECTION_BG_CLASS = 'temp-bg-range';
|
|
21
|
+
export const CELL_HANDLER_CLASS = 'autofill-handle';
|
|
22
|
+
export const EDIT_INPUT_WR = 'edit-input-wrapper';
|
|
23
|
+
export const DRAGG_TEXT = 'Draggable item';
|
|
24
|
+
export const GRID_INTERNALS = '__rvgr';
|
|
25
|
+
export const ROW_FOCUSED_CLASS = 'focused-rgRow';
|
|
26
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/utils/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC","sourcesContent":["export const MIN_COL_SIZE = 30;\nexport const RESIZE_INTERVAL = 40;\n\nexport const DATA_COL = 'data-rgCol';\nexport const DATA_ROW = 'data-rgRow';\n\nexport const DISABLED_CLASS = 'disabled';\nexport const CELL_CLASS = 'rgCell';\nexport const ROW_HEADER_TYPE = 'rowHeaders';\nexport const HEADER_CLASS = 'rgHeaderCell';\nexport const HEADER_SORTABLE_CLASS = 'sortable';\nexport const HEADER_ROW_CLASS = 'header-rgRow';\nexport const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';\n\nexport const DRAG_ICON_CLASS = 'revo-drag-icon';\nexport const DRAGGABLE_CLASS = 'revo-draggable';\n\nexport const FOCUS_CLASS = 'focused-cell';\nexport const SELECTION_BORDER_CLASS = 'selection-border-range';\nexport const MOBILE_CLASS = 'mobile-handler';\nexport const TMP_SELECTION_BG_CLASS = 'temp-bg-range';\n\nexport const CELL_HANDLER_CLASS = 'autofill-handle';\n\nexport const EDIT_INPUT_WR = 'edit-input-wrapper';\n\nexport const DRAGG_TEXT = 'Draggable item';\nexport const GRID_INTERNALS = '__rvgr';\nexport const ROW_FOCUSED_CLASS = 'focused-rgRow';\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
function isTouch(e) {
|
|
5
|
+
return !!e.touches;
|
|
6
|
+
}
|
|
7
|
+
export function verifyTouchTarget(touchEvent, focusClass) {
|
|
8
|
+
if (focusClass && touchEvent) {
|
|
9
|
+
if (!(touchEvent.target instanceof Element && touchEvent.target.classList.contains(focusClass))) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Function to get the value of a specific property from a MouseEvent or TouchEvent object.
|
|
17
|
+
*/
|
|
18
|
+
export function getPropertyFromEvent(e, prop, focusClass // for touch events
|
|
19
|
+
) {
|
|
20
|
+
// Check if the event is a touch event
|
|
21
|
+
if (isTouch(e)) {
|
|
22
|
+
// If the event has touches, get the first touch
|
|
23
|
+
if (e.touches.length > 0) {
|
|
24
|
+
const touchEvent = e.touches[0];
|
|
25
|
+
// Check if the target of the touch event is the specified element
|
|
26
|
+
if (!verifyTouchTarget(touchEvent, focusClass)) {
|
|
27
|
+
// If not, return null
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
// Get the value of the specified property from the touch event and return it
|
|
31
|
+
return touchEvent[prop] || 0;
|
|
32
|
+
}
|
|
33
|
+
// If there are no touches, return null
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
// If the event is not a touch event, get the value of the specified property from the event and return it
|
|
37
|
+
return e[prop] || 0;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/utils/events.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO,CAAC,CAA0B;IACzC,OAAO,CAAC,CAAE,CAAgB,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,UAAmB;IACvE,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,YAAY,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,CAA0B,EAC1B,IAAsE,EACtE,UAAmB,CAAC,mBAAmB;;IAEvC,sCAAsC;IACtC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,gDAAgD;QAChD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,kEAAkE;YAClE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC/C,sBAAsB;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,6EAA6E;YAC7E,OAAQ,UAAU,CAAC,IAAI,CAAY,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,uCAAuC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0GAA0G;IAC1G,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC","sourcesContent":["function isTouch(e: MouseEvent | TouchEvent): e is TouchEvent {\n return !!(e as TouchEvent).touches;\n}\n\nexport function verifyTouchTarget(touchEvent?: Touch, focusClass?: string) {\n if (focusClass && touchEvent) {\n if (!(touchEvent.target instanceof Element && touchEvent.target.classList.contains(focusClass))) { \n return false;\n }\n }\n return true;\n}\n\n\n/**\n * Function to get the value of a specific property from a MouseEvent or TouchEvent object.\n */\nexport function getPropertyFromEvent(\n e: MouseEvent | TouchEvent,\n prop: keyof Pick<Touch, 'clientX' | 'clientY' | 'screenX' | 'screenY'>,\n focusClass?: string // for touch events\n): number | null {\n // Check if the event is a touch event\n if (isTouch(e)) {\n // If the event has touches, get the first touch\n if (e.touches.length > 0) {\n const touchEvent = e.touches[0];\n // Check if the target of the touch event is the specified element\n if (!verifyTouchTarget(touchEvent, focusClass)) {\n // If not, return null\n return null;\n }\n // Get the value of the specified property from the touch event and return it\n return (touchEvent[prop] as number) || 0;\n }\n // If there are no touches, return null\n return null;\n }\n // If the event is not a touch event, get the value of the specified property from the event and return it\n return e[prop] || 0;\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
const asciiFirstLetter = 65;
|
|
5
|
+
const lettersCount = 26;
|
|
6
|
+
export function generateHeader(index) {
|
|
7
|
+
let div = index + 1;
|
|
8
|
+
let label = '';
|
|
9
|
+
let pos;
|
|
10
|
+
while (div > 0) {
|
|
11
|
+
pos = (div - 1) % lettersCount;
|
|
12
|
+
label = String.fromCharCode(asciiFirstLetter + pos) + label;
|
|
13
|
+
div = parseInt(((div - pos) / lettersCount).toString(), 10);
|
|
14
|
+
}
|
|
15
|
+
return label;
|
|
16
|
+
}
|
|
17
|
+
export function generateHeaderByCount(colsNumber) {
|
|
18
|
+
const rowData = [];
|
|
19
|
+
for (let j = 0; j < colsNumber; j++) {
|
|
20
|
+
rowData.push(generateHeader(j));
|
|
21
|
+
}
|
|
22
|
+
return rowData;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=header.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.utils.js","sourceRoot":"","sources":["../../src/utils/header.utils.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,GAAW,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QAC/B,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5D,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["const asciiFirstLetter = 65;\nconst lettersCount = 26;\n\nexport function generateHeader(index: number): string {\n let div = index + 1;\n let label = '';\n let pos: number;\n while (div > 0) {\n pos = (div - 1) % lettersCount;\n label = String.fromCharCode(asciiFirstLetter + pos) + label;\n div = parseInt(((div - pos) / lettersCount).toString(), 10);\n }\n return label;\n}\n\nexport function generateHeaderByCount(colsNumber: number): string[] {\n const rowData: string[] = [];\n for (let j = 0; j < colsNumber; j++) {\n rowData.push(generateHeader(j));\n }\n return rowData;\n}\n"]}
|