lsp-grid 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/README.md +34 -0
- package/dist/cjs/app-globals-Bfsg1bDt.js +16 -0
- package/dist/cjs/app-globals-Bfsg1bDt.js.map +1 -0
- package/dist/cjs/cell-renderer-DtuYp7tj.js +106 -0
- package/dist/cjs/cell-renderer-DtuYp7tj.js.map +1 -0
- package/dist/cjs/column.drag.plugin-BIptTmfz.js +2554 -0
- package/dist/cjs/column.drag.plugin-BIptTmfz.js.map +1 -0
- package/dist/cjs/column.service-BnVSAfcu.js +1391 -0
- package/dist/cjs/column.service-BnVSAfcu.js.map +1 -0
- package/dist/cjs/data.store-CrF4Nf9q.js +3615 -0
- package/dist/cjs/data.store-CrF4Nf9q.js.map +1 -0
- package/dist/cjs/debounce-DgeyTQM0.js +498 -0
- package/dist/cjs/debounce-DgeyTQM0.js.map +1 -0
- package/dist/cjs/edit.utils-Bw-E3Fj6.js +118 -0
- package/dist/cjs/edit.utils-Bw-E3Fj6.js.map +1 -0
- package/dist/cjs/events-D0Syn6ut.js +46 -0
- package/dist/cjs/events-D0Syn6ut.js.map +1 -0
- package/dist/cjs/filter.button-CaAAXq-6.js +49 -0
- package/dist/cjs/filter.button-CaAAXq-6.js.map +1 -0
- package/dist/cjs/header-cell-renderer-DhRJqZ-w.js +356 -0
- package/dist/cjs/header-cell-renderer-DhRJqZ-w.js.map +1 -0
- package/dist/cjs/index-VM40U6Gh.js +2549 -0
- package/dist/cjs/index-VM40U6Gh.js.map +1 -0
- package/dist/cjs/index.cjs.js +346 -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 +2187 -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-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +1463 -0
- package/dist/cjs/revogr-attribution_7.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 +456 -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 +948 -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-header-utils-DL640c7x.js +420 -0
- package/dist/cjs/row-header-utils-DL640c7x.js.map +1 -0
- package/dist/cjs/text-editor-DWChyeVV.js +81 -0
- package/dist/cjs/text-editor-DWChyeVV.js.map +1 -0
- package/dist/cjs/throttle-Bb1Bbfd1.js +278 -0
- package/dist/cjs/throttle-Bb1Bbfd1.js.map +1 -0
- package/dist/cjs/viewport.helpers-CI6uB8tu.js +59 -0
- package/dist/cjs/viewport.helpers-CI6uB8tu.js.map +1 -0
- package/dist/collection/collection-manifest.json +28 -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 +396 -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 +293 -0
- package/dist/collection/components/data/column.service.js.map +1 -0
- package/dist/collection/components/data/revogr-data-style.css +75 -0
- package/dist/collection/components/data/revogr-data.js +697 -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 +16 -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/header/header-cell-renderer.js +34 -0
- package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
- package/dist/collection/components/header/header-group-renderer.js +25 -0
- package/dist/collection/components/header/header-group-renderer.js.map +1 -0
- package/dist/collection/components/header/header-renderer.js +61 -0
- package/dist/collection/components/header/header-renderer.js.map +1 -0
- package/dist/collection/components/header/resizable.directive.js +237 -0
- package/dist/collection/components/header/resizable.directive.js.map +1 -0
- package/dist/collection/components/header/resizable.element.js +38 -0
- package/dist/collection/components/header/resizable.element.js.map +1 -0
- package/dist/collection/components/header/revogr-header-style.css +144 -0
- package/dist/collection/components/header/revogr-header.js +573 -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 +224 -0
- package/dist/collection/components/overlay/autofill.service.js.map +1 -0
- package/dist/collection/components/overlay/keyboard.service.js +158 -0
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +1515 -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 +567 -0
- package/dist/collection/components/revoGrid/revo-grid.js +3671 -0
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.helpers.js +49 -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 +90 -0
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
- package/dist/collection/components/revoGrid/viewport.service.js +237 -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 +69 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +601 -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 +295 -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 +400 -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.auto-size.plugin.js +225 -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/dispatcher.js +40 -0
- package/dist/collection/plugins/dispatcher.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/groupingRow/grouping.const.js +16 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +79 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +245 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +38 -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 +178 -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 +15 -0
- package/dist/collection/plugins/index.js.map +1 -0
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +175 -0
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
- package/dist/collection/plugins/moveColumn/order-column.handler.js +71 -0
- package/dist/collection/plugins/moveColumn/order-column.handler.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/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/services/cell.helpers.js +12 -0
- package/dist/collection/services/cell.helpers.js.map +1 -0
- package/dist/collection/services/column.data.provider.js +119 -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 +176 -0
- package/dist/collection/services/dimension.provider.js.map +1 -0
- package/dist/collection/services/local.scroll.service.js +124 -0
- package/dist/collection/services/local.scroll.service.js.map +1 -0
- package/dist/collection/services/local.scroll.timer.js +81 -0
- package/dist/collection/services/local.scroll.timer.js.map +1 -0
- package/dist/collection/services/selection.store.connector.js +307 -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 +144 -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 +35 -0
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
- package/dist/collection/store/dimension/dimension.store.js +109 -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 +53 -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 +151 -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 +118 -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 +2 -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/browser.js +7 -0
- package/dist/collection/utils/browser.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 +153 -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 +140 -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 +90 -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-FBz64o-g.js +14 -0
- package/dist/esm/app-globals-FBz64o-g.js.map +1 -0
- package/dist/esm/cell-renderer-Ca_PCGjJ.js +98 -0
- package/dist/esm/cell-renderer-Ca_PCGjJ.js.map +1 -0
- package/dist/esm/column.drag.plugin-BtuUyB-2.js +2528 -0
- package/dist/esm/column.drag.plugin-BtuUyB-2.js.map +1 -0
- package/dist/esm/column.service-CTqFIQUy.js +1343 -0
- package/dist/esm/column.service-CTqFIQUy.js.map +1 -0
- package/dist/esm/data.store-B-lvmoFH.js +3553 -0
- package/dist/esm/data.store-B-lvmoFH.js.map +1 -0
- package/dist/esm/debounce-DTUQ1fY7.js +488 -0
- package/dist/esm/debounce-DTUQ1fY7.js.map +1 -0
- package/dist/esm/edit.utils-CyCANCLB.js +103 -0
- package/dist/esm/edit.utils-CyCANCLB.js.map +1 -0
- package/dist/esm/events-CKtYJJSv.js +43 -0
- package/dist/esm/events-CKtYJJSv.js.map +1 -0
- package/dist/esm/filter.button-CjABZQgg.js +39 -0
- package/dist/esm/filter.button-CjABZQgg.js.map +1 -0
- package/dist/esm/header-cell-renderer-DnjpJuXq.js +351 -0
- package/dist/esm/header-cell-renderer-DnjpJuXq.js.map +1 -0
- package/dist/esm/index-BAoInZ4V.js +2519 -0
- package/dist/esm/index-BAoInZ4V.js.map +1 -0
- package/dist/esm/index.js +181 -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 +2185 -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-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
- package/dist/esm/revogr-attribution_7.entry.js +1455 -0
- package/dist/esm/revogr-attribution_7.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 +452 -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 +943 -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-header-utils-vnoLGj5A.js +407 -0
- package/dist/esm/row-header-utils-vnoLGj5A.js.map +1 -0
- package/dist/esm/text-editor-Cp7lwBZi.js +79 -0
- package/dist/esm/text-editor-Cp7lwBZi.js.map +1 -0
- package/dist/esm/throttle-DiUrHjcY.js +273 -0
- package/dist/esm/throttle-DiUrHjcY.js.map +1 -0
- package/dist/esm/viewport.helpers-Ch4AQMMg.js +53 -0
- package/dist/esm/viewport.helpers-Ch4AQMMg.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/revo-grid/app-globals-FBz64o-g.js +14 -0
- package/dist/revo-grid/app-globals-FBz64o-g.js.map +1 -0
- package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js +98 -0
- package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js.map +1 -0
- package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js +2528 -0
- package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js.map +1 -0
- package/dist/revo-grid/column.service-CTqFIQUy.js +1343 -0
- package/dist/revo-grid/column.service-CTqFIQUy.js.map +1 -0
- package/dist/revo-grid/data.store-B-lvmoFH.js +3553 -0
- package/dist/revo-grid/data.store-B-lvmoFH.js.map +1 -0
- package/dist/revo-grid/debounce-DTUQ1fY7.js +488 -0
- package/dist/revo-grid/debounce-DTUQ1fY7.js.map +1 -0
- package/dist/revo-grid/edit.utils-CyCANCLB.js +103 -0
- package/dist/revo-grid/edit.utils-CyCANCLB.js.map +1 -0
- package/dist/revo-grid/events-CKtYJJSv.js +43 -0
- package/dist/revo-grid/events-CKtYJJSv.js.map +1 -0
- package/dist/revo-grid/filter.button-CjABZQgg.js +39 -0
- package/dist/revo-grid/filter.button-CjABZQgg.js.map +1 -0
- package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js +351 -0
- package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js.map +1 -0
- package/dist/revo-grid/index-BAoInZ4V.js +2490 -0
- package/dist/revo-grid/index-BAoInZ4V.js.map +1 -0
- package/dist/revo-grid/index.esm.js +181 -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 +2185 -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-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
- package/dist/revo-grid/revogr-attribution_7.entry.js +1455 -0
- package/dist/revo-grid/revogr-attribution_7.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 +452 -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 +943 -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-header-utils-vnoLGj5A.js +407 -0
- package/dist/revo-grid/row-header-utils-vnoLGj5A.js.map +1 -0
- package/dist/revo-grid/text-editor-Cp7lwBZi.js +79 -0
- package/dist/revo-grid/text-editor-Cp7lwBZi.js.map +1 -0
- package/dist/revo-grid/throttle-DiUrHjcY.js +273 -0
- package/dist/revo-grid/throttle-DiUrHjcY.js.map +1 -0
- package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js +53 -0
- package/dist/revo-grid/viewport.helpers-Ch4AQMMg.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 +61 -0
- package/dist/types/components/data/revogr-data.d.ts +107 -0
- package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
- package/dist/types/components/data/row-renderer.d.ts +12 -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/header/header-cell-renderer.d.ts +9 -0
- package/dist/types/components/header/header-group-renderer.d.ts +15 -0
- package/dist/types/components/header/header-renderer.d.ts +16 -0
- package/dist/types/components/header/resizable.directive.d.ts +55 -0
- package/dist/types/components/header/resizable.element.d.ts +5 -0
- package/dist/types/components/header/revogr-header.d.ts +90 -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 +28 -0
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +278 -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 +686 -0
- package/dist/types/components/revoGrid/viewport.helpers.d.ts +39 -0
- package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
- package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -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 +117 -0
- package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
- package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +43 -0
- package/dist/types/components/selectionFocus/revogr-focus.d.ts +58 -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 +2583 -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.auto-size.plugin.d.ts +55 -0
- package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
- package/dist/types/plugins/dispatcher.d.ts +20 -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/groupingRow/grouping.const.d.ts +12 -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 +103 -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 +11 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +42 -0
- package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -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/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 +66 -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 +79 -0
- package/dist/types/services/viewport.provider.d.ts +7 -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 +74 -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 +9 -0
- package/dist/types/store/dimension/dimension.store.d.ts +21 -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 +6 -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 +26 -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 +768 -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/browser.d.ts +1 -0
- package/dist/types/utils/closest.polifill.d.ts +0 -0
- package/dist/types/utils/column.utils.d.ts +52 -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 +13 -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 +33890 -0
- package/hydrate/index.mjs +33882 -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 +101 -0
- package/react/dist/index.d.ts +6191 -0
- package/react/dist/react-datagrid.js +260 -0
- package/react/dist/react-datagrid.umd.cjs +272 -0
- package/standalone/column.service.js +1345 -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 +3099 -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/index.d.ts +68 -0
- package/standalone/index.js +217 -0
- package/standalone/index.js.map +1 -0
- package/standalone/index2.js +140 -0
- package/standalone/index2.js.map +1 -0
- package/standalone/local.scroll.timer.js +207 -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 +4884 -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 +164 -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 +378 -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 +334 -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 +112 -0
- package/standalone/revogr-focus2.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 +707 -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 +972 -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 +520 -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 +184 -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 +421 -0
- package/standalone/revogr-viewport-scroll2.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,452 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by LevelSkill.Pro
|
|
3
|
+
*/
|
|
4
|
+
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-BAoInZ4V.js';
|
|
5
|
+
import { P as EDIT_INPUT_WR, j as getItemByPosition, b as getSourceItem, Q as DRAGG_TEXT } from './data.store-B-lvmoFH.js';
|
|
6
|
+
import { T as TextEditor } from './text-editor-Cp7lwBZi.js';
|
|
7
|
+
import { n as isEditorCtrConstructible } from './edit.utils-CyCANCLB.js';
|
|
8
|
+
import { d as debounce } from './debounce-DTUQ1fY7.js';
|
|
9
|
+
|
|
10
|
+
const Clipboard = class {
|
|
11
|
+
constructor(hostRef) {
|
|
12
|
+
registerInstance(this, hostRef);
|
|
13
|
+
this.beforePaste = createEvent(this, "beforepaste", 7);
|
|
14
|
+
this.beforePasteApply = createEvent(this, "beforepasteapply", 7);
|
|
15
|
+
this.pasteRegion = createEvent(this, "pasteregion", 7);
|
|
16
|
+
this.afterPasteApply = createEvent(this, "afterpasteapply", 7);
|
|
17
|
+
this.beforeCut = createEvent(this, "beforecut", 7);
|
|
18
|
+
this.clearRegion = createEvent(this, "clearregion", 7);
|
|
19
|
+
this.beforeCopy = createEvent(this, "beforecopy", 7);
|
|
20
|
+
this.beforeCopyApply = createEvent(this, "beforecopyapply", 7);
|
|
21
|
+
this.copyRegion = createEvent(this, "copyregion", 7);
|
|
22
|
+
}
|
|
23
|
+
onPaste(e) {
|
|
24
|
+
// if readonly do nothing
|
|
25
|
+
if (this.readonly) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const clipboardData = this.getData(e);
|
|
29
|
+
const isHTML = ((clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.types.indexOf('text/html')) || -1) > -1;
|
|
30
|
+
const data = (isHTML
|
|
31
|
+
? clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text/html')
|
|
32
|
+
: clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text')) || '';
|
|
33
|
+
const dataText = (clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text')) || '';
|
|
34
|
+
const beforePaste = this.beforePaste.emit({
|
|
35
|
+
raw: data,
|
|
36
|
+
dataText,
|
|
37
|
+
isHTML,
|
|
38
|
+
event: e,
|
|
39
|
+
});
|
|
40
|
+
if (beforePaste.defaultPrevented) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
let parsedData;
|
|
44
|
+
// if html, then search for table if no table fallback to regular text parsing
|
|
45
|
+
if (beforePaste.detail.isHTML) {
|
|
46
|
+
const table = this.htmlParse(beforePaste.detail.raw);
|
|
47
|
+
// fallback to text if not possible to parse as html
|
|
48
|
+
parsedData = table || this.textParse(dataText || '');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
parsedData = this.textParse(beforePaste.detail.raw);
|
|
52
|
+
}
|
|
53
|
+
const beforePasteApply = this.beforePasteApply.emit({
|
|
54
|
+
raw: data,
|
|
55
|
+
parsed: parsedData,
|
|
56
|
+
event: e,
|
|
57
|
+
});
|
|
58
|
+
if (beforePasteApply.defaultPrevented) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.pasteRegion.emit(beforePasteApply.detail.parsed);
|
|
62
|
+
// post paste action
|
|
63
|
+
const afterPasteApply = this.afterPasteApply.emit({
|
|
64
|
+
raw: data,
|
|
65
|
+
parsed: parsedData,
|
|
66
|
+
event: e,
|
|
67
|
+
});
|
|
68
|
+
// keep default behavior if needed
|
|
69
|
+
if (afterPasteApply.defaultPrevented) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Listen to copy event and emit copy region event
|
|
76
|
+
*/
|
|
77
|
+
copyStarted(e) {
|
|
78
|
+
const beforeCopy = this.beforeCopy.emit({
|
|
79
|
+
event: e,
|
|
80
|
+
});
|
|
81
|
+
if (beforeCopy.defaultPrevented) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const data = this.getData(beforeCopy.detail.event);
|
|
85
|
+
this.copyRegion.emit(data || undefined);
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Listen to copy event and emit copy region event
|
|
90
|
+
*/
|
|
91
|
+
cutStarted(e) {
|
|
92
|
+
const beforeCut = this.beforeCut.emit({
|
|
93
|
+
event: e,
|
|
94
|
+
});
|
|
95
|
+
if (beforeCut.defaultPrevented) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const data = this.getData(beforeCut.detail.event);
|
|
99
|
+
this.copyStarted(e);
|
|
100
|
+
// if readonly do nothing
|
|
101
|
+
if (this.readonly) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.clearRegion.emit(data || undefined);
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
}
|
|
107
|
+
async doCopy(e, data) {
|
|
108
|
+
const beforeCopyApply = this.beforeCopyApply.emit({
|
|
109
|
+
event: e,
|
|
110
|
+
data,
|
|
111
|
+
});
|
|
112
|
+
if (beforeCopyApply.defaultPrevented) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const parsed = data ? this.parserCopy(data) : '';
|
|
116
|
+
await navigator.clipboard.writeText(parsed);
|
|
117
|
+
// e.setData('text/plain', parsed);
|
|
118
|
+
}
|
|
119
|
+
parserCopy(data) {
|
|
120
|
+
return data.map(rgRow => rgRow.join('\t')).join('\n');
|
|
121
|
+
}
|
|
122
|
+
textParse(data) {
|
|
123
|
+
const result = [];
|
|
124
|
+
const rows = data.split(/\r\n|\n|\r/);
|
|
125
|
+
for (let y in rows) {
|
|
126
|
+
result.push(rows[y].split('\t'));
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
htmlParse(data) {
|
|
131
|
+
const result = [];
|
|
132
|
+
const fragment = document.createRange().createContextualFragment(data);
|
|
133
|
+
const table = fragment.querySelector('table');
|
|
134
|
+
if (!table) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
for (const rgRow of Array.from(table.rows)) {
|
|
138
|
+
result.push(Array.from(rgRow.cells).map(cell => cell.innerText));
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
getData(e) {
|
|
143
|
+
return (e.clipboardData ||
|
|
144
|
+
(window === null || window === void 0 ? void 0 : window.clipboardData));
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const revogrEditStyleCss = "revogr-edit{display:block;position:absolute;background-color:#fff}revogr-edit input{height:100%;width:100%;box-sizing:border-box}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}";
|
|
149
|
+
|
|
150
|
+
const RevoEdit = class {
|
|
151
|
+
constructor(hostRef) {
|
|
152
|
+
registerInstance(this, hostRef);
|
|
153
|
+
this.cellEdit = createEvent(this, "celleditinit", 7);
|
|
154
|
+
this.closeEdit = createEvent(this, "closeedit", 7);
|
|
155
|
+
/**
|
|
156
|
+
* Save on editor close. Defines if data should be saved on editor close.
|
|
157
|
+
*/
|
|
158
|
+
this.saveOnClose = false;
|
|
159
|
+
this.currentEditor = null;
|
|
160
|
+
this.preventSaveOnClose = false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Cancel pending changes flag. Editor will be closed without autosave.
|
|
164
|
+
*/
|
|
165
|
+
async cancelChanges() {
|
|
166
|
+
this.preventSaveOnClose = true;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Before editor got disconnected.
|
|
170
|
+
* Can be triggered multiple times before actual disconnect.
|
|
171
|
+
*/
|
|
172
|
+
async beforeDisconnect() {
|
|
173
|
+
var _a, _b;
|
|
174
|
+
(_b = (_a = this.currentEditor) === null || _a === void 0 ? void 0 : _a.beforeDisconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
175
|
+
}
|
|
176
|
+
onAutoSave() {
|
|
177
|
+
var _a, _b, _c;
|
|
178
|
+
this.preventSaveOnClose = true;
|
|
179
|
+
const val = (_b = (_a = this.currentEditor) === null || _a === void 0 ? void 0 : _a.getValue) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
180
|
+
// For Editor plugin internal usage.
|
|
181
|
+
// When you want to prevent save and use custom save of your own.
|
|
182
|
+
if ((_c = this.currentEditor) === null || _c === void 0 ? void 0 : _c.beforeAutoSave) {
|
|
183
|
+
const canSave = this.currentEditor.beforeAutoSave(val);
|
|
184
|
+
if (canSave === false) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
this.onSave(val, true);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Callback triggered when cell editor saved.
|
|
192
|
+
* Closes editor when called.
|
|
193
|
+
* @param preventFocus - if true, editor will not be closed & next cell will not be focused.
|
|
194
|
+
*/
|
|
195
|
+
onSave(val, preventFocus) {
|
|
196
|
+
this.preventSaveOnClose = true;
|
|
197
|
+
if (this.editCell) {
|
|
198
|
+
this.cellEdit.emit({
|
|
199
|
+
rgCol: this.editCell.x,
|
|
200
|
+
rgRow: this.editCell.y,
|
|
201
|
+
type: this.editCell.type,
|
|
202
|
+
prop: this.editCell.prop,
|
|
203
|
+
val,
|
|
204
|
+
preventFocus,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
componentWillRender() {
|
|
209
|
+
// Active editor present and not yet closed.
|
|
210
|
+
if (this.currentEditor || !this.column) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
this.preventSaveOnClose = false;
|
|
214
|
+
// Custom editor usage.
|
|
215
|
+
// Start with TextEditor (editors/text.tsx) for Custom editor.
|
|
216
|
+
// It can be class or function
|
|
217
|
+
if (this.editor) {
|
|
218
|
+
// if editor is constructible
|
|
219
|
+
if (isEditorCtrConstructible(this.editor)) {
|
|
220
|
+
this.currentEditor = new this.editor(this.column,
|
|
221
|
+
// save callback
|
|
222
|
+
(e, preventFocus) => {
|
|
223
|
+
this.onSave(e, preventFocus);
|
|
224
|
+
},
|
|
225
|
+
// cancel callback
|
|
226
|
+
focusNext => {
|
|
227
|
+
this.preventSaveOnClose = true;
|
|
228
|
+
this.closeEdit.emit(focusNext);
|
|
229
|
+
});
|
|
230
|
+
// if editor is function
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.currentEditor = this.editor(this.column,
|
|
234
|
+
// save callback
|
|
235
|
+
(e, preventFocus) => {
|
|
236
|
+
this.onSave(e, preventFocus);
|
|
237
|
+
},
|
|
238
|
+
// cancel callback
|
|
239
|
+
focusNext => {
|
|
240
|
+
this.preventSaveOnClose = true;
|
|
241
|
+
this.closeEdit.emit(focusNext);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
// Default text editor usage
|
|
247
|
+
this.currentEditor = new TextEditor(this.column, (e, preventFocus) => this.onSave(e, preventFocus));
|
|
248
|
+
}
|
|
249
|
+
componentDidRender() {
|
|
250
|
+
var _a, _b;
|
|
251
|
+
if (!this.currentEditor) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
this.currentEditor.element = this.element.firstElementChild;
|
|
255
|
+
(_b = (_a = this.currentEditor).componentDidRender) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
256
|
+
}
|
|
257
|
+
disconnectedCallback() {
|
|
258
|
+
var _a, _b;
|
|
259
|
+
if (this.saveOnClose) {
|
|
260
|
+
// Can not be cancelled by `preventSaveOnClose` prop.
|
|
261
|
+
// Editor requires `getValue` to be able to save.
|
|
262
|
+
if (!this.preventSaveOnClose) {
|
|
263
|
+
this.onAutoSave();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
this.preventSaveOnClose = false;
|
|
267
|
+
if (!this.currentEditor) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
(_b = (_a = this.currentEditor).disconnectedCallback) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
271
|
+
this.currentEditor.element = null;
|
|
272
|
+
this.currentEditor = null;
|
|
273
|
+
}
|
|
274
|
+
render() {
|
|
275
|
+
if (this.currentEditor) {
|
|
276
|
+
this.currentEditor.editCell = this.editCell;
|
|
277
|
+
return (h(Host, { class: EDIT_INPUT_WR }, this.currentEditor.render(h, this.additionalData)));
|
|
278
|
+
}
|
|
279
|
+
return '';
|
|
280
|
+
}
|
|
281
|
+
get element() { return getElement(this); }
|
|
282
|
+
};
|
|
283
|
+
RevoEdit.style = revogrEditStyleCss;
|
|
284
|
+
|
|
285
|
+
class RowOrderService {
|
|
286
|
+
constructor(config) {
|
|
287
|
+
this.config = config;
|
|
288
|
+
this.currentCell = null;
|
|
289
|
+
this.previousRow = null;
|
|
290
|
+
}
|
|
291
|
+
/** Drag finished, calculate and apply changes */
|
|
292
|
+
endOrder(e, data) {
|
|
293
|
+
if (this.currentCell === null) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const newRow = this.getCell(e, data);
|
|
297
|
+
// if position changed
|
|
298
|
+
if (newRow.y !== this.currentCell.y) {
|
|
299
|
+
// rgRow dragged out table
|
|
300
|
+
if (newRow.y < 0) {
|
|
301
|
+
newRow.y = 0;
|
|
302
|
+
}
|
|
303
|
+
// rgRow dragged to the top
|
|
304
|
+
else if (newRow.y < this.currentCell.y) {
|
|
305
|
+
newRow.y++;
|
|
306
|
+
}
|
|
307
|
+
this.config.positionChanged(this.currentCell.y, newRow.y);
|
|
308
|
+
}
|
|
309
|
+
this.clear();
|
|
310
|
+
}
|
|
311
|
+
/** Drag started, reserve initial cell for farther use */
|
|
312
|
+
startOrder(e, data) {
|
|
313
|
+
this.currentCell = this.getCell(e, data);
|
|
314
|
+
return this.currentCell;
|
|
315
|
+
}
|
|
316
|
+
move(y, data) {
|
|
317
|
+
const rgRow = this.getRow(y, data);
|
|
318
|
+
// if rgRow same as previous or below range (-1 = 0) do nothing
|
|
319
|
+
if (this.previousRow === rgRow.itemIndex || rgRow.itemIndex < -1) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
this.previousRow = rgRow.itemIndex;
|
|
323
|
+
return rgRow;
|
|
324
|
+
}
|
|
325
|
+
/** Drag stopped, probably cursor outside of document area */
|
|
326
|
+
clear() {
|
|
327
|
+
this.currentCell = null;
|
|
328
|
+
this.previousRow = null;
|
|
329
|
+
}
|
|
330
|
+
/** Calculate cell based on x, y position */
|
|
331
|
+
getRow(y, { el, rows }) {
|
|
332
|
+
const { top } = el.getBoundingClientRect();
|
|
333
|
+
const topRelative = y - top;
|
|
334
|
+
const rgRow = getItemByPosition(rows, topRelative);
|
|
335
|
+
const absolutePosition = {
|
|
336
|
+
itemIndex: rgRow.itemIndex,
|
|
337
|
+
start: rgRow.start + top,
|
|
338
|
+
end: rgRow.end + top,
|
|
339
|
+
};
|
|
340
|
+
return absolutePosition;
|
|
341
|
+
}
|
|
342
|
+
/** Calculate cell based on x, y position */
|
|
343
|
+
getCell({ x, y }, { el, rows, cols }) {
|
|
344
|
+
const { top, left } = el.getBoundingClientRect();
|
|
345
|
+
const topRelative = y - top;
|
|
346
|
+
const leftRelative = x - left;
|
|
347
|
+
const rgRow = getItemByPosition(rows, topRelative);
|
|
348
|
+
const rgCol = getItemByPosition(cols, leftRelative);
|
|
349
|
+
return { x: rgCol.itemIndex, y: rgRow.itemIndex };
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
const OrderEditor = class {
|
|
354
|
+
constructor(hostRef) {
|
|
355
|
+
registerInstance(this, hostRef);
|
|
356
|
+
this.rowDragStart = createEvent(this, "rowdragstartinit", 7);
|
|
357
|
+
this.rowDragEnd = createEvent(this, "rowdragendinit", 7);
|
|
358
|
+
this.rowDrag = createEvent(this, "rowdragmoveinit", 7);
|
|
359
|
+
this.rowMouseMove = createEvent(this, "rowdragmousemove", 7);
|
|
360
|
+
this.rowDropped = createEvent(this, "rowdropinit", 7);
|
|
361
|
+
this.rowOrderChange = createEvent(this, "roworderchange", 7);
|
|
362
|
+
this.events = [];
|
|
363
|
+
this.rowMoveFunc = debounce((y) => {
|
|
364
|
+
const rgRow = this.rowOrderService.move(y, this.getData());
|
|
365
|
+
if (rgRow !== null) {
|
|
366
|
+
this.rowDrag.emit(Object.assign(Object.assign({}, rgRow), { rowType: this.rowType }));
|
|
367
|
+
}
|
|
368
|
+
}, 5);
|
|
369
|
+
}
|
|
370
|
+
// #endregion
|
|
371
|
+
// #region Methods
|
|
372
|
+
async dragStart(e) {
|
|
373
|
+
e.originalEvent.preventDefault();
|
|
374
|
+
// extra check if previous ended
|
|
375
|
+
if (this.events.length) {
|
|
376
|
+
this.clearOrder();
|
|
377
|
+
}
|
|
378
|
+
const data = this.getData();
|
|
379
|
+
const cell = this.rowOrderService.startOrder(e.originalEvent, data);
|
|
380
|
+
const pos = this.rowOrderService.getRow(e.originalEvent.y, data);
|
|
381
|
+
const dragStartEvent = this.rowDragStart.emit({
|
|
382
|
+
cell,
|
|
383
|
+
text: DRAGG_TEXT,
|
|
384
|
+
pos,
|
|
385
|
+
event: e.originalEvent,
|
|
386
|
+
rowType: this.rowType,
|
|
387
|
+
model: getSourceItem(this.dataStore, pos.itemIndex),
|
|
388
|
+
});
|
|
389
|
+
if (dragStartEvent.defaultPrevented) {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const moveMove = (e) => this.move(e);
|
|
393
|
+
const mouseUp = (e) => this.endOrder(e);
|
|
394
|
+
const mouseLeave = () => this.clearOrder();
|
|
395
|
+
this.events.push({
|
|
396
|
+
name: 'mousemove',
|
|
397
|
+
listener: moveMove,
|
|
398
|
+
}, {
|
|
399
|
+
name: 'mouseup',
|
|
400
|
+
listener: mouseUp,
|
|
401
|
+
}, {
|
|
402
|
+
name: 'mouseleave',
|
|
403
|
+
listener: mouseLeave,
|
|
404
|
+
});
|
|
405
|
+
document.addEventListener('mousemove', moveMove);
|
|
406
|
+
// Action finished inside of the document
|
|
407
|
+
document.addEventListener('mouseup', mouseUp);
|
|
408
|
+
document.addEventListener('mouseleave', mouseLeave);
|
|
409
|
+
}
|
|
410
|
+
async endOrder(e) {
|
|
411
|
+
this.rowOrderService.endOrder(e, this.getData());
|
|
412
|
+
this.clearOrder();
|
|
413
|
+
}
|
|
414
|
+
async clearOrder() {
|
|
415
|
+
this.rowOrderService.clear();
|
|
416
|
+
this.events.forEach(v => document.removeEventListener(v.name, v.listener));
|
|
417
|
+
this.events.length = 0;
|
|
418
|
+
this.rowDragEnd.emit({ rowType: this.rowType });
|
|
419
|
+
}
|
|
420
|
+
// #endregion
|
|
421
|
+
move({ x, y }) {
|
|
422
|
+
this.rowMouseMove.emit({ x, y, rowType: this.rowType });
|
|
423
|
+
this.rowMoveFunc(y);
|
|
424
|
+
}
|
|
425
|
+
connectedCallback() {
|
|
426
|
+
this.rowOrderService = new RowOrderService({
|
|
427
|
+
positionChanged: (from, to) => {
|
|
428
|
+
const dropEvent = this.rowDropped.emit({
|
|
429
|
+
from,
|
|
430
|
+
to,
|
|
431
|
+
rowType: this.rowType,
|
|
432
|
+
});
|
|
433
|
+
if (dropEvent.defaultPrevented) {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
this.rowOrderChange.emit(dropEvent.detail);
|
|
437
|
+
},
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
getData() {
|
|
441
|
+
return {
|
|
442
|
+
el: this.parent,
|
|
443
|
+
rows: this.dimensionRow.state,
|
|
444
|
+
cols: this.dimensionCol.state,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
export { Clipboard as revogr_clipboard, RevoEdit as revogr_edit, OrderEditor as revogr_order_editor };
|
|
450
|
+
//# sourceMappingURL=revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map
|
|
451
|
+
|
|
452
|
+
//# sourceMappingURL=revogr-clipboard_3.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js","mappings":"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","names":[],"sources":["src/components/clipboard/revogr-clipboard.tsx","src/components/editors/revogr-edit-style.scss?tag=revogr-edit","src/components/editors/revogr-edit.tsx","src/components/order/order-row.service.ts","src/components/order/revogr-order-editor.tsx"],"sourcesContent":["import {\r\n Component,\r\n Listen,\r\n Method,\r\n Event,\r\n EventEmitter,\r\n Prop,\r\n} from '@stencil/core';\r\nimport { DataFormat } from '@type';\r\n/**\r\n * This Clipboard provides functionality for handling clipboard events in a web application.\r\n */\r\n@Component({ tag: 'revogr-clipboard' })\r\nexport class Clipboard {\r\n /**\r\n * If readonly mode - disabled Paste event\r\n */\r\n @Prop() readonly: boolean;\r\n\r\n /**\r\n * Paste 1. Fired before paste applied to the grid\r\n * defaultPrevented - if true, paste will be canceled\r\n */\r\n @Event({ eventName: 'beforepaste' }) beforePaste: EventEmitter<{\r\n raw: string;\r\n isHTML: boolean;\r\n event: ClipboardEvent;\r\n dataText: string;\r\n }>;\r\n\r\n /**\r\n * Paste 2. Fired before paste applied to the grid and after data parsed\r\n */\r\n @Event({ eventName: 'beforepasteapply' })\r\n beforePasteApply: EventEmitter<{\r\n raw: string;\r\n parsed: string[][];\r\n event: ClipboardEvent;\r\n }>;\r\n\r\n /**\r\n * Paste 3. Internal method. When data region is ready pass it to the top.\r\n * @property {string[][]} data - data to paste\r\n * @property {boolean} defaultPrevented - if true, paste will be canceled\r\n */\r\n @Event({ eventName: 'pasteregion' })\r\n pasteRegion: EventEmitter<string[][]>;\r\n\r\n /**\r\n * Paste 4. Fired after paste applied to the grid\r\n * defaultPrevented - if true, paste will be canceled\r\n */\r\n @Event({ eventName: 'afterpasteapply' }) afterPasteApply: EventEmitter<{\r\n raw: string;\r\n parsed: string[][];\r\n event: ClipboardEvent;\r\n }>;\r\n\r\n /**\r\n * Cut 1. Fired before cut triggered\r\n * defaultPrevented - if true, cut will be canceled\r\n */\r\n @Event({ eventName: 'beforecut' }) beforeCut: EventEmitter<{\r\n event: ClipboardEvent;\r\n }>;\r\n\r\n /**\r\n * Cut 2. Clears region when cut is done\r\n */\r\n @Event({ eventName: 'clearregion' }) clearRegion: EventEmitter<DataTransfer>;\r\n\r\n /**\r\n * Copy 1. Fired before copy triggered\r\n * defaultPrevented - if true, copy will be canceled\r\n */\r\n @Event({ eventName: 'beforecopy' }) beforeCopy: EventEmitter<{\r\n event: ClipboardEvent;\r\n }>;\r\n\r\n /**\r\n * Copy Method 1. Fired before copy applied to the clipboard from outside.\r\n * defaultPrevented - if true, copy will be canceled\r\n */\r\n @Event({ eventName: 'beforecopyapply' }) beforeCopyApply: EventEmitter<{\r\n event: DataTransfer;\r\n data?: string[][];\r\n }>;\r\n\r\n /**\r\n * Copy 2. Fired when region copied\r\n * defaultPrevented - if true, copy will be canceled\r\n */\r\n @Event({ eventName: 'copyregion' })\r\n copyRegion: EventEmitter<DataTransfer>;\r\n\r\n @Listen('paste', { target: 'document' }) onPaste(e: ClipboardEvent) {\r\n // if readonly do nothing\r\n if (this.readonly) {\r\n return;\r\n }\r\n const clipboardData = this.getData(e);\r\n const isHTML = (clipboardData?.types.indexOf('text/html') || -1) > -1;\r\n const data =\r\n (isHTML\r\n ? clipboardData?.getData('text/html')\r\n : clipboardData?.getData('text')) || '';\r\n const dataText = clipboardData?.getData('text') || '';\r\n\r\n const beforePaste = this.beforePaste.emit({\r\n raw: data,\r\n dataText,\r\n isHTML,\r\n event: e,\r\n });\r\n\r\n if (beforePaste.defaultPrevented) {\r\n return;\r\n }\r\n\r\n let parsedData: string[][];\r\n // if html, then search for table if no table fallback to regular text parsing\r\n if (beforePaste.detail.isHTML) {\r\n const table = this.htmlParse(beforePaste.detail.raw);\r\n // fallback to text if not possible to parse as html\r\n parsedData = table || this.textParse(dataText || '');\r\n } else {\r\n parsedData = this.textParse(beforePaste.detail.raw);\r\n }\r\n const beforePasteApply = this.beforePasteApply.emit({\r\n raw: data,\r\n parsed: parsedData,\r\n event: e,\r\n });\r\n if (beforePasteApply.defaultPrevented) {\r\n return;\r\n }\r\n this.pasteRegion.emit(beforePasteApply.detail.parsed);\r\n // post paste action\r\n const afterPasteApply = this.afterPasteApply.emit({\r\n raw: data,\r\n parsed: parsedData,\r\n event: e,\r\n });\r\n // keep default behavior if needed\r\n if (afterPasteApply.defaultPrevented) {\r\n return;\r\n }\r\n e.preventDefault();\r\n }\r\n\r\n /**\r\n * Listen to copy event and emit copy region event\r\n */\r\n @Listen('copy', { target: 'document' }) copyStarted(e: ClipboardEvent) {\r\n const beforeCopy = this.beforeCopy.emit({\r\n event: e,\r\n });\r\n if (beforeCopy.defaultPrevented) {\r\n return;\r\n }\r\n const data = this.getData(beforeCopy.detail.event);\r\n this.copyRegion.emit(data || undefined);\r\n e.preventDefault();\r\n }\r\n\r\n /**\r\n * Listen to copy event and emit copy region event\r\n */\r\n @Listen('cut', { target: 'document' }) cutStarted(e: ClipboardEvent) {\r\n const beforeCut = this.beforeCut.emit({\r\n event: e,\r\n });\r\n if (beforeCut.defaultPrevented) {\r\n return;\r\n }\r\n const data = this.getData(beforeCut.detail.event);\r\n this.copyStarted(e);\r\n\r\n // if readonly do nothing\r\n if (this.readonly) {\r\n return;\r\n }\r\n\r\n this.clearRegion.emit(data || undefined);\r\n e.preventDefault();\r\n }\r\n\r\n @Method() async doCopy(e: DataTransfer, data?: DataFormat[][]) {\r\n const beforeCopyApply = this.beforeCopyApply.emit({\r\n event: e,\r\n data,\r\n });\r\n if (beforeCopyApply.defaultPrevented) {\r\n return;\r\n }\r\n const parsed = data ? this.parserCopy(data) : '';\r\n await navigator.clipboard.writeText(parsed);\r\n // e.setData('text/plain', parsed);\r\n }\r\n\r\n parserCopy(data: DataFormat[][]) {\r\n return data.map(rgRow => rgRow.join('\\t')).join('\\n');\r\n }\r\n\r\n private textParse(data: string) {\r\n const result: string[][] = [];\r\n const rows = data.split(/\\r\\n|\\n|\\r/);\r\n for (let y in rows) {\r\n result.push(rows[y].split('\\t'));\r\n }\r\n return result;\r\n }\r\n\r\n private htmlParse(data: string) {\r\n const result: string[][] = [];\r\n const fragment = document.createRange().createContextualFragment(data);\r\n const table = fragment.querySelector('table');\r\n if (!table) {\r\n return null;\r\n }\r\n for (const rgRow of Array.from(table.rows)) {\r\n result.push(Array.from(rgRow.cells).map(cell => cell.innerText));\r\n }\r\n return result;\r\n }\r\n\r\n private getData(e: ClipboardEvent) {\r\n return (\r\n e.clipboardData ||\r\n (window as unknown as { clipboardData: DataTransfer | null })\r\n ?.clipboardData\r\n );\r\n }\r\n}\r\n","revogr-edit {\r\n display: block;\r\n position: absolute;\r\n background-color: #fff;\r\n\r\n input {\r\n height: 100%;\r\n width: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n revo-dropdown {\r\n height: 100%;\r\n\r\n &.shrink {\r\n fieldset legend > span {\r\n display: none;\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Event,\r\n EventEmitter,\r\n Prop,\r\n h,\r\n Element,\r\n Host,\r\n Method,\r\n} from '@stencil/core';\r\nimport { EDIT_INPUT_WR } from '../../utils/consts';\r\nimport { TextEditor } from './text-editor';\r\nimport { ColumnDataSchemaModel } from '@type';\r\nimport {\r\n EditCell,\r\n EditorCtr,\r\n SaveDataDetails,\r\n EditorBase,\r\n} from '@type';\r\n\r\nimport { isEditorCtrConstructible } from './edit.utils';\r\n\r\n/**\r\n * Represents a cell editor in a grid.\r\n * It manages the editing of cells by handling events, saving data, rendering the editor UI,\r\n * and managing the lifecycle of the editor instance.\r\n */\r\n@Component({\r\n tag: 'revogr-edit',\r\n styleUrl: 'revogr-edit-style.scss',\r\n})\r\nexport class RevoEdit {\r\n /**\r\n * Cell to edit data.\r\n */\r\n @Prop() editCell: EditCell;\r\n\r\n /**\r\n * Column data for editor.\r\n */\r\n @Prop() column: ColumnDataSchemaModel | null;\r\n /**\r\n * Custom editors register\r\n */\r\n @Prop() editor: EditorCtr | null;\r\n\r\n /**\r\n * Save on editor close. Defines if data should be saved on editor close.\r\n */\r\n @Prop() saveOnClose = false;\r\n /**\r\n * Additional data to pass to renderer\r\n */\r\n @Prop() additionalData: any;\r\n\r\n /**\r\n * Cell edit event initiator, first in the cellEdit event chain\r\n */\r\n @Event({ eventName: 'celleditinit' }) cellEdit: EventEmitter<SaveDataDetails>;\r\n\r\n /**\r\n * Close editor event\r\n * pass true if requires focus next\r\n */\r\n @Event({ eventName: 'closeedit' }) closeEdit: EventEmitter<\r\n boolean | undefined\r\n >;\r\n\r\n /** Edit session editor */\r\n @Element() element: HTMLElement;\r\n private currentEditor: EditorBase | null = null;\r\n private preventSaveOnClose = false;\r\n\r\n /**\r\n * Cancel pending changes flag. Editor will be closed without autosave.\r\n */\r\n @Method() async cancelChanges() {\r\n this.preventSaveOnClose = true;\r\n }\r\n\r\n /**\r\n * Before editor got disconnected.\r\n * Can be triggered multiple times before actual disconnect.\r\n */\r\n @Method() async beforeDisconnect() {\r\n this.currentEditor?.beforeDisconnect?.();\r\n }\r\n\r\n onAutoSave() {\r\n this.preventSaveOnClose = true;\r\n const val = this.currentEditor?.getValue?.();\r\n // For Editor plugin internal usage.\r\n // When you want to prevent save and use custom save of your own.\r\n if (this.currentEditor?.beforeAutoSave) {\r\n const canSave = this.currentEditor.beforeAutoSave(val);\r\n if (canSave === false) {\r\n return;\r\n }\r\n }\r\n this.onSave(val, true);\r\n }\r\n\r\n /**\r\n * Callback triggered when cell editor saved.\r\n * Closes editor when called.\r\n * @param preventFocus - if true, editor will not be closed & next cell will not be focused.\r\n */\r\n onSave(val?: any, preventFocus?: boolean) {\r\n this.preventSaveOnClose = true;\r\n if (this.editCell) {\r\n this.cellEdit.emit({\r\n rgCol: this.editCell.x,\r\n rgRow: this.editCell.y,\r\n type: this.editCell.type,\r\n prop: this.editCell.prop,\r\n val,\r\n preventFocus,\r\n });\r\n }\r\n }\r\n\r\n componentWillRender() {\r\n // Active editor present and not yet closed.\r\n if (this.currentEditor || !this.column) {\r\n return;\r\n }\r\n this.preventSaveOnClose = false;\r\n\r\n // Custom editor usage.\r\n // Start with TextEditor (editors/text.tsx) for Custom editor.\r\n // It can be class or function\r\n if (this.editor) {\r\n // if editor is constructible\r\n if (isEditorCtrConstructible(this.editor)) {\r\n this.currentEditor = new this.editor(\r\n this.column,\r\n // save callback\r\n (e, preventFocus) => {\r\n this.onSave(e, preventFocus);\r\n },\r\n // cancel callback\r\n focusNext => {\r\n this.preventSaveOnClose = true;\r\n this.closeEdit.emit(focusNext);\r\n },\r\n );\r\n // if editor is function\r\n } else {\r\n this.currentEditor = this.editor(\r\n this.column,\r\n // save callback\r\n (e, preventFocus) => {\r\n this.onSave(e, preventFocus);\r\n },\r\n // cancel callback\r\n focusNext => {\r\n this.preventSaveOnClose = true;\r\n this.closeEdit.emit(focusNext);\r\n },\r\n );\r\n }\r\n return;\r\n }\r\n // Default text editor usage\r\n this.currentEditor = new TextEditor(this.column, (e, preventFocus) =>\r\n this.onSave(e, preventFocus),\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (!this.currentEditor) {\r\n return;\r\n }\r\n this.currentEditor.element = this.element.firstElementChild;\r\n this.currentEditor.componentDidRender?.();\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this.saveOnClose) {\r\n // Can not be cancelled by `preventSaveOnClose` prop.\r\n // Editor requires `getValue` to be able to save.\r\n if (!this.preventSaveOnClose) {\r\n this.onAutoSave();\r\n }\r\n }\r\n\r\n this.preventSaveOnClose = false;\r\n if (!this.currentEditor) {\r\n return;\r\n }\r\n\r\n this.currentEditor.disconnectedCallback?.();\r\n this.currentEditor.element = null;\r\n this.currentEditor = null;\r\n }\r\n\r\n render() {\r\n if (this.currentEditor) {\r\n this.currentEditor.editCell = this.editCell;\r\n return (\r\n <Host class={EDIT_INPUT_WR}>\r\n {this.currentEditor.render(h, this.additionalData)}\r\n </Host>\r\n );\r\n }\r\n return '';\r\n }\r\n}\r\n","import { getItemByPosition } from '@store';\r\nimport { DimensionSettingsState, PositionItem, Cell } from '@type';\r\n\r\ntype EventData = { el: HTMLElement; rows: DimensionSettingsState; cols: DimensionSettingsState };\r\ninterface Config {\r\n positionChanged(from: number, to: number): void;\r\n}\r\n\r\nexport default class RowOrderService {\r\n private currentCell: Cell | null = null;\r\n private previousRow: number | null = null;\r\n\r\n constructor(private config: Config) {}\r\n\r\n /** Drag finished, calculate and apply changes */\r\n endOrder(e: MouseEvent, data: EventData) {\r\n if (this.currentCell === null) {\r\n return;\r\n }\r\n const newRow = this.getCell(e, data);\r\n\r\n // if position changed\r\n if (newRow.y !== this.currentCell.y) {\r\n // rgRow dragged out table\r\n if (newRow.y < 0) {\r\n newRow.y = 0;\r\n }\r\n // rgRow dragged to the top\r\n else if (newRow.y < this.currentCell.y) {\r\n newRow.y++;\r\n }\r\n this.config.positionChanged(this.currentCell.y, newRow.y);\r\n }\r\n this.clear();\r\n }\r\n\r\n /** Drag started, reserve initial cell for farther use */\r\n startOrder(e: MouseEvent, data: EventData): Cell {\r\n this.currentCell = this.getCell(e, data);\r\n return this.currentCell;\r\n }\r\n\r\n move(y: number, data: EventData): PositionItem | null {\r\n const rgRow = this.getRow(y, data);\r\n // if rgRow same as previous or below range (-1 = 0) do nothing\r\n if (this.previousRow === rgRow.itemIndex || rgRow.itemIndex < -1) {\r\n return null;\r\n }\r\n this.previousRow = rgRow.itemIndex;\r\n return rgRow;\r\n }\r\n\r\n /** Drag stopped, probably cursor outside of document area */\r\n clear() {\r\n this.currentCell = null;\r\n this.previousRow = null;\r\n }\r\n\r\n /** Calculate cell based on x, y position */\r\n getRow(y: number, { el, rows }: EventData): PositionItem {\r\n const { top } = el.getBoundingClientRect();\r\n const topRelative = y - top;\r\n const rgRow = getItemByPosition(rows, topRelative);\r\n const absolutePosition = {\r\n itemIndex: rgRow.itemIndex,\r\n start: rgRow.start + top,\r\n end: rgRow.end + top,\r\n };\r\n return absolutePosition;\r\n }\r\n\r\n /** Calculate cell based on x, y position */\r\n getCell({ x, y }: Cell, { el, rows, cols }: EventData): Cell {\r\n const { top, left } = el.getBoundingClientRect();\r\n const topRelative = y - top;\r\n const leftRelative = x - left;\r\n const rgRow = getItemByPosition(rows, topRelative);\r\n const rgCol = getItemByPosition(cols, leftRelative);\r\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\r\n }\r\n}\r\n","import { Component, Method, Event, EventEmitter, Prop } from '@stencil/core';\r\nimport debounce from 'lodash/debounce';\r\n\r\nimport { type DSourceState, getSourceItem } from '@store';\r\nimport { DRAGG_TEXT } from '../../utils/consts';\r\nimport RowOrderService from './order-row.service';\r\nimport type {\r\n DimensionRows,\r\n DataType,\r\n DimensionSettingsState,\r\n DragStartEvent,\r\n PositionItem,\r\n Cell,\r\n RowDragStartDetails,\r\n} from '@type';\r\nimport type { Observable } from '../../utils';\r\n\r\n/**\r\n * Component for handling row order editor.\r\n */\r\n@Component({ tag: 'revogr-order-editor' })\r\nexport class OrderEditor {\r\n // #region Properties\r\n /** Parent element */\r\n @Prop() parent: HTMLElement;\r\n /** Dimension settings Y */\r\n @Prop() dimensionRow: Observable<DimensionSettingsState>;\r\n /** Dimension settings X */\r\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\r\n\r\n /** Static stores, not expected to change during component lifetime */\r\n @Prop() dataStore: Observable<DSourceState<DataType, DimensionRows>>;\r\n\r\n @Prop() rowType: DimensionRows;\r\n // #endregion\r\n\r\n // #region Events\r\n /** Row drag started */\r\n @Event({ eventName: 'rowdragstartinit', cancelable: true })\r\n rowDragStart: EventEmitter<RowDragStartDetails>;\r\n\r\n /** Row drag ended started */\r\n @Event({ eventName: 'rowdragendinit' })\r\n rowDragEnd: EventEmitter<{ rowType: DimensionRows }>;\r\n\r\n /** Row move started */\r\n @Event({ eventName: 'rowdragmoveinit', cancelable: true })\r\n rowDrag: EventEmitter<PositionItem & { rowType: DimensionRows }>;\r\n\r\n /** Row mouse move started */\r\n @Event({ eventName: 'rowdragmousemove', cancelable: true })\r\n rowMouseMove: EventEmitter<Cell & { rowType: DimensionRows }>;\r\n\r\n /** Row dragged, new range ready to be applied */\r\n @Event({ eventName: 'rowdropinit', cancelable: true })\r\n rowDropped: EventEmitter<{\r\n from: number;\r\n to: number;\r\n rowType: DimensionRows;\r\n }>;\r\n\r\n /** Row drag ended finished. Time to apply data */\r\n @Event({ eventName: 'roworderchange' })\r\n rowOrderChange: EventEmitter<{\r\n from: number;\r\n to: number;\r\n rowType: DimensionRows;\r\n }>;\r\n\r\n // #endregion\r\n\r\n // #region Private\r\n private rowOrderService: RowOrderService;\r\n private events: {\r\n name: keyof DocumentEventMap;\r\n listener: (e: MouseEvent) => void;\r\n }[] = [];\r\n private rowMoveFunc = debounce((y: number) => {\r\n const rgRow = this.rowOrderService.move(y, this.getData());\r\n if (rgRow !== null) {\r\n this.rowDrag.emit({\r\n ...rgRow,\r\n rowType: this.rowType,\r\n });\r\n }\r\n }, 5);\r\n // #endregion\r\n\r\n // #region Methods\r\n @Method() async dragStart(e: DragStartEvent) {\r\n e.originalEvent.preventDefault();\r\n\r\n // extra check if previous ended\r\n if (this.events.length) {\r\n this.clearOrder();\r\n }\r\n\r\n const data = this.getData();\r\n const cell = this.rowOrderService.startOrder(e.originalEvent, data);\r\n const pos = this.rowOrderService.getRow(e.originalEvent.y, data);\r\n const dragStartEvent = this.rowDragStart.emit({\r\n cell,\r\n text: DRAGG_TEXT,\r\n pos,\r\n event: e.originalEvent,\r\n rowType: this.rowType,\r\n model: getSourceItem(this.dataStore, pos.itemIndex),\r\n });\r\n if (dragStartEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const moveMove = (e: MouseEvent) => this.move(e);\r\n const mouseUp = (e: MouseEvent) => this.endOrder(e);\r\n const mouseLeave = () => this.clearOrder();\r\n\r\n this.events.push(\r\n {\r\n name: 'mousemove',\r\n listener: moveMove,\r\n },\r\n {\r\n name: 'mouseup',\r\n listener: mouseUp,\r\n },\r\n {\r\n name: 'mouseleave',\r\n listener: mouseLeave,\r\n },\r\n );\r\n document.addEventListener('mousemove', moveMove);\r\n // Action finished inside of the document\r\n document.addEventListener('mouseup', mouseUp);\r\n document.addEventListener('mouseleave', mouseLeave);\r\n }\r\n\r\n @Method() async endOrder(e: MouseEvent) {\r\n this.rowOrderService.endOrder(e, this.getData());\r\n this.clearOrder();\r\n }\r\n\r\n @Method() async clearOrder() {\r\n this.rowOrderService.clear();\r\n this.events.forEach(v => document.removeEventListener(v.name, v.listener));\r\n this.events.length = 0;\r\n this.rowDragEnd.emit({ rowType: this.rowType });\r\n }\r\n // #endregion\r\n\r\n move({ x, y }: { x: number; y: number }) {\r\n this.rowMouseMove.emit({ x, y, rowType: this.rowType });\r\n this.rowMoveFunc(y);\r\n }\r\n\r\n connectedCallback() {\r\n this.rowOrderService = new RowOrderService({\r\n positionChanged: (from: number, to: number) => {\r\n const dropEvent = this.rowDropped.emit({\r\n from,\r\n to,\r\n rowType: this.rowType,\r\n });\r\n if (dropEvent.defaultPrevented) {\r\n return;\r\n }\r\n this.rowOrderChange.emit(dropEvent.detail);\r\n },\r\n });\r\n }\r\n\r\n private getData() {\r\n return {\r\n el: this.parent,\r\n rows: this.dimensionRow.state,\r\n cols: this.dimensionCol.state,\r\n };\r\n }\r\n}\r\n"],"version":3}
|