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,388 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
// filter.plugin.tsx
|
|
5
|
+
import { h } from "@stencil/core";
|
|
6
|
+
import { BasePlugin } from "../base.plugin";
|
|
7
|
+
import { FILTER_PROP, isFilterBtn } from "./filter.button";
|
|
8
|
+
import { filterCoreFunctionsIndexedByType, filterNames, filterTypes, } from "./filter.indexed";
|
|
9
|
+
import { getCellDataParsed } from "../../utils";
|
|
10
|
+
export * from './filter.types';
|
|
11
|
+
export * from './filter.indexed';
|
|
12
|
+
export * from './filter.button';
|
|
13
|
+
export const FILTER_TRIMMED_TYPE = 'filter';
|
|
14
|
+
export const FILTER_CONFIG_CHANGED_EVENT = 'filterconfigchanged';
|
|
15
|
+
export const FILTE_PANEL = 'revogr-filter-panel';
|
|
16
|
+
/**
|
|
17
|
+
* @typedef ColumnFilterConfig
|
|
18
|
+
* @type {object}
|
|
19
|
+
*
|
|
20
|
+
* @property {MultiFilterItem|undefined} multiFilterItems - data for multi filtering with relation
|
|
21
|
+
*
|
|
22
|
+
* @property {Record<ColumnProp, FilterCollectionItem>|undefined} collection - preserved filter data, relation for filters will be applied as 'and'
|
|
23
|
+
*
|
|
24
|
+
* @property {string[]|undefined} include - filters to be included, if defined everything else out of scope will be ignored
|
|
25
|
+
*
|
|
26
|
+
* @property {Record<string, CustomFilter>|undefined} customFilters - hash map of {FilterType:CustomFilter}.
|
|
27
|
+
*
|
|
28
|
+
* @property {FilterLocalization|undefined} localization - translation for filter popup captions.
|
|
29
|
+
*
|
|
30
|
+
* @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export class FilterPlugin extends BasePlugin {
|
|
36
|
+
constructor(revogrid, providers, config) {
|
|
37
|
+
var _a;
|
|
38
|
+
super(revogrid, providers);
|
|
39
|
+
this.revogrid = revogrid;
|
|
40
|
+
this.config = config;
|
|
41
|
+
this.filterCollection = {};
|
|
42
|
+
this.multiFilterItems = {};
|
|
43
|
+
/**
|
|
44
|
+
* Filter types
|
|
45
|
+
* @example
|
|
46
|
+
* {
|
|
47
|
+
* string: ['contains', 'beginswith'],
|
|
48
|
+
* number: ['eqN', 'neqN', 'gt']
|
|
49
|
+
* }
|
|
50
|
+
*/
|
|
51
|
+
this.filterByType = Object.assign({}, filterTypes);
|
|
52
|
+
this.filterNameIndexByType = Object.assign({}, filterNames);
|
|
53
|
+
this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
|
|
54
|
+
this.filterProp = FILTER_PROP;
|
|
55
|
+
if (config) {
|
|
56
|
+
this.initConfig(config);
|
|
57
|
+
}
|
|
58
|
+
const existingNodes = this.revogrid.registerVNode.filter(n => typeof n === 'object' && n.$tag$ !== FILTE_PANEL);
|
|
59
|
+
this.revogrid.registerVNode = [
|
|
60
|
+
...existingNodes,
|
|
61
|
+
h("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, ref: e => (this.pop = e) }, ' ', this.extraContent()),
|
|
62
|
+
];
|
|
63
|
+
const aftersourceset = async () => {
|
|
64
|
+
const filterCollectionProps = Object.keys(this.filterCollection);
|
|
65
|
+
if (filterCollectionProps.length > 0) {
|
|
66
|
+
// handle old way of filtering by reworking FilterCollection to new MultiFilterItem
|
|
67
|
+
filterCollectionProps.forEach((prop, index) => {
|
|
68
|
+
if (!this.multiFilterItems[prop]) {
|
|
69
|
+
this.multiFilterItems[prop] = [
|
|
70
|
+
{
|
|
71
|
+
id: index,
|
|
72
|
+
type: this.filterCollection[prop].type,
|
|
73
|
+
value: this.filterCollection[prop].value,
|
|
74
|
+
relation: 'and',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (Object.keys(this.multiFilterItems).length === 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
await this.runFiltering(this.multiFilterItems);
|
|
84
|
+
};
|
|
85
|
+
this.addEventListener('headerclick', e => this.headerclick(e));
|
|
86
|
+
this.addEventListener(FILTER_CONFIG_CHANGED_EVENT, ({ detail }) => {
|
|
87
|
+
if (!detail ||
|
|
88
|
+
(typeof detail === 'object' &&
|
|
89
|
+
(!detail.multiFilterItems ||
|
|
90
|
+
!Object.keys(detail.multiFilterItems).length))) {
|
|
91
|
+
this.clearFiltering();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (typeof detail === 'object') {
|
|
95
|
+
this.initConfig(detail);
|
|
96
|
+
}
|
|
97
|
+
aftersourceset();
|
|
98
|
+
});
|
|
99
|
+
this.addEventListener('aftersourceset', aftersourceset);
|
|
100
|
+
this.addEventListener('filter', ({ detail }) => this.onFilterChange(detail));
|
|
101
|
+
}
|
|
102
|
+
beforeshow(_) {
|
|
103
|
+
// used as hook for filter panel
|
|
104
|
+
}
|
|
105
|
+
extraContent() {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
initConfig(config) {
|
|
109
|
+
if (config.multiFilterItems) {
|
|
110
|
+
this.multiFilterItems = Object.assign({}, config.multiFilterItems);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.multiFilterItems = {};
|
|
114
|
+
}
|
|
115
|
+
// Add custom filters
|
|
116
|
+
if (config.customFilters) {
|
|
117
|
+
for (let customFilterType in config.customFilters) {
|
|
118
|
+
const cFilter = config.customFilters[customFilterType];
|
|
119
|
+
if (!this.filterByType[cFilter.columnFilterType]) {
|
|
120
|
+
this.filterByType[cFilter.columnFilterType] = [];
|
|
121
|
+
}
|
|
122
|
+
// add custom filter type
|
|
123
|
+
this.filterByType[cFilter.columnFilterType].push(customFilterType);
|
|
124
|
+
// add custom filter function
|
|
125
|
+
this.filterFunctionsIndexedByType[customFilterType] = cFilter.func;
|
|
126
|
+
// add custom filter name
|
|
127
|
+
this.filterNameIndexByType[customFilterType] = cFilter.name;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Add filterProp if provided in config
|
|
131
|
+
if (config.filterProp) {
|
|
132
|
+
this.filterProp = config.filterProp;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* which filters has to be included/excluded
|
|
136
|
+
* convenient way to exclude system filters
|
|
137
|
+
*/
|
|
138
|
+
const cfgInlcude = config.include;
|
|
139
|
+
if (cfgInlcude) {
|
|
140
|
+
const filters = {};
|
|
141
|
+
for (let t in this.filterByType) {
|
|
142
|
+
// validate filters, if appropriate function present
|
|
143
|
+
const newTypes = this.filterByType[t].filter(f => cfgInlcude.indexOf(f) > -1);
|
|
144
|
+
if (newTypes.length) {
|
|
145
|
+
filters[t] = newTypes;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// if any valid filters provided show them
|
|
149
|
+
if (Object.keys(filters).length > 0) {
|
|
150
|
+
this.filterByType = filters;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (config.collection) {
|
|
154
|
+
const filtersWithFilterFunctionPresent = Object.entries(config.collection).filter(([, item]) => this.filterFunctionsIndexedByType[item.type]);
|
|
155
|
+
this.filterCollection = Object.fromEntries(filtersWithFilterFunctionPresent);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.filterCollection = {};
|
|
159
|
+
}
|
|
160
|
+
if (config.localization) {
|
|
161
|
+
if (config.localization.filterNames) {
|
|
162
|
+
Object.entries(config.localization.filterNames).forEach(([k, v]) => {
|
|
163
|
+
if (this.filterNameIndexByType[k] != void 0) {
|
|
164
|
+
this.filterNameIndexByType[k] = v;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async headerclick(e) {
|
|
171
|
+
var _a, _b;
|
|
172
|
+
const el = (_a = e.detail.originalEvent) === null || _a === void 0 ? void 0 : _a.target;
|
|
173
|
+
if (!isFilterBtn(el)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
e.preventDefault();
|
|
177
|
+
if (!this.pop) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
// filter button clicked, open filter dialog
|
|
181
|
+
const gridPos = this.revogrid.getBoundingClientRect();
|
|
182
|
+
const buttonPos = el.getBoundingClientRect();
|
|
183
|
+
const prop = e.detail.prop;
|
|
184
|
+
const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
|
|
185
|
+
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
186
|
+
this.pop.show(data);
|
|
187
|
+
}
|
|
188
|
+
getColumnFilter(type) {
|
|
189
|
+
let filterType = 'string';
|
|
190
|
+
if (!type) {
|
|
191
|
+
return { [filterType]: this.filterByType[filterType] };
|
|
192
|
+
}
|
|
193
|
+
// if custom column filter
|
|
194
|
+
if (this.isValidType(type)) {
|
|
195
|
+
filterType = type;
|
|
196
|
+
// if multiple filters applied
|
|
197
|
+
}
|
|
198
|
+
else if (typeof type === 'object' && type.length) {
|
|
199
|
+
return type.reduce((r, multiType) => {
|
|
200
|
+
if (this.isValidType(multiType)) {
|
|
201
|
+
r[multiType] = this.filterByType[multiType];
|
|
202
|
+
}
|
|
203
|
+
return r;
|
|
204
|
+
}, {});
|
|
205
|
+
}
|
|
206
|
+
return { [filterType]: this.filterByType[filterType] };
|
|
207
|
+
}
|
|
208
|
+
isValidType(type) {
|
|
209
|
+
return !!(typeof type === 'string' && this.filterByType[type]);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Called on internal component change
|
|
213
|
+
*/
|
|
214
|
+
async onFilterChange(filterItems) {
|
|
215
|
+
// store the filter items
|
|
216
|
+
this.multiFilterItems = filterItems;
|
|
217
|
+
// run the filtering when the items change
|
|
218
|
+
this.runFiltering(this.multiFilterItems);
|
|
219
|
+
}
|
|
220
|
+
onFilterReset(prop) {
|
|
221
|
+
delete this.multiFilterItems[prop !== null && prop !== void 0 ? prop : ''];
|
|
222
|
+
this.onFilterChange(this.multiFilterItems);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Triggers grid filtering
|
|
226
|
+
*/
|
|
227
|
+
async doFiltering(collection, source, columns, filterItems) {
|
|
228
|
+
const columnsToUpdate = [];
|
|
229
|
+
/**
|
|
230
|
+
* Loop through the columns and update the columns that need to be updated with the `hasFilter` property.
|
|
231
|
+
*/
|
|
232
|
+
const columnByProp = {};
|
|
233
|
+
columns.forEach(rgCol => {
|
|
234
|
+
const column = Object.assign({}, rgCol);
|
|
235
|
+
const hasFilter = filterItems[column.prop];
|
|
236
|
+
columnByProp[column.prop] = column;
|
|
237
|
+
/**
|
|
238
|
+
* If the column has a filter and it's not already marked as filtered, update the column.
|
|
239
|
+
*/
|
|
240
|
+
if (column[this.filterProp] && !hasFilter) {
|
|
241
|
+
delete column[this.filterProp];
|
|
242
|
+
columnsToUpdate.push(column);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* If the column does not have a filter and it's marked as filtered, update the column.
|
|
246
|
+
*/
|
|
247
|
+
if (!column[this.filterProp] && hasFilter) {
|
|
248
|
+
columnsToUpdate.push(column);
|
|
249
|
+
column[this.filterProp] = true;
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
const itemsToTrim = this.getRowFilter(source, filterItems, columnByProp);
|
|
253
|
+
// check is filter event prevented
|
|
254
|
+
const { defaultPrevented, detail } = this.emit('beforefiltertrimmed', {
|
|
255
|
+
collection,
|
|
256
|
+
itemsToFilter: itemsToTrim,
|
|
257
|
+
source,
|
|
258
|
+
filterItems,
|
|
259
|
+
});
|
|
260
|
+
if (defaultPrevented) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
this.providers.data.setTrimmed({ [FILTER_TRIMMED_TYPE]: detail.itemsToFilter });
|
|
264
|
+
// applies the hasFilter to the columns to show filter icon
|
|
265
|
+
this.providers.column.updateColumns(columnsToUpdate);
|
|
266
|
+
this.emit('afterfilterapply', {
|
|
267
|
+
multiFilterItems: filterItems,
|
|
268
|
+
source,
|
|
269
|
+
collection,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
async clearFiltering() {
|
|
273
|
+
this.multiFilterItems = {};
|
|
274
|
+
await this.runFiltering(this.multiFilterItems);
|
|
275
|
+
}
|
|
276
|
+
async runFiltering(multiFilterItems) {
|
|
277
|
+
const collection = {};
|
|
278
|
+
// handle old filterCollection to return the first filter only (if any) from multiFilterItems
|
|
279
|
+
const filterProps = Object.keys(multiFilterItems);
|
|
280
|
+
for (const prop of filterProps) {
|
|
281
|
+
// check if we have any filter for a column
|
|
282
|
+
if (multiFilterItems[prop].length > 0) {
|
|
283
|
+
const firstFilterItem = multiFilterItems[prop][0];
|
|
284
|
+
collection[prop] = {
|
|
285
|
+
type: firstFilterItem.type,
|
|
286
|
+
value: firstFilterItem.value,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
this.filterCollection = collection;
|
|
291
|
+
const columns = this.providers.column.getColumns();
|
|
292
|
+
// run the filtering on the main source only
|
|
293
|
+
const source = this.providers.data.stores['rgRow'].store.get('source');
|
|
294
|
+
const { defaultPrevented, detail } = this.emit('beforefilterapply', {
|
|
295
|
+
collection: this.filterCollection,
|
|
296
|
+
source,
|
|
297
|
+
columns,
|
|
298
|
+
filterItems: this.multiFilterItems,
|
|
299
|
+
});
|
|
300
|
+
if (defaultPrevented) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
this.doFiltering(detail.collection, detail.source, detail.columns, detail.filterItems);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Get trimmed rows based on filter
|
|
307
|
+
*/
|
|
308
|
+
getRowFilter(rows, filterItems, columnByProp) {
|
|
309
|
+
const propKeys = Object.keys(filterItems);
|
|
310
|
+
const trimmed = {};
|
|
311
|
+
// each rows
|
|
312
|
+
for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
|
|
313
|
+
// check filter by column properties
|
|
314
|
+
for (const prop of propKeys) {
|
|
315
|
+
// add to the list of removed/trimmed rows of filter condition is satisfied
|
|
316
|
+
if (this.shouldTrimRow(filterItems[prop], prop, columnByProp[prop], rows[rowIndex])) {
|
|
317
|
+
trimmed[rowIndex] = true;
|
|
318
|
+
}
|
|
319
|
+
} // end of for-of propKeys
|
|
320
|
+
}
|
|
321
|
+
return trimmed;
|
|
322
|
+
}
|
|
323
|
+
shouldTrimRow(propFilters, prop, column, model = {}) {
|
|
324
|
+
// reset the count of satisfied filters
|
|
325
|
+
let propFilterSatisfiedCount = 0;
|
|
326
|
+
// reset the array of last filter results
|
|
327
|
+
let lastFilterResults = [];
|
|
328
|
+
// testing each filter for a prop
|
|
329
|
+
for (const [filterIndex, filterData] of propFilters.entries()) {
|
|
330
|
+
// the filter LogicFunction based on the type
|
|
331
|
+
const filterFunc = this.filterFunctionsIndexedByType[filterData.type];
|
|
332
|
+
// THE MAGIC OF FILTERING IS HERE
|
|
333
|
+
// If there is no column but user wants to filter by a property
|
|
334
|
+
const value = column ? getCellDataParsed(model, column) : model[prop];
|
|
335
|
+
// OR relation
|
|
336
|
+
if (filterData.relation === 'or') {
|
|
337
|
+
// reset the array of last filter results
|
|
338
|
+
lastFilterResults = [];
|
|
339
|
+
// if the filter is satisfied, continue to the next filter
|
|
340
|
+
if (filterFunc(value, filterData.value)) {
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
// if the filter is not satisfied, count it
|
|
344
|
+
propFilterSatisfiedCount++;
|
|
345
|
+
// AND relation
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
// 'and' relation will need to know the next filter
|
|
349
|
+
// so we save this current filter to include it in the next filter
|
|
350
|
+
lastFilterResults.push(!filterFunc(value, filterData.value));
|
|
351
|
+
if (isFinalAndFilter(filterIndex, propFilters)) {
|
|
352
|
+
// let's just continue since for sure propFilterSatisfiedCount cannot be satisfied
|
|
353
|
+
if (allAndConditionsSatisfied(lastFilterResults)) {
|
|
354
|
+
// reset the array of last filter results
|
|
355
|
+
lastFilterResults = [];
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
// we need to add all of the lastFilterResults since we need to satisfy all
|
|
359
|
+
propFilterSatisfiedCount += lastFilterResults.length;
|
|
360
|
+
// reset the array of last filter results
|
|
361
|
+
lastFilterResults = [];
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
} // end of propFilters forEach
|
|
365
|
+
return propFilterSatisfiedCount === propFilters.length;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Checks if the current filter is the final one in an AND sequence.
|
|
370
|
+
* @param index - Current filter index in the list.
|
|
371
|
+
* @param filters - Array of filters for the property.
|
|
372
|
+
* @returns True if this is the last AND condition; false otherwise.
|
|
373
|
+
*/
|
|
374
|
+
function isFinalAndFilter(index, filters) {
|
|
375
|
+
const nextFilter = filters[index + 1]; // Get the next filter in the list.
|
|
376
|
+
// Return true if there's no next filter or if the next filter defined and is not part of the AND sequence.
|
|
377
|
+
return !nextFilter || (!!nextFilter.relation && nextFilter.relation !== 'and');
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Determines if all conditions in an AND sequence are satisfied.
|
|
381
|
+
* @param pendingResults - An array of results from the AND conditions.
|
|
382
|
+
* @returns True if all conditions are satisfied; false otherwise.
|
|
383
|
+
*/
|
|
384
|
+
function allAndConditionsSatisfied(pendingResults) {
|
|
385
|
+
// Check if there are any failed conditions in the pending results.
|
|
386
|
+
return !pendingResults.includes(true);
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=filter.plugin.js.map
|
|
@@ -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":["// filter.plugin.tsx\nimport { h, type VNode } from '@stencil/core';\n\nimport type {\n ColumnProp,\n ColumnRegular,\n DataType,\n PluginProviders,\n} from '@type';\nimport { BasePlugin } from '../base.plugin';\nimport { FILTER_PROP, isFilterBtn } from './filter.button';\nimport {\n filterCoreFunctionsIndexedByType,\n filterNames,\n filterTypes,\n} from './filter.indexed';\n\nimport type {\n ColumnFilterConfig,\n FilterCollectionItem,\n FilterData,\n LogicFunction,\n MultiFilterItem,\n ShowData,\n} from './filter.types';\n\nimport { getCellDataParsed } from '../../utils';\nimport { TrimmedEntity } from '@store';\n\nexport * from './filter.types';\nexport * from './filter.indexed';\nexport * from './filter.button';\n\nexport const FILTER_TRIMMED_TYPE = 'filter';\nexport const FILTER_CONFIG_CHANGED_EVENT = 'filterconfigchanged';\nexport const FILTE_PANEL = 'revogr-filter-panel';\n\n/**\n * @typedef ColumnFilterConfig\n * @type {object}\n *\n * @property {MultiFilterItem|undefined} multiFilterItems - data for multi filtering with relation\n *\n * @property {Record<ColumnProp, FilterCollectionItem>|undefined} collection - preserved filter data, relation for filters will be applied as 'and'\n *\n * @property {string[]|undefined} include - filters to be included, if defined everything else out of scope will be ignored\n *\n * @property {Record<string, CustomFilter>|undefined} customFilters - hash map of {FilterType:CustomFilter}.\n *\n * @property {FilterLocalization|undefined} localization - translation for filter popup captions.\n *\n * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.\n */\n/**\n * @internal\n */\n\nexport class FilterPlugin extends BasePlugin {\n pop?: HTMLRevogrFilterPanelElement;\n filterCollection: Record<ColumnProp, FilterCollectionItem> = {};\n multiFilterItems: MultiFilterItem = {};\n\n /**\n * Filter types\n * @example\n * {\n * string: ['contains', 'beginswith'],\n * number: ['eqN', 'neqN', 'gt']\n * }\n */\n filterByType: Record<string, string[]> = { ...filterTypes };\n filterNameIndexByType: Record<string, string> = {\n ...filterNames,\n };\n filterFunctionsIndexedByType: Record<string, LogicFunction> = {\n ...filterCoreFunctionsIndexedByType,\n };\n\n filterProp = FILTER_PROP;\n\n extraHyperContent?: (data: ShowData) => VNode | VNode[];\n\n constructor(\n public revogrid: HTMLRevoGridElement,\n providers: PluginProviders,\n public config?: ColumnFilterConfig,\n ) {\n super(revogrid, providers);\n if (config) {\n this.initConfig(config);\n }\n\n const existingNodes = this.revogrid.registerVNode.filter(\n n => typeof n === 'object' && n.$tag$ !== FILTE_PANEL,\n );\n this.revogrid.registerVNode = [\n ...existingNodes,\n <revogr-filter-panel\n filterNames={this.filterNameIndexByType}\n filterEntities={this.filterFunctionsIndexedByType}\n filterCaptions={config?.localization?.captions}\n onFilterChange={e => this.onFilterChange(e.detail)}\n onResetChange={e => this.onFilterReset(e.detail)}\n disableDynamicFiltering={config?.disableDynamicFiltering}\n closeOnOutsideClick={config?.closeFilterPanelOnOutsideClick}\n ref={e => (this.pop = e)}\n >\n {' '}\n {this.extraContent()}\n </revogr-filter-panel>,\n ];\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 if (Object.keys(this.multiFilterItems).length === 0) {\n return;\n }\n await this.runFiltering(this.multiFilterItems);\n };\n this.addEventListener('headerclick', e => this.headerclick(e));\n this.addEventListener(\n FILTER_CONFIG_CHANGED_EVENT,\n ({ detail }: CustomEvent<ColumnFilterConfig | boolean>) => {\n if (\n !detail ||\n (typeof detail === 'object' &&\n (!detail.multiFilterItems ||\n !Object.keys(detail.multiFilterItems).length))\n ) {\n this.clearFiltering();\n return;\n }\n if (typeof detail === 'object') {\n this.initConfig(detail);\n }\n aftersourceset();\n },\n );\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('filter', ({ detail }: CustomEvent) =>\n this.onFilterChange(detail),\n );\n }\n\n beforeshow(_: ShowData) {\n // used as hook for filter panel\n }\n\n extraContent(): any {\n return null;\n }\n\n initConfig(config: ColumnFilterConfig) {\n if (config.multiFilterItems) {\n this.multiFilterItems = { ...config.multiFilterItems };\n } else {\n this.multiFilterItems = {};\n }\n // Add custom filters\n if (config.customFilters) {\n for (let customFilterType in config.customFilters) {\n const cFilter = config.customFilters[customFilterType];\n if (!this.filterByType[cFilter.columnFilterType]) {\n this.filterByType[cFilter.columnFilterType] = [];\n }\n // add custom filter type\n this.filterByType[cFilter.columnFilterType].push(customFilterType);\n // add custom filter function\n this.filterFunctionsIndexedByType[customFilterType] = cFilter.func;\n // add custom filter name\n this.filterNameIndexByType[customFilterType] = cFilter.name;\n }\n }\n\n // Add filterProp if provided in config\n if (config.filterProp) {\n this.filterProp = config.filterProp;\n }\n\n /**\n * which filters has to be included/excluded\n * convenient way to exclude system filters\n */\n const cfgInlcude = config.include;\n if (cfgInlcude) {\n const filters: Record<string, string[]> = {};\n\n for (let t in this.filterByType) {\n // validate filters, if appropriate function present\n const newTypes = this.filterByType[t].filter(\n f => cfgInlcude.indexOf(f) > -1,\n );\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.filterByType = filters;\n }\n }\n\n if (config.collection) {\n const filtersWithFilterFunctionPresent = Object.entries(\n config.collection,\n ).filter(([, item]) => this.filterFunctionsIndexedByType[item.type]);\n this.filterCollection = Object.fromEntries(\n filtersWithFilterFunctionPresent,\n );\n } else {\n this.filterCollection = {};\n }\n\n if (config.localization) {\n if (config.localization.filterNames) {\n Object.entries(config.localization.filterNames).forEach(([k, v]) => {\n if (this.filterNameIndexByType[k] != void 0) {\n this.filterNameIndexByType[k] = v;\n }\n });\n }\n }\n }\n\n async headerclick(e: CustomEvent<ColumnRegular>) {\n const el = e.detail.originalEvent?.target as HTMLElement;\n if (!isFilterBtn(el)) {\n return;\n }\n e.preventDefault();\n if (!this.pop) {\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\n const data: ShowData = {\n ...e.detail,\n ...this.filterCollection[prop],\n x: buttonPos.x - gridPos.x,\n y: buttonPos.y - gridPos.y + buttonPos.height,\n autoCorrect: true,\n filterTypes: this.getColumnFilter(e.detail.filter),\n filterItems: this.multiFilterItems,\n extraContent: this.extraHyperContent,\n };\n this.beforeshow?.(data);\n this.pop.show(data);\n }\n\n getColumnFilter(\n type?: boolean | string | string[],\n ): Record<string, string[]> {\n let filterType = 'string';\n if (!type) {\n return { [filterType]: this.filterByType[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.filterByType[multiType];\n }\n return r;\n }, {});\n }\n return { [filterType]: this.filterByType[filterType] };\n }\n\n isValidType(type: any): type is string {\n return !!(typeof type === 'string' && this.filterByType[type]);\n }\n\n /**\n * Called on internal component change\n */\n async onFilterChange(filterItems: MultiFilterItem) {\n // store the filter items\n this.multiFilterItems = filterItems;\n\n // run the filtering when the items change\n this.runFiltering(this.multiFilterItems);\n }\n\n onFilterReset(prop?: ColumnProp) {\n delete this.multiFilterItems[prop ?? ''];\n this.onFilterChange(this.multiFilterItems);\n }\n\n /**\n * Triggers grid filtering\n */\n async doFiltering(\n collection: Record<ColumnProp, FilterCollectionItem>,\n source: DataType[],\n columns: ColumnRegular[],\n filterItems: MultiFilterItem,\n ) {\n const columnsToUpdate: ColumnRegular[] = [];\n\n /**\n * Loop through the columns and update the columns that need to be updated with the `hasFilter` property.\n */\n const columnByProp: Record<string, ColumnRegular> = {};\n columns.forEach(rgCol => {\n const column = { ...rgCol };\n const hasFilter = filterItems[column.prop];\n columnByProp[column.prop] = column;\n\n /**\n * If the column has a filter and it's not already marked as filtered, update the column.\n */\n if (column[this.filterProp] && !hasFilter) {\n delete column[this.filterProp];\n columnsToUpdate.push(column);\n }\n\n /**\n * If the column does not have a filter and it's marked as filtered, update the column.\n */\n\n if (!column[this.filterProp] && hasFilter) {\n columnsToUpdate.push(column);\n column[this.filterProp] = true;\n }\n });\n const itemsToTrim = this.getRowFilter(source, filterItems, columnByProp);\n // check is filter event prevented\n const { defaultPrevented, detail } = this.emit('beforefiltertrimmed', {\n collection,\n itemsToFilter: itemsToTrim,\n source,\n filterItems,\n });\n if (defaultPrevented) {\n return;\n }\n\n this.providers.data.setTrimmed({ [FILTER_TRIMMED_TYPE]: detail.itemsToFilter });\n\n // applies the hasFilter to the columns to show filter icon\n this.providers.column.updateColumns(columnsToUpdate);\n this.emit('afterfilterapply', {\n multiFilterItems: filterItems,\n source,\n collection,\n });\n }\n\n async clearFiltering() {\n this.multiFilterItems = {};\n await this.runFiltering(this.multiFilterItems);\n }\n\n async runFiltering(multiFilterItems: MultiFilterItem) {\n const collection: Record<ColumnProp, FilterCollectionItem> = {};\n\n // handle old filterCollection to return the first filter only (if any) from multiFilterItems\n const filterProps = Object.keys(multiFilterItems);\n\n for (const prop of filterProps) {\n // check if we have any filter for a column\n if (multiFilterItems[prop].length > 0) {\n const firstFilterItem = multiFilterItems[prop][0];\n collection[prop] = {\n type: firstFilterItem.type,\n value: firstFilterItem.value,\n };\n }\n }\n\n this.filterCollection = collection;\n const columns = this.providers.column.getColumns();\n // run the filtering on the main source only\n const source = this.providers.data.stores['rgRow'].store.get('source');\n\n const { defaultPrevented, detail } = this.emit('beforefilterapply', {\n collection: this.filterCollection,\n source,\n columns,\n filterItems: this.multiFilterItems,\n });\n if (defaultPrevented) {\n return;\n }\n this.doFiltering(\n detail.collection,\n detail.source,\n detail.columns,\n detail.filterItems,\n );\n }\n\n /**\n * Get trimmed rows based on filter\n */\n getRowFilter(\n rows: DataType[],\n filterItems: MultiFilterItem,\n columnByProp: Record<string, ColumnRegular>,\n ): TrimmedEntity {\n const propKeys = Object.keys(filterItems);\n\n const trimmed: TrimmedEntity = {};\n\n // each rows\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n // check filter by column properties\n for (const prop of propKeys) {\n // add to the list of removed/trimmed rows of filter condition is satisfied\n if (\n this.shouldTrimRow(\n filterItems[prop],\n prop,\n columnByProp[prop],\n rows[rowIndex],\n )\n ) {\n trimmed[rowIndex] = true;\n }\n } // end of for-of propKeys\n }\n return trimmed;\n }\n\n private shouldTrimRow(\n propFilters: FilterData[],\n prop: ColumnProp,\n column?: ColumnRegular,\n model: DataType = {},\n ) {\n // reset the count of satisfied filters\n let propFilterSatisfiedCount = 0;\n // reset the array of last filter results\n let lastFilterResults: boolean[] = [];\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 filterFunc = this.filterFunctionsIndexedByType[filterData.type];\n\n // THE MAGIC OF FILTERING IS HERE\n // If there is no column but user wants to filter by a property\n const value = column ? getCellDataParsed(model, column) : model[prop];\n // OR relation\n if (filterData.relation === 'or') {\n // reset the array of last filter results\n lastFilterResults = [];\n // if the filter is satisfied, continue to the next filter\n if (filterFunc(value, filterData.value)) {\n continue;\n }\n // if the filter is not satisfied, count it\n propFilterSatisfiedCount++;\n\n // AND relation\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(!filterFunc(value, filterData.value));\n\n if (isFinalAndFilter(filterIndex, propFilters)) {\n // let's just continue since for sure propFilterSatisfiedCount cannot be satisfied\n if (allAndConditionsSatisfied(lastFilterResults)) {\n // reset the array of last filter results\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 // reset the array of last filter results\n lastFilterResults = [];\n }\n }\n } // end of propFilters forEach\n return propFilterSatisfiedCount === propFilters.length;\n }\n}\n/**\n * Checks if the current filter is the final one in an AND sequence.\n * @param index - Current filter index in the list.\n * @param filters - Array of filters for the property.\n * @returns True if this is the last AND condition; false otherwise.\n */\nfunction isFinalAndFilter(index: number, filters: MultiFilterItem[string]): boolean {\n const nextFilter = filters[index + 1]; // Get the next filter in the list.\n // Return true if there's no next filter or if the next filter defined and is not part of the AND sequence.\n return !nextFilter || (!!nextFilter.relation && nextFilter.relation !== 'and');\n}\n\n/**\n * Determines if all conditions in an AND sequence are satisfied.\n * @param pendingResults - An array of results from the AND conditions.\n * @returns True if all conditions are satisfied; false otherwise.\n */\nfunction allAndConditionsSatisfied(pendingResults: boolean[]): boolean {\n // Check if there are any failed conditions in the pending results.\n return !pendingResults.includes(true);\n}\n"]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
revogr-filter-panel {
|
|
2
|
+
position: absolute;
|
|
3
|
+
display: block;
|
|
4
|
+
top: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
z-index: 100;
|
|
7
|
+
max-height: calc(100% - 80px);
|
|
8
|
+
min-width: 250px;
|
|
9
|
+
overflow: auto;
|
|
10
|
+
opacity: 1;
|
|
11
|
+
transform: none;
|
|
12
|
+
background-color: var(--revo-grid-filter-panel-bg, #fff);
|
|
13
|
+
border: 1px solid var(--revo-grid-filter-panel-border, #cecece);
|
|
14
|
+
transform-origin: 62px 0px;
|
|
15
|
+
box-shadow: 0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));
|
|
16
|
+
padding: 10px;
|
|
17
|
+
border-radius: 8px;
|
|
18
|
+
min-width: 220px;
|
|
19
|
+
text-align: left;
|
|
20
|
+
}
|
|
21
|
+
revogr-filter-panel .filter-holder > div {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
}
|
|
25
|
+
revogr-filter-panel label {
|
|
26
|
+
font-size: 13px;
|
|
27
|
+
display: block;
|
|
28
|
+
padding: 8px 0;
|
|
29
|
+
}
|
|
30
|
+
revogr-filter-panel select {
|
|
31
|
+
width: 100%;
|
|
32
|
+
}
|
|
33
|
+
revogr-filter-panel input[type=text] {
|
|
34
|
+
border: 0;
|
|
35
|
+
min-height: 34px;
|
|
36
|
+
margin: 5px 0;
|
|
37
|
+
background: var(--revo-grid-filter-panel-input-bg, #f3f3f3);
|
|
38
|
+
border-radius: 5px;
|
|
39
|
+
padding: 0 10px;
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
width: 100%;
|
|
42
|
+
}
|
|
43
|
+
revogr-filter-panel button {
|
|
44
|
+
margin-top: 10px;
|
|
45
|
+
margin-right: 5px;
|
|
46
|
+
}
|
|
47
|
+
revogr-filter-panel .filter-actions {
|
|
48
|
+
text-align: right;
|
|
49
|
+
margin-right: -5px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.rgHeaderCell:hover .rv-filter {
|
|
53
|
+
transition: opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
|
54
|
+
}
|
|
55
|
+
.rgHeaderCell:hover .rv-filter,
|
|
56
|
+
.rgHeaderCell .rv-filter.active {
|
|
57
|
+
opacity: 1;
|
|
58
|
+
}
|
|
59
|
+
.rgHeaderCell .rv-filter {
|
|
60
|
+
height: 24px;
|
|
61
|
+
width: 24px;
|
|
62
|
+
background: none;
|
|
63
|
+
border: 0;
|
|
64
|
+
opacity: 0;
|
|
65
|
+
visibility: visible;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
border-radius: 4px;
|
|
68
|
+
}
|
|
69
|
+
.rgHeaderCell .rv-filter.active {
|
|
70
|
+
color: #10224a;
|
|
71
|
+
}
|
|
72
|
+
.rgHeaderCell .rv-filter .filter-img {
|
|
73
|
+
color: gray;
|
|
74
|
+
width: 11px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.select-css {
|
|
78
|
+
display: block;
|
|
79
|
+
font-family: sans-serif;
|
|
80
|
+
line-height: 1.3;
|
|
81
|
+
padding: 0.6em 1.4em 0.5em 0.8em;
|
|
82
|
+
width: 100%;
|
|
83
|
+
max-width: 100%; /* useful when width is set to anything other than 100% */
|
|
84
|
+
box-sizing: border-box;
|
|
85
|
+
margin: 0;
|
|
86
|
+
border: 1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);
|
|
87
|
+
box-shadow: transparent;
|
|
88
|
+
border-radius: 0.5em;
|
|
89
|
+
appearance: none;
|
|
90
|
+
background-color: var(--revo-grid-filter-panel-input-bg, #f3f3f3);
|
|
91
|
+
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
|
|
92
|
+
background-repeat: no-repeat, repeat;
|
|
93
|
+
/* arrow icon position (1em from the right, 50% vertical) , then gradient position*/
|
|
94
|
+
background-position: right 0.7em top 50%, 0 0;
|
|
95
|
+
/* icon size, then gradient */
|
|
96
|
+
background-size: 0.65em auto, 100%;
|
|
97
|
+
/* Hide arrow icon in IE browsers */
|
|
98
|
+
/* Hover style */
|
|
99
|
+
/* Focus style */
|
|
100
|
+
/* Set options to normal weight */
|
|
101
|
+
/* Disabled styles */
|
|
102
|
+
}
|
|
103
|
+
.select-css::-ms-expand {
|
|
104
|
+
display: none;
|
|
105
|
+
}
|
|
106
|
+
.select-css:hover {
|
|
107
|
+
border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);
|
|
108
|
+
}
|
|
109
|
+
.select-css:focus {
|
|
110
|
+
border-color: var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);
|
|
111
|
+
box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);
|
|
112
|
+
box-shadow: 0 0 0 3px -moz-mac-focusring;
|
|
113
|
+
outline: none;
|
|
114
|
+
}
|
|
115
|
+
.select-css option {
|
|
116
|
+
font-weight: normal;
|
|
117
|
+
}
|
|
118
|
+
.select-css:disabled, .select-css[aria-disabled=true] {
|
|
119
|
+
color: gray;
|
|
120
|
+
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);
|
|
121
|
+
}
|
|
122
|
+
.select-css:disabled:hover, .select-css[aria-disabled=true] {
|
|
123
|
+
border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.multi-filter-list {
|
|
127
|
+
margin-top: 5px;
|
|
128
|
+
margin-bottom: 5px;
|
|
129
|
+
}
|
|
130
|
+
.multi-filter-list div {
|
|
131
|
+
white-space: nowrap;
|
|
132
|
+
}
|
|
133
|
+
.multi-filter-list .multi-filter-list-action {
|
|
134
|
+
display: flex;
|
|
135
|
+
justify-content: space-between;
|
|
136
|
+
align-items: center;
|
|
137
|
+
}
|
|
138
|
+
.multi-filter-list .and-or-button {
|
|
139
|
+
margin: 0 0 0 10px;
|
|
140
|
+
min-width: 58px;
|
|
141
|
+
cursor: pointer;
|
|
142
|
+
}
|
|
143
|
+
.multi-filter-list .trash-button {
|
|
144
|
+
margin: 0 0 -2px 6px;
|
|
145
|
+
cursor: pointer;
|
|
146
|
+
width: 22px;
|
|
147
|
+
height: 100%;
|
|
148
|
+
font-size: 16px;
|
|
149
|
+
}
|
|
150
|
+
.multi-filter-list .trash-button .trash-img {
|
|
151
|
+
width: 1em;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.add-filter-divider {
|
|
155
|
+
display: block;
|
|
156
|
+
margin: 0 -10px 10px -10px;
|
|
157
|
+
border-bottom: 1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);
|
|
158
|
+
height: 10px;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.select-input {
|
|
162
|
+
display: flex;
|
|
163
|
+
justify-content: space-between;
|
|
164
|
+
align-items: center;
|
|
165
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.types.js","sourceRoot":"","sources":["../../../src/plugins/filter/filter.types.ts"],"names":[],"mappings":"AAAA,kBAAkB;AA8DjB,CAAC;AAYD,CAAC;AA+ED,CAAC","sourcesContent":["// filter.types.ts\n\nimport type { ColumnProp, ColumnRegular, HyperFunc } from '@type';\nimport type { FilterType } from './filter.indexed';\nimport type { VNode } from '@stencil/core';\n\nexport type DateEnum =\n | 'today'\n | 'yesterday'\n | 'tomorrow'\n | 'thisweek'\n | 'lastweek'\n | 'nextweek'\n | 'thismonth'\n | 'lastmonth'\n | 'nextmonth'\n | 'thisyear'\n | 'lastyear'\n | 'nextyear';\n\nexport type ExtraField = 'input' | 'datepicker' | ((h: HyperFunc<VNode>, config: {\n value: any;\n filter: FilterItem;\n prop: ColumnProp;\n index: number;\n placeholder: string;\n onInput: (value: any) => void;\n onFocus: () => void;\n}) => VNode | VNode[]);\n\nexport type LogicFunctionParam = any;\nexport type LogicFunctionExtraParam =\n | 'select'\n | 'input'\n | 'multi'\n | 'datepicker'\n | number\n | Date\n | DateEnum\n | null\n | undefined\n | string\n | string[]\n | number[];\nexport interface LogicFunction<T1 = LogicFunctionParam, T2 = LogicFunctionExtraParam> {\n (value: T1, extra?: T2): boolean;\n extra?: ExtraField;\n}\n\nexport interface CustomFilter<T1 = LogicFunctionParam, T2 = LogicFunctionExtraParam> {\n /**\n * Property defined in column { filter: string/number/abstract/enum...etc }\n */\n columnFilterType: string;\n /**\n * Filter name\n */\n name: string;\n /**\n * Function to apply the filter\n */\n func: LogicFunction<T1, T2>;\n};\n\nexport interface FilterCaptions {\n title: string;\n save: string;\n reset: string;\n ok: string;\n cancel: string;\n add: string;\n placeholder: string;\n and: string;\n or: string;\n};\n\nexport interface FilterLocalization {\n captions: Partial<FilterCaptions>;\n filterNames: Record<FilterType, string>;\n}\n/**\n * Filter configuration for a column. This is the type of the `filter` property on a column.\n */\nexport interface ColumnFilterConfig {\n /**\n * The collection of filters to be applied to the column.\n */\n collection?: Record<ColumnProp, FilterCollectionItem>;\n /**\n * The names of the filters to be included in the filter dropdown.\n */\n include?: string[];\n /**\n * A mapping of custom filter names to custom filter functions.\n */\n customFilters?: Record<string, CustomFilter>;\n /**\n * The property on the column idintifying which has the filter is applied.\n */\n filterProp?: string;\n /**\n * The localization for the filter dropdown.\n */\n localization?: FilterLocalization;\n /**\n * Information about the multi-filter items.\n */\n multiFilterItems?: MultiFilterItem;\n /**\n * Whether or not to disable dynamic filtering. If set to true, the filter will only be applied\n * when the user clicks on the filter button.\n */\n disableDynamicFiltering?: boolean;\n\n /**\n * Whether or not to close the filter panel when clicking outside\n */\n closeFilterPanelOnOutsideClick?: boolean;\n}\n\nexport type FilterCollectionItem = {\n type: FilterType;\n value?: any;\n};\n\n\nexport interface FilterItem {\n // column id\n prop?: ColumnProp;\n // filter type definition\n type?: FilterType;\n // value for additional filtering, text value or some id\n value?: any;\n}\n\nexport interface FilterData {\n id: number;\n /**\n * Filter type\n */\n type: FilterType;\n /**\n * Filter value\n */\n value?: any;\n /**\n * Filter invisible in filter panel\n */\n hidden?: boolean;\n /**\n * Filter relation\n */\n relation?: 'and' | 'or';\n};\n\nexport interface MultiFilterItem {\n [prop: string]: FilterData[];\n}\n\nexport interface ShowData extends FilterItem, Omit<ColumnRegular, 'filter'> {\n x: number;\n y: number;\n /**\n * Auto correct position if it is out of document bounds\n */\n autoCorrect?: boolean;\n filterTypes?: Record<string, string[]>;\n filterItems?: MultiFilterItem;\n // hide default filters\n hideDefaultFilters?: boolean;\n // pass vnodes from plugins\n extraContent?: (data: ShowData) => any;\n}\n"]}
|