@revolist/revogrid 4.9.41 → 4.9.42
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/dist/cjs/app-globals-c0b20747.js.map +1 -1
- package/dist/cjs/{column.drag.plugin-fcd892ec.js → column.drag.plugin-a6ef25bf.js} +1034 -149
- package/dist/cjs/column.drag.plugin-a6ef25bf.js.map +1 -0
- package/dist/cjs/column.service-831e1c92.js +1321 -0
- package/dist/cjs/column.service-831e1c92.js.map +1 -0
- package/dist/cjs/{column.service-26c61ed6.js → dimension.helpers-1927ad24.js} +490 -1273
- package/dist/cjs/dimension.helpers-1927ad24.js.map +1 -0
- package/dist/cjs/{edit.utils-179c0800.js → edit.utils-e51411f6.js} +3 -3
- package/dist/cjs/{edit.utils-179c0800.js.map → edit.utils-e51411f6.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-d879d95e.js → header-cell-renderer-53ecdcdb.js} +2 -2
- package/dist/cjs/{header-cell-renderer-d879d95e.js.map → header-cell-renderer-53ecdcdb.js.map} +1 -1
- package/dist/cjs/index.cjs.js +127 -69
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/key.utils-96d0bc42.js +101 -0
- package/dist/cjs/key.utils-96d0bc42.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +310 -941
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +100 -70
- package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +11 -10
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +88 -78
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +33 -13
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/{text-editor-b756d6b3.js → text-editor-1afffaf1.js} +6 -6
- package/dist/cjs/text-editor-1afffaf1.js.map +1 -0
- package/dist/cjs/{throttle-a57f51f9.js → throttle-bb713c73.js} +4 -4
- package/dist/cjs/{throttle-a57f51f9.js.map → throttle-bb713c73.js.map} +1 -1
- package/dist/cjs/{row-header-utils-c37f76e4.js → viewport.store-69b45f22.js} +15 -14
- package/dist/cjs/viewport.store-69b45f22.js.map +1 -0
- package/dist/collection/components/attribution/revogr-attribution.js +1 -1
- package/dist/collection/components/attribution/revogr-attribution.js.map +1 -1
- package/dist/collection/components/data/cell-renderer.js +11 -9
- package/dist/collection/components/data/cell-renderer.js.map +1 -1
- package/dist/collection/components/data/column.service.js +7 -19
- package/dist/collection/components/data/column.service.js.map +1 -1
- package/dist/collection/components/data/revogr-data-style.css +10 -5
- package/dist/collection/components/data/revogr-data.js +50 -28
- package/dist/collection/components/data/revogr-data.js.map +1 -1
- package/dist/collection/components/data/row-highlight.plugin.js.map +1 -1
- package/dist/collection/components/data/row-renderer.js.map +1 -1
- package/dist/collection/components/editors/revogr-edit-style.css +8 -5
- package/dist/collection/components/editors/revogr-edit.js +2 -2
- package/dist/collection/components/editors/revogr-edit.js.map +1 -1
- package/dist/collection/components/editors/text-editor.js +2 -2
- package/dist/collection/components/editors/text-editor.js.map +1 -1
- package/dist/collection/components/extra/revogr-extra.js +44 -6
- package/dist/collection/components/extra/revogr-extra.js.map +1 -1
- package/dist/collection/components/header/header-cell-renderer.js.map +1 -1
- package/dist/collection/components/header/header-renderer.js.map +1 -1
- package/dist/collection/components/header/resizable.element.js.map +1 -1
- package/dist/collection/components/header/revogr-header-style.css +8 -5
- package/dist/collection/components/header/revogr-header.js +9 -9
- package/dist/collection/components/header/revogr-header.js.map +1 -1
- package/dist/collection/components/order/order-renderer.js.map +1 -1
- package/dist/collection/components/order/revogr-order-editor.js +12 -24
- package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
- package/dist/collection/components/overlay/autofill.service.js +7 -5
- package/dist/collection/components/overlay/autofill.service.js.map +1 -1
- package/dist/collection/components/overlay/keyboard.service.js +1 -4
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js +88 -72
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-style.css +8 -5
- package/dist/collection/components/overlay/selection.utils.js.map +1 -1
- 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 +18 -11
- package/dist/collection/components/revoGrid/revo-grid.js +289 -140
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.service.js +9 -9
- package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
- package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +8 -5
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +26 -20
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
- package/dist/collection/components/scrollable/revogr-scroll-style.css +10 -7
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +10 -8
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
- package/dist/collection/components/selectionFocus/revogr-focus-style.css +8 -5
- package/dist/collection/components/selectionFocus/revogr-focus.js +10 -10
- package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
- package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +8 -5
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js +6 -6
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
- package/dist/collection/components/vnode/vnode-converter.js +1 -1
- package/dist/collection/components/vnode/vnode-converter.js.map +1 -1
- package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- 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.map +1 -1
- package/dist/collection/plugins/column.auto-size.plugin.js +1 -1
- package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
- package/dist/collection/plugins/column.stretch.plugin.js +1 -1
- package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
- package/dist/collection/plugins/export/csv.js +1 -1
- package/dist/collection/plugins/export/csv.js.map +1 -1
- package/dist/collection/plugins/export/export.plugin.js +4 -2
- package/dist/collection/plugins/export/export.plugin.js.map +1 -1
- package/dist/collection/plugins/filter/filter.indexed.js +1 -0
- package/dist/collection/plugins/filter/filter.indexed.js.map +1 -1
- package/dist/collection/plugins/filter/filter.panel.js +35 -35
- package/dist/collection/plugins/filter/filter.panel.js.map +1 -1
- package/dist/collection/plugins/filter/filter.plugin.js +117 -77
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
- package/dist/collection/plugins/filter/filter.style.css +19 -5
- package/dist/collection/plugins/filter/filter.types.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +64 -79
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +3 -3
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +40 -6
- package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
- package/dist/collection/plugins/index.js +2 -0
- package/dist/collection/plugins/index.js.map +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +12 -6
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.func.js +42 -0
- package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +71 -69
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.types.js +2 -0
- package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
- package/dist/collection/serve/controller.js +32 -15
- package/dist/collection/serve/data.js +18 -11
- package/dist/collection/services/column.data.provider.js +5 -2
- package/dist/collection/services/column.data.provider.js.map +1 -1
- package/dist/collection/services/data.provider.js +18 -7
- package/dist/collection/services/data.provider.js.map +1 -1
- package/dist/collection/services/dimension.provider.js +32 -33
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/collection/services/selection.store.connector.js +1 -1
- package/dist/collection/services/selection.store.connector.js.map +1 -1
- package/dist/collection/store/dataSource/data.proxy.js +9 -15
- package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
- package/dist/collection/store/dataSource/data.store.js +1 -1
- package/dist/collection/store/dataSource/data.store.js.map +1 -1
- package/dist/collection/store/dataSource/trimmed.plugin.js +5 -8
- package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
- package/dist/collection/store/dimension/dimension.helpers.js +7 -9
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
- 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 +47 -67
- package/dist/collection/store/dimension/dimension.store.js.map +1 -1
- 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/selection/selection.store.js +1 -1
- package/dist/collection/store/selection/selection.store.js.map +1 -1
- package/dist/collection/store/vp/viewport.store.js +4 -2
- package/dist/collection/store/vp/viewport.store.js.map +1 -1
- package/dist/collection/types/events.js +6 -2
- package/dist/collection/types/events.js.map +1 -1
- package/dist/collection/types/interfaces.js +4 -0
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/collection/types/plugin.types.js.map +1 -1
- package/dist/collection/types/selection.js.map +1 -1
- package/dist/collection/types/viewport.interfaces.js.map +1 -1
- package/dist/collection/utils/column.utils.js +13 -3
- package/dist/collection/utils/column.utils.js.map +1 -1
- package/dist/esm/app-globals-3a760941.js.map +1 -1
- package/dist/esm/{column.drag.plugin-3cc77986.js → column.drag.plugin-50f49fa9.js} +1012 -130
- package/dist/esm/column.drag.plugin-50f49fa9.js.map +1 -0
- package/dist/esm/column.service-a6a7c415.js +1281 -0
- package/dist/esm/column.service-a6a7c415.js.map +1 -0
- package/dist/esm/{debounce-72878ced.js → debounce-b3166f78.js} +2 -2
- package/dist/esm/{debounce-72878ced.js.map → debounce-b3166f78.js.map} +1 -1
- package/dist/esm/{column.service-751345b2.js → dimension.helpers-d0d709c4.js} +450 -1234
- package/dist/esm/dimension.helpers-d0d709c4.js.map +1 -0
- package/dist/esm/{edit.utils-6fc686b9.js → edit.utils-0ae0db50.js} +2 -2
- package/dist/esm/{edit.utils-6fc686b9.js.map → edit.utils-0ae0db50.js.map} +1 -1
- package/dist/esm/{header-cell-renderer-32d2ed96.js → header-cell-renderer-36ecbdef.js} +2 -2
- package/dist/esm/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-36ecbdef.js.map} +1 -1
- package/dist/esm/index.js +52 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{key.utils-17273f42.js → key.utils-7c3218d4.js} +2 -2
- package/dist/esm/{key.utils-17273f42.js.map → key.utils-7c3218d4.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.entry.js +246 -877
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +63 -33
- package/dist/esm/revogr-attribution_7.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +7 -6
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +60 -50
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +34 -14
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/esm/{text-editor-901c3eb8.js → text-editor-148a17c1.js} +5 -5
- package/dist/esm/text-editor-148a17c1.js.map +1 -0
- package/dist/esm/{throttle-138d69c3.js → throttle-394e489c.js} +3 -3
- package/dist/esm/{throttle-138d69c3.js.map → throttle-394e489c.js.map} +1 -1
- package/dist/esm/{row-header-utils-3dfbb81f.js → viewport.store-afa8c4fe.js} +11 -10
- package/dist/esm/viewport.store-afa8c4fe.js.map +1 -0
- package/dist/revo-grid/app-globals-3a760941.js +8 -1
- package/dist/revo-grid/app-globals-3a760941.js.map +1 -1
- package/dist/revo-grid/column.drag.plugin-50f49fa9.js +2541 -0
- package/dist/revo-grid/column.drag.plugin-50f49fa9.js.map +1 -0
- package/dist/revo-grid/column.service-a6a7c415.js +1281 -0
- package/dist/revo-grid/column.service-a6a7c415.js.map +1 -0
- package/dist/revo-grid/debounce-b3166f78.js +495 -0
- package/dist/revo-grid/debounce-b3166f78.js.map +1 -0
- package/dist/revo-grid/dimension.helpers-d0d709c4.js +3611 -0
- package/dist/revo-grid/dimension.helpers-d0d709c4.js.map +1 -0
- package/dist/revo-grid/edit.utils-0ae0db50.js +17 -0
- package/dist/revo-grid/edit.utils-0ae0db50.js.map +1 -0
- package/dist/revo-grid/events-cf0893a3.js +38 -1
- package/dist/revo-grid/events-cf0893a3.js.map +1 -1
- package/dist/revo-grid/filter.button-d40ab17b.js +34 -1
- package/dist/revo-grid/filter.button-d40ab17b.js.map +1 -1
- package/dist/revo-grid/header-cell-renderer-36ecbdef.js +339 -0
- package/dist/revo-grid/header-cell-renderer-36ecbdef.js.map +1 -0
- package/dist/revo-grid/index-a61f225b.js +1845 -2
- package/dist/revo-grid/index-a61f225b.js.map +1 -1
- package/dist/revo-grid/index.esm.js +160 -1
- package/dist/revo-grid/index.esm.js.map +1 -1
- package/dist/revo-grid/key.utils-7c3218d4.js +89 -0
- package/dist/revo-grid/key.utils-7c3218d4.js.map +1 -0
- package/dist/revo-grid/resize-observer-83c9e167.js +501 -1
- package/dist/revo-grid/resize-observer-83c9e167.js.map +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1934 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revo-grid.esm.js +21 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +1431 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +455 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +974 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js +340 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/sorting.sign-1a675bf7.js +9 -1
- package/dist/revo-grid/sorting.sign-1a675bf7.js.map +1 -1
- package/dist/revo-grid/text-editor-148a17c1.js +80 -0
- package/dist/revo-grid/text-editor-148a17c1.js.map +1 -0
- package/dist/revo-grid/throttle-394e489c.js +230 -0
- package/dist/revo-grid/throttle-394e489c.js.map +1 -0
- package/dist/revo-grid/viewport.helpers-7e7f9dad.js +48 -1
- package/dist/revo-grid/viewport.helpers-7e7f9dad.js.map +1 -1
- package/dist/revo-grid/viewport.store-afa8c4fe.js +406 -0
- package/dist/revo-grid/viewport.store-afa8c4fe.js.map +1 -0
- package/dist/types/components/data/cell-renderer.d.ts +3 -5
- package/dist/types/components/data/column.service.d.ts +2 -3
- package/dist/types/components/data/revogr-data.d.ts +10 -6
- package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
- package/dist/types/components/data/row-renderer.d.ts +1 -1
- package/dist/types/components/editors/revogr-edit.d.ts +2 -2
- package/dist/types/components/editors/text-editor.d.ts +5 -6
- package/dist/types/components/extra/revogr-extra.d.ts +17 -3
- package/dist/types/components/header/header-cell-renderer.d.ts +1 -1
- package/dist/types/components/header/header-renderer.d.ts +2 -2
- package/dist/types/components/header/resizable.element.d.ts +1 -1
- package/dist/types/components/header/revogr-header.d.ts +2 -3
- package/dist/types/components/order/order-renderer.d.ts +1 -1
- package/dist/types/components/order/revogr-order-editor.d.ts +4 -10
- package/dist/types/components/overlay/autofill.service.d.ts +2 -2
- package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +16 -13
- package/dist/types/components/overlay/selection.utils.d.ts +1 -1
- package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
- package/dist/types/components/revoGrid/revo-grid.d.ts +105 -61
- package/dist/types/components/revoGrid/viewport.service.d.ts +2 -2
- package/dist/types/components/rowHeaders/row-header-render.d.ts +2 -2
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -5
- package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -3
- package/dist/types/components/selectionFocus/revogr-focus.d.ts +2 -2
- package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -3
- package/dist/types/components/vnode/vnode-converter.d.ts +1 -1
- package/dist/types/components/vnode/vnode.utils.d.ts +2 -2
- package/dist/types/components.d.ts +191 -108
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
- package/dist/types/plugins/base.plugin.d.ts +3 -4
- package/dist/types/plugins/column.auto-size.plugin.d.ts +1 -1
- package/dist/types/plugins/column.stretch.plugin.d.ts +1 -1
- package/dist/types/plugins/export/csv.d.ts +1 -1
- package/dist/types/plugins/export/export.plugin.d.ts +4 -3
- package/dist/types/plugins/filter/filter.panel.d.ts +2 -2
- package/dist/types/plugins/filter/filter.plugin.d.ts +25 -7
- package/dist/types/plugins/filter/filter.types.d.ts +32 -10
- package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +2 -2
- package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +3 -4
- package/dist/types/plugins/groupingRow/grouping.const.d.ts +3 -1
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +15 -10
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +38 -4
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +9 -12
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +2 -2
- package/dist/types/plugins/sorting/sorting.func.d.ts +3 -0
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +14 -13
- package/dist/types/plugins/sorting/sorting.types.d.ts +13 -0
- package/dist/types/services/column.data.provider.d.ts +5 -2
- package/dist/types/services/data.provider.d.ts +3 -1
- package/dist/types/services/dimension.provider.d.ts +9 -4
- package/dist/types/services/selection.store.connector.d.ts +4 -4
- package/dist/types/store/dataSource/data.proxy.d.ts +7 -9
- package/dist/types/store/dataSource/data.store.d.ts +2 -3
- package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
- package/dist/types/store/dimension/dimension.helpers.d.ts +1 -4
- package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
- package/dist/types/store/dimension/dimension.store.d.ts +3 -2
- package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
- package/dist/types/store/selection/selection.store.d.ts +1 -1
- package/dist/types/store/vp/viewport.store.d.ts +1 -1
- package/dist/types/types/events.d.ts +1 -1
- package/dist/types/types/interfaces.d.ts +36 -12
- package/dist/types/types/plugin.types.d.ts +17 -1
- package/dist/types/types/selection.d.ts +23 -17
- package/dist/types/types/viewport.interfaces.d.ts +1 -3
- package/dist/types/utils/column.utils.d.ts +1 -0
- package/hydrate/index.js +2490 -2135
- package/hydrate/index.mjs +2490 -2135
- package/package.json +20 -19
- package/readme.md +15 -17
- package/standalone/column.service.js +192 -160
- package/standalone/column.service.js.map +1 -1
- package/standalone/data.store.js +36 -25
- package/standalone/data.store.js.map +1 -1
- package/standalone/dimension.helpers.js +8 -10
- package/standalone/dimension.helpers.js.map +1 -1
- package/standalone/index.js +46 -6
- package/standalone/index.js.map +1 -1
- package/standalone/revo-grid.js +1275 -1022
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-attribution2.js +1 -1
- package/standalone/revogr-attribution2.js.map +1 -1
- package/standalone/revogr-data2.js +26 -22
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-edit2.js +3 -3
- package/standalone/revogr-edit2.js.map +1 -1
- package/standalone/revogr-extra2.js +25 -4
- package/standalone/revogr-extra2.js.map +1 -1
- package/standalone/revogr-filter-panel.js +34 -14
- package/standalone/revogr-filter-panel.js.map +1 -1
- package/standalone/revogr-focus2.js +2 -1
- package/standalone/revogr-focus2.js.map +1 -1
- package/standalone/revogr-header2.js +6 -5
- package/standalone/revogr-header2.js.map +1 -1
- package/standalone/revogr-order-editor2.js +3 -0
- package/standalone/revogr-order-editor2.js.map +1 -1
- package/standalone/revogr-overlay-selection2.js +29 -17
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/standalone/revogr-row-headers2.js +12 -9
- package/standalone/revogr-row-headers2.js.map +1 -1
- package/standalone/revogr-scroll-virtual2.js +6 -4
- package/standalone/revogr-scroll-virtual2.js.map +1 -1
- package/standalone/revogr-temp-range2.js +1 -1
- package/standalone/revogr-temp-range2.js.map +1 -1
- package/standalone/revogr-viewport-scroll2.js +27 -21
- package/standalone/revogr-viewport-scroll2.js.map +1 -1
- package/standalone/selection.utils.js +1 -0
- package/standalone/selection.utils.js.map +1 -1
- package/standalone/vnode-converter.js +1 -1
- package/standalone/vnode-converter.js.map +1 -1
- package/dist/cjs/column.drag.plugin-fcd892ec.js.map +0 -1
- package/dist/cjs/column.service-26c61ed6.js.map +0 -1
- package/dist/cjs/index-3ab26ab9.js +0 -513
- package/dist/cjs/index-3ab26ab9.js.map +0 -1
- package/dist/cjs/key.utils-f49d7bee.js +0 -101
- package/dist/cjs/key.utils-f49d7bee.js.map +0 -1
- package/dist/cjs/row-header-utils-c37f76e4.js.map +0 -1
- package/dist/cjs/text-editor-b756d6b3.js.map +0 -1
- package/dist/esm/column.drag.plugin-3cc77986.js.map +0 -1
- package/dist/esm/column.service-751345b2.js.map +0 -1
- package/dist/esm/index-1dcad6ef.js +0 -476
- package/dist/esm/index-1dcad6ef.js.map +0 -1
- package/dist/esm/row-header-utils-3dfbb81f.js.map +0 -1
- package/dist/esm/text-editor-901c3eb8.js.map +0 -1
- package/dist/revo-grid/column.drag.plugin-3cc77986.js +0 -5
- package/dist/revo-grid/column.drag.plugin-3cc77986.js.map +0 -1
- package/dist/revo-grid/column.service-751345b2.js +0 -5
- package/dist/revo-grid/column.service-751345b2.js.map +0 -1
- package/dist/revo-grid/debounce-72878ced.js +0 -5
- package/dist/revo-grid/debounce-72878ced.js.map +0 -1
- package/dist/revo-grid/edit.utils-6fc686b9.js +0 -5
- package/dist/revo-grid/edit.utils-6fc686b9.js.map +0 -1
- package/dist/revo-grid/header-cell-renderer-32d2ed96.js +0 -5
- package/dist/revo-grid/header-cell-renderer-32d2ed96.js.map +0 -1
- package/dist/revo-grid/index-1dcad6ef.js +0 -5
- package/dist/revo-grid/index-1dcad6ef.js.map +0 -1
- package/dist/revo-grid/key.utils-17273f42.js +0 -5
- package/dist/revo-grid/key.utils-17273f42.js.map +0 -1
- package/dist/revo-grid/row-header-utils-3dfbb81f.js +0 -5
- package/dist/revo-grid/row-header-utils-3dfbb81f.js.map +0 -1
- package/dist/revo-grid/text-editor-901c3eb8.js +0 -5
- package/dist/revo-grid/text-editor-901c3eb8.js.map +0 -1
- package/dist/revo-grid/throttle-138d69c3.js +0 -5
- package/dist/revo-grid/throttle-138d69c3.js.map +0 -1
- package/standalone/identity.js +0 -26
- package/standalone/identity.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["freeGlobal","global","Object","freeGlobal$1","freeSelf","self","root","Function","root$1","Symbol","Symbol$1","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","value","isOwn","call","tag","unmasked","e","result","objectToString","nullTag","undefinedTag","baseGetTag","isObject","type","isObjectLike","symbolTag","isSymbol","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","baseTrim","slice","replace","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","now","Date","now$1","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","this"],"sources":["node_modules/lodash/_freeGlobal.js","node_modules/lodash/_root.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/isObject.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isSymbol.js","node_modules/lodash/_trimmedEndIndex.js","node_modules/lodash/_baseTrim.js","node_modules/lodash/toNumber.js","node_modules/lodash/now.js","node_modules/lodash/debounce.js"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{E as o}from"./index-1dcad6ef.js";function n(n){return!!(n===null||n===void 0?void 0:n.closest(`.${o}`))}function t(o){return typeof o==="function"&&typeof o.prototype==="object"}export{t as a,n as i};
|
|
5
|
-
//# sourceMappingURL=edit.utils-6fc686b9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isEditInput","el","closest","EDIT_INPUT_WR","isEditorCtrConstructible","editor","prototype"],"sources":["src/components/editors/edit.utils.ts"],"sourcesContent":["import { EDIT_INPUT_WR } from '../../utils/consts';\nimport {\n EditorCtrConstructible,\n} from '@type';\n// is edit input\nexport function isEditInput(el?: HTMLElement) {\n return !!el?.closest(`.${EDIT_INPUT_WR}`);\n}\n\n\n// Type guard for EditorCtrConstructible\nexport function isEditorCtrConstructible(\n editor: any,\n): editor is EditorCtrConstructible {\n return typeof editor === 'function' && typeof editor.prototype === 'object';\n}\n"],"mappings":";;;iDAKgBA,EAAYC,GAC1B,SAASA,IAAE,MAAFA,SAAE,SAAFA,EAAIC,QAAQ,IAAIC,KAC3B,C,SAIgBC,EACdC,GAEA,cAAcA,IAAW,mBAAqBA,EAAOC,YAAc,QACrE,Q","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{h as t}from"./index-a61f225b.js";import{I as i}from"./column.service-751345b2.js";function s(t,i,s){const e=new CustomEvent(i,{detail:s,cancelable:true,bubbles:true});t===null||t===void 0?void 0:t.dispatchEvent(e);return e}function e(t,i,e){t.preventDefault();return s(t.target,i,e)}var h;(function(t){t["start"]="resize:start";t["move"]="resize:move";t["end"]="resize:end"})(h||(h={}));const o={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};const n={l:1,t:2,w:4,h:8};const l=t=>Object.assign(Object.assign({},t),{fitParent:t.fitParent||false,active:t.active||[],disableAttributes:t.disableAttributes||[],minWidth:t.minWidth||0,minHeight:t.minHeight||0});class r{constructor(t,i){var s,e;this.initialProps=t;this.$event=i;this.mouseX=0;this.mouseY=0;this.width=0;this.height=0;this.changeX=0;this.changeY=0;this.disableCalcMap=15;this.props=l(t);this.mouseMoveFunc=this.handleMove.bind(this);this.mouseUpFunc=this.handleUp.bind(this);this.minW=this.props.minWidth;this.minH=this.props.minHeight;this.maxW=(s=this.props.maxWidth)!==null&&s!==void 0?s:0;this.maxH=(e=this.props.maxHeight)!==null&&e!==void 0?e:0;this.parent={width:0,height:0};this.resizeState=0}set(t){this.$el=t;this.props.disableAttributes.forEach((t=>{switch(t){case"l":this.disableCalcMap&=~n.l;break;case"t":this.disableCalcMap&=~n.t;break;case"w":this.disableCalcMap&=~n.w;break;case"h":this.disableCalcMap&=~n.h}}))}emitEvent(t,i){var s;if(!this.$event){return}const e=(s=this.activeResizer)===null||s===void 0?void 0:s.classList.contains("resizable-l");this.$event(Object.assign({eventName:t,width:this.width+this.changeX*(e?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},i))}static isTouchEvent(t){var i;const s=t;return((i=s.touches)===null||i===void 0?void 0:i.length)>=0}handleMove(t){var i;if(!this.resizeState){return}let s,e;if(r.isTouchEvent(t)){s=t.touches[0].clientY;e=t.touches[0].clientX}else{s=t.clientY;e=t.clientX}let l=this.resizeState&o["resizable-r"].bit||this.resizeState&o["resizable-l"].bit;let c=this.resizeState&o["resizable-t"].bit||this.resizeState&o["resizable-b"].bit;if(c&&this.disableCalcMap&n.h){let t=s-this.mouseY;let i=this.changeY+t;const e=this.height+i;if(e<this.minH){i=-(this.height-this.minH)}if(this.maxH&&e>this.maxH){i=this.maxH-this.height}this.changeY=i;this.mouseY=s;if(this.activeResizer){this.activeResizer.style.bottom=`${-this.changeY}px`}}if(l&&this.disableCalcMap&n.w){const t=(i=this.activeResizer)===null||i===void 0?void 0:i.classList.contains("resizable-l");let s=e-this.mouseX;let h=this.changeX+s;const o=this.width+h*(t?-1:1);if(o<this.minW){h=-(this.width-this.minW)}if(this.maxW&&o>this.maxW){h=this.maxW-this.width}this.changeX=h;this.mouseX=e;if(this.activeResizer){if(!t){this.activeResizer.style.right=`${-this.changeX}px`}else{this.activeResizer.style.left=`${this.changeX}px`}}}this.emitEvent(h.move)}handleDown(t){if(t.defaultPrevented){return}t.preventDefault();this.dropInitial();for(let i in o){const s=t.target;if(this.$el.contains(s)&&(s===null||s===void 0?void 0:s.classList.contains(i))){document.body.style.cursor=o[i].cursor;if(r.isTouchEvent(t)){this.setInitials(t.touches[0],s)}else{t.preventDefault&&t.preventDefault();this.setInitials(t,s)}this.resizeState=o[i].bit;const e=h.start;this.emitEvent(e);break}}this.bindMove()}handleUp(t){t.preventDefault();if(this.resizeState!==0){this.resizeState=0;document.body.style.cursor="";const t=h.end;this.emitEvent(t)}this.dropInitial();this.unbindMove()}setInitials({clientX:t,clientY:i},s){var e,h,o,l;const r=getComputedStyle(this.$el);this.$el.classList.add("active");this.activeResizer=s;if(this.disableCalcMap&n.w){this.mouseX=t;this.width=this.$el.clientWidth;this.parent.width=(h=(e=this.$el.parentElement)===null||e===void 0?void 0:e.clientWidth)!==null&&h!==void 0?h:0;const i=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight);this.minW=Math.max(i,this.initialProps.minWidth||0);if(this.initialProps.maxWidth){this.maxW=Math.max(this.width,this.initialProps.maxWidth)}}if(this.disableCalcMap&n.h){this.mouseY=i;this.height=this.$el.clientHeight;this.parent.height=(l=(o=this.$el.parentElement)===null||o===void 0?void 0:o.clientHeight)!==null&&l!==void 0?l:0;const t=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);this.minH=Math.max(t,this.initialProps.minHeight||0);if(this.initialProps.maxHeight){this.maxH=Math.max(this.height,this.initialProps.maxHeight)}}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH;this.width=this.height=0;if(this.activeResizer){this.activeResizer.removeAttribute("style")}this.$el.classList.remove("active");this.activeResizer=undefined}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.addEventListener("touchend",this.mouseUpFunc,true);document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.removeEventListener("touchend",this.mouseUpFunc,true);document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const c=(i,s)=>{const e=[];const o=i.canResize&&new r(i,(t=>{var s;if(t.eventName===h.end){(s=i.onResize)===null||s===void 0?void 0:s.call(i,t)}}))||null;if(i.active){if(i.canResize){for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},onMouseDown:t=>o===null||o===void 0?void 0:o.handleDown(t),onTouchStart:t=>o===null||o===void 0?void 0:o.handleDown(t),class:`resizable resizable-${i.active[s]}`}))}}else{for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onTouchStart:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},class:`no-resize resizable resizable-${i.active[s]}`}))}}}return t("div",Object.assign({},i,{ref:t=>t&&(o===null||o===void 0?void 0:o.set(t))}),s,e)};const u="columnclick";const a=({data:e,props:h,additionalData:o},n)=>{let l=(e===null||e===void 0?void 0:e.name)||"";let r=h;if(e===null||e===void 0?void 0:e.columnTemplate){l=e.columnTemplate(t,e,o)}if(e===null||e===void 0?void 0:e.columnProperties){const t=e.columnProperties(e);if(t){r=i(h,t)}}const a=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,u,{data:e,event:t})}});return t(c,Object.assign({},a),t("div",{class:"header-content"},l),n)};export{a as H,u as O,e as a,s as d};
|
|
5
|
-
//# sourceMappingURL=header-cell-renderer-32d2ed96.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["dispatch","target","eventName","detail","event","CustomEvent","cancelable","bubbles","dispatchEvent","dispatchByEvent","e","preventDefault","ResizeEvents","RESIZE_MASK","bit","cursor","DISABLE_MASK","l","t","w","h","defaultProps","props","Object","assign","fitParent","active","disableAttributes","minWidth","minHeight","ResizeDirective","constructor","initialProps","$event","this","mouseX","mouseY","width","height","changeX","changeY","disableCalcMap","mouseMoveFunc","handleMove","bind","mouseUpFunc","handleUp","minW","minH","maxW","_a","maxWidth","maxH","_b","maxHeight","parent","resizeState","set","$el","forEach","attr","emitEvent","additionalOptions","isLeft","activeResizer","classList","contains","changedX","changedY","isTouchEvent","touches","length","eventY","eventX","clientY","clientX","isX","isY","diffY","newHeight","style","bottom","diffX","newWidth","right","left","move","handleDown","defaultPrevented","dropInitial","elClass","document","body","setInitials","start","bindMove","end","unbindMove","computedStyle","getComputedStyle","add","clientWidth","parentElement","minPaddingX","parseFloat","paddingLeft","paddingRight","Math","max","clientHeight","_d","_c","minPaddingY","paddingTop","paddingBottom","removeAttribute","remove","undefined","documentElement","addEventListener","removeEventListener","ResizableElement","children","resizeEls","directive","canResize","onResize","call","p","push","onClick","onDblClick","onMouseDown","onTouchStart","class","ref","ON_COLUMN_CLICK","HeaderCellRenderer","data","additionalData","colTemplate","name","cellProps","columnTemplate","columnProperties","extra","doPropMerge","resizeProps","currentTarget"],"sources":["src/plugins/dispatcher.ts","src/components/header/resizable.directive.tsx","src/components/header/resizable.element.tsx","src/components/header/header-cell-renderer.tsx"],"sourcesContent":["/**\n * Dispatches a custom event to a specified target element.\n *\n * @param target - The target element to dispatch the event to.\n * @param eventName - The name of the custom event.\n * @param detail - Optional. The detail of the custom event.\n * @returns The custom event that was dispatched.\n */\nexport function dispatch<DispatchDetail = any>(\n target: MouseEvent['target'],\n eventName: string,\n detail?: DispatchDetail,\n) {\n // Create a new CustomEvent with the specified event name and detail.\n const event = new CustomEvent<DispatchDetail>(eventName, {\n detail,\n cancelable: true, // Indicates whether the event can be canceled.\n bubbles: true, // Indicates whether the event bubbles up through the DOM.\n });\n\n // Dispatch the event on the target element.\n target?.dispatchEvent(event);\n\n // Return the custom event that was dispatched.\n return event;\n}\n\n/**\n * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.\n *\n * @param e - The original event object containing the target and preventDefault method.\n * @param eventName - The name of the custom event.\n * @param detail - Optional. The detail of the custom event.\n * @returns The custom event that was dispatched.\n */\nexport function dispatchByEvent<DispatchDetail = any>(\n e: Pick<MouseEvent, 'target' | 'preventDefault'>, // The original event object containing the target and preventDefault method.\n eventName: string, // The name of the custom event.\n detail?: DispatchDetail, // Optional. The detail of the custom event.\n): CustomEvent {\n // Prevent the default behavior of the original event.\n e.preventDefault();\n\n // Dispatch the custom event to the target element specified in the original event object.\n return dispatch<DispatchDetail>(e.target, eventName, detail);\n}\n","export type ResizeProps = {\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\n fitParent: boolean; // false\n minWidth: number; // 0\n minHeight: number; // 0\n\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\n maxWidth?: number;\n maxHeight?: number;\n\n onResize?(e: ResizeEvent): void;\n};\n\nexport type ResizeEvent = {\n eventName: string;\n changedX?: number;\n changedY?: number;\n width?: number;\n height?: number;\n};\n\nexport enum ResizeEvents {\n start = 'resize:start',\n move = 'resize:move',\n end = 'resize:end',\n}\n\nconst RESIZE_MASK: { [key: string]: any } = {\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\n};\n\nconst DISABLE_MASK = {\n l: 0b0001,\n t: 0b0010,\n w: 0b0100,\n h: 0b1000,\n};\n\nconst defaultProps = (props: Partial<ResizeProps>): ResizeProps => {\n return {\n ...props,\n fitParent: props.fitParent || false,\n active: props.active || [],\n disableAttributes: props.disableAttributes || [],\n minWidth: props.minWidth || 0,\n minHeight: props.minHeight || 0,\n };\n};\n\nexport class ResizeDirective {\n private $el: HTMLElement;\n private props: ResizeProps;\n private minW: number;\n private minH: number;\n private maxW: number;\n private maxH: number;\n\n private mouseX = 0;\n private mouseY = 0;\n\n private width = 0;\n private height = 0;\n\n private changeX = 0;\n private changeY = 0;\n\n private parent: { width: number; height: number };\n private resizeState: number;\n private activeResizer?: HTMLElement;\n private disableCalcMap = 0b1111;\n\n private mouseMoveFunc: () => void;\n private mouseUpFunc: () => void;\n\n constructor(\n private initialProps: Partial<ResizeProps>,\n private $event?: (e: ResizeEvent) => void,\n ) {\n this.props = defaultProps(initialProps);\n this.mouseMoveFunc = this.handleMove.bind(this);\n this.mouseUpFunc = this.handleUp.bind(this);\n\n this.minW = this.props.minWidth;\n this.minH = this.props.minHeight;\n this.maxW = this.props.maxWidth ?? 0;\n this.maxH = this.props.maxHeight ?? 0;\n this.parent = { width: 0, height: 0 };\n this.resizeState = 0;\n }\n\n set($el: HTMLElement) {\n this.$el = $el;\n this.props.disableAttributes.forEach(attr => {\n switch (attr) {\n case 'l':\n this.disableCalcMap &= ~DISABLE_MASK.l;\n break;\n case 't':\n this.disableCalcMap &= ~DISABLE_MASK.t;\n break;\n case 'w':\n this.disableCalcMap &= ~DISABLE_MASK.w;\n break;\n case 'h':\n this.disableCalcMap &= ~DISABLE_MASK.h;\n }\n });\n }\n emitEvent(eventName: string, additionalOptions?: any) {\n if (!this.$event) {\n return;\n }\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n this.$event({\n eventName,\n width: this.width + this.changeX * (isLeft ? -1 : 1),\n height: this.height + this.changeY,\n changedX: this.changeX,\n changedY: this.changeY,\n ...additionalOptions,\n });\n }\n\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n const event = e as TouchEvent;\n return event.touches?.length >= 0;\n }\n\n handleMove(event: MouseEvent | TouchEvent) {\n if (!this.resizeState) {\n return;\n }\n let eventY, eventX;\n if (ResizeDirective.isTouchEvent(event)) {\n eventY = event.touches[0].clientY;\n eventX = event.touches[0].clientX;\n } else {\n eventY = event.clientY;\n eventX = event.clientX;\n }\n let isX =\n this.resizeState & RESIZE_MASK['resizable-r'].bit ||\n this.resizeState & RESIZE_MASK['resizable-l'].bit;\n\n let isY =\n this.resizeState & RESIZE_MASK['resizable-t'].bit ||\n this.resizeState & RESIZE_MASK['resizable-b'].bit;\n\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\n let diffY = eventY - this.mouseY;\n let changedY = this.changeY + diffY;\n const newHeight = this.height + changedY;\n // if overcrossed min height\n if (newHeight < this.minH) {\n changedY = -(this.height - this.minH);\n }\n // if overcrossed max heiht\n if (this.maxH && newHeight > this.maxH) {\n changedY = this.maxH - this.height;\n }\n\n this.changeY = changedY;\n this.mouseY = eventY;\n\n if (this.activeResizer) {\n this.activeResizer.style.bottom = `${-this.changeY}px`;\n }\n }\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n let diffX = eventX - this.mouseX;\n let changedX = this.changeX + diffX;\n const newWidth = this.width + changedX * (isLeft ? -1 : 1);\n\n // if overcrossed min width\n if (newWidth < this.minW) {\n changedX = -(this.width - this.minW);\n }\n // if overcrossed max width\n if (this.maxW && newWidth > this.maxW) {\n changedX = this.maxW - this.width;\n }\n\n this.changeX = changedX;\n this.mouseX = eventX;\n\n if (this.activeResizer) {\n if (!isLeft) {\n this.activeResizer.style.right = `${-this.changeX}px`;\n } else {\n this.activeResizer.style.left = `${this.changeX}px`;\n }\n }\n }\n this.emitEvent(ResizeEvents.move);\n }\n\n handleDown(event: MouseEvent | TouchEvent) {\n if (event.defaultPrevented) {\n return;\n }\n // stop other events if resize in progress\n event.preventDefault();\n\n this.dropInitial();\n for (let elClass in RESIZE_MASK) {\n const target = event.target as HTMLElement | null;\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\n if (ResizeDirective.isTouchEvent(event)) {\n this.setInitials(event.touches[0], target);\n } else {\n event.preventDefault && event.preventDefault();\n this.setInitials(event, target);\n }\n this.resizeState = RESIZE_MASK[elClass].bit;\n const eventName = ResizeEvents.start;\n this.emitEvent(eventName);\n break;\n }\n }\n this.bindMove();\n }\n\n handleUp(e: MouseEvent) {\n e.preventDefault();\n if (this.resizeState !== 0) {\n this.resizeState = 0;\n document.body.style.cursor = '';\n const eventName = ResizeEvents.end;\n this.emitEvent(eventName);\n }\n this.dropInitial();\n this.unbindMove();\n }\n\n private setInitials(\n { clientX, clientY }: { clientX: number; clientY: number },\n target?: HTMLElement,\n ) {\n const computedStyle = getComputedStyle(this.$el);\n this.$el.classList.add('active');\n this.activeResizer = target;\n\n if (this.disableCalcMap & DISABLE_MASK.w) {\n this.mouseX = clientX;\n this.width = this.$el.clientWidth;\n this.parent.width = this.$el.parentElement?.clientWidth ?? 0;\n\n // min width\n const minPaddingX =\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\n\n // max width\n if (this.initialProps.maxWidth) {\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\n }\n }\n\n if (this.disableCalcMap & DISABLE_MASK.h) {\n this.mouseY = clientY;\n this.height = this.$el.clientHeight;\n this.parent.height = this.$el.parentElement?.clientHeight ?? 0;\n\n // min height\n const minPaddingY =\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\n // max height\n if (this.initialProps.maxHeight) {\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\n }\n }\n }\n\n private dropInitial() {\n this.changeX = this.changeY = this.minW = this.minH;\n this.width = this.height = 0;\n if (this.activeResizer) {\n this.activeResizer.removeAttribute('style');\n }\n this.$el.classList.remove('active');\n this.activeResizer = undefined;\n }\n\n private bindMove() {\n document.documentElement.addEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\n }\n\n private unbindMove() {\n document.documentElement.removeEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mouseleave',\n this.mouseUpFunc,\n );\n }\n}\n","import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport {\n ResizeProps,\n ResizeDirective,\n ResizeEvents,\n} from './resizable.directive';\nimport type { CellProps } from '@type';\n\nexport type ResizableElementHTMLAttributes = Partial<ResizeProps> & CellProps;\n\nexport const ResizableElement: FunctionalComponent = (\n props: ResizableElementHTMLAttributes,\n children: VNode[],\n) => {\n const resizeEls: VNode[] = [];\n const directive =\n (props.canResize &&\n new ResizeDirective(props, e => {\n if (e.eventName === ResizeEvents.end) {\n props.onResize?.(e);\n }\n })) ||\n null;\n\n if (props.active) {\n if (props.canResize) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDblClick?.(e);\n }}\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\n class={`resizable resizable-${props.active[p]}`}\n />,\n );\n }\n } else {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onTouchStart={(e: TouchEvent) => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDblClick?.(e);\n }}\n class={`no-resize resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n }\n return (\n <div {...props} ref={e => e && directive?.set(e)}>\n {children}\n {resizeEls}\n </div>\n );\n};\n","import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { dispatch } from '../../plugins/dispatcher';\nimport { doPropMerge } from '../data/column.service';\nimport {\n ResizableElement,\n ResizableElementHTMLAttributes,\n} from './resizable.element';\nimport { ColumnTemplateProp } from '@type';\n\nexport const ON_COLUMN_CLICK = 'columnclick';\n\nexport const HeaderCellRenderer: FunctionalComponent<{\n props: ResizableElementHTMLAttributes;\n additionalData: any;\n data?: ColumnTemplateProp;\n}> = ({ data, props, additionalData }, children) => {\n let colTemplate: VNode | VNode[] | string = data?.name || '';\n let cellProps = props;\n if (data?.columnTemplate) {\n colTemplate = data.columnTemplate(h, data, additionalData);\n }\n if (data?.columnProperties) {\n const extra = data.columnProperties(data);\n if (extra) {\n cellProps = doPropMerge(props, extra);\n }\n }\n const resizeProps = {\n ...cellProps,\n onMouseDown(e: MouseEvent) {\n dispatch(e.currentTarget, ON_COLUMN_CLICK, {\n data,\n event: e,\n });\n },\n };\n return (\n <ResizableElement {...resizeProps}>\n <div class=\"header-content\">{colTemplate}</div>\n {children}\n </ResizableElement>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{i as n}from"./debounce-72878ced.js";function e(n){return n}var t=4294967295,s=t-1;var o=Math.floor,r=Math.min;function a(e,t,a,c){var i=0,u=e==null?0:e.length;if(u===0){return 0}t=a(t);var l=t!==t,f=t===null,d=n(t),E=t===undefined;while(i<u){var O=o((i+u)/2),A=a(e[O]),R=A!==undefined,b=A===null,F=A===A,T=n(A);if(l){var g=c||F}else if(E){g=F&&(c||R)}else if(f){g=F&&R&&(c||!b)}else if(d){g=F&&R&&!b&&(c||!T)}else if(b||T){g=false}else{g=c?A<=t:A<t}if(g){i=O+1}else{u=O}}return r(u,s)}var c=4294967295,i=c>>>1;function u(t,s,o){var r=0,c=t==null?r:t.length;if(typeof s=="number"&&s===s&&c<=i){while(r<c){var u=r+c>>>1,l=t[u];if(l!==null&&!n(l)&&(o?l<=s:l<s)){r=u+1}else{c=u}}return c}return a(t,s,e,o)}function l(n,e){return u(n,e)}function f(n,e={}){const t=[];const s={};const o={};const r=Object.assign({},e);const a=Object.keys(r).map(Number).sort(((n,e)=>n-e));a.reduce(((e,a,c)=>{const i={itemIndex:a,start:0,end:0};if(e){const t=(a-e.itemIndex-1)*n;i.start=t+e.end}else{i.start=a*n}i.end=i.start+r[a];t.push(i.start);o[a]=s[c]=i;return i}),undefined);return{indexes:a,positionIndexes:[...t],positionIndexToItem:Object.assign({},s),indexToItem:o,sizes:r}}const d=({indexes:n,positionIndexes:e,originItemSize:t,positionIndexToItem:s},o)=>{const r={itemIndex:0,start:0,end:0};const a=n.length?l(e,o):0;if(!a){r.itemIndex=Math.floor(o/t);r.start=r.itemIndex*t;r.end=r.start+t;return r}const c=s[a-1];if(c.end>o){return c}const i=o-c.end;const u=Math.floor(i/t);r.itemIndex=c.itemIndex+1+u;r.start=c.end+u*t;r.end=r.start+t;return r};function E(n,e){let t={itemIndex:e,start:0,end:0};if(n.indexToItem[e]){return n.indexToItem[e]}const s=n.indexes.length?l(n.indexes,e):0;if(!s){t.start=t.itemIndex*n.originItemSize;t.end=t.start+n.originItemSize;return t}const o=n.indexToItem[n.indexes[s-1]];t.start=o.end+(e-o.itemIndex-1)*n.originItemSize;t.end=t.start+n.originItemSize;return t}const O=30;const A=40;const R="data-rgCol";const b="data-rgRow";const F="disabled";const T="rgCell";const g="rowHeaders";const p="rgHeaderCell";const I="sortable";const M="header-rgRow";const m="actual-rgRow";const v="revo-drag-icon";const w="revo-draggable";const C="focused-cell";const h="selection-border-range";const x="mobile-handler";const D="temp-bg-range";const _="autofill-handle";const S="edit-input-wrapper";const N="Draggable item";const P="__rvgr";const L="focused-rgRow";var j;(function(n){n[n["MOUSE_LEFT"]=1]="MOUSE_LEFT";n[n["MOUSE_RIGHT"]=3]="MOUSE_RIGHT";n[n["MOUSE_MIDDLE"]=2]="MOUSE_MIDDLE";n[n["BACKSPACE"]=8]="BACKSPACE";n[n["COMMA"]=188]="COMMA";n[n["INSERT"]=45]="INSERT";n[n["DELETE"]=46]="DELETE";n[n["END"]=35]="END";n[n["ENTER"]=13]="ENTER";n[n["ESCAPE"]=27]="ESCAPE";n[n["CONTROL"]=17]="CONTROL";n[n["COMMAND_LEFT"]=91]="COMMAND_LEFT";n[n["COMMAND_RIGHT"]=93]="COMMAND_RIGHT";n[n["COMMAND_FIREFOX"]=224]="COMMAND_FIREFOX";n[n["ALT"]=18]="ALT";n[n["HOME"]=36]="HOME";n[n["PAGE_DOWN"]=34]="PAGE_DOWN";n[n["PAGE_UP"]=33]="PAGE_UP";n[n["PERIOD"]=190]="PERIOD";n[n["SPACE"]=32]="SPACE";n[n["SHIFT"]=16]="SHIFT";n[n["CAPS_LOCK"]=20]="CAPS_LOCK";n[n["TAB"]=9]="TAB";n[n["ARROW_RIGHT"]=39]="ARROW_RIGHT";n[n["ARROW_LEFT"]=37]="ARROW_LEFT";n[n["ARROW_UP"]=38]="ARROW_UP";n[n["ARROW_DOWN"]=40]="ARROW_DOWN";n[n["F1"]=112]="F1";n[n["F2"]=113]="F2";n[n["F3"]=114]="F3";n[n["F4"]=115]="F4";n[n["F5"]=116]="F5";n[n["F6"]=117]="F6";n[n["F7"]=118]="F7";n[n["F8"]=119]="F8";n[n["F9"]=120]="F9";n[n["F10"]=121]="F10";n[n["F11"]=122]="F11";n[n["F12"]=123]="F12";n[n["A"]=65]="A";n[n["C"]=67]="C";n[n["D"]=68]="D";n[n["F"]=70]="F";n[n["L"]=76]="L";n[n["O"]=79]="O";n[n["P"]=80]="P";n[n["S"]=83]="S";n[n["V"]=86]="V";n[n["X"]=88]="X"})(j||(j={}));var H;(function(n){n["ENTER"]="Enter";n["ENTER_NUM"]="NumpadEnter";n["A"]="KeyA";n["C"]="KeyC";n["X"]="KeyX";n["V"]="KeyV";n["ESCAPE"]="Escape";n["TAB"]="Tab";n["BACKSPACE"]="Backspace";n["DELETE"]="Delete";n["ARROW_RIGHT"]="ArrowRight";n["ARROW_LEFT"]="ArrowLeft";n["ARROW_UP"]="ArrowUp";n["ARROW_DOWN"]="ArrowDown";n["SHIFT"]="Shift"})(H||(H={}));var y;(function(n){n["ENTER"]="Enter";n["TAB"]="Tab"})(y||(y={}));const K=j;var G;(function(n){n["mac"]="Mac"})(G||(G={}));const U=G;function W(n,e=0){const t=[];const s=e+n;for(let n=e;n<s;n++){t.push(n)}return t}function z(n,e){return function(t){let s=0;let o=t.length-1;while(s<=o){const r=o+s>>1;const a=e(n,t[r]);if(a>0){s=r+1}else if(a<0){o=r-1}else{return r}}return-s-1}(this)}function B(n,e,t){n.splice(z.bind(n)(e,t),0,e);return n}function X(n,e){return n<e}function k(n,e,t=X){const s=[];let o=0;let r=0;let a=0;while(a<n.length+e.length){let c=o>=n.length;let i=r>=e.length;if(!c&&(i||t(n[o],e[r]))){s[a]=n[o];o++}else{s[a]=e[r];r++}a++}return s}function V(n){const e=n.createElement("div");e.style.overflow="scroll";e.style.visibility="hidden";e.style.position="absolute";e.style.top="-9999px";e.style.width="50px";e.style.height="50px";n.body.appendChild(e);const t=e.offsetWidth-e.clientWidth;n.body.removeChild(e);return t}function q(n,e,t){return(t[1]-t[0])*(n-e[0])/(e[1]-e[0])+t[0]}async function J(n=0){await new Promise((e=>{setTimeout((()=>e()),n)}))}function Q(n,e){e.forEach((e=>{Object.getOwnPropertyNames(e.prototype).forEach((t=>{Object.defineProperty(n.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t)||Object.create(null))}))}))}export{T as C,R as D,S as E,C as F,P as G,p as H,K,O as M,U as O,A as R,h as S,D as T,E as a,V as b,f as c,Q as d,b as e,z as f,d as g,F as h,g as i,I as j,M as k,m as l,k as m,v as n,w as o,B as p,x as q,W as r,q as s,J as t,_ as u,N as v,L as w,H as x,y,e as z};
|
|
5
|
-
//# sourceMappingURL=index-1dcad6ef.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["identity","value","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","nativeFloor","Math","floor","nativeMin","min","baseSortedIndexBy","array","iteratee","retHighest","low","high","length","valIsNaN","valIsNull","valIsSymbol","isSymbol","valIsUndefined","undefined","mid","computed","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","HALF_MAX_ARRAY_LENGTH","baseSortedIndex","sortedIndex","calculateDimensionData","originItemSize","newSizes","positionIndexes","positionIndexToItem","indexToItem","sizes","Object","assign","newIndexes","keys","map","Number","sort","a","b","reduce","previous","itemIndex","i","newItem","start","end","itemsBetween","push","indexes","getItemByPosition","pos","item","currentPlace","positionItem","relativePos","relativeIndex","getItemByIndex","dimension","index","MIN_COL_SIZE","RESIZE_INTERVAL","DATA_COL","DATA_ROW","DISABLED_CLASS","CELL_CLASS","ROW_HEADER_TYPE","HEADER_CLASS","HEADER_SORTABLE_CLASS","HEADER_ROW_CLASS","HEADER_ACTUAL_ROW_CLASS","DRAG_ICON_CLASS","DRAGGABLE_CLASS","FOCUS_CLASS","SELECTION_BORDER_CLASS","MOBILE_CLASS","TMP_SELECTION_BG_CLASS","CELL_HANDLER_CLASS","EDIT_INPUT_WR","DRAGG_TEXT","GRID_INTERNALS","ROW_FOCUSED_CLASS","codes","codesLetter","keyValues","KeyCodesEnum","osPlatform","OsPlatform","range","size","startAt","res","findPositionInArray","el","compareFn","arr","m","n","k","cmp","this","pushSorted","fn","splice","bind","simpleCompare","el1","el2","mergeSortedArray","arr1","arr2","merged","index1","index2","current","isArr1Depleted","isArr2Depleted","getScrollbarSize","document","container","createElement","style","overflow","visibility","position","top","width","height","body","appendChild","scrollbarWidth","offsetWidth","clientWidth","removeChild","scaleValue","from","to","async","timeout","delay","Promise","r","setTimeout","applyMixins","derivedCtor","constructors","forEach","baseCtor","getOwnPropertyNames","prototype","name","defineProperty","getOwnPropertyDescriptor","create"],"sources":["node_modules/lodash/identity.js","node_modules/lodash/_baseSortedIndexBy.js","node_modules/lodash/_baseSortedIndex.js","node_modules/lodash/sortedIndex.js","src/store/dimension/dimension.helpers.ts","src/utils/consts.ts","src/utils/key.codes.ts","src/utils/platform.ts","src/utils/index.ts"],"sourcesContent":["/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import sortedIndex from 'lodash/sortedIndex';\n\nimport type {\n DimensionSettingsState,\n PositionItem,\n ViewSettingSizeProp,\n} from '@type';\n\nexport type DimensionPosition = Pick<\n DimensionSettingsState,\n 'indexes' | 'positionIndexes' | 'originItemSize' | 'positionIndexToItem'\n>;\nexport type DimensionIndexInput = Pick<\n DimensionSettingsState,\n 'indexes' | 'originItemSize' | 'indexToItem'\n>;\nexport type DimensionSize = Pick<\n DimensionSettingsState,\n | 'indexes'\n | 'positionIndexes'\n | 'positionIndexToItem'\n | 'indexToItem'\n | 'realSize'\n | 'sizes'\n>;\n/**\n * Pre-calculation\n * Dimension custom sizes for each cell\n * Keeps only changed sizes, skips origin size\n */\nexport function calculateDimensionData(\n originItemSize: number,\n newSizes: ViewSettingSizeProp = {},\n) {\n const positionIndexes: number[] = [];\n const positionIndexToItem: { [position: number]: PositionItem } = {};\n const indexToItem: { [index: number]: PositionItem } = {};\n\n // combine all new sizes\n const sizes = { ...newSizes };\n // prepare order sorted new sizes and calculate changed real size\n const newIndexes = Object.keys(sizes).map(Number).sort((a, b) => a - b);\n // fill new coordinates based on what is changed\n newIndexes.reduce(\n (previous: PositionItem | undefined, itemIndex: number, i: number) => {\n const newItem: PositionItem = {\n itemIndex,\n start: 0,\n end: 0,\n };\n // if previous item was changed too\n if (previous) {\n const itemsBetween =\n (itemIndex - previous.itemIndex - 1) * originItemSize;\n newItem.start = itemsBetween + previous.end;\n } else {\n newItem.start = itemIndex * originItemSize;\n }\n newItem.end = newItem.start + sizes[itemIndex];\n positionIndexes.push(newItem.start);\n indexToItem[itemIndex] = positionIndexToItem[i] = newItem;\n return newItem;\n },\n undefined,\n );\n\n return {\n indexes: newIndexes,\n positionIndexes: [...positionIndexes],\n positionIndexToItem: { ...positionIndexToItem },\n indexToItem,\n sizes,\n };\n}\n\n/**\n * Calculate item by position\n */\nexport const getItemByPosition = (\n {\n indexes,\n positionIndexes,\n originItemSize,\n positionIndexToItem,\n }: DimensionPosition,\n pos: number,\n) => {\n const item: PositionItem = {\n itemIndex: 0,\n start: 0,\n end: 0,\n };\n const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;\n // not found or first index\n if (!currentPlace) {\n item.itemIndex = Math.floor(pos / originItemSize);\n item.start = item.itemIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n }\n const positionItem = positionIndexToItem[currentPlace - 1];\n // if item has specified size\n if (positionItem.end > pos) {\n return positionItem;\n }\n // special size item was present before\n const relativePos = pos - positionItem.end;\n const relativeIndex = Math.floor(relativePos / originItemSize);\n item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;\n item.start = positionItem.end + relativeIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n};\n\nexport function getItemByIndex(\n dimension: Pick<\n DimensionIndexInput,\n 'indexToItem' | 'indexes' | 'originItemSize'\n >,\n index: number,\n) {\n let item: PositionItem = {\n itemIndex: index,\n start: 0,\n end: 0,\n };\n // if item has specified size\n if (dimension.indexToItem[index]) {\n return dimension.indexToItem[index];\n }\n\n const currentPlace = dimension.indexes.length\n ? sortedIndex(dimension.indexes, index)\n : 0;\n // not found or first index\n if (!currentPlace) {\n item.start = item.itemIndex * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n }\n // special size item was present before\n const positionItem =\n dimension.indexToItem[dimension.indexes[currentPlace - 1]];\n item.start =\n positionItem.end +\n (index - positionItem.itemIndex - 1) * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n}\n","export const MIN_COL_SIZE = 30;\nexport const RESIZE_INTERVAL = 40;\n\nexport const DATA_COL = 'data-rgCol';\nexport const DATA_ROW = 'data-rgRow';\n\nexport const DISABLED_CLASS = 'disabled';\nexport const CELL_CLASS = 'rgCell';\nexport const ROW_HEADER_TYPE = 'rowHeaders';\nexport const HEADER_CLASS = 'rgHeaderCell';\nexport const HEADER_SORTABLE_CLASS = 'sortable';\nexport const HEADER_ROW_CLASS = 'header-rgRow';\nexport const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';\n\nexport const DRAG_ICON_CLASS = 'revo-drag-icon';\nexport const DRAGGABLE_CLASS = 'revo-draggable';\n\nexport const FOCUS_CLASS = 'focused-cell';\nexport const SELECTION_BORDER_CLASS = 'selection-border-range';\nexport const MOBILE_CLASS = 'mobile-handler';\nexport const TMP_SELECTION_BG_CLASS = 'temp-bg-range';\n\nexport const CELL_HANDLER_CLASS = 'autofill-handle';\n\nexport const EDIT_INPUT_WR = 'edit-input-wrapper';\n\nexport const DRAGG_TEXT = 'Draggable item';\nexport const GRID_INTERNALS = '__rvgr';\nexport const ROW_FOCUSED_CLASS = 'focused-rgRow';\n","enum codes {\n MOUSE_LEFT = 1,\n MOUSE_RIGHT = 3,\n MOUSE_MIDDLE = 2,\n BACKSPACE = 8,\n COMMA = 188,\n INSERT = 45,\n DELETE = 46,\n END = 35,\n ENTER = 13,\n ESCAPE = 27,\n CONTROL = 17,\n COMMAND_LEFT = 91,\n COMMAND_RIGHT = 93,\n COMMAND_FIREFOX = 224,\n ALT = 18,\n HOME = 36,\n PAGE_DOWN = 34,\n PAGE_UP = 33,\n PERIOD = 190,\n SPACE = 32,\n SHIFT = 16,\n CAPS_LOCK = 20,\n TAB = 9,\n ARROW_RIGHT = 39,\n ARROW_LEFT = 37,\n ARROW_UP = 38,\n ARROW_DOWN = 40,\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n A = 65,\n C = 67,\n D = 68,\n F = 70,\n L = 76,\n O = 79,\n P = 80,\n S = 83,\n V = 86,\n X = 88,\n}\n\nexport enum codesLetter {\n ENTER = 'Enter',\n ENTER_NUM = 'NumpadEnter',\n A = 'KeyA',\n C = 'KeyC',\n X = 'KeyX',\n V = 'KeyV',\n ESCAPE = 'Escape',\n TAB = 'Tab',\n BACKSPACE = 'Backspace',\n DELETE = 'Delete',\n ARROW_RIGHT = 'ArrowRight',\n ARROW_LEFT = 'ArrowLeft',\n ARROW_UP = 'ArrowUp',\n ARROW_DOWN = 'ArrowDown',\n SHIFT = 'Shift',\n}\n\nexport enum keyValues {\n ENTER = 'Enter', // Enter + NumpadEnter\n TAB = 'Tab',\n}\n\nexport default codes;\n","enum osPlatform {\n mac = 'Mac',\n}\nexport default osPlatform;\n","export * from './store.utils';\nexport * from './store.types';\nexport * from './column.utils';\nexport * from './consts';\nexport * from './key.utils';\nexport * from './key.codes';\nexport * from './row-header-utils';\n\n\n/* Generate range on size\n */\nexport function range(size: number, startAt = 0): number[] {\n const res: number[] = [];\n const end = startAt + size;\n for (let i = startAt; i < end; i++) {\n res.push(i);\n }\n return res;\n}\n\n/* Find index position in array */\nexport function findPositionInArray<T>(this: T[], el: T, compareFn: (el: T, el2: T) => number): number {\n return (function (arr): number {\n let m = 0;\n let n = arr.length - 1;\n\n while (m <= n) {\n const k = (n + m) >> 1;\n const cmp = compareFn(el, arr[k]);\n\n if (cmp > 0) {\n m = k + 1;\n } else if (cmp < 0) {\n n = k - 1;\n } else {\n return k;\n }\n }\n\n return -m - 1;\n })(this);\n}\n\n/**\n * Sorted push\n */\nexport function pushSorted<T>(arr: T[], el: T, fn: (el: T, el2: T) => number): T[] {\n arr.splice(findPositionInArray.bind(arr)(el, fn), 0, el);\n return arr;\n}\n\n// (arr1[index1] < arr2[index2])\nfunction simpleCompare<T>(el1: T, el2: T): boolean {\n return el1 < el2;\n}\n\n/**\n * Merge sorted array helper function\n */\nexport function mergeSortedArray<T>(arr1: T[], arr2: T[], compareFn: (el: T, el2: T) => boolean = simpleCompare): T[] {\n const merged: T[] = [];\n let index1 = 0;\n let index2 = 0;\n let current = 0;\n\n while (current < arr1.length + arr2.length) {\n let isArr1Depleted = index1 >= arr1.length;\n let isArr2Depleted = index2 >= arr2.length;\n\n if (!isArr1Depleted && (isArr2Depleted || compareFn(arr1[index1], arr2[index2]))) {\n merged[current] = arr1[index1];\n index1++;\n } else {\n merged[current] = arr2[index2];\n index2++;\n }\n\n current++;\n }\n\n return merged;\n}\n\n/**\n * Calculate system scrollbar size\n */\nexport function getScrollbarSize(document: Document): number {\n // Create a temporary div container and append it to the body\n const container = document.createElement('div');\n\n // Apply styling to ensure the div is scrollable\n container.style.overflow = 'scroll';\n container.style.visibility = 'hidden'; // make sure the container isn't visible\n container.style.position = 'absolute';\n container.style.top = '-9999px'; // move it out of the screen\n container.style.width = '50px'; // arbitrary width\n container.style.height = '50px'; // arbitrary height\n\n // Append the div to the body\n document.body.appendChild(container);\n\n // Calculate the width of the scrollbar\n const scrollbarWidth = container.offsetWidth - container.clientWidth;\n\n // Remove the div from the body after calculation\n document.body.removeChild(container);\n\n // Return the calculated width of the scrollbar\n return scrollbarWidth;\n}\n\n/* Scale a value between 2 ranges\n *\n * Sample:\n * // 55 from a 0-100 range to a 0-1000 range (Ranges don't have to be positive)\n * const n = scaleValue(55, [0,100], [0,1000]);\n *\n * Ranges of two values\n * @from\n * @to\n *\n * ~~ return value does the equivalent of Math.floor but faster.\n */\nexport function scaleValue(value: number, from: [number, number], to: [number, number]): number {\n return ((to[1] - to[0]) * (value - from[0])) / (from[1] - from[0]) + to[0];\n}\n\n/**\n * Async timeout\n */\nexport async function timeout(delay = 0): Promise<void> {\n await new Promise((r: (v?: any) => void) => {\n setTimeout(() => r(), delay);\n });\n}\n\n/**\n * Type script mixins\n */\nexport function applyMixins(derivedCtor: any, constructors: any[]) {\n constructors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null));\n });\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{O as n,K as r,x as t,y as e}from"./index-1dcad6ef.js";function u(n){const t=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT];return t.indexOf(n)!==-1}function a(t,e){if(e.includes(n.mac)){return[r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(t)}return t===r.CONTROL}function s(n){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(n)}function f(n){return t.BACKSPACE===n||t.DELETE===n}function i(n){return t.TAB===n}function o(n){return e.TAB===n}function c(n){return e.ENTER===n}function y(n){return n.ctrlKey&&n.code==="KeyX"||n.metaKey&&n.code==="KeyX"}function K(n){return n.ctrlKey&&n.code==="KeyC"||n.metaKey&&n.code==="KeyC"}function d(n){return n.ctrlKey&&n.code==="KeyV"||n.metaKey&&n.code==="KeyV"}function x(n){return n.ctrlKey&&n.code==="KeyA"||n.metaKey&&n.code==="KeyA"}export{a,s as b,f as c,i as d,o as e,c as f,y as g,K as h,u as i,d as j,x as k};
|
|
5
|
-
//# sourceMappingURL=key.utils-17273f42.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isMetaKey","code","keys","KeyCodesEnum","ARROW_DOWN","ARROW_UP","ARROW_LEFT","ARROW_RIGHT","HOME","END","DELETE","BACKSPACE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","TAB","PAGE_DOWN","PAGE_UP","ENTER","ESCAPE","SHIFT","CAPS_LOCK","ALT","indexOf","isCtrlKey","platform","includes","OsPlatform","mac","COMMAND_LEFT","COMMAND_RIGHT","COMMAND_FIREFOX","CONTROL","isCtrlMetaKey","isClear","codesLetter","isTab","isTabKeyValue","key","keyValues","isEnterKeyValue","isCut","event","ctrlKey","metaKey","isCopy","isPaste","isAll"],"sources":["src/utils/key.utils.ts"],"sourcesContent":["import KeyCodesEnum, { codesLetter, keyValues } from './key.codes';\nimport OsPlatform from './platform';\n\n\nexport function isMetaKey(code: number): boolean {\n const keys: KeyCodesEnum[] = [\n KeyCodesEnum.ARROW_DOWN,\n KeyCodesEnum.ARROW_UP,\n KeyCodesEnum.ARROW_LEFT,\n KeyCodesEnum.ARROW_RIGHT,\n KeyCodesEnum.HOME,\n KeyCodesEnum.END,\n KeyCodesEnum.DELETE,\n KeyCodesEnum.BACKSPACE,\n KeyCodesEnum.F1,\n KeyCodesEnum.F2,\n KeyCodesEnum.F3,\n KeyCodesEnum.F4,\n KeyCodesEnum.F5,\n KeyCodesEnum.F6,\n KeyCodesEnum.F7,\n KeyCodesEnum.F8,\n KeyCodesEnum.F9,\n KeyCodesEnum.F10,\n KeyCodesEnum.F11,\n KeyCodesEnum.F12,\n KeyCodesEnum.TAB,\n KeyCodesEnum.PAGE_DOWN,\n KeyCodesEnum.PAGE_UP,\n KeyCodesEnum.ENTER,\n KeyCodesEnum.ESCAPE,\n KeyCodesEnum.SHIFT,\n KeyCodesEnum.CAPS_LOCK,\n KeyCodesEnum.ALT,\n ];\n\n return keys.indexOf(code) !== -1;\n}\n\n// navigator.platform\nexport function isCtrlKey(code: number, platform: string): boolean {\n if (platform.includes(OsPlatform.mac)) {\n return [\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n }\n\n return code === KeyCodesEnum.CONTROL;\n}\n\nexport function isCtrlMetaKey(code: KeyCodesEnum): boolean {\n return [\n KeyCodesEnum.CONTROL,\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n}\n\nexport function isClear(code: string): boolean {\n return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;\n}\n\nexport function isTab(code: string): boolean {\n return codesLetter.TAB === code;\n}\nexport function isTabKeyValue(key: string): boolean {\n return keyValues.TAB === key;\n}\n\nexport function isEnterKeyValue(key: string): boolean {\n return keyValues.ENTER === key;\n}\n\nexport function isCut(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows\n (event.metaKey && event.code === 'KeyX')\n ); // Cmd + X on Mac\n}\nexport function isCopy(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows\n (event.metaKey && event.code === 'KeyC')\n ); // Cmd + C on Mac\n}\nexport function isPaste(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows\n (event.metaKey && event.code === 'KeyV')\n ); // Cmd + V on Mac\n}\nexport function isAll(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows\n (event.metaKey && event.code === 'KeyA')\n ); // Cmd + A on Mac\n}\n"],"mappings":";;;sEAIgBA,EAAUC,GACxB,MAAMC,EAAuB,CAC3BC,EAAaC,WACbD,EAAaE,SACbF,EAAaG,WACbH,EAAaI,YACbJ,EAAaK,KACbL,EAAaM,IACbN,EAAaO,OACbP,EAAaQ,UACbR,EAAaS,GACbT,EAAaU,GACbV,EAAaW,GACbX,EAAaY,GACbZ,EAAaa,GACbb,EAAac,GACbd,EAAae,GACbf,EAAagB,GACbhB,EAAaiB,GACbjB,EAAakB,IACblB,EAAamB,IACbnB,EAAaoB,IACbpB,EAAaqB,IACbrB,EAAasB,UACbtB,EAAauB,QACbvB,EAAawB,MACbxB,EAAayB,OACbzB,EAAa0B,MACb1B,EAAa2B,UACb3B,EAAa4B,KAGf,OAAO7B,EAAK8B,QAAQ/B,MAAW,CACjC,C,SAGgBgC,EAAUhC,EAAciC,GACtC,GAAIA,EAASC,SAASC,EAAWC,KAAM,CACrC,MAAO,CACLlC,EAAamC,aACbnC,EAAaoC,cACbpC,EAAaqC,iBACbL,SAASlC,E,CAGb,OAAOA,IAASE,EAAasC,OAC/B,C,SAEgBC,EAAczC,GAC5B,MAAO,CACLE,EAAasC,QACbtC,EAAamC,aACbnC,EAAaoC,cACbpC,EAAaqC,iBACbL,SAASlC,EACb,C,SAEgB0C,EAAQ1C,GACtB,OAAO2C,EAAYjC,YAAcV,GAAQ2C,EAAYlC,SAAWT,CAClE,C,SAEgB4C,EAAM5C,GACpB,OAAO2C,EAAYpB,MAAQvB,CAC7B,C,SACgB6C,EAAcC,GAC5B,OAAOC,EAAUxB,MAAQuB,CAC3B,C,SAEgBE,EAAgBF,GAC9B,OAAOC,EAAUrB,QAAUoB,CAC7B,C,SAEgBG,EAAMC,GACpB,OACGA,EAAMC,SAAWD,EAAMlD,OAAS,QAChCkD,EAAME,SAAWF,EAAMlD,OAAS,MAErC,C,SACgBqD,EAAOH,GACrB,OACGA,EAAMC,SAAWD,EAAMlD,OAAS,QAChCkD,EAAME,SAAWF,EAAMlD,OAAS,MAErC,C,SACgBsD,EAAQJ,GACtB,OACGA,EAAMC,SAAWD,EAAMlD,OAAS,QAChCkD,EAAME,SAAWF,EAAMlD,OAAS,MAErC,C,SACgBuD,EAAML,GACpB,OACGA,EAAMC,SAAWD,EAAMlD,OAAS,QAChCkD,EAAME,SAAWF,EAAMlD,OAAS,MAErC,Q","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{g as t}from"./index-1dcad6ef.js";import{z as e,m as s}from"./column.service-751345b2.js";function i(e,s,i,f,u){const l=t(u,e);const m=d(s);let h;if(m){let t=l.itemIndex-(m.itemIndex||0);if(t){h=a(Math.abs(t),Object.assign(Object.assign({positiveDirection:t>-1},u),s))}}const b=n(f,u.realSize,l);if(h){const t=o(l,i,b,h,u);if(t.length){r(h.items,t,h)}}if(!h){const t=c({firstItemStart:l.start,firstItemIndex:l.itemIndex,origSize:u.originItemSize,maxSize:b,maxCount:i,sizes:u.sizes});h={items:t,start:0,end:t.length-1}}return h}function n(t,e,s){return Math.min(t+(s.end-s.start),e)}function r(t,e,s){t.splice(s.end+1,0,...e);if(s.start>=s.end&&!(s.start===s.end&&s.start===0)){s.start+=e.length}s.end+=e.length}function o(t,e,s,i,n){const r=m(i);const o=c({sizes:n.sizes,firstItemStart:r.end,firstItemIndex:r.itemIndex+1,origSize:n.originItemSize,maxSize:s-(r.end-t.start),maxCount:e});return o}function c(t,e=0){const s=[];let i=t.firstItemIndex;let n=e;while(n<=t.maxSize&&i<t.maxCount){const e=f(i,t.sizes,t.origSize);s.push({start:t.firstItemStart+n,end:t.firstItemStart+n+e,itemIndex:i,size:e});n+=e;i++}return s}function a(t,e){var s,i;const n=[...e.items];const r=n.length;let o={start:e.start,end:e.end};if(t>r){return undefined}if(e.positiveDirection){let s=m(e);let i=o.start;const c=i+t;for(;i<c;i++){const t=s.itemIndex+1;const c=f(t,e.sizes,e.originItemSize);if(s.end+c>e.realSize){break}let a=i%r;if(!n[a]){throw new Error("incorrect index")}n[a]=s={start:s.end,end:s.end+c,itemIndex:t,size:c};o.start++;o.end=a}}else{let c=d(e);const a=o.end;for(let u=0;u<t;u++){const t=((s=c===null||c===void 0?void 0:c.itemIndex)!==null&&s!==void 0?s:0)-1;const l=f(t,e.sizes,e.originItemSize);let d=a-u;d=(d<0?r+d:d)%r;if(!n[d]){console.error("incorrect index");break}const m=(i=c===null||c===void 0?void 0:c.start)!==null&&i!==void 0?i:0;n[d]=c={start:m-l,end:m,itemIndex:t,size:l};o.start=d;o.end--}}const c={start:(o.start<0?r+o.start:o.start)%r,end:(o.end<0?r+o.end:o.end)%r};return Object.assign({items:n},c)}function f(t,e,s=0){if(e&&e[t]){return e[t]}return s}function u(t,e,s,i){if(!s||!i){return false}return t>=s.start&&t<=s.end||t>s.end&&i.end===e}function l(t,e,s,i){var n;if(!s){return false}return e+t>((n=i===null||i===void 0?void 0:i.end)!==null&&n!==void 0?n:0)}function d(t){return t.items[t.start]}function m(t){return t.items[t.end]}function h(t,e,s,i){const n=[...t];const r=n.length;let o=i;let c=0;let a=e;if(!r){return[]}while(c<r){const t=n[a];t.start=o;t.size=s;t.end=t.start+s;o=t.end;a++;c++;if(a===r){a=0}}return n}function b(){return{items:[],start:0,end:0,virtualSize:0,realCount:0}}class v{get lastCoordinate(){return this.lastKnownScroll}set lastCoordinate(t){this.lastKnownScroll=t}constructor(t){this.type=t;this.lastKnownScroll=0;this.store=e(b())}setViewPortCoordinate(t,e,s=false){const n=this.store.get("virtualSize");if(!n){return}const c=1;const a=e.originItemSize*c;const f=a*2;const h=n+f;let b=0;if(e.realSize>n){b=e.realSize-n-a}let v=t;if(v<0){v=0}else if(v>b){v=b}this.lastCoordinate=v;v-=a;v=v<0?0:v<b?v:b;let z;if(s){z={items:[],start:0,end:0}}else{z=this.getItems()}const j=d(z);const x=m(z);let O={};if(!u(v,e.realSize,j,x)){O=Object.assign(Object.assign({},O),i(v,z,this.store.get("realCount"),h,e));this.setViewport(Object.assign({},O))}else if(l(v,h,j,x)){const t=[...z.items];const s=o(j,this.store.get("realCount"),h+v-j.start,z,{sizes:e.sizes,originItemSize:e.originItemSize});if(s.length){const e={start:this.store.get("start"),end:this.store.get("end")};r(t,s,e);O=Object.assign(Object.assign(Object.assign({},O),{items:[...t]}),e);this.setViewport(Object.assign({},O))}}}setOriginalSizes(t){const e=this.store.get("items");const i=e.length;if(!i){return}s(this.store,{items:h(e,this.store.get("start"),t,this.lastCoordinate)})}getItems(){return{items:this.store.get("items"),start:this.store.get("start"),end:this.store.get("end")}}setViewport(t){if(typeof t.realCount==="number"||typeof t.virtualSize==="number"){t=Object.assign(Object.assign({},t),{items:t.items||[]})}s(this.store,t)}}const z=10;const j=(t,e,s=50)=>(e===null||e===void 0?void 0:e.size)||Math.max((t.toString().length+1)*z,s);export{v as V,o as a,c as b,l as c,d,m as e,j as f,i as g,u as i,a as r,h as s,r as u};
|
|
5
|
-
//# sourceMappingURL=row-header-utils-3dfbb81f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getUpdatedItemsByPosition","pos","items","realCount","virtualSize","dimension","activeItem","getItemByPosition","firstItem","getFirstItem","toUpdate","changedOffsetStart","itemIndex","recombineByOffset","Math","abs","Object","assign","positiveDirection","maxSizeVirtualSize","getMaxVirtualSize","realSize","extra","addMissingItems","length","updateMissingAndRange","getItems","firstItemStart","start","firstItemIndex","origSize","originItemSize","maxSize","maxCount","sizes","end","min","missing","range","splice","existingCollection","lastItem","getLastItem","opt","currentSize","index","size","newSize","getItemSize","push","offset","data","newItems","itemsCount","newRange","undefined","i","newIndex","newEnd","Error","_a","newStart","console","error","_b","isActiveRange","first","last","isActiveRangeOutsideLastItem","s","setItemSizes","vpItems","initialIndex","lastCoordinate","count","item","initialState","ViewportStore","this","lastKnownScroll","value","constructor","type","store","createStore","setViewPortCoordinate","position","force","viewportSize","get","frameOffset","singleOffsetInPx","outsize","maxCoordinate","allItems","setViewport","setOriginalSizes","setStore","LETTER_BLOCK_SIZE","calculateRowHeaderSize","itemsLength","rowHeaderColumn","minWidth","max","toString"],"sources":["src/store/vp/viewport.helpers.ts","src/store/vp/viewport.store.ts","src/utils/row-header-utils.ts"],"sourcesContent":["import {\n DimensionSettingsState,\n PositionItem,\n ViewSettingSizeProp,\n ViewportStateItems,\n VirtualPositionItem,\n Range,\n} from '@type';\n\nimport { getItemByPosition } from '../dimension/dimension.helpers';\n\nexport type DimensionDataViewport = Pick<\n DimensionSettingsState,\n | 'indexes'\n | 'positionIndexes'\n | 'positionIndexToItem'\n | 'sizes'\n | 'originItemSize'\n | 'realSize'\n>;\n\nexport type ItemsToUpdate = Pick<ViewportStateItems, 'items' | 'start' | 'end'>;\n/**\n * Update items based on new scroll position\n * If viewport wasn't changed fully simple recombination of positions\n * Otherwise rebuild viewport items\n */\nexport function getUpdatedItemsByPosition<T extends ItemsToUpdate>(\n pos: number, // coordinate\n items: T,\n realCount: number,\n virtualSize: number,\n dimension: DimensionDataViewport,\n): ItemsToUpdate {\n const activeItem: PositionItem = getItemByPosition(dimension, pos);\n const firstItem = getFirstItem(items);\n let toUpdate: ItemsToUpdate | undefined;\n // do simple position recombination if items already present in viewport\n if (firstItem) {\n let changedOffsetStart = activeItem.itemIndex - (firstItem.itemIndex || 0);\n // if item changed\n if (changedOffsetStart) {\n // simple recombination\n toUpdate = recombineByOffset(Math.abs(changedOffsetStart), {\n positiveDirection: changedOffsetStart > -1,\n ...dimension,\n ...items,\n });\n }\n }\n\n const maxSizeVirtualSize = getMaxVirtualSize(\n virtualSize,\n dimension.realSize,\n activeItem,\n );\n // if partial recombination add items if revo-viewport has some space left\n if (toUpdate) {\n const extra = addMissingItems(\n activeItem,\n realCount,\n maxSizeVirtualSize,\n toUpdate,\n dimension,\n );\n if (extra.length) {\n updateMissingAndRange(toUpdate.items, extra, toUpdate);\n }\n }\n\n // new collection if no items after replacement full replacement\n if (!toUpdate) {\n const items = getItems({\n firstItemStart: activeItem.start,\n firstItemIndex: activeItem.itemIndex,\n origSize: dimension.originItemSize,\n maxSize: maxSizeVirtualSize,\n maxCount: realCount,\n sizes: dimension.sizes,\n });\n\n // range now comes from 0 to length - 1\n toUpdate = {\n items,\n start: 0,\n end: items.length - 1,\n };\n }\n return toUpdate;\n}\n\n// virtual size can differ based on scroll position if some big items are present\n// scroll can be in the middle of item and virtual size will be larger\n// so we need to exclude this part from virtual size hence it's already passed\nfunction getMaxVirtualSize(\n virtualSize: number,\n realSize: number,\n activeItem: PositionItem,\n) {\n return Math.min(virtualSize + (activeItem.end - activeItem.start), realSize);\n}\n\nexport function updateMissingAndRange(\n items: VirtualPositionItem[],\n missing: VirtualPositionItem[],\n range: Range,\n) {\n items.splice(range.end + 1, 0, ...missing);\n // update range if start larger after recombination\n if (\n range.start >= range.end &&\n !(range.start === range.end && range.start === 0)\n ) {\n range.start += missing.length;\n }\n range.end += missing.length;\n}\n\n/**\n * If partial replacement\n * this function adds items if viewport has some space left\n */\nexport function addMissingItems<T extends ItemsToUpdate>(\n firstItem: PositionItem,\n realCount: number,\n virtualSize: number,\n existingCollection: T,\n dimension: Pick<DimensionSettingsState, 'sizes' | 'originItemSize'>,\n): VirtualPositionItem[] {\n const lastItem: VirtualPositionItem = getLastItem(existingCollection);\n const items = getItems({\n sizes: dimension.sizes,\n firstItemStart: lastItem.end,\n firstItemIndex: lastItem.itemIndex + 1,\n origSize: dimension.originItemSize,\n maxSize: virtualSize - (lastItem.end - firstItem.start),\n maxCount: realCount,\n });\n return items;\n}\n\n/**\n * Get wiewport items parameters\n * caching position and calculating items count in viewport\n */\nexport function getItems(\n opt: {\n firstItemIndex: number;\n firstItemStart: number;\n origSize: number;\n maxSize: number; // virtual size\n maxCount: number; // real item count, where the last item\n sizes?: ViewSettingSizeProp;\n },\n currentSize = 0,\n) {\n const items: VirtualPositionItem[] = [];\n\n let index = opt.firstItemIndex;\n let size = currentSize;\n\n // max size or max count\n while (size <= opt.maxSize && index < opt.maxCount) {\n const newSize = getItemSize(index, opt.sizes, opt.origSize);\n items.push({\n start: opt.firstItemStart + size,\n end: opt.firstItemStart + size + newSize,\n itemIndex: index,\n size: newSize,\n });\n size += newSize;\n index++;\n }\n return items;\n}\n\n/**\n * Do batch items recombination\n * If items not overlapped with existing viewport returns null\n */\ntype RecombindDimensionData = Pick<\n DimensionSettingsState,\n 'sizes' | 'realSize' | 'originItemSize'\n>;\ntype RecombineOffsetData = {\n positiveDirection: boolean;\n} & ItemsToUpdate &\n RecombindDimensionData;\nexport function recombineByOffset(\n offset: number,\n data: RecombineOffsetData,\n): ItemsToUpdate | undefined {\n const newItems = [...data.items];\n const itemsCount = newItems.length;\n let newRange = {\n start: data.start,\n end: data.end,\n };\n\n // if offset out of revo-viewport, makes sense whole redraw\n if (offset > itemsCount) {\n return undefined;\n }\n\n // is direction of scroll positive\n if (data.positiveDirection) {\n // push item to the end\n let lastItem: VirtualPositionItem = getLastItem(data);\n\n let i = newRange.start;\n const length = i + offset;\n for (; i < length; i++) {\n const newIndex = lastItem.itemIndex + 1;\n const size = getItemSize(\n newIndex,\n data.sizes,\n data.originItemSize,\n );\n\n // if item overlapped limit break a loop\n if (lastItem.end + size > data.realSize) {\n break;\n }\n\n // new item index to recombine\n let newEnd = i % itemsCount;\n\n // item should always present, we do not create new item, we recombine them\n if (!newItems[newEnd]) {\n throw new Error('incorrect index');\n }\n\n // do recombination\n newItems[newEnd] = lastItem = {\n start: lastItem.end,\n end: lastItem.end + size,\n itemIndex: newIndex,\n size: size,\n };\n // update range\n newRange.start++;\n newRange.end = newEnd;\n }\n\n // direction is negative\n } else {\n // push item to the start\n let firstItem = getFirstItem(data);\n\n const end = newRange.end;\n for (let i = 0; i < offset; i++) {\n const newIndex = (firstItem?.itemIndex ?? 0) - 1;\n const size = getItemSize(\n newIndex,\n data.sizes,\n data.originItemSize,\n );\n\n // new item index to recombine\n let newStart = end - i;\n newStart = (newStart < 0 ? itemsCount + newStart : newStart) % itemsCount;\n\n // item should always present, we do not create new item, we recombine them\n if (!newItems[newStart]) {\n console.error('incorrect index');\n break;\n }\n\n // do recombination\n const firstItemStart = firstItem?.start ?? 0;\n newItems[newStart] = firstItem = {\n start: firstItemStart - size,\n end: firstItemStart,\n itemIndex: newIndex,\n size: size,\n };\n // update range\n newRange.start = newStart;\n newRange.end--;\n }\n }\n const range = {\n start:\n (newRange.start < 0 ? itemsCount + newRange.start : newRange.start) %\n itemsCount,\n end:\n (newRange.end < 0 ? itemsCount + newRange.end : newRange.end) %\n itemsCount,\n };\n return {\n items: newItems,\n ...range,\n };\n}\n\nfunction getItemSize(\n index: number,\n sizes?: ViewSettingSizeProp,\n origSize = 0,\n): number {\n if (sizes && sizes[index]) {\n return sizes[index];\n }\n return origSize;\n}\n\n/**\n * Verify if position is in range of the PositionItem, start and end are included\n */\nexport function isActiveRange(\n pos: number,\n realSize: number,\n first?: PositionItem,\n last?: PositionItem,\n): boolean {\n if (!first || !last) {\n return false;\n }\n // if position is in range of first item\n // or position is after first item and last item is the last item in real size\n return (\n (pos >= first.start && pos <= first.end) ||\n (pos > first.end && last.end === realSize)\n );\n}\n\nexport function isActiveRangeOutsideLastItem(\n pos: number,\n virtualSize: number,\n firstItem?: PositionItem,\n lastItem?: PositionItem,\n) {\n // if no first item, means no items in viewport\n if (!firstItem) {\n return false;\n }\n return virtualSize + pos > (lastItem?.end ?? 0);\n}\n\nexport function getFirstItem(\n s: ItemsToUpdate,\n) {\n return s.items[s.start];\n}\n\nexport function getLastItem(s: ItemsToUpdate): VirtualPositionItem {\n return s.items[s.end];\n}\n\n/**\n * Set items sizes from start index to end\n * @param vpItems\n * @param start\n * @param size\n * @param lastCoordinate\n * @returns\n */\nexport function setItemSizes(\n vpItems: VirtualPositionItem[],\n initialIndex: number,\n size: number,\n lastCoordinate: number,\n) {\n const items = [...vpItems];\n const count = items.length;\n\n let pos = lastCoordinate;\n let i = 0;\n let start = initialIndex;\n\n // viewport not inited\n if (!count) {\n return [];\n }\n // loop through array from initial item after recombination\n while (i < count) {\n const item = items[start];\n item.start = pos;\n item.size = size;\n item.end = item.start + size;\n pos = item.end;\n // loop by start index\n start++;\n i++;\n\n // if start index out of array, reset it\n if (start === count) {\n start = 0;\n }\n }\n return items;\n}\n","import {\n DimensionDataViewport,\n addMissingItems,\n getFirstItem,\n getLastItem,\n getUpdatedItemsByPosition,\n isActiveRange,\n setItemSizes,\n updateMissingAndRange,\n isActiveRangeOutsideLastItem,\n ItemsToUpdate,\n} from './viewport.helpers';\nimport { createStore } from '@stencil/store';\nimport { type Observable, setStore } from '../../utils/store.utils';\nimport type {\n VirtualPositionItem,\n ViewportState,\n MultiDimensionType,\n} from '@type';\n\n/**\n * Viewport store\n * Used for virtualization (process of rendering only visible part of data)\n * Redraws viewport based on position and dimension\n */\nfunction initialState(): ViewportState {\n return {\n // virtual item information per rendered item\n items: [],\n // virtual dom item order to render\n start: 0,\n end: 0,\n\n // size of viewport in px\n virtualSize: 0,\n\n // total number of items\n realCount: 0,\n };\n}\n\n/**\n * Viewport store class\n */\nexport class ViewportStore {\n readonly store: Observable<ViewportState>;\n\n // last coordinate for store position restore\n private lastKnownScroll = 0;\n\n get lastCoordinate() {\n return this.lastKnownScroll;\n }\n set lastCoordinate(value: number) {\n this.lastKnownScroll = value;\n }\n constructor(readonly type: MultiDimensionType) {\n this.store = createStore(initialState());\n }\n\n /**\n * Render viewport based on coordinate\n * It's the main method for draw\n * Use force if you want to re-render viewport\n */\n setViewPortCoordinate(\n position: number,\n dimension: DimensionDataViewport,\n force = false,\n ) {\n const viewportSize = this.store.get('virtualSize');\n // no visible data to calculate\n if (!viewportSize) {\n return;\n }\n\n const frameOffset = 1;\n const singleOffsetInPx = dimension.originItemSize * frameOffset;\n // add offset to virtual size from both sides\n const outsize = singleOffsetInPx * 2;\n // math virtual size is based on visible area + 2 items outside of visible area\n const virtualSize = viewportSize + outsize;\n\n // expected no scroll if real size less than virtual size, position is 0\n let maxCoordinate = 0;\n // if there is nodes outside of viewport, max coordinate has to be adjusted\n if (dimension.realSize > viewportSize) {\n // max coordinate is real size minus virtual/rendered space\n maxCoordinate = dimension.realSize - viewportSize - singleOffsetInPx;\n }\n\n let pos = position;\n // limit position to max and min coordinates\n if (pos < 0) {\n pos = 0;\n } else if (pos > maxCoordinate) {\n pos = maxCoordinate;\n }\n\n // store last coordinate for further restore on redraw\n this.lastCoordinate = pos;\n\n // actual position is less than first item start based on offset\n pos -= singleOffsetInPx;\n pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;\n\n let allItems: ItemsToUpdate;\n // if force clear all items and start from 0\n if (force) {\n allItems = {\n items: [],\n start: 0,\n end: 0,\n };\n } else {\n allItems = this.getItems();\n }\n\n const firstItem: VirtualPositionItem | undefined = getFirstItem(allItems);\n const lastItem: VirtualPositionItem | undefined = getLastItem(allItems);\n\n let toUpdate: Partial<ViewportState> = {};\n\n // left position changed\n // verify if new position is in range of previously rendered first item\n if (!isActiveRange(pos, dimension.realSize, firstItem, lastItem)) {\n toUpdate = {\n ...toUpdate,\n ...getUpdatedItemsByPosition(\n pos,\n allItems,\n this.store.get('realCount'),\n virtualSize,\n dimension,\n ),\n };\n this.setViewport({ ...toUpdate });\n // verify is render area is outside of last item\n } else if (\n isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem)\n ) {\n const items = [...allItems.items];\n // check is any item missing for fulfill content\n const missing = addMissingItems(\n firstItem,\n this.store.get('realCount'),\n virtualSize + pos - firstItem.start,\n allItems,\n {\n sizes: dimension.sizes,\n originItemSize: dimension.originItemSize,\n },\n );\n\n // update missing items\n if (missing.length) {\n const range = {\n start: this.store.get('start'),\n end: this.store.get('end'),\n };\n updateMissingAndRange(items, missing, range);\n toUpdate = {\n ...toUpdate,\n items: [...items],\n ...range,\n };\n this.setViewport({ ...toUpdate });\n }\n }\n }\n\n /**\n * Set sizes for existing items\n */\n setOriginalSizes(size: number) {\n const items = this.store.get('items');\n const count = items.length;\n // viewport not inited\n if (!count) {\n return;\n }\n\n setStore(this.store, {\n items: setItemSizes(\n items,\n this.store.get('start'),\n size,\n this.lastCoordinate,\n ),\n });\n }\n\n getItems(): ItemsToUpdate {\n return {\n items: this.store.get('items'),\n start: this.store.get('start'),\n end: this.store.get('end'),\n };\n }\n\n setViewport(data: Partial<ViewportState>) {\n // drop items on virtual size change, require a new item set\n // drop items on real size change, require a new item set\n if (typeof data.realCount === 'number' || typeof data.virtualSize === 'number') {\n data = { ...data, items: data.items || [] };\n }\n setStore(this.store, data);\n }\n}\n","import { RowHeaders } from '..';\n\nconst LETTER_BLOCK_SIZE = 10;\nexport const calculateRowHeaderSize = (\n itemsLength: number,\n rowHeaderColumn?: RowHeaders,\n minWidth = 50,\n) => {\n return (\n rowHeaderColumn?.size ||\n Math.max((itemsLength.toString().length + 1) * LETTER_BLOCK_SIZE, minWidth)\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{f as t,d as i}from"./key.utils-17273f42.js";import{t as n}from"./index-1dcad6ef.js";class s{constructor(t,i){this.column=t;this.saveCallback=i;this.editInput=null;this.element=null;this.editCell=undefined}async componentDidRender(){var t;if(this.editInput){await n();(t=this.editInput)===null||t===void 0?void 0:t.focus()}}onKeyDown(n){const s=t(n.key);const e=i(n.key);if((e||s)&&n.target&&this.saveCallback&&!n.isComposing){this.beforeDisconnect();this.saveCallback(this.getValue(),e)}}beforeDisconnect(){var t;(t=this.editInput)===null||t===void 0?void 0:t.blur()}getValue(){var t;return(t=this.editInput)===null||t===void 0?void 0:t.value}render(t,i){var n,s;return t("input",{type:"text",enterKeyHint:"enter",value:(s=(n=this.editCell)===null||n===void 0?void 0:n.val)!==null&&s!==void 0?s:"",ref:t=>{this.editInput=t},onKeyDown:t=>this.onKeyDown(t)})}}export{s as T};
|
|
5
|
-
//# sourceMappingURL=text-editor-901c3eb8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TextEditor","constructor","column","saveCallback","this","editInput","element","editCell","undefined","componentDidRender","timeout","_a","focus","onKeyDown","e","isEnter","isEnterKeyValue","key","isKeyTab","isTab","target","isComposing","beforeDisconnect","getValue","blur","value","render","h","_additionalData","type","enterKeyHint","_b","val","ref","el"],"sources":["src/components/editors/text-editor.ts"],"sourcesContent":["import { VNode, h as createElement } from '@stencil/core';\nimport { isEnterKeyValue, isTab } from '../../utils/key.utils';\nimport { timeout } from '../../utils';\nimport { ColumnRegular } from '@type';\nimport { EditCell, EditorBase, SaveData } from '@type';\n\n/**\n * Represents a cell editor in a grid.\n *\n * It's a good place to start with your own editor.\n * It manages the editing of cells by handling events, saving data, rendering the editor UI, and managing the lifecycle of the editor instance.\n */\n\n/**\n * Callback triggered on cell editor save\n * Closes editor when called\n * @param preventFocus - if true editor will not be closed and next cell will not be focused\n */\nexport type SaveCallback = (value: SaveData | undefined, preventFocus: boolean) => void;\n\nexport class TextEditor implements EditorBase {\n editInput: HTMLInputElement | null = null;\n\n element: Element | null = null;\n editCell?: EditCell = undefined;\n\n constructor(\n public column: ColumnRegular,\n private saveCallback?: SaveCallback,\n ) {}\n\n /**\n * Callback triggered on cell editor render\n */\n async componentDidRender(): Promise<void> {\n if (this.editInput) {\n await timeout();\n this.editInput?.focus();\n }\n }\n\n onKeyDown(e: KeyboardEvent) {\n const isEnter = isEnterKeyValue(e.key);\n const isKeyTab = isTab(e.key);\n\n if (\n (isKeyTab || isEnter) &&\n e.target &&\n this.saveCallback &&\n !e.isComposing\n ) {\n // blur is needed to avoid autoscroll\n this.beforeDisconnect();\n // request callback which will close cell after all\n this.saveCallback(this.getValue(), isKeyTab);\n }\n }\n\n /**\n * IMPORTANT: Prevent scroll glitches when editor is closed and focus is on current input element.\n */\n beforeDisconnect() {\n this.editInput?.blur();\n }\n\n /**\n * Get value from input\n */\n getValue() {\n return this.editInput?.value;\n }\n\n /**\n * Render method for Editor plugin.\n * Renders input element with passed data from cell.\n *\n * @required @method\n * @param {Function} h - h function from stencil render.\n * @param {Object} _additionalData - additional data from plugin.\n * @returns {VNode} - input element.\n */\n render(h: typeof createElement, _additionalData: any): VNode | VNode[] {\n return h('input', {\n type: 'text',\n enterKeyHint: 'enter',\n // set input value from cell data\n value: this.editCell?.val ?? '',\n // save input element as ref for further usage\n ref: (el: HTMLInputElement | null) => {\n this.editInput = el;\n },\n // listen to keydown event on input element\n onKeyDown: (e: KeyboardEvent) => this.onKeyDown(e),\n });\n }\n}\n"],"mappings":";;;iGAoBaA,EAMX,WAAAC,CACSC,EACCC,GADDC,KAAAF,SACCE,KAAAD,eAPVC,KAAAC,UAAqC,KAErCD,KAAAE,QAA0B,KAC1BF,KAAAG,SAAsBC,S,CAUtB,wBAAMC,G,MACJ,GAAIL,KAAKC,UAAW,OACZK,KACNC,EAAAP,KAAKC,aAAS,MAAAM,SAAA,SAAAA,EAAEC,O,EAIpB,SAAAC,CAAUC,GACR,MAAMC,EAAUC,EAAgBF,EAAEG,KAClC,MAAMC,EAAWC,EAAML,EAAEG,KAEzB,IACGC,GAAYH,IACbD,EAAEM,QACFhB,KAAKD,eACJW,EAAEO,YACH,CAEAjB,KAAKkB,mBAELlB,KAAKD,aAAaC,KAAKmB,WAAYL,E,EAOvC,gBAAAI,G,OACEX,EAAAP,KAAKC,aAAS,MAAAM,SAAA,SAAAA,EAAEa,M,CAMlB,QAAAD,G,MACE,OAAOZ,EAAAP,KAAKC,aAAS,MAAAM,SAAA,SAAAA,EAAEc,K,CAYzB,MAAAC,CAAOC,EAAyBC,G,QAC9B,OAAOD,EAAE,QAAS,CAChBE,KAAM,OACNC,aAAc,QAEdL,OAAOM,GAAApB,EAAAP,KAAKG,YAAQ,MAAAI,SAAA,SAAAA,EAAEqB,OAAG,MAAAD,SAAA,EAAAA,EAAI,GAE7BE,IAAMC,IACJ9B,KAAKC,UAAY6B,CAAE,EAGrBrB,UAAYC,GAAqBV,KAAKS,UAAUC,I","ignoreList":[]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
import{s as t}from"./index-1dcad6ef.js";import{d as i,a as s}from"./debounce-72878ced.js";const r={contentSize:0,clientSize:0,virtualSize:0,maxSize:0};const e=-1;function n(t,i,s=0){return t+(s?i-s:0)}class o{constructor(t){this.cfg=t;this.preventArtificialScroll={rgRow:null,rgCol:null};this.previousScroll={rgRow:e,rgCol:e};this.params={rgRow:Object.assign({},r),rgCol:Object.assign({},r)}}setParams(t,i){const s=n(t.contentSize,t.clientSize,t.virtualSize);this.params[i]=Object.assign(Object.assign({},t),{maxSize:s-t.clientSize,virtualContentSize:s})}async setScroll(t){this.cancelScroll(t.dimension);const i=new Promise(((i,s)=>{if(this.cfg.skipAnimationFrame){return i()}const r=window.requestAnimationFrame((()=>{i()}));this.preventArtificialScroll[t.dimension]=s.bind(null,r)}));try{await i;const s=this.getParams(t.dimension);t.coordinate=Math.ceil(t.coordinate);this.previousScroll[t.dimension]=this.wrapCoordinate(t.coordinate,s);this.preventArtificialScroll[t.dimension]=null;this.cfg.applyScroll(Object.assign(Object.assign({},t),{coordinate:s.virtualSize?this.convert(t.coordinate,s,false):t.coordinate}))}catch(t){window.cancelAnimationFrame(t)}}scroll(t,i,s=false,r,n=false){this.cancelScroll(i);if(!s&&this.previousScroll[i]===t){this.previousScroll[i]=e;return}const o=this.getParams(i);this.cfg.runScroll({dimension:i,coordinate:o.virtualSize?this.convert(t,o):t,delta:r,outside:n})}getParams(t){return this.params[t]}wrapCoordinate(t,i){if(t<0){return e}if(typeof i.maxSize==="number"&&t>i.maxSize){return i.maxSize}return t}cancelScroll(t){var i,s;(s=(i=this.preventArtificialScroll)[t])===null||s===void 0?void 0:s.call(i);this.preventArtificialScroll[t]=null}convert(i,s,r=true){var e;const n=s.clientSize;const o=[0,((e=s.virtualContentSize)!==null&&e!==void 0?e:n)-n];const a=[0,s.contentSize-s.virtualSize];if(r){return t(i,o,a)}return t(i,a,o)}}class a{constructor(t=10){this.scrollThrottling=t;this.mouseWheelScrollTimestamp={rgCol:0,rgRow:0};this.lastKnownScrollCoordinate={rgCol:0,rgRow:0}}setCoordinate(t){this.lastKnownScrollCoordinate[t.dimension]=t.coordinate}latestScrollUpdate(t){this.mouseWheelScrollTimestamp[t]=(new Date).getTime()}isReady(t,i){const s=(new Date).getTime()-this.mouseWheelScrollTimestamp[t];return s>this.scrollThrottling&&i!==this.lastKnownScrollCoordinate[t]}}var c="Expected a function";function l(t,r,e){var n=true,o=true;if(typeof t!="function"){throw new TypeError(c)}if(s(e)){n="leading"in e?!!e.leading:n;o="trailing"in e?!!e.trailing:o}return i(t,r,{leading:n,maxWait:r,trailing:o})}export{a as L,o as a,n as g,l as t};
|
|
5
|
-
//# sourceMappingURL=throttle-138d69c3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["initialParams","contentSize","clientSize","virtualSize","maxSize","NO_COORDINATE","getContentSize","LocalScrollService","constructor","cfg","this","preventArtificialScroll","rgRow","rgCol","previousScroll","params","Object","assign","setParams","dimension","virtualContentSize","setScroll","e","cancelScroll","frameAnimation","Promise","resolve","reject","skipAnimationFrame","animationId","window","requestAnimationFrame","bind","getParams","coordinate","Math","ceil","wrapCoordinate","applyScroll","convert","id","cancelAnimationFrame","scroll","force","delta","outside","param","runScroll","c","_b","_a","call","pos","toReal","minRange","from","to","scaleValue","LocalScrollTimer","scrollThrottling","mouseWheelScrollTimestamp","lastKnownScrollCoordinate","setCoordinate","latestScrollUpdate","Date","getTime","isReady","type","change","FUNC_ERROR_TEXT","throttle","func","wait","options","leading","trailing","TypeError","isObject","debounce","maxWait"],"sources":["src/services/local.scroll.service.ts","src/services/local.scroll.timer.ts","node_modules/lodash/throttle.js"],"sourcesContent":["import type { DimensionType, ViewPortScrollEvent } from '@type';\nimport { scaleValue } from '../utils';\n\ninterface Config {\n skipAnimationFrame?: boolean;\n // scroll event inited and direction cached\n // scrollingService.proxyScroll get tiggered\n // setScroll event called from scrollingService\n runScroll(e: ViewPortScrollEvent): void;\n // all operation finished, apply scroll values\n applyScroll(e: ViewPortScrollEvent): void;\n}\n\ntype Params = {\n contentSize: number;\n virtualContentSize?: number;\n clientSize: number;\n virtualSize: number;\n maxSize?: number;\n};\n\nconst initialParams: Params = {\n contentSize: 0,\n clientSize: 0,\n virtualSize: 0,\n maxSize: 0,\n};\nconst NO_COORDINATE = -1;\n\n/**\n * Based on content size, client size and virtual size\n * return full size\n */\nexport function getContentSize(\n contentSize: number,\n clientSize: number,\n virtualSize = 0,\n): number {\n return contentSize + (virtualSize ? clientSize - virtualSize : 0);\n}\n\nexport default class LocalScrollService {\n private preventArtificialScroll: Record<DimensionType, (() => void) | null> = {\n rgRow: null,\n rgCol: null,\n };\n // to check if scroll changed\n private previousScroll: Record<DimensionType, number> = {\n rgRow: NO_COORDINATE,\n rgCol: NO_COORDINATE,\n };\n private params: Record<DimensionType, Params> = {\n rgRow: { ...initialParams },\n rgCol: { ...initialParams },\n };\n\n constructor(private cfg: Config) {}\n\n setParams(params: Params, dimension: DimensionType) {\n const virtualContentSize = getContentSize(\n params.contentSize,\n params.clientSize,\n params.virtualSize,\n );\n this.params[dimension] = {\n ...params,\n maxSize: virtualContentSize - params.clientSize,\n virtualContentSize,\n };\n }\n\n // apply scroll values after scroll done\n async setScroll(e: ViewPortScrollEvent) {\n this.cancelScroll(e.dimension);\n\n // start frame animation\n const frameAnimation = new Promise<void>((resolve, reject) => {\n // for example safari desktop has issues with animation frame\n if (this.cfg.skipAnimationFrame) {\n return resolve();\n }\n const animationId = window.requestAnimationFrame(() => {\n resolve();\n });\n this.preventArtificialScroll[e.dimension] = reject.bind(\n null,\n animationId,\n );\n });\n\n try {\n await frameAnimation;\n const params = this.getParams(e.dimension);\n e.coordinate = Math.ceil(e.coordinate);\n this.previousScroll[e.dimension] = this.wrapCoordinate(\n e.coordinate,\n params,\n );\n this.preventArtificialScroll[e.dimension] = null;\n this.cfg.applyScroll({\n ...e,\n coordinate: params.virtualSize\n ? this.convert(e.coordinate, params, false)\n : e.coordinate,\n });\n } catch (id) {\n window.cancelAnimationFrame(id);\n }\n }\n\n /**\n * On scroll event started\n */\n scroll(\n coordinate: number,\n dimension: DimensionType,\n force = false,\n delta?: number,\n outside = false,\n ) {\n // cancel all previous scrolls for same dimension\n this.cancelScroll(dimension);\n\n // drop if no change\n if (!force && this.previousScroll[dimension] === coordinate) {\n this.previousScroll[dimension] = NO_COORDINATE;\n return;\n }\n\n const param = this.getParams(dimension);\n // let component know about scroll event started\n this.cfg.runScroll({\n dimension: dimension,\n coordinate: param.virtualSize\n ? this.convert(coordinate, param)\n : coordinate,\n delta,\n outside,\n });\n }\n\n private getParams(dimension: DimensionType): Params {\n return this.params[dimension];\n }\n\n // check if scroll outside of region to avoid looping\n private wrapCoordinate(c: number, param: Params): number {\n if (c < 0) {\n return NO_COORDINATE;\n }\n\n if (typeof param.maxSize === 'number' && c > param.maxSize) {\n return param.maxSize;\n }\n return c;\n }\n\n // prevent already started scroll, performance optimization\n private cancelScroll(dimension: DimensionType) {\n this.preventArtificialScroll[dimension]?.();\n this.preventArtificialScroll[dimension] = null;\n }\n\n /* convert virtual to real and back, scale range */\n private convert(pos: number, param: Params, toReal = true): number {\n const minRange = param.clientSize;\n const from: [number, number] = [0, (param.virtualContentSize ?? minRange) - minRange];\n const to: [number, number] = [0, param.contentSize - param.virtualSize];\n if (toReal) {\n return scaleValue(pos, from, to);\n }\n return scaleValue(pos, to, from);\n }\n}\n","import type { DimensionType } from '@type';\n/**\n * Apply changes only if mousewheel event happened some time ago (scrollThrottling)\n */\nexport class LocalScrollTimer {\n /**\n * Last mw event time for trigger scroll function below\n * If mousewheel function was ignored we still need to trigger render\n */\n private mouseWheelScrollTimestamp: Record<DimensionType, number> = {\n rgCol: 0,\n rgRow: 0,\n };\n private lastKnownScrollCoordinate: Record<DimensionType, number> = {\n rgCol: 0,\n rgRow: 0,\n };\n\n constructor(private scrollThrottling = 10) {}\n\n setCoordinate(e: { dimension: DimensionType; coordinate: number }) {\n this.lastKnownScrollCoordinate[e.dimension] = e.coordinate;\n }\n\n /**\n * Remember last mw event time\n */\n latestScrollUpdate(dimension: DimensionType) {\n this.mouseWheelScrollTimestamp[dimension] = new Date().getTime();\n }\n\n /**\n * Check if scroll is ready to accept new value\n */\n isReady(type: DimensionType, coordinate: number) {\n const change = new Date().getTime() - this.mouseWheelScrollTimestamp[type];\n // apply after throttling\n return (\n change > this.scrollThrottling &&\n coordinate !== this.lastKnownScrollCoordinate[type]\n );\n }\n}\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n"],"mappings":"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","ignoreList":[]}
|
package/standalone/identity.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* This method returns the first argument it receives.
|
|
6
|
-
*
|
|
7
|
-
* @static
|
|
8
|
-
* @since 0.1.0
|
|
9
|
-
* @memberOf _
|
|
10
|
-
* @category Util
|
|
11
|
-
* @param {*} value Any value.
|
|
12
|
-
* @returns {*} Returns `value`.
|
|
13
|
-
* @example
|
|
14
|
-
*
|
|
15
|
-
* var object = { 'a': 1 };
|
|
16
|
-
*
|
|
17
|
-
* console.log(_.identity(object) === object);
|
|
18
|
-
* // => true
|
|
19
|
-
*/
|
|
20
|
-
function identity(value) {
|
|
21
|
-
return value;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { identity as i };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"identity.js","mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,KAAK,CAAC;AACf;;;;","names":[],"sources":["node_modules/lodash/identity.js"],"sourcesContent":["/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n"],"version":3}
|