@revolist/revogrid 4.0.11 → 4.0.14
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-53fde1aa.js.map +1 -1
- package/dist/cjs/base.plugin-32f80cb5.js +219 -0
- package/dist/cjs/base.plugin-32f80cb5.js.map +1 -0
- package/dist/cjs/{column.service-e83d9809.js → column.service-52b4cac9.js} +28 -12
- package/dist/cjs/column.service-52b4cac9.js.map +1 -0
- package/dist/cjs/dimension.helpers-ee39d6c4.js.map +1 -1
- package/dist/cjs/events-b28cc194.js +52 -0
- package/dist/cjs/events-b28cc194.js.map +1 -0
- package/dist/cjs/filter.button-db6cbd2e.js.map +1 -1
- package/dist/cjs/{header-cell-renderer-8ba9b56d.js → header-cell-renderer-a3f202a1.js} +2 -2
- package/dist/cjs/{header-cell-renderer-8ba9b56d.js.map → header-cell-renderer-a3f202a1.js.map} +1 -1
- package/dist/cjs/{index-73c149e3.js → index-a9f1b728.js} +3 -4
- package/dist/cjs/index-a9f1b728.js.map +1 -0
- package/dist/cjs/index.cjs.js +26 -23
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{key.utils-59b9b528.js → key.utils-ee3d9eab.js} +2 -2
- package/dist/cjs/{key.utils-59b9b528.js.map → key.utils-ee3d9eab.js.map} +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +74 -164
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +193 -142
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +2 -2
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +9 -9
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/{selection.store-2e110a67.js → selection.helpers-32abb2a9.js} +77 -75
- package/dist/cjs/selection.helpers-32abb2a9.js.map +1 -0
- package/dist/cjs/{throttle-f7aee21b.js → throttle-46478b04.js} +2 -2
- package/dist/cjs/{throttle-f7aee21b.js.map → throttle-46478b04.js.map} +1 -1
- package/dist/cjs/{viewport.helpers-6670177c.js → viewport.store-2ab4e166.js} +186 -1
- package/dist/cjs/viewport.store-2ab4e166.js.map +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
- package/dist/collection/components/data/cell-renderer.js.map +1 -1
- package/dist/collection/components/data/column.service.js +2 -2
- package/dist/collection/components/data/column.service.js.map +1 -1
- package/dist/collection/components/data/revogr-data.js +46 -46
- 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/editors/edit.utils.js.map +1 -1
- package/dist/collection/components/editors/revogr-edit.js +9 -9
- package/dist/collection/components/editors/revogr-edit.js.map +1 -1
- package/dist/collection/components/editors/text-editor.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/revogr-header.js +28 -28
- 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/order-row.service.js +1 -1
- package/dist/collection/components/order/order-row.service.js.map +1 -1
- package/dist/collection/components/order/revogr-order-editor.js +31 -28
- package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
- package/dist/collection/components/overlay/autofill.service.js +37 -26
- package/dist/collection/components/overlay/autofill.service.js.map +1 -1
- package/dist/collection/components/overlay/keyboard.service.js +8 -8
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js +141 -93
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
- package/dist/collection/components/overlay/selection.utils.js +37 -9
- package/dist/collection/components/overlay/selection.utils.js.map +1 -1
- package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid-style.css +8 -3
- package/dist/collection/components/revoGrid/revo-grid.js +150 -135
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.helpers.js +22 -8
- package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -2
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.service.js +2 -2
- package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +11 -12
- 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.js +17 -17
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +17 -17
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
- package/dist/collection/components/selectionFocus/revogr-focus.js +44 -43
- package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js +12 -12
- package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
- package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
- package/dist/collection/index.js +2 -12
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/plugins/column.auto-size.plugin.js +3 -4
- package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
- package/dist/collection/plugins/export/export.plugin.js +1 -1
- package/dist/collection/plugins/export/export.plugin.js.map +1 -1
- package/dist/collection/plugins/export/types.js.map +1 -1
- package/dist/collection/plugins/filter/filter.button.js.map +1 -1
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
- package/dist/collection/plugins/filter/filter.pop.js +4 -4
- package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +1 -2
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- 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.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -1
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
- package/dist/collection/serve/controller.js +86 -18
- package/dist/collection/services/column.data.provider.js +1 -2
- package/dist/collection/services/column.data.provider.js.map +1 -1
- package/dist/collection/services/data.provider.js +1 -2
- package/dist/collection/services/data.provider.js.map +1 -1
- package/dist/collection/services/dimension.provider.js +3 -5
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/collection/services/selection.store.connector.js +1 -2
- package/dist/collection/services/selection.store.connector.js.map +1 -1
- package/dist/collection/services/viewport.provider.js +1 -2
- package/dist/collection/services/viewport.provider.js.map +1 -1
- 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.map +1 -1
- package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
- package/dist/collection/store/dimension/dimension.store.js +1 -1
- package/dist/collection/store/dimension/dimension.store.js.map +1 -1
- package/dist/collection/store/{storeTypes.js → index.js} +5 -1
- package/dist/collection/store/index.js.map +1 -0
- package/dist/collection/store/selection/index.js +0 -1
- package/dist/collection/store/selection/index.js.map +1 -1
- package/dist/collection/store/selection/selection.helpers.js.map +1 -1
- 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/index.js.map +1 -0
- package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
- package/dist/collection/store/{viewport → vp}/viewport.store.js +4 -7
- package/dist/collection/store/vp/viewport.store.js.map +1 -0
- package/dist/collection/types/index.js +11 -0
- package/dist/collection/types/index.js.map +1 -0
- package/dist/collection/types/interfaces.js +4 -0
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/collection/types/viewport.interfaces.js.map +1 -1
- package/dist/collection/utils/events.js +11 -1
- package/dist/collection/utils/events.js.map +1 -1
- package/dist/collection/utils/index.js +0 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/row-header-utils.js +2 -2
- package/dist/collection/utils/row-header-utils.js.map +1 -1
- package/dist/collection/utils/store.utils.js.map +1 -1
- package/dist/esm/app-globals-ef1fca59.js.map +1 -1
- package/dist/esm/base.plugin-d0e589d8.js +213 -0
- package/dist/esm/base.plugin-d0e589d8.js.map +1 -0
- package/dist/esm/{column.service-f4922a8d.js → column.service-a826bbd6.js} +27 -11
- package/dist/esm/column.service-a826bbd6.js.map +1 -0
- package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -1
- package/dist/esm/events-77b43b40.js +48 -0
- package/dist/esm/events-77b43b40.js.map +1 -0
- package/dist/esm/filter.button-46ce4f80.js.map +1 -1
- package/dist/esm/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
- package/dist/esm/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
- package/dist/esm/{index-98fd0168.js → index-5a722722.js} +3 -4
- package/dist/esm/index-5a722722.js.map +1 -0
- package/dist/esm/index.js +4 -4
- package/dist/esm/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
- package/dist/esm/{key.utils-2836e8ae.js.map → key.utils-7c5d91dd.js.map} +1 -1
- package/dist/esm/revo-grid.entry.js +42 -132
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_6.entry.js +187 -136
- package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +2 -2
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +9 -9
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/esm/{selection.store-2577ddf9.js → selection.helpers-883ce6bc.js} +77 -75
- package/dist/esm/selection.helpers-883ce6bc.js.map +1 -0
- package/dist/esm/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
- package/dist/esm/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +1 -1
- package/dist/esm/{viewport.helpers-6591d423.js → viewport.store-d9e291c5.js} +187 -3
- package/dist/esm/viewport.store-d9e291c5.js.map +1 -0
- package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -1
- package/dist/revo-grid/base.plugin-d0e589d8.js +5 -0
- package/dist/revo-grid/base.plugin-d0e589d8.js.map +1 -0
- package/dist/revo-grid/column.service-a826bbd6.js +5 -0
- package/dist/revo-grid/column.service-a826bbd6.js.map +1 -0
- package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -1
- package/dist/revo-grid/events-77b43b40.js +5 -0
- package/dist/revo-grid/events-77b43b40.js.map +1 -0
- package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -1
- package/dist/revo-grid/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
- package/dist/revo-grid/index-5a722722.js +5 -0
- package/dist/{esm/index-98fd0168.js.map → revo-grid/index-5a722722.js.map} +1 -1
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
- package/dist/revo-grid/key.utils-7c5d91dd.js.map +1 -0
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/selection.helpers-883ce6bc.js +5 -0
- package/dist/revo-grid/selection.helpers-883ce6bc.js.map +1 -0
- package/dist/revo-grid/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
- package/dist/revo-grid/viewport.store-d9e291c5.js +5 -0
- package/dist/revo-grid/viewport.store-d9e291c5.js.map +1 -0
- package/dist/types/components/clipboard/revogr-clipboard.d.ts +1 -1
- package/dist/types/components/data/cell-renderer.d.ts +1 -1
- package/dist/types/components/data/column.service.d.ts +5 -5
- package/dist/types/components/data/revogr-data.d.ts +4 -4
- package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
- package/dist/types/components/editors/edit.utils.d.ts +1 -1
- package/dist/types/components/editors/revogr-edit.d.ts +2 -2
- package/dist/types/components/editors/text-editor.d.ts +2 -2
- 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/revogr-header.d.ts +4 -4
- package/dist/types/components/order/order-renderer.d.ts +2 -2
- package/dist/types/components/order/order-row.service.d.ts +1 -2
- package/dist/types/components/order/revogr-order-editor.d.ts +7 -4
- package/dist/types/components/overlay/autofill.service.d.ts +11 -10
- package/dist/types/components/overlay/keyboard.service.d.ts +4 -5
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +42 -19
- package/dist/types/components/overlay/selection.utils.d.ts +13 -6
- package/dist/types/components/revoGrid/grid.helpers.d.ts +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +10 -7
- package/dist/types/components/revoGrid/viewport.helpers.d.ts +14 -5
- package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +1 -3
- package/dist/types/components/revoGrid/viewport.service.d.ts +1 -4
- package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +1 -2
- package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -2
- package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -2
- package/dist/types/components/selectionFocus/revogr-focus.d.ts +3 -5
- package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -2
- package/dist/types/components/vnode/vnode.utils.d.ts +1 -1
- package/dist/types/components.d.ts +30 -16
- package/dist/types/index.d.ts +2 -12
- package/dist/types/plugins/export/export.plugin.d.ts +1 -1
- package/dist/types/plugins/export/types.d.ts +1 -1
- package/dist/types/plugins/filter/filter.button.d.ts +1 -1
- package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
- package/dist/types/plugins/filter/filter.pop.d.ts +1 -1
- package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -4
- package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +3 -3
- package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
- package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
- package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
- package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +1 -3
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -3
- package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
- package/dist/types/services/column.data.provider.d.ts +2 -3
- package/dist/types/services/data.provider.d.ts +2 -5
- package/dist/types/services/dimension.provider.d.ts +2 -4
- package/dist/types/services/selection.store.connector.d.ts +2 -3
- package/dist/types/services/viewport.provider.d.ts +3 -3
- package/dist/types/store/dataSource/data.proxy.d.ts +2 -2
- package/dist/types/store/dataSource/data.store.d.ts +3 -3
- package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
- package/dist/types/store/dimension/dimension.helpers.d.ts +1 -1
- package/dist/types/store/dimension/dimension.store.d.ts +4 -5
- package/dist/types/store/{storeTypes.d.ts → index.d.ts} +5 -1
- package/dist/types/store/selection/index.d.ts +0 -1
- package/dist/types/store/selection/selection.helpers.d.ts +1 -1
- package/dist/types/store/selection/selection.store.d.ts +2 -2
- package/dist/types/store/vp/index.d.ts +7 -0
- package/dist/types/store/{viewport → vp}/viewport.helpers.d.ts +1 -1
- package/dist/types/store/{viewport → vp}/viewport.store.d.ts +3 -7
- package/dist/types/types/index.d.ts +7 -0
- package/dist/types/types/interfaces.d.ts +444 -23
- package/dist/types/types/viewport.interfaces.d.ts +5 -8
- package/dist/types/utils/events.d.ts +4 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/row-header-utils.d.ts +1 -1
- package/dist/types/utils/store.utils.d.ts +1 -1
- package/hydrate/index.js +3224 -3126
- package/package.json +7 -8
- package/standalone/_baseIteratee.js +1104 -13
- package/standalone/_baseIteratee.js.map +1 -1
- package/standalone/_nodeUtil.js +260 -0
- package/standalone/_nodeUtil.js.map +1 -0
- package/standalone/column.service.js +78 -74
- package/standalone/column.service.js.map +1 -1
- package/standalone/data.store.js +2 -4
- package/standalone/data.store.js.map +1 -1
- package/standalone/debounce.js +2 -2
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/dimension.helpers.js.map +1 -1
- package/standalone/filter.button.js.map +1 -1
- package/standalone/identity.js +42 -2
- package/standalone/identity.js.map +1 -1
- package/standalone/index.js +5 -7
- package/standalone/index.js.map +1 -1
- package/standalone/index2.js +2 -3
- package/standalone/index2.js.map +1 -1
- package/standalone/isObjectLike.js +1 -34
- package/standalone/isObjectLike.js.map +1 -1
- package/standalone/revo-grid.js +125 -106
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-clipboard2.js.map +1 -1
- package/standalone/revogr-data2.js +3 -0
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-edit2.js +1 -1
- package/standalone/revogr-edit2.js.map +1 -1
- package/standalone/revogr-filter-panel.js.map +1 -1
- package/standalone/revogr-focus2.js +7 -3
- package/standalone/revogr-focus2.js.map +1 -1
- package/standalone/revogr-header2.js +5 -4
- 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 +143 -143
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/standalone/revogr-row-headers2.js +7 -7
- package/standalone/revogr-row-headers2.js.map +1 -1
- package/standalone/revogr-scroll-virtual2.js +1 -1
- 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 +23 -9
- package/standalone/revogr-viewport-scroll2.js.map +1 -1
- package/standalone/selection.utils.js +76 -9
- package/standalone/selection.utils.js.map +1 -1
- package/standalone/throttle.js +1 -1
- package/standalone/toNumber.js +35 -2
- package/standalone/toNumber.js.map +1 -1
- package/dist/cjs/column.service-e83d9809.js.map +0 -1
- package/dist/cjs/events-7ccd6894.js +0 -233
- package/dist/cjs/events-7ccd6894.js.map +0 -1
- package/dist/cjs/index-73c149e3.js.map +0 -1
- package/dist/cjs/selection.store-2e110a67.js.map +0 -1
- package/dist/cjs/storeTypes-b3f924b2.js +0 -106
- package/dist/cjs/storeTypes-b3f924b2.js.map +0 -1
- package/dist/cjs/viewport.helpers-6670177c.js.map +0 -1
- package/dist/collection/store/selection/selection.store.service.js +0 -39
- package/dist/collection/store/selection/selection.store.service.js.map +0 -1
- package/dist/collection/store/storeTypes.js.map +0 -1
- package/dist/collection/store/viewport/index.js.map +0 -1
- package/dist/collection/store/viewport/viewport.helpers.js.map +0 -1
- package/dist/collection/store/viewport/viewport.store.js.map +0 -1
- package/dist/esm/column.service-f4922a8d.js.map +0 -1
- package/dist/esm/events-3dd8ee7c.js +0 -228
- package/dist/esm/events-3dd8ee7c.js.map +0 -1
- package/dist/esm/selection.store-2577ddf9.js.map +0 -1
- package/dist/esm/storeTypes-f2647985.js +0 -101
- package/dist/esm/storeTypes-f2647985.js.map +0 -1
- package/dist/esm/viewport.helpers-6591d423.js.map +0 -1
- package/dist/revo-grid/column.service-f4922a8d.js +0 -5
- package/dist/revo-grid/column.service-f4922a8d.js.map +0 -1
- package/dist/revo-grid/events-3dd8ee7c.js +0 -5
- package/dist/revo-grid/events-3dd8ee7c.js.map +0 -1
- package/dist/revo-grid/index-98fd0168.js +0 -5
- package/dist/revo-grid/index-98fd0168.js.map +0 -1
- package/dist/revo-grid/key.utils-2836e8ae.js.map +0 -1
- package/dist/revo-grid/selection.store-2577ddf9.js +0 -5
- package/dist/revo-grid/selection.store-2577ddf9.js.map +0 -1
- package/dist/revo-grid/storeTypes-f2647985.js +0 -5
- package/dist/revo-grid/storeTypes-f2647985.js.map +0 -1
- package/dist/revo-grid/viewport.helpers-6591d423.js +0 -5
- package/dist/revo-grid/viewport.helpers-6591d423.js.map +0 -1
- package/dist/types/store/selection/selection.store.service.d.ts +0 -17
- package/dist/types/store/viewport/index.d.ts +0 -2
- package/standalone/_stringToPath.js +0 -1389
- package/standalone/_stringToPath.js.map +0 -1
- /package/dist/collection/store/{viewport → vp}/index.js +0 -0
- /package/dist/collection/store/{viewport → vp}/viewport.helpers.js +0 -0
- /package/dist/revo-grid/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { h, Host } from "@stencil/core";
|
|
4
|
+
import { h, Host, } from "@stencil/core";
|
|
5
5
|
import { FOCUS_CLASS } from "../../utils/consts";
|
|
6
6
|
import { getElStyle } from "../overlay/selection.utils";
|
|
7
|
-
import { getSourceItem } from "../../store/
|
|
7
|
+
import { getSourceItem } from "../../store/index";
|
|
8
8
|
/**
|
|
9
9
|
* Focus component. Shows focus layer around the cell that is currently in focus.
|
|
10
10
|
* @slot focus-${view.type}-${data.type}. @example focus-rgCol-rgRow
|
|
11
|
-
*/
|
|
11
|
+
*/
|
|
12
12
|
export class RevogrFocus {
|
|
13
13
|
constructor() {
|
|
14
14
|
this.activeFocus = null;
|
|
@@ -33,13 +33,14 @@ export class RevogrFocus {
|
|
|
33
33
|
const column = getSourceItem(this.colData, focus.x);
|
|
34
34
|
this.afterFocus.emit({
|
|
35
35
|
model,
|
|
36
|
-
column
|
|
36
|
+
column,
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
componentDidRender() {
|
|
40
40
|
var _a, _b;
|
|
41
41
|
const currentFocus = this.selectionStore.get('focus');
|
|
42
|
-
if (((_a = this.activeFocus) === null || _a === void 0 ? void 0 : _a.x) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.x) &&
|
|
42
|
+
if (((_a = this.activeFocus) === null || _a === void 0 ? void 0 : _a.x) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.x) &&
|
|
43
|
+
((_b = this.activeFocus) === null || _b === void 0 ? void 0 : _b.y) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.y)) {
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
45
46
|
this.activeFocus = currentFocus;
|
|
@@ -92,8 +93,8 @@ export class RevogrFocus {
|
|
|
92
93
|
"references": {
|
|
93
94
|
"DimensionCols": {
|
|
94
95
|
"location": "import",
|
|
95
|
-
"path": "
|
|
96
|
-
"id": "src/types/
|
|
96
|
+
"path": "@type",
|
|
97
|
+
"id": "src/types/index.ts::DimensionCols"
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
},
|
|
@@ -115,8 +116,8 @@ export class RevogrFocus {
|
|
|
115
116
|
"references": {
|
|
116
117
|
"DimensionRows": {
|
|
117
118
|
"location": "import",
|
|
118
|
-
"path": "
|
|
119
|
-
"id": "src/types/
|
|
119
|
+
"path": "@type",
|
|
120
|
+
"id": "src/types/index.ts::DimensionRows"
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
},
|
|
@@ -138,13 +139,13 @@ export class RevogrFocus {
|
|
|
138
139
|
"references": {
|
|
139
140
|
"Observable": {
|
|
140
141
|
"location": "import",
|
|
141
|
-
"path": "
|
|
142
|
-
"id": "src/types/
|
|
142
|
+
"path": "@type",
|
|
143
|
+
"id": "src/types/index.ts::Observable"
|
|
143
144
|
},
|
|
144
145
|
"SelectionStoreState": {
|
|
145
146
|
"location": "import",
|
|
146
|
-
"path": "
|
|
147
|
-
"id": "src/types/
|
|
147
|
+
"path": "@type",
|
|
148
|
+
"id": "src/types/index.ts::SelectionStoreState"
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
},
|
|
@@ -164,13 +165,13 @@ export class RevogrFocus {
|
|
|
164
165
|
"references": {
|
|
165
166
|
"Observable": {
|
|
166
167
|
"location": "import",
|
|
167
|
-
"path": "
|
|
168
|
-
"id": "src/types/
|
|
168
|
+
"path": "@type",
|
|
169
|
+
"id": "src/types/index.ts::Observable"
|
|
169
170
|
},
|
|
170
171
|
"DimensionSettingsState": {
|
|
171
172
|
"location": "import",
|
|
172
|
-
"path": "
|
|
173
|
-
"id": "src/types/
|
|
173
|
+
"path": "@type",
|
|
174
|
+
"id": "src/types/index.ts::DimensionSettingsState"
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
177
|
},
|
|
@@ -190,13 +191,13 @@ export class RevogrFocus {
|
|
|
190
191
|
"references": {
|
|
191
192
|
"Observable": {
|
|
192
193
|
"location": "import",
|
|
193
|
-
"path": "
|
|
194
|
-
"id": "src/types/
|
|
194
|
+
"path": "@type",
|
|
195
|
+
"id": "src/types/index.ts::Observable"
|
|
195
196
|
},
|
|
196
197
|
"DimensionSettingsState": {
|
|
197
198
|
"location": "import",
|
|
198
|
-
"path": "
|
|
199
|
-
"id": "src/types/
|
|
199
|
+
"path": "@type",
|
|
200
|
+
"id": "src/types/index.ts::DimensionSettingsState"
|
|
200
201
|
}
|
|
201
202
|
}
|
|
202
203
|
},
|
|
@@ -216,23 +217,23 @@ export class RevogrFocus {
|
|
|
216
217
|
"references": {
|
|
217
218
|
"Observable": {
|
|
218
219
|
"location": "import",
|
|
219
|
-
"path": "
|
|
220
|
-
"id": "src/types/
|
|
220
|
+
"path": "@type",
|
|
221
|
+
"id": "src/types/index.ts::Observable"
|
|
221
222
|
},
|
|
222
223
|
"DSourceState": {
|
|
223
224
|
"location": "import",
|
|
224
|
-
"path": "
|
|
225
|
-
"id": "src/store/
|
|
225
|
+
"path": "@store",
|
|
226
|
+
"id": "src/store/index.ts::DSourceState"
|
|
226
227
|
},
|
|
227
228
|
"DataType": {
|
|
228
229
|
"location": "import",
|
|
229
|
-
"path": "
|
|
230
|
-
"id": "src/types/
|
|
230
|
+
"path": "@type",
|
|
231
|
+
"id": "src/types/index.ts::DataType"
|
|
231
232
|
},
|
|
232
233
|
"DimensionRows": {
|
|
233
234
|
"location": "import",
|
|
234
|
-
"path": "
|
|
235
|
-
"id": "src/types/
|
|
235
|
+
"path": "@type",
|
|
236
|
+
"id": "src/types/index.ts::DimensionRows"
|
|
236
237
|
}
|
|
237
238
|
}
|
|
238
239
|
},
|
|
@@ -252,23 +253,23 @@ export class RevogrFocus {
|
|
|
252
253
|
"references": {
|
|
253
254
|
"Observable": {
|
|
254
255
|
"location": "import",
|
|
255
|
-
"path": "
|
|
256
|
-
"id": "src/types/
|
|
256
|
+
"path": "@type",
|
|
257
|
+
"id": "src/types/index.ts::Observable"
|
|
257
258
|
},
|
|
258
259
|
"DSourceState": {
|
|
259
260
|
"location": "import",
|
|
260
|
-
"path": "
|
|
261
|
-
"id": "src/store/
|
|
261
|
+
"path": "@store",
|
|
262
|
+
"id": "src/store/index.ts::DSourceState"
|
|
262
263
|
},
|
|
263
264
|
"ColumnRegular": {
|
|
264
265
|
"location": "import",
|
|
265
|
-
"path": "
|
|
266
|
-
"id": "src/types/
|
|
266
|
+
"path": "@type",
|
|
267
|
+
"id": "src/types/index.ts::ColumnRegular"
|
|
267
268
|
},
|
|
268
269
|
"DimensionCols": {
|
|
269
270
|
"location": "import",
|
|
270
|
-
"path": "
|
|
271
|
-
"id": "src/types/
|
|
271
|
+
"path": "@type",
|
|
272
|
+
"id": "src/types/index.ts::DimensionCols"
|
|
272
273
|
}
|
|
273
274
|
}
|
|
274
275
|
},
|
|
@@ -288,8 +289,8 @@ export class RevogrFocus {
|
|
|
288
289
|
"references": {
|
|
289
290
|
"FocusTemplateFunc": {
|
|
290
291
|
"location": "import",
|
|
291
|
-
"path": "
|
|
292
|
-
"id": "src/types/
|
|
292
|
+
"path": "@type",
|
|
293
|
+
"id": "src/types/index.ts::FocusTemplateFunc"
|
|
293
294
|
}
|
|
294
295
|
}
|
|
295
296
|
},
|
|
@@ -320,8 +321,8 @@ export class RevogrFocus {
|
|
|
320
321
|
"references": {
|
|
321
322
|
"FocusRenderEvent": {
|
|
322
323
|
"location": "import",
|
|
323
|
-
"path": "
|
|
324
|
-
"id": "src/types/
|
|
324
|
+
"path": "@type",
|
|
325
|
+
"id": "src/types/index.ts::FocusRenderEvent"
|
|
325
326
|
}
|
|
326
327
|
}
|
|
327
328
|
}
|
|
@@ -361,8 +362,8 @@ export class RevogrFocus {
|
|
|
361
362
|
"references": {
|
|
362
363
|
"ColumnRegular": {
|
|
363
364
|
"location": "import",
|
|
364
|
-
"path": "
|
|
365
|
-
"id": "src/types/
|
|
365
|
+
"path": "@type",
|
|
366
|
+
"id": "src/types/index.ts::ColumnRegular"
|
|
366
367
|
}
|
|
367
368
|
}
|
|
368
369
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revogr-focus.js","sourceRoot":"","sources":["../../../src/components/selectionFocus/revogr-focus.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"revogr-focus.js","sourceRoot":"","sources":["../../../src/components/selectionFocus/revogr-focus.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n Host,\n Event,\n Element,\n EventEmitter,\n} from '@stencil/core';\nimport { FOCUS_CLASS } from '../../utils/consts';\nimport { getElStyle } from '../overlay/selection.utils';\nimport { DSourceState, getSourceItem } from '@store';\nimport {\n Cell,\n SelectionStoreState,\n ColumnRegular,\n DataType,\n DimensionSettingsState,\n FocusRenderEvent,\n FocusTemplateFunc,\n Observable,\n DimensionCols,\n DimensionRows,\n} from '@type';\n\n/**\n * Focus component. Shows focus layer around the cell that is currently in focus.\n * @slot focus-${view.type}-${data.type}. @example focus-rgCol-rgRow\n */\n@Component({\n tag: 'revogr-focus',\n styleUrl: 'revogr-focus-style.scss',\n})\nexport class RevogrFocus {\n /**\n * Column type\n */\n @Prop() colType!: DimensionCols;\n /**\n * Row type\n */\n @Prop() rowType!: DimensionRows;\n\n /** Dynamic stores */\n /** Selection, range, focus for selection */\n @Prop() selectionStore!: Observable<SelectionStoreState>;\n /** Dimension settings Y */\n @Prop() dimensionRow!: Observable<DimensionSettingsState>;\n /** Dimension settings X */\n @Prop() dimensionCol!: Observable<DimensionSettingsState>;\n /**\n * Data rows source\n */\n @Prop() dataStore!: Observable<DSourceState<DataType, DimensionRows>>;\n /**\n * Column source\n */\n @Prop() colData!: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n\n /**\n * Focus template custom function. Can be used to render custom focus layer.\n */\n @Prop() focusTemplate: FocusTemplateFunc | null = null;\n\n /**\n * Before focus render event.\n * Can be prevented by event.preventDefault().\n * If preventDefault used slot will be rendered.\n */\n @Event({ eventName: 'beforefocusrender' })\n beforeFocusRender: EventEmitter<FocusRenderEvent>;\n /**\n * Before focus changed verify if it's in view and scroll viewport into this view\n * Can be prevented by event.preventDefault()\n */\n @Event({ eventName: 'beforescrollintoview' })\n beforeScrollIntoView: EventEmitter<{ el: HTMLElement }>;\n /**\n * Used to setup properties after focus was rendered\n */\n @Event({ eventName: 'afterfocus' }) afterFocus: EventEmitter<{\n model: any;\n column: ColumnRegular;\n }>;\n\n @Element() el: HTMLElement;\n private activeFocus: Cell = null;\n\n private changed(e: HTMLElement, focus: Cell) {\n const beforeScrollIn = this.beforeScrollIntoView.emit({ el: e });\n if (!beforeScrollIn.defaultPrevented) {\n e.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n const model = getSourceItem(this.dataStore, focus.y);\n const column = getSourceItem(this.colData, focus.x);\n this.afterFocus.emit({\n model,\n column,\n });\n }\n\n componentDidRender() {\n const currentFocus = this.selectionStore.get('focus');\n if (\n this.activeFocus?.x === currentFocus?.x &&\n this.activeFocus?.y === currentFocus?.y\n ) {\n return;\n }\n this.activeFocus = currentFocus;\n if (currentFocus && this.el) {\n this.changed(this.el, currentFocus);\n }\n }\n\n render() {\n const editCell = this.selectionStore.get('edit');\n if (editCell) {\n return;\n }\n const focusCell = this.selectionStore.get('focus');\n if (!focusCell) {\n return;\n }\n const event = this.beforeFocusRender.emit({\n range: {\n ...focusCell,\n x1: focusCell.x,\n y1: focusCell.y,\n },\n rowType: this.rowType,\n colType: this.colType,\n });\n if (event.defaultPrevented) {\n return <slot />;\n }\n const { detail } = event;\n const style = getElStyle(\n detail.range,\n this.dimensionRow.state,\n this.dimensionCol.state,\n );\n const extra = this.focusTemplate?.(h, detail);\n return (\n <Host class={FOCUS_CLASS} style={style}>\n <slot />\n {extra}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -84,13 +84,13 @@ export class RevogrFocus {
|
|
|
84
84
|
"references": {
|
|
85
85
|
"Observable": {
|
|
86
86
|
"location": "import",
|
|
87
|
-
"path": "
|
|
88
|
-
"id": "src/types/
|
|
87
|
+
"path": "@type",
|
|
88
|
+
"id": "src/types/index.ts::Observable"
|
|
89
89
|
},
|
|
90
90
|
"SelectionStoreState": {
|
|
91
91
|
"location": "import",
|
|
92
|
-
"path": "
|
|
93
|
-
"id": "src/types/
|
|
92
|
+
"path": "@type",
|
|
93
|
+
"id": "src/types/index.ts::SelectionStoreState"
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
},
|
|
@@ -110,13 +110,13 @@ export class RevogrFocus {
|
|
|
110
110
|
"references": {
|
|
111
111
|
"Observable": {
|
|
112
112
|
"location": "import",
|
|
113
|
-
"path": "
|
|
114
|
-
"id": "src/types/
|
|
113
|
+
"path": "@type",
|
|
114
|
+
"id": "src/types/index.ts::Observable"
|
|
115
115
|
},
|
|
116
116
|
"DimensionSettingsState": {
|
|
117
117
|
"location": "import",
|
|
118
|
-
"path": "
|
|
119
|
-
"id": "src/types/
|
|
118
|
+
"path": "@type",
|
|
119
|
+
"id": "src/types/index.ts::DimensionSettingsState"
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
},
|
|
@@ -136,13 +136,13 @@ export class RevogrFocus {
|
|
|
136
136
|
"references": {
|
|
137
137
|
"Observable": {
|
|
138
138
|
"location": "import",
|
|
139
|
-
"path": "
|
|
140
|
-
"id": "src/types/
|
|
139
|
+
"path": "@type",
|
|
140
|
+
"id": "src/types/index.ts::Observable"
|
|
141
141
|
},
|
|
142
142
|
"DimensionSettingsState": {
|
|
143
143
|
"location": "import",
|
|
144
|
-
"path": "
|
|
145
|
-
"id": "src/types/
|
|
144
|
+
"path": "@type",
|
|
145
|
+
"id": "src/types/index.ts::DimensionSettingsState"
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revogr-temp-range.js","sourceRoot":"","sources":["../../../src/components/selectionTempRange/revogr-temp-range.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport throttle from 'lodash/throttle';\nimport { TMP_SELECTION_BG_CLASS } from '../../utils/consts';\nimport { getElStyle } from '../overlay/selection.utils';\nimport { Observable, DimensionSettingsState } from '
|
|
1
|
+
{"version":3,"file":"revogr-temp-range.js","sourceRoot":"","sources":["../../../src/components/selectionTempRange/revogr-temp-range.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport throttle from 'lodash/throttle';\nimport { TMP_SELECTION_BG_CLASS } from '../../utils/consts';\nimport { getElStyle } from '../overlay/selection.utils';\nimport { Observable, DimensionSettingsState } from '@type';\nimport { SelectionStoreState, RangeArea } from '@type';\n\n/**\n * Temporary range selection component. Shows temporary range selection.\n */\n@Component({\n tag: 'revogr-temp-range',\n styleUrl: 'revogr-temp-range-style.scss',\n})\nexport class RevogrFocus {\n /**\n * Dynamic stores\n */\n\n /**\n * Selection store, shows current selection and focus\n */\n @Prop() selectionStore: Observable<SelectionStoreState>;\n\n /**\n * Dimension row store\n */\n @Prop() dimensionRow: Observable<DimensionSettingsState>;\n /**\n * Dimension column store\n */\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\n\n el: HTMLElement;\n private readonly onChange = throttle((e: HTMLElement) => this.doChange(e), 300);\n\n private doChange(e: HTMLElement) {\n e?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n componentDidRender() {\n if (this.el) {\n this.onChange(this.el);\n }\n }\n\n render() {\n const data = this.selectionStore.get('tempRange');\n const type = this.selectionStore.get('tempRangeType');\n if (!data) {\n return;\n }\n let directionY = 'bottom';\n let derectionX = 'right';\n const range = this.getRange();\n if (!range) {\n return;\n }\n if (data.y < range.y) {\n directionY = 'top';\n }\n if (data.x < range.x) {\n derectionX = 'left';\n }\n const directionClass = `${derectionX} ${directionY}`;\n const style = getElStyle(data, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <Host\n class={{\n [TMP_SELECTION_BG_CLASS]: true,\n [type || '']: true,\n }}\n style={style}\n hidden={false}\n >\n <div class={directionClass} ref={(e: HTMLElement) => (this.el = e)} />\n </Host>\n );\n }\n\n private getRange(): RangeArea | null {\n const range = this.selectionStore.get('range');\n if (range) {\n return range;\n }\n const focus = this.selectionStore.get('focus');\n if (!focus) {\n return null;\n }\n return {\n ...focus,\n x1: focus.x,\n y1: focus.y,\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vnode.utils.js","sourceRoot":"","sources":["../../../src/components/vnode/vnode.utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAqB,EAAE,MAA+B;IACvF,OAAO,IAAI,OAAO,CAAuC,OAAO,CAAC,EAAE;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACnD,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YACjC,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { JSX } from '
|
|
1
|
+
{"version":3,"file":"vnode.utils.js","sourceRoot":"","sources":["../../../src/components/vnode/vnode.utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAqB,EAAE,MAA+B;IACvF,OAAO,IAAI,OAAO,CAAuC,OAAO,CAAC,EAAE;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACnD,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YACjC,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { JSX } from '../../components';\n\n/**\n * Converts a VNode element into an HTML element and appends it to the specified parentHolder.\n */\nexport function convertVNodeToHTML(parentHolder: Element, redraw: JSX.VnodeHtml['redraw']) {\n return new Promise<HTMLVnodeHtmlElementEventMap['html']>(resolve => {\n const vnode = document.createElement('vnode-html');\n parentHolder.appendChild(vnode);\n vnode.redraw = redraw;\n vnode.addEventListener('html', e => {\n vnode.remove();\n resolve(e.detail);\n });\n });\n}\n"]}
|
package/dist/collection/index.js
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
export * from './types
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './types/selection';
|
|
7
|
-
export * from './types/theme';
|
|
8
|
-
export * from './types/viewport.interfaces';
|
|
9
|
-
export * from './types/plugin';
|
|
10
|
-
export * from './types/plugin.types';
|
|
4
|
+
export * from './types';
|
|
5
|
+
export * from './store';
|
|
11
6
|
export * from './plugins/base.plugin';
|
|
12
7
|
export * from './plugins/dispatcher';
|
|
13
|
-
export * from './store/dataSource';
|
|
14
|
-
export * from './store/dimension';
|
|
15
|
-
export * from './store/selection';
|
|
16
|
-
export * from './store/storeTypes';
|
|
17
|
-
export * from './store/viewport';
|
|
18
8
|
export * from './components';
|
|
19
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC","sourcesContent":["export * from './types';\nexport * from './store';\nexport * from './plugins/base.plugin';\nexport * from './plugins/dispatcher';\nexport * from './components';\n"]}
|
|
@@ -9,8 +9,7 @@ import each from "lodash/each";
|
|
|
9
9
|
import reduce from "lodash/reduce";
|
|
10
10
|
import { BasePlugin } from "./base.plugin";
|
|
11
11
|
import ColumnDataProvider from "../services/column.data.provider";
|
|
12
|
-
import { columnTypes } from "../store/
|
|
13
|
-
import { getSourceItem } from "../store/dataSource/data.store";
|
|
12
|
+
import { getSourceItem, columnTypes } from "../store/index";
|
|
14
13
|
const LETTER_BLOCK_SIZE = 7;
|
|
15
14
|
var ColumnAutoSizeMode;
|
|
16
15
|
(function (ColumnAutoSizeMode) {
|
|
@@ -36,7 +35,7 @@ export default class AutoSizeColumnPlugin extends BasePlugin {
|
|
|
36
35
|
this.precsizeCalculationArea = this.initiatePresizeElement();
|
|
37
36
|
revogrid.appendChild(this.precsizeCalculationArea);
|
|
38
37
|
}
|
|
39
|
-
const aftersourceset = ({ detail: { source } }) => {
|
|
38
|
+
const aftersourceset = ({ detail: { source }, }) => {
|
|
40
39
|
this.setSource(source);
|
|
41
40
|
};
|
|
42
41
|
const afteredit = ({ detail }) => {
|
|
@@ -45,7 +44,7 @@ export default class AutoSizeColumnPlugin extends BasePlugin {
|
|
|
45
44
|
const afterEditAll = ({ detail }) => {
|
|
46
45
|
this.afterEditAll(detail);
|
|
47
46
|
};
|
|
48
|
-
const beforecolumnsset = ({ detail: { columns } }) => {
|
|
47
|
+
const beforecolumnsset = ({ detail: { columns }, }) => {
|
|
49
48
|
this.columnSet(columns);
|
|
50
49
|
};
|
|
51
50
|
const headerDblClick = ({ detail }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.auto-size.plugin.js","sourceRoot":"","sources":["../../src/plugins/column.auto-size.plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,kBAAwC,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAoC/D,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,IAAK,kBAOJ;AAPD,WAAK,kBAAkB;IACrB,0EAA0E;IAC1E,iEAA2C,CAAA;IAC3C,0EAA0E;IAC1E,qEAA+C,CAAA;IAC/C,uFAAuF;IACvF,iDAA2B,CAAA;AAC7B,CAAC,EAPI,kBAAkB,KAAlB,kBAAkB,QAOtB;AAED,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAW1D,YAAY,QAA6B,EAAY,SAA0B,EAAU,MAA6B;QACpH,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QADwB,cAAS,GAAT,SAAS,CAAiB;QAAU,WAAM,GAAN,MAAM,CAAuB;QAV9G,oBAAe,GAAoC,IAAI,CAAC;QAMhE,wDAAwD;QAChD,gBAAW,GAAmB,IAAI,CAAC;QACnC,eAAU,GAAkB,IAAI,CAAC;QAIvC,IAAI,CAAC,eAAe,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,KAAI,iBAAiB,CAAC;QAEpE,4CAA4C;QAC5C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7D,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAA+B,EAAE,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;YACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;YAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAiC,EAAE,EAAE;YAClF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAmC,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE;oBAC5C,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI;iBACrB,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAC;YACrB,KAAK,kBAAkB,CAAC,qBAAqB;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,kBAAkB,CAAC,WAAW;gBACjC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACjD,MAAM;YACR;gBACE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBACxD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAkB;QACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAgB,EAAE,MAAc,EAAE,EAAE;gBAC/D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,OAAO,CAAC;YAC3B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAmB,EAAE,EAAE;YACzC,MAAM,KAAK,GAAwB,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;gBAC3B,iBAAiB;gBACjB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACxJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,GAAS;;QACzB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAE3B,2EAA2E;YAC3E,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,EAAE,CAAC;gBAC7B,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC7C,OAAO,IAAI,CAAC,uBAAuB,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,GAAG,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,CAAY;QAC5B,IAAI,IAA8B,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,IAAmB,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAwB,EAAE,CAAC;YAEtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACpB,iBAAiB;gBACjB,MAAM,IAAI,GAAG,MAAM,CACjB,IAAI,EACJ,CAAC,IAAwB,EAAE,KAAK,EAAE,EAAE;oBAClC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;wBAC7C,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,EACD,SAAS,CACV,CAAC;gBAEF,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;oBAC9B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,CAAY;QAC/B,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,IAAmB,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAwB,EAAE,CAAC;YAEtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACpB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACnD,IAAI,IAAI,EAAE,CAAC;wBACT,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,IAAmB;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACP,MAAM,QAAQ,GAAG,MAAM,CACrB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACpB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC,EACD,CAAC,CACF,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC,EACD,KAAK,CAAC,IAAI,IAAI,CAAC,CAChB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,OAAoB;;QACpC,KAAK,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAkB,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3B,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,CAAA,EAAE,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC5B,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClC,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mCACxB,IAAI,CAAC,CAAC,CAAC,KACV,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GACvB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,WAAW,CAAC,CAAY;QAC9B,OAAO,CAAC,CAAE,CAAgC,CAAC,IAAI,CAAC;IAClD,CAAC;IAEO,sBAAsB;QAC5B,MAAM,gBAAgB,GAAiC;YACrD,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,QAAQ;SACpB,CAAC;QAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC/B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,MAAA,IAAI,CAAC,uBAAuB,0CAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF","sourcesContent":["/**\n * Plugin module for revo-grid grid system\n * Add support for automatic column resize\n */\nimport each from 'lodash/each';\nimport reduce from 'lodash/reduce';\nimport { BasePlugin } from './base.plugin';\nimport ColumnDataProvider, { ColumnCollection } from '../services/column.data.provider';\nimport { columnTypes } from '../store/storeTypes';\nimport { ColumnItems } from '../services/dimension.provider';\nimport { getSourceItem } from '../store/dataSource/data.store';\nimport { DimensionCols, DimensionRows } from '..';\nimport { ColumnRegular, DataType, InitialHeaderClick, ViewSettingSizeProp } from '..';\nimport { BeforeSaveDataDetails, BeforeRangeSaveDataDetails } from '..';\nimport { PluginProviders } from '../';\n\ninterface Column extends ColumnRegular {\n index: number;\n}\n\ntype AutoSizeColumns = Record<DimensionCols, ColumnRecords>;\ntype ColumnRecords = Record<any, Column>;\ntype SourceSetEvent = { type: DimensionRows; source: DataType[] };\ntype EditEvent = BeforeSaveDataDetails | BeforeRangeSaveDataDetails;\ntype Resolve = (cols: Partial<AutoSizeColumns>) => void;\ntype Reject = () => void;\n\nexport type AutoSizeColumnConfig = {\n // ui behavior mode\n mode?: ColumnAutoSizeMode;\n /**\n * autoSize for all columns\n * if allColumnes true all columns treated as autoSize, worse for performance\n * false by default\n */\n allColumns?: boolean;\n /**\n * assumption per characted size\n * by default defined as 8, can be changed in this config\n */\n letterBlockSize?: number;\n /** make size calculation exact\n * by default it based on assumption each character takes some space defined in letterBlockSize */\n preciseSize?: boolean;\n};\n\nconst LETTER_BLOCK_SIZE = 7;\n\nenum ColumnAutoSizeMode {\n // increases column width on header click according the largest text value\n headerClickAutosize = 'headerClickAutoSize',\n // increases column width on data set and text edit, decreases performance\n autoSizeOnTextOverlap = 'autoSizeOnTextOverlap',\n // increases and decreases column width based on all items sizes, worst for performance\n autoSizeAll = 'autoSizeAll',\n}\n\nexport default class AutoSizeColumnPlugin extends BasePlugin {\n private autoSizeColumns: Partial<AutoSizeColumns> | null = null;\n private readonly letterBlockSize: number;\n\n /** for config option when @preciseSize enabled */\n private readonly precsizeCalculationArea: HTMLElement;\n\n /** for edge case when no columns defined before data */\n private dataResolve: Resolve | null = null;\n private dataReject: Reject | null = null;\n\n constructor(revogrid: HTMLRevoGridElement, protected providers: PluginProviders, private config?: AutoSizeColumnConfig) {\n super(revogrid, providers);\n this.letterBlockSize = config?.letterBlockSize || LETTER_BLOCK_SIZE;\n\n // create test container to check text width\n if (config?.preciseSize) {\n this.precsizeCalculationArea = this.initiatePresizeElement();\n revogrid.appendChild(this.precsizeCalculationArea);\n }\n\n const aftersourceset = ({ detail: { source } }: CustomEvent<SourceSetEvent>) => {\n this.setSource(source);\n };\n const afteredit = ({ detail }: CustomEvent<EditEvent>) => {\n this.afteredit(detail);\n };\n const afterEditAll = ({ detail }: CustomEvent<EditEvent>) => {\n this.afterEditAll(detail);\n };\n const beforecolumnsset = ({ detail: { columns } }: CustomEvent<ColumnCollection>) => {\n this.columnSet(columns);\n };\n const headerDblClick = ({ detail }: CustomEvent<InitialHeaderClick>) => {\n const type = ColumnDataProvider.getColumnType(detail.column);\n const size = this.getColumnSize(detail.index, type);\n if (size) {\n this.providers.dimension.setCustomSizes(type, {\n [detail.index]: size,\n }, true);\n }\n };\n this.addEventListener('beforecolumnsset', beforecolumnsset);\n switch (config?.mode) {\n case ColumnAutoSizeMode.autoSizeOnTextOverlap:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afteredit);\n break;\n case ColumnAutoSizeMode.autoSizeAll:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afterEditAll);\n break;\n default:\n this.addEventListener('headerdblclick', headerDblClick);\n break;\n }\n }\n\n private async setSource(source: DataType[]): Promise<void> {\n let autoSize = this.autoSizeColumns;\n if (this.dataReject) {\n this.dataReject();\n this.clearPromise();\n }\n\n /** If data set first and no column provided await until get one */\n if (!autoSize) {\n const request = new Promise((resolve: Resolve, reject: Reject) => {\n this.dataResolve = resolve;\n this.dataReject = reject;\n });\n try {\n autoSize = await request;\n } catch (e) {\n return;\n }\n }\n\n // calculate sizes\n each(autoSize, (_v, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n each(autoSize[type], rgCol => {\n // calculate size\n rgCol.size = sizes[rgCol.index] = source.reduce((prev, rgRow) => Math.max(prev, this.getLength(rgRow[rgCol.prop])), this.getLength(rgCol.name || ''));\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private getLength(len?: any): number {\n const padding = 15;\n if (!len) {\n return 0;\n }\n try {\n const str = len.toString();\n\n /**if exact calculation required proxy with html element, slow operation */\n if (this.config?.preciseSize) {\n this.precsizeCalculationArea.innerText = str;\n return this.precsizeCalculationArea.scrollWidth + padding * 2;\n }\n return str.length * this.letterBlockSize + padding * 2;\n } catch (e) {\n return 0;\n }\n }\n\n private afteredit(e: EditEvent) {\n let data: Record<string, DataType>;\n if (this.isRangeEdit(e)) {\n data = e.data;\n } else {\n data = { 0: { [e.prop]: e.val } };\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n // calculate size\n const size = reduce(\n data,\n (prev: number | undefined, rgRow) => {\n if (typeof rgRow[rgCol.prop] === 'undefined') {\n return prev;\n }\n return Math.max(prev || 0, this.getLength(rgRow[rgCol.prop]));\n },\n undefined,\n );\n\n if (size && rgCol.size < size) {\n rgCol.size = sizes[rgCol.index] = size;\n }\n });\n\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private afterEditAll(e: EditEvent) {\n const props: Record<any, true> = {};\n if (this.isRangeEdit(e)) {\n each(e.data, r => each(r, (_v, p) => (props[p] = true)));\n } else {\n props[e.prop] = true;\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n if (props[rgCol.prop]) {\n const size = this.getColumnSize(rgCol.index, type);\n if (size) {\n sizes[rgCol.index] = size;\n }\n }\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private getColumnSize(index: number, type: DimensionCols): number {\n const rgCol = this.autoSizeColumns[type][index];\n if (!rgCol) {\n return 0;\n }\n return reduce(\n this.providers.data.stores,\n (r, s) => {\n const perStore = reduce(\n s.store.get('items'),\n (prev, _row, i) => {\n const item = getSourceItem(s.store, i);\n return Math.max(prev || 0, this.getLength(item[rgCol.prop]));\n },\n 0,\n );\n return Math.max(r, perStore);\n },\n rgCol.size || 0,\n );\n }\n\n private columnSet(columns: ColumnItems) {\n for (let t of columnTypes) {\n const type = t as DimensionCols;\n const cols = columns[type];\n\n for (let i in cols) {\n if (cols[i].autoSize || this.config?.allColumns) {\n if (!this.autoSizeColumns) {\n this.autoSizeColumns = {};\n }\n if (!this.autoSizeColumns[type]) {\n this.autoSizeColumns[type] = {};\n }\n this.autoSizeColumns[type][i] = {\n ...cols[i],\n index: parseInt(i, 10),\n };\n }\n }\n }\n\n if (this.dataResolve) {\n this.dataResolve(this.autoSizeColumns);\n this.clearPromise();\n }\n }\n\n private clearPromise() {\n this.dataResolve = null;\n this.dataReject = null;\n }\n\n private isRangeEdit(e: EditEvent): e is BeforeRangeSaveDataDetails {\n return !!(e as BeforeRangeSaveDataDetails).data;\n }\n\n private initiatePresizeElement(): HTMLElement {\n const styleForFontTest: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n fontSize: '14px',\n height: '0',\n width: '0',\n whiteSpace: 'nowrap',\n top: '0',\n overflowX: 'scroll',\n };\n\n const el = document.createElement('div');\n for (let s in styleForFontTest) {\n el.style[s] = styleForFontTest[s];\n }\n el.classList.add('revo-test-container');\n return el;\n }\n\n destroy() {\n super.destroy();\n this.precsizeCalculationArea?.remove();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"column.auto-size.plugin.js","sourceRoot":"","sources":["../../src/plugins/column.auto-size.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plugin module for revo-grid grid system\n * Add support for automatic column resize\n */\nimport each from 'lodash/each';\nimport reduce from 'lodash/reduce';\n\nimport { BasePlugin } from './base.plugin';\nimport ColumnDataProvider, {\n ColumnCollection,\n} from '../services/column.data.provider';\nimport { ColumnItems } from '../services/dimension.provider';\nimport { getSourceItem, columnTypes } from '@store';\nimport {\n DimensionCols,\n DimensionRows,\n ColumnRegular,\n DataType,\n InitialHeaderClick,\n ViewSettingSizeProp,\n BeforeSaveDataDetails,\n BeforeRangeSaveDataDetails,\n} from '@type';\nimport { PluginProviders } from '../';\n\ninterface Column extends ColumnRegular {\n index: number;\n}\n\ntype AutoSizeColumns = Record<DimensionCols, ColumnRecords>;\ntype ColumnRecords = Record<any, Column>;\ntype SourceSetEvent = { type: DimensionRows; source: DataType[] };\ntype EditEvent = BeforeSaveDataDetails | BeforeRangeSaveDataDetails;\ntype Resolve = (cols: Partial<AutoSizeColumns>) => void;\ntype Reject = () => void;\n\nexport type AutoSizeColumnConfig = {\n // ui behavior mode\n mode?: ColumnAutoSizeMode;\n /**\n * autoSize for all columns\n * if allColumnes true all columns treated as autoSize, worse for performance\n * false by default\n */\n allColumns?: boolean;\n /**\n * assumption per characted size\n * by default defined as 8, can be changed in this config\n */\n letterBlockSize?: number;\n /** make size calculation exact\n * by default it based on assumption each character takes some space defined in letterBlockSize */\n preciseSize?: boolean;\n};\n\nconst LETTER_BLOCK_SIZE = 7;\n\nenum ColumnAutoSizeMode {\n // increases column width on header click according the largest text value\n headerClickAutosize = 'headerClickAutoSize',\n // increases column width on data set and text edit, decreases performance\n autoSizeOnTextOverlap = 'autoSizeOnTextOverlap',\n // increases and decreases column width based on all items sizes, worst for performance\n autoSizeAll = 'autoSizeAll',\n}\n\nexport default class AutoSizeColumnPlugin extends BasePlugin {\n private autoSizeColumns: Partial<AutoSizeColumns> | null = null;\n private readonly letterBlockSize: number;\n\n /** for config option when @preciseSize enabled */\n private readonly precsizeCalculationArea: HTMLElement;\n\n /** for edge case when no columns defined before data */\n private dataResolve: Resolve | null = null;\n private dataReject: Reject | null = null;\n\n constructor(\n revogrid: HTMLRevoGridElement,\n protected providers: PluginProviders,\n private config?: AutoSizeColumnConfig,\n ) {\n super(revogrid, providers);\n this.letterBlockSize = config?.letterBlockSize || LETTER_BLOCK_SIZE;\n\n // create test container to check text width\n if (config?.preciseSize) {\n this.precsizeCalculationArea = this.initiatePresizeElement();\n revogrid.appendChild(this.precsizeCalculationArea);\n }\n\n const aftersourceset = ({\n detail: { source },\n }: CustomEvent<SourceSetEvent>) => {\n this.setSource(source);\n };\n const afteredit = ({ detail }: CustomEvent<EditEvent>) => {\n this.afteredit(detail);\n };\n const afterEditAll = ({ detail }: CustomEvent<EditEvent>) => {\n this.afterEditAll(detail);\n };\n const beforecolumnsset = ({\n detail: { columns },\n }: CustomEvent<ColumnCollection>) => {\n this.columnSet(columns);\n };\n const headerDblClick = ({ detail }: CustomEvent<InitialHeaderClick>) => {\n const type = ColumnDataProvider.getColumnType(detail.column);\n const size = this.getColumnSize(detail.index, type);\n if (size) {\n this.providers.dimension.setCustomSizes(\n type,\n {\n [detail.index]: size,\n },\n true,\n );\n }\n };\n this.addEventListener('beforecolumnsset', beforecolumnsset);\n switch (config?.mode) {\n case ColumnAutoSizeMode.autoSizeOnTextOverlap:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afteredit);\n break;\n case ColumnAutoSizeMode.autoSizeAll:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', afterEditAll);\n break;\n default:\n this.addEventListener('headerdblclick', headerDblClick);\n break;\n }\n }\n\n private async setSource(source: DataType[]): Promise<void> {\n let autoSize = this.autoSizeColumns;\n if (this.dataReject) {\n this.dataReject();\n this.clearPromise();\n }\n\n /** If data set first and no column provided await until get one */\n if (!autoSize) {\n const request = new Promise((resolve: Resolve, reject: Reject) => {\n this.dataResolve = resolve;\n this.dataReject = reject;\n });\n try {\n autoSize = await request;\n } catch (e) {\n return;\n }\n }\n\n // calculate sizes\n each(autoSize, (_v, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n each(autoSize[type], rgCol => {\n // calculate size\n rgCol.size = sizes[rgCol.index] = source.reduce(\n (prev, rgRow) => Math.max(prev, this.getLength(rgRow[rgCol.prop])),\n this.getLength(rgCol.name || ''),\n );\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private getLength(len?: any): number {\n const padding = 15;\n if (!len) {\n return 0;\n }\n try {\n const str = len.toString();\n\n /**if exact calculation required proxy with html element, slow operation */\n if (this.config?.preciseSize) {\n this.precsizeCalculationArea.innerText = str;\n return this.precsizeCalculationArea.scrollWidth + padding * 2;\n }\n return str.length * this.letterBlockSize + padding * 2;\n } catch (e) {\n return 0;\n }\n }\n\n private afteredit(e: EditEvent) {\n let data: Record<string, DataType>;\n if (this.isRangeEdit(e)) {\n data = e.data;\n } else {\n data = { 0: { [e.prop]: e.val } };\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n // calculate size\n const size = reduce(\n data,\n (prev: number | undefined, rgRow) => {\n if (typeof rgRow[rgCol.prop] === 'undefined') {\n return prev;\n }\n return Math.max(prev || 0, this.getLength(rgRow[rgCol.prop]));\n },\n undefined,\n );\n\n if (size && rgCol.size < size) {\n rgCol.size = sizes[rgCol.index] = size;\n }\n });\n\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private afterEditAll(e: EditEvent) {\n const props: Record<any, true> = {};\n if (this.isRangeEdit(e)) {\n each(e.data, r => each(r, (_v, p) => (props[p] = true)));\n } else {\n props[e.prop] = true;\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n if (props[rgCol.prop]) {\n const size = this.getColumnSize(rgCol.index, type);\n if (size) {\n sizes[rgCol.index] = size;\n }\n }\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n private getColumnSize(index: number, type: DimensionCols): number {\n const rgCol = this.autoSizeColumns[type][index];\n if (!rgCol) {\n return 0;\n }\n return reduce(\n this.providers.data.stores,\n (r, s) => {\n const perStore = reduce(\n s.store.get('items'),\n (prev, _row, i) => {\n const item = getSourceItem(s.store, i);\n return Math.max(prev || 0, this.getLength(item[rgCol.prop]));\n },\n 0,\n );\n return Math.max(r, perStore);\n },\n rgCol.size || 0,\n );\n }\n\n private columnSet(columns: ColumnItems) {\n for (let t of columnTypes) {\n const type = t as DimensionCols;\n const cols = columns[type];\n\n for (let i in cols) {\n if (cols[i].autoSize || this.config?.allColumns) {\n if (!this.autoSizeColumns) {\n this.autoSizeColumns = {};\n }\n if (!this.autoSizeColumns[type]) {\n this.autoSizeColumns[type] = {};\n }\n this.autoSizeColumns[type][i] = {\n ...cols[i],\n index: parseInt(i, 10),\n };\n }\n }\n }\n\n if (this.dataResolve) {\n this.dataResolve(this.autoSizeColumns);\n this.clearPromise();\n }\n }\n\n private clearPromise() {\n this.dataResolve = null;\n this.dataReject = null;\n }\n\n private isRangeEdit(e: EditEvent): e is BeforeRangeSaveDataDetails {\n return !!(e as BeforeRangeSaveDataDetails).data;\n }\n\n private initiatePresizeElement(): HTMLElement {\n const styleForFontTest: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n fontSize: '14px',\n height: '0',\n width: '0',\n whiteSpace: 'nowrap',\n top: '0',\n overflowX: 'scroll',\n };\n\n const el = document.createElement('div');\n for (let s in styleForFontTest) {\n el.style[s] = styleForFontTest[s];\n }\n el.classList.add('revo-test-container');\n return el;\n }\n\n destroy() {\n super.destroy();\n this.precsizeCalculationArea?.remove();\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import fill from "lodash/fill";
|
|
5
|
-
import { columnTypes, rowTypes } from "../../store/
|
|
5
|
+
import { columnTypes, rowTypes } from "../../store/index";
|
|
6
6
|
import { timeout } from "../../utils";
|
|
7
7
|
import { BasePlugin } from "../base.plugin";
|
|
8
8
|
import ExportCsv from "./csv";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.plugin.js","sourceRoot":"","sources":["../../../src/plugins/export/export.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import fill from 'lodash/fill';\nimport { Group, Groups } from '../../store/dataSource/data.store';\nimport { ColSource, CSVFormat, DataInput, Formatter } from './types';\n\nimport { columnTypes, rowTypes } from '../../store/storeTypes';\nimport { timeout } from '../../utils';\nimport { BasePlugin } from '../base.plugin';\nimport ExportCsv from './csv';\nimport { DimensionCols } from '../..';\nimport { ColumnProp, DataType } from '../..';\n\nenum ExportTypes {\n csv = 'csv',\n}\n\nexport type ExportFormat = Partial<CSVFormat>;\n\nexport default class ExportFilePlugin extends BasePlugin {\n /** Exports string */\n async exportString(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return this.formatter(t, options).doExport(data);\n }\n\n /** Exports Blob */\n async exportBlob(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n return await this.getBlob(this.formatter(t, options));\n }\n\n /** Export file */\n async exportFile(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const formatter = this.formatter(t, options);\n const blob = await this.getBlob(formatter);\n\n // url\n const URL = window.URL || window.webkitURL;\n\n const a = document.createElement('a');\n const { filename, fileKind } = formatter.options;\n const name = `${filename}.${fileKind}`;\n const url = URL.createObjectURL(blob);\n\n a.style.display = 'none';\n a.setAttribute('href', url);\n a.setAttribute('download', name);\n this.revogrid.appendChild(a);\n a.dispatchEvent(new MouseEvent('click'));\n this.revogrid.removeChild(a);\n\n // delay for revoke, correct for some browsers\n await timeout(120);\n URL.revokeObjectURL(url);\n }\n\n /** Blob object */\n async getBlob(formatter: Formatter) {\n const type = `${formatter.options.mime};charset=${formatter.options.encoding}`;\n if (typeof Blob !== 'undefined') {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return new Blob([formatter.doExport(data)], { type });\n }\n return null;\n }\n\n // before event\n private async beforeexport() {\n let data = await this.getData();\n const event: CustomEvent<{ data: DataInput }> = this.emit('beforeexport', { data });\n if (event.defaultPrevented) {\n return null;\n }\n return event.detail.data;\n }\n\n private async getData(): Promise<DataInput> {\n const data = await this.getSource();\n const colSource: ColSource[] = [];\n const colPromises: Promise<ColSource>[] = [];\n columnTypes.forEach((t, i) => {\n colPromises.push(this.getColPerSource(t).then(s => (colSource[i] = s)));\n });\n await Promise.all(colPromises);\n const columns: ColSource = {\n headers: [],\n props: [],\n };\n for (let source of colSource) {\n source.headers.forEach((h, i) => {\n if (!columns.headers[i]) {\n columns.headers[i] = [];\n }\n columns.headers[i].push(...h);\n });\n columns.props.push(...source.props);\n }\n return {\n data,\n ...columns,\n };\n }\n\n private async getColPerSource(t: DimensionCols) {\n const store = await this.revogrid.getColumnStore(t);\n const source = store.get('source');\n const virtualIndexes = store.get('items');\n const depth = store.get('groupingDepth');\n const groups = store.get('groups');\n const colNames: string[] = [];\n const colProps: ColumnProp[] = [];\n const visibleItems = virtualIndexes.reduce((r: Record<string, number>, v: number, virtualIndex: number) => {\n const prop = source[v].prop;\n colNames.push(source[v].name || '');\n colProps.push(prop);\n r[prop] = virtualIndex;\n return r;\n }, {});\n const rows: string[][] = this.getGroupHeaders(depth, groups, virtualIndexes, visibleItems);\n rows.push(colNames);\n return {\n headers: rows,\n props: colProps,\n };\n }\n\n private getGroupHeaders(depth: number, groups: Groups, items: number[], visibleItems: Record<string, number>) {\n const rows: string[][] = [];\n const template = fill(new Array(items.length), '');\n for (let d = 0; d < depth; d++) {\n const rgRow = [...template];\n rows.push(rgRow);\n if (!groups[d]) {\n continue;\n }\n const levelGroups = groups[d];\n\n // add names of groups\n levelGroups.forEach((group: Group) => {\n const minIndex = this.findGroupStartIndex(group.ids, visibleItems);\n if (typeof minIndex === 'number') {\n rgRow[minIndex] = group.name;\n }\n });\n }\n return rows;\n }\n\n private findGroupStartIndex(ids: (string | number)[], visibleItems: Record<string, number>): number | undefined {\n let min: number | undefined;\n ids.forEach(id => {\n const current = visibleItems[id];\n if (typeof current === 'number') {\n if (typeof min !== 'number' || min > current) {\n min = current;\n }\n }\n });\n return min;\n }\n\n private async getSource() {\n const data: DataType[][] = [];\n const promisesData: Promise<number>[] = [];\n rowTypes.forEach(t => {\n const dataPart: DataType[] = [];\n data.push(dataPart);\n const promise = this.revogrid.getVisibleSource(t).then((d: DataType[]) => dataPart.push(...d));\n promisesData.push(promise);\n });\n await Promise.all(promisesData);\n return data.reduce((r, v) => {\n r.push(...v);\n return r;\n }, []);\n }\n\n // get correct class for future multiple types support\n private formatter(type: ExportTypes, options: ExportFormat = {}) {\n switch (type) {\n case ExportTypes.csv:\n return new ExportCsv(options);\n default:\n throw new Error('Unknown format');\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"export.plugin.js","sourceRoot":"","sources":["../../../src/plugins/export/export.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import fill from 'lodash/fill';\nimport { columnTypes, rowTypes, Group, Groups } from '@store';\n\nimport { timeout } from '../../utils';\nimport { BasePlugin } from '../base.plugin';\nimport ExportCsv from './csv';\nimport { ColSource, CSVFormat, DataInput, Formatter } from './types';\nimport { DimensionCols, ColumnProp, DataType } from '@type';\n\nenum ExportTypes {\n csv = 'csv',\n}\n\nexport type ExportFormat = Partial<CSVFormat>;\n\nexport default class ExportFilePlugin extends BasePlugin {\n /** Exports string */\n async exportString(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return this.formatter(t, options).doExport(data);\n }\n\n /** Exports Blob */\n async exportBlob(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n return await this.getBlob(this.formatter(t, options));\n }\n\n /** Export file */\n async exportFile(options: ExportFormat = {}, t: ExportTypes = ExportTypes.csv) {\n const formatter = this.formatter(t, options);\n const blob = await this.getBlob(formatter);\n\n // url\n const URL = window.URL || window.webkitURL;\n\n const a = document.createElement('a');\n const { filename, fileKind } = formatter.options;\n const name = `${filename}.${fileKind}`;\n const url = URL.createObjectURL(blob);\n\n a.style.display = 'none';\n a.setAttribute('href', url);\n a.setAttribute('download', name);\n this.revogrid.appendChild(a);\n a.dispatchEvent(new MouseEvent('click'));\n this.revogrid.removeChild(a);\n\n // delay for revoke, correct for some browsers\n await timeout(120);\n URL.revokeObjectURL(url);\n }\n\n /** Blob object */\n async getBlob(formatter: Formatter) {\n const type = `${formatter.options.mime};charset=${formatter.options.encoding}`;\n if (typeof Blob !== 'undefined') {\n const data = await this.beforeexport();\n if (!data) {\n return null;\n }\n return new Blob([formatter.doExport(data)], { type });\n }\n return null;\n }\n\n // before event\n private async beforeexport() {\n let data = await this.getData();\n const event: CustomEvent<{ data: DataInput }> = this.emit('beforeexport', { data });\n if (event.defaultPrevented) {\n return null;\n }\n return event.detail.data;\n }\n\n private async getData(): Promise<DataInput> {\n const data = await this.getSource();\n const colSource: ColSource[] = [];\n const colPromises: Promise<ColSource>[] = [];\n columnTypes.forEach((t, i) => {\n colPromises.push(this.getColPerSource(t).then(s => (colSource[i] = s)));\n });\n await Promise.all(colPromises);\n const columns: ColSource = {\n headers: [],\n props: [],\n };\n for (let source of colSource) {\n source.headers.forEach((h, i) => {\n if (!columns.headers[i]) {\n columns.headers[i] = [];\n }\n columns.headers[i].push(...h);\n });\n columns.props.push(...source.props);\n }\n return {\n data,\n ...columns,\n };\n }\n\n private async getColPerSource(t: DimensionCols) {\n const store = await this.revogrid.getColumnStore(t);\n const source = store.get('source');\n const virtualIndexes = store.get('items');\n const depth = store.get('groupingDepth');\n const groups = store.get('groups');\n const colNames: string[] = [];\n const colProps: ColumnProp[] = [];\n const visibleItems = virtualIndexes.reduce((r: Record<string, number>, v: number, virtualIndex: number) => {\n const prop = source[v].prop;\n colNames.push(source[v].name || '');\n colProps.push(prop);\n r[prop] = virtualIndex;\n return r;\n }, {});\n const rows: string[][] = this.getGroupHeaders(depth, groups, virtualIndexes, visibleItems);\n rows.push(colNames);\n return {\n headers: rows,\n props: colProps,\n };\n }\n\n private getGroupHeaders(depth: number, groups: Groups, items: number[], visibleItems: Record<string, number>) {\n const rows: string[][] = [];\n const template = fill(new Array(items.length), '');\n for (let d = 0; d < depth; d++) {\n const rgRow = [...template];\n rows.push(rgRow);\n if (!groups[d]) {\n continue;\n }\n const levelGroups = groups[d];\n\n // add names of groups\n levelGroups.forEach((group: Group) => {\n const minIndex = this.findGroupStartIndex(group.ids, visibleItems);\n if (typeof minIndex === 'number') {\n rgRow[minIndex] = group.name;\n }\n });\n }\n return rows;\n }\n\n private findGroupStartIndex(ids: (string | number)[], visibleItems: Record<string, number>): number | undefined {\n let min: number | undefined;\n ids.forEach(id => {\n const current = visibleItems[id];\n if (typeof current === 'number') {\n if (typeof min !== 'number' || min > current) {\n min = current;\n }\n }\n });\n return min;\n }\n\n private async getSource() {\n const data: DataType[][] = [];\n const promisesData: Promise<number>[] = [];\n rowTypes.forEach(t => {\n const dataPart: DataType[] = [];\n data.push(dataPart);\n const promise = this.revogrid.getVisibleSource(t).then((d: DataType[]) => dataPart.push(...d));\n promisesData.push(promise);\n });\n await Promise.all(promisesData);\n return data.reduce((r, v) => {\n r.push(...v);\n return r;\n }, []);\n }\n\n // get correct class for future multiple types support\n private formatter(type: ExportTypes, options: ExportFormat = {}) {\n switch (type) {\n case ExportTypes.csv:\n return new ExportCsv(options);\n default:\n throw new Error('Unknown format');\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/export/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DataType } from '
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/export/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DataType } from '@type';\n\nexport type ColSource = {\n headers: string[][];\n props: any[];\n};\nexport type DataInput = {\n data: DataType[];\n} & ColSource;\n\nexport interface FormatterOptions {\n mime: string;\n encoding: string;\n}\n\nexport interface Formatter {\n options: FormatterOptions;\n doExport(data: DataInput): string;\n}\n\nexport interface CSVFormat extends FormatterOptions {\n fileKind: 'csv';\n bom: boolean;\n columnDelimiter: string;\n rowDelimiter: string;\n filename?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.button.js","sourceRoot":"","sources":["../../../src/plugins/filter/filter.button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAK3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAS,EAAE,EAAE;IAChD,OAAO,CACL;QACE,cACE,KAAK,EAAE;gBACL,CAAC,mBAAmB,CAAC,EAAE,IAAI;gBAC3B,CAAC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;aACxD;YAED,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAC,WAAW;gBACzC,SAAG,MAAM,EAAC,MAAM,kBAAc,GAAG,EAAC,IAAI,EAAC,MAAM,eAAW,SAAS;oBAC/D,YAAM,CAAC,EAAC,2GAA2G,EAAC,IAAI,EAAC,cAAc,GAAQ,CAC7I,CACA,CACC,CACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE;QAClC,WAAK,KAAK,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW;YACxC,YAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,8GAA8G,GAAG,CACzI,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAO,EAAE,EAAE;IAC5C,OAAO,cAAQ,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAU,CAAC;AAC9G,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAc;IACxC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '
|
|
1
|
+
{"version":3,"file":"filter.button.js","sourceRoot":"","sources":["../../../src/plugins/filter/filter.button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAK3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAS,EAAE,EAAE;IAChD,OAAO,CACL;QACE,cACE,KAAK,EAAE;gBACL,CAAC,mBAAmB,CAAC,EAAE,IAAI;gBAC3B,CAAC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;aACxD;YAED,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAC,WAAW;gBACzC,SAAG,MAAM,EAAC,MAAM,kBAAc,GAAG,EAAC,IAAI,EAAC,MAAM,eAAW,SAAS;oBAC/D,YAAM,CAAC,EAAC,2GAA2G,EAAC,IAAI,EAAC,cAAc,GAAQ,CAC7I,CACA,CACC,CACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE;QAClC,WAAK,KAAK,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW;YACxC,YAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,8GAA8G,GAAG,CACzI,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAO,EAAE,EAAE;IAC5C,OAAO,cAAQ,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAU,CAAC;AAC9G,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAc;IACxC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '@type';\n\nexport const FILTER_BUTTON_CLASS = 'rv-filter';\nexport const FILTER_BUTTON_ACTIVE = 'active';\nexport const FILTER_PROP = 'hasFilter';\nexport const AND_OR_BUTTON = 'and-or-button';\nexport const TRASH_BUTTON = 'trash-button';\n\ntype Props = {\n column: ColumnRegular;\n};\nexport const FilterButton = ({ column }: Props) => {\n return (\n <span>\n <button\n class={{\n [FILTER_BUTTON_CLASS]: true,\n [FILTER_BUTTON_ACTIVE]: column && !!column[FILTER_PROP],\n }}\n >\n <svg class=\"filter-img\" viewBox=\"0 0 64 64\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z\" fill=\"currentColor\"></path>\n </g>\n </svg>\n </button>\n </span>\n );\n};\n\nexport const TrashButton = () => {\n return (\n <div class={{ [TRASH_BUTTON]: true }}>\n <svg class=\"trash-img\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\" />\n </svg>\n </div>\n );\n};\nexport const AndOrButton = ({ isAnd }: any) => {\n return <button class={{ [AND_OR_BUTTON]: true, 'light revo-button': true }}>{isAnd ? 'and' : 'or'}</button>;\n};\n\nexport function isFilterBtn(e: HTMLElement) {\n if (e.classList.contains(FILTER_BUTTON_CLASS)) {\n return true;\n }\n return e?.closest(`.${FILTER_BUTTON_CLASS}`);\n}\n"]}
|