@revolist/revogrid 4.4.0-next.2 → 4.4.0-next.21
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/custom-element/columnService.js +1 -1
- package/custom-element/consts.js +2 -1
- package/custom-element/consts.js.map +1 -1
- package/custom-element/localScrollService.js +1 -1
- package/custom-element/localScrollService.js.map +1 -1
- package/custom-element/revo-grid.js +163 -97
- package/custom-element/revo-grid.js.map +1 -1
- package/custom-element/revogr-clipboard.js +24 -5
- package/custom-element/revogr-clipboard.js.map +1 -1
- package/custom-element/revogr-edit2.js +12 -6
- package/custom-element/revogr-edit2.js.map +1 -1
- package/custom-element/revogr-focus2.js +1 -1
- package/custom-element/revogr-focus2.js.map +1 -1
- package/custom-element/revogr-header2.js +25 -11
- package/custom-element/revogr-header2.js.map +1 -1
- package/custom-element/revogr-overlay-selection2.js +99 -32
- package/custom-element/revogr-overlay-selection2.js.map +1 -1
- package/custom-element/revogr-row-headers2.js +1 -2
- package/custom-element/revogr-row-headers2.js.map +1 -1
- package/custom-element/revogr-viewport-scroll2.js +39 -6
- package/custom-element/revogr-viewport-scroll2.js.map +1 -1
- package/dist/cjs/{debounce-525dd66c.js → debounce-f50730b6.js} +1 -38
- package/dist/cjs/debounce-f50730b6.js.map +1 -0
- package/dist/cjs/dispatcher-20520c70.js +21 -0
- package/dist/cjs/dispatcher-20520c70.js.map +1 -0
- package/dist/cjs/events-030618fc.js +459 -0
- package/dist/cjs/events-030618fc.js.map +1 -0
- package/dist/cjs/filter.button-6badec7a.js +44 -0
- package/dist/cjs/filter.button-6badec7a.js.map +1 -0
- package/dist/cjs/{index-aad39b7b.js → index-ee2ef5ae.js} +96 -36
- package/dist/cjs/index-ee2ef5ae.js.map +1 -0
- package/dist/cjs/index-effc94b9.js +3944 -0
- package/dist/cjs/index-effc94b9.js.map +1 -0
- package/dist/cjs/isString-3dde8d95.js +38 -0
- package/dist/cjs/isString-3dde8d95.js.map +1 -0
- package/dist/cjs/keyCodes.utils-d665ebed.js +271 -0
- package/dist/cjs/keyCodes.utils-d665ebed.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/localScrollService-a81823c5.js +403 -0
- package/dist/cjs/localScrollService-a81823c5.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.entry.js +3858 -0
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.js +3 -3
- package/dist/cjs/revo-grid.cjs.js.map +1 -1
- package/dist/cjs/revogr-clipboard.cjs.entry.js +24 -6
- package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_3.cjs.entry.js +1138 -0
- package/dist/cjs/revogr-data_3.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-edit_2.cjs.entry.js +325 -0
- package/dist/cjs/revogr-edit_2.cjs.entry.js.map +1 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +6 -5
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-focus_5.cjs.entry.js +1231 -0
- package/dist/cjs/revogr-focus_5.cjs.entry.js.map +1 -0
- package/dist/cjs/{revo-grid_11.cjs.entry.js → viewport.helpers-70ccec8f.js} +13978 -25269
- package/dist/cjs/viewport.helpers-70ccec8f.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/clipboard/revogr-clipboard.d.ts +6 -2
- package/dist/collection/components/clipboard/revogr-clipboard.js +46 -5
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
- package/dist/collection/components/header/headerCellRenderer.d.ts +2 -1
- package/dist/collection/components/header/headerCellRenderer.js +1 -1
- package/dist/collection/components/header/headerCellRenderer.js.map +1 -1
- package/dist/collection/components/header/headerRenderer.d.ts +2 -2
- package/dist/collection/components/header/headerRenderer.js +1 -1
- package/dist/collection/components/header/headerRenderer.js.map +1 -1
- package/dist/collection/components/header/revogr-header.d.ts +15 -1
- package/dist/collection/components/header/revogr-header.js +34 -8
- package/dist/collection/components/header/revogr-header.js.map +1 -1
- package/dist/collection/components/overlay/autofill.service.d.ts +7 -3
- package/dist/collection/components/overlay/autofill.service.js +32 -12
- package/dist/collection/components/overlay/autofill.service.js.map +1 -1
- package/dist/collection/components/overlay/clipboard.service.d.ts +1 -1
- package/dist/collection/components/overlay/clipboard.service.js +2 -2
- package/dist/collection/components/overlay/clipboard.service.js.map +1 -1
- package/dist/collection/components/overlay/keyboard.service.js +2 -6
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
- package/dist/collection/components/overlay/revogr-edit.d.ts +8 -0
- package/dist/collection/components/overlay/revogr-edit.js +34 -9
- package/dist/collection/components/overlay/revogr-edit.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.d.ts +32 -10
- package/dist/collection/components/overlay/revogr-overlay-selection.js +80 -12
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-style.css +71 -4
- package/dist/collection/components/revoGrid/revo-grid.d.ts +15 -4
- package/dist/collection/components/revoGrid/revo-grid.js +60 -19
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js +26 -4
- package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.section.d.ts +3 -2
- package/dist/collection/components/revoGrid/viewport.section.js +8 -4
- package/dist/collection/components/revoGrid/viewport.section.js.map +1 -1
- package/dist/collection/components/revoGrid/viewport.service.d.ts +4 -0
- package/dist/collection/components/revoGrid/viewport.service.js +15 -3
- package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
- package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +3 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll.d.ts +16 -5
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +64 -9
- package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
- package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
- package/dist/collection/components.d.ts +110 -6
- package/dist/collection/interfaces.d.ts +4 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +2 -2
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +1 -1
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.plugin.d.ts +21 -13
- package/dist/collection/plugins/sorting/sorting.plugin.js +77 -70
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/serve/controller.js +183 -0
- package/dist/collection/services/localScrollService.js +1 -1
- package/dist/collection/services/localScrollService.js.map +1 -1
- package/dist/collection/services/resizable.directive.d.ts +8 -7
- package/dist/collection/services/resizable.directive.js +13 -36
- package/dist/collection/services/resizable.directive.js.map +1 -1
- package/dist/collection/services/resizable.element.d.ts +4 -0
- package/dist/collection/services/resizable.element.js +39 -0
- package/dist/collection/services/resizable.element.js.map +1 -0
- package/dist/collection/stencil-public-runtime.d.ts +1 -0
- package/dist/collection/store/viewPort/viewport.store.js +0 -1
- package/dist/collection/store/viewPort/viewport.store.js.map +1 -1
- package/dist/collection/utils/consts.d.ts +1 -0
- package/dist/collection/utils/consts.js +1 -0
- package/dist/collection/utils/consts.js.map +1 -1
- package/dist/collection/utils/events.d.ts +2 -1
- package/dist/collection/utils/events.js +18 -2
- package/dist/collection/utils/events.js.map +1 -1
- package/dist/collection/utils/mobile.d.ts +1 -0
- package/dist/collection/utils/mobile.js +7 -0
- package/dist/collection/utils/mobile.js.map +1 -0
- package/dist/esm/{debounce-301fd4d2.js → debounce-820b5a8b.js} +2 -34
- package/dist/esm/debounce-820b5a8b.js.map +1 -0
- package/dist/esm/dispatcher-9e9c0233.js +19 -0
- package/dist/esm/dispatcher-9e9c0233.js.map +1 -0
- package/dist/esm/events-31272e5e.js +454 -0
- package/dist/esm/events-31272e5e.js.map +1 -0
- package/dist/esm/filter.button-21ce90ef.js +38 -0
- package/dist/esm/filter.button-21ce90ef.js.map +1 -0
- package/dist/esm/{index-5e90b19b.js → index-05947c5f.js} +97 -37
- package/dist/esm/index-05947c5f.js.map +1 -0
- package/dist/esm/index-728bf6e3.js +3889 -0
- package/dist/esm/index-728bf6e3.js.map +1 -0
- package/dist/esm/isString-d539060a.js +36 -0
- package/dist/esm/isString-d539060a.js.map +1 -0
- package/dist/esm/keyCodes.utils-c0064460.js +265 -0
- package/dist/esm/keyCodes.utils-c0064460.js.map +1 -0
- package/dist/esm/loader.js +4 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/localScrollService-884d8952.js +400 -0
- package/dist/esm/localScrollService-884d8952.js.map +1 -0
- package/dist/esm/revo-grid.entry.js +3854 -0
- package/dist/esm/revo-grid.entry.js.map +1 -0
- package/dist/esm/revo-grid.js +4 -4
- package/dist/esm/revo-grid.js.map +1 -1
- package/dist/esm/revogr-clipboard.entry.js +24 -6
- package/dist/esm/revogr-clipboard.entry.js.map +1 -1
- package/dist/esm/revogr-data_3.entry.js +1132 -0
- package/dist/esm/revogr-data_3.entry.js.map +1 -0
- package/dist/esm/revogr-edit_2.entry.js +320 -0
- package/dist/esm/revogr-edit_2.entry.js.map +1 -0
- package/dist/esm/revogr-filter-panel.entry.js +3 -2
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/esm/revogr-focus_5.entry.js +1223 -0
- package/dist/esm/revogr-focus_5.entry.js.map +1 -0
- package/dist/esm/{revo-grid_11.entry.js → viewport.helpers-c08e729e.js} +13790 -25093
- package/dist/esm/viewport.helpers-c08e729e.js.map +1 -0
- package/dist/revo-grid/debounce-820b5a8b.js +5 -0
- package/dist/revo-grid/debounce-820b5a8b.js.map +1 -0
- package/dist/revo-grid/dispatcher-9e9c0233.js +5 -0
- package/dist/revo-grid/dispatcher-9e9c0233.js.map +1 -0
- package/dist/revo-grid/events-31272e5e.js +5 -0
- package/dist/revo-grid/events-31272e5e.js.map +1 -0
- package/dist/revo-grid/filter.button-21ce90ef.js +5 -0
- package/dist/revo-grid/filter.button-21ce90ef.js.map +1 -0
- package/dist/revo-grid/index-05947c5f.js +6 -0
- package/dist/revo-grid/index-05947c5f.js.map +1 -0
- package/dist/revo-grid/index-728bf6e3.js +5 -0
- package/dist/revo-grid/index-728bf6e3.js.map +1 -0
- package/dist/revo-grid/isString-d539060a.js +5 -0
- package/dist/revo-grid/isString-d539060a.js.map +1 -0
- package/dist/revo-grid/keyCodes.utils-c0064460.js +5 -0
- package/dist/revo-grid/keyCodes.utils-c0064460.js.map +1 -0
- package/dist/revo-grid/localScrollService-884d8952.js +5 -0
- package/dist/revo-grid/localScrollService-884d8952.js.map +1 -0
- package/dist/revo-grid/revo-grid.entry.js +5 -0
- package/dist/revo-grid/revo-grid.entry.js.map +1 -0
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_3.entry.js +5 -0
- package/dist/revo-grid/revogr-data_3.entry.js.map +1 -0
- package/dist/revo-grid/revogr-edit_2.entry.js +5 -0
- package/dist/revo-grid/revogr-edit_2.entry.js.map +1 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/revogr-focus_5.entry.js +5 -0
- package/dist/revo-grid/revogr-focus_5.entry.js.map +1 -0
- package/dist/revo-grid/viewport.helpers-c08e729e.js +5 -0
- package/dist/revo-grid/viewport.helpers-c08e729e.js.map +1 -0
- package/dist/types/components/clipboard/revogr-clipboard.d.ts +6 -2
- package/dist/types/components/header/headerCellRenderer.d.ts +2 -1
- package/dist/types/components/header/headerRenderer.d.ts +2 -2
- package/dist/types/components/header/revogr-header.d.ts +15 -1
- package/dist/types/components/overlay/autofill.service.d.ts +7 -3
- package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
- package/dist/types/components/overlay/revogr-edit.d.ts +8 -0
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +32 -10
- package/dist/types/components/revoGrid/revo-grid.d.ts +15 -4
- package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
- package/dist/types/components/revoGrid/viewport.section.d.ts +3 -2
- package/dist/types/components/revoGrid/viewport.service.d.ts +4 -0
- package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +16 -5
- package/dist/types/components.d.ts +110 -6
- package/dist/types/interfaces.d.ts +4 -1
- package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
- package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +21 -13
- package/dist/types/services/resizable.directive.d.ts +8 -7
- package/dist/types/services/resizable.element.d.ts +4 -0
- package/dist/types/stencil-public-runtime.d.ts +1 -0
- package/dist/types/utils/consts.d.ts +1 -0
- package/dist/types/utils/events.d.ts +2 -1
- package/dist/types/utils/mobile.d.ts +1 -0
- package/package.json +4 -3
- package/dist/cjs/debounce-525dd66c.js.map +0 -1
- package/dist/cjs/index-aad39b7b.js.map +0 -1
- package/dist/cjs/revo-grid_11.cjs.entry.js.map +0 -1
- package/dist/esm/debounce-301fd4d2.js.map +0 -1
- package/dist/esm/index-5e90b19b.js.map +0 -1
- package/dist/esm/revo-grid_11.entry.js.map +0 -1
- package/dist/revo-grid/debounce-301fd4d2.js +0 -5
- package/dist/revo-grid/debounce-301fd4d2.js.map +0 -1
- package/dist/revo-grid/index-5e90b19b.js +0 -6
- package/dist/revo-grid/index-5e90b19b.js.map +0 -1
- package/dist/revo-grid/revo-grid_11.entry.js +0 -5
- package/dist/revo-grid/revo-grid_11.entry.js.map +0 -1
- /package/dist/collection/{utilsExternal/generate-data.js → serve/data.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revogr-overlay-selection.js","sourceRoot":"","sources":["../../../src/components/overlay/revogr-overlay-selection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAS,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG7G,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,qBAAqB,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMvD,MAAM,OAAO,gBAAgB;;IAInB,oBAAe,GAA2B,IAAI,CAAC;IAC/C,oBAAe,GAA2B,IAAI,CAAC;IAC/C,qBAAgB,GAA4B,IAAI,CAAC;IAEjD,eAAU,GAAiC,IAAI,CAAC;;;;;;;;;;;;+BA+DjB,KAAK;;EA8C5C,6EAA6E;EAC7E,EAAE;EACF,aAAa;EACb,EAAE;EACF,6EAA6E;EAG7E,WAAW,CAAC,CAA0B;IACpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;MACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KAC5C;EACH,CAAC;EAGD,6CAA6C;EAC7C,wDAAwD;EAIxD,SAAS;IACP,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;EAChD,CAAC;EAED,uBAAuB;EACE,UAAU,CAAC,CAA8B;;IAChE,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;EACxC,CAAC;EAED,qCAAqC;EACI,OAAO,CAAC,CAAgB;;IAC/D,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;EACjC,CAAC;EAED,qCAAqC;EACM,SAAS,CAAC,CAAgB;;IACnE,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO;KACR;IACD,MAAA,IAAI,CAAC,eAAe,0CAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;EAC/C,CAAC;EAED,uBAAuB;EACE,mBAAmB,CAAC,CAA4C;IACvF,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,CAAC,EAAE;MACxD,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;MACnD,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;MACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,cAAc,EAAE,CAAC;MACjB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;MACrD,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;MAChD,SAAS,EAAE,GAAG,CAAC,EAAE;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;UACjB,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;MACnB,CAAC;MACD,UAAU,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;MACnB,CAAC;MACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;MACnD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;MAChE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;MAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;KACvC,CAAC,CAAC;IACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;EAChC,CAAC;EACD,WAAW;EAGX,qBAAqB;IACnB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;MACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,YAAY,EAAE,IAAI,CAAC,YAAY;MAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;MAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,SAAS,EAAE,IAAI,CAAC,SAAS;MAEzB,mBAAmB,EAAE,CAAC,CAAC,EAAE,CACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,iCACzB,CAAC,GACD,IAAI,CAAC,KAAK,EACb;MACJ,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;MAC5C,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;MAC5D,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;MACjD,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;MAExD,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;MACxC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;KAC9B,CAAC,CAAC;EACL,CAAC;EAED,UAAU;EAGV,gBAAgB;;IACd,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;EAChC,CAAC;EAED,YAAY;EACZ,sBAAsB;IACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;MAC3C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,SAAS,EAAE,IAAI,CAAC,SAAS;MACzB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;MAC7D,SAAS,EAAE,KAAK,CAAC,EAAE;QACjB,IAAI,CAAC,KAAK,EAAE;UACV,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,iBACxC,KAAK;UACL,IAAI;UACJ,OAAO,IACJ,IAAI,CAAC,KAAK,EACb,CAAC;QACH,IAAI,KAAK,CAAC,gBAAgB,EAAE;UAC1B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;MAC3B,CAAC;MACD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;MACpD,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;MAClD,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,iBAClC,IAAI;UACJ,KAAK,IACF,IAAI,CAAC,KAAK,EACb,CAAC;MACL,CAAC;KACF,CAAC,CAAC;EACL,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;EAChD,CAAC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,EAAE,CAAC;EAChC,CAAC;EAEO,WAAW,CAAC,KAA0B;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,CAAC,WAAK,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;EAChE,CAAC;EAEO,cAAc;IACpB,cAAc;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;MAC9B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,QAAQ,mCACT,QAAQ,GACR,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/D,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,iBAC5C,KAAK,kCACA,QAAQ,KACX,EAAE,EAAE,QAAQ,CAAC,CAAC,EACd,EAAE,EAAE,QAAQ,CAAC,CAAC,OAEb,IAAI,CAAC,KAAK,EACb,CAAC;IACH,IAAI,WAAW,CAAC,gBAAgB,EAAE;MAChC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EACJ,MAAM,EAAE,EAAE,KAAK,EAAE,GAClB,GAAG,WAAW,CAAC;IAChB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,CACL,mBACE,GAAG,EAAE,EAAE,CAAC,EAAE;QACR,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;MACvB,CAAC,EACD,UAAU,EAAE,CAAC,CAAC,EAAE;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;UAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC9B;QAED,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;UAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;MACH,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,mBAAmB,EACrC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC9C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAC9E,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACvC,IAAI,QAAQ,EAAE;MACZ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpB;SAAM;MACL,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;MAChD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;MAC1D,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC;OACnD;MAED,IAAI,KAAK,EAAE;QACT,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;OACtC;MACD,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;OACtE;MACD,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,GAAG,CAAC,IAAI,CACN,2BACE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAChC,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GACnD,CACH,CAAC;OACH;KACF;IACD,OAAO,CACL,EAAC,IAAI,IAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;MAC9F,GAAG;MACJ,YAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACR,CAAC;EACJ,CAAC;EAEO,OAAO,CAAC,KAAqB,EAAE,GAAmB,EAAE,IAA8B;IACxF,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,IAAI,gBAAgB,EAAE;MACpB,OAAO,KAAK,CAAC;KACd;IACD,MAAM,MAAM,mBACV,KAAK,kCACA,KAAK,KACR,EAAE,EAAE,GAAG,CAAC,CAAC,EACT,EAAE,EAAE,GAAG,CAAC,CAAC,KAEX,IAAI,IACD,IAAI,CAAC,KAAK,CACd,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,gBAAgB,EAAE;MAC/B,OAAO,KAAK,CAAC;KACd;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,iBACzB,KAAK,EAAE;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;OACX,EACD,GAAG,EAAE;QACH,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,KAAK,CAAC,EAAE;OACZ,IACE,UAAU,CAAC,MAAM,EACpB,CAAC,gBAAgB,CAAC;EACtB,CAAC;EAEO,iBAAiB,CAAC,KAA0B;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,iBAC3C,KAAK,oBAAO,KAAK,KACd,IAAI,CAAC,KAAK,EACb,CAAC;IACH,IAAI,UAAU,CAAC,gBAAgB,EAAE;MAC/B,OAAO,KAAK,CAAC;KACd;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,iCAAM,UAAU,CAAC,MAAM,CAAC,KAAK,KAAE,IAAI,IAAG,CAAC;IAC7D,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;EAC7B,CAAC;EAES,kBAAkB,CAAC,CAAa;IACxC,gCAAgC;IAChC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAiC,CAAC,EAAE;MACpD,OAAO;KACR;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO;KACR;IACD,qBAAqB;IACrB,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEtE,8BAA8B;IAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;MACd,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9C;EACH,CAAC;EAES,MAAM,CAAC,GAAG,GAAG,EAAE;;IACvB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;MAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;MAClD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;MACpE,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,iCACb,IAAI,KACP,GAAG,IACH,CAAC;KACJ;EACH,CAAC;EAED;;;KAGG;EACK,SAAS,CAAC,CAAwB;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,EAAE;MACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;EACH,CAAC;EAED,yCAAyC;EAC/B,QAAQ,CAAC,CAA0B;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EACzC,CAAC;EAEO,KAAK,CAAC,SAAS;IACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAC5D,IAAI,aAAa,CAAC,SAAS,EAAE;MAC3B,IAAI,EAAE,WAAW,CAAC,UAAU;KAC7B,CAAC,EACF,IAAI,CAAC,KAAK,CACX,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE;MACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;EACH,CAAC;EAES,SAAS;IACjB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;MAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;MAC1F,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC5E;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;MACzB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;MACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;KAChE;EACH,CAAC;EAEO,cAAc,CAAC,EAAE,MAAM,EAAuD;IACpF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC7E,CAAC;EAED,6BAA6B;EACnB,OAAO;;IACf,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,OAAO,KAAK,CAAC;KACd;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACpD,OAAO,QAAQ,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC;EAC7E,CAAC;EAED,IAAI,KAAK;IACP,OAAO;MACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;MACnC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;KACjC,CAAC;EACJ,CAAC;EAED,gCAAgC;EACtB,OAAO;IACf,OAAO;MACL,EAAE,EAAE,IAAI,CAAC,OAAO;MAChB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;MAC7B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;MAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, h, Host, Listen, Prop, VNode, Element, Watch } from '@stencil/core';\n\nimport { AllDimensionType, ApplyFocusEvent, FocusRenderEvent, Edition, Observable, RevoGrid, Selection, DragStartEvent } from '../../interfaces';\nimport ColumnService from '../data/columnService';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport { codesLetter } from '../../utils/keyCodes';\nimport { SELECTION_BORDER_CLASS } from '../../utils/consts';\nimport { DataSourceState } from '../../store/dataSource/data.store';\nimport { isRangeSingleCell } from '../../store/selection/selection.helpers';\nimport { getCurrentCell, getElStyle } from './selection.utils';\nimport { isEditInput } from './editors/edit.utils';\nimport { KeyboardService } from './keyboard.service';\nimport { AutoFillService } from './autofill.service';\nimport { ClipboardService } from './clipboard.service';\n\n@Component({\n tag: 'revogr-overlay-selection',\n styleUrl: 'revogr-overlay-style.scss',\n})\nexport class OverlaySelection {\n protected columnService: ColumnService;\n\n protected selectionStoreService: SelectionStoreService;\n private keyboardService: KeyboardService | null = null;\n private autoFillService: AutoFillService | null = null;\n private clipboardService: ClipboardService | null = null;\n private orderEditor: HTMLRevogrOrderEditorElement;\n private revogrEdit: HTMLRevogrEditElement | null = null;\n\n @Element() element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n /**\n * If readonly mode enables\n */\n @Prop() readonly: boolean;\n /**\n * Range selection mode\n */\n @Prop() range: boolean;\n /**\n * Enable revogr-order-editor component (read more in revogr-order-editor component)\n * Allows D&D\n */\n @Prop() canDrag: boolean;\n\n /**\n * Enable revogr-clipboard component (read more in revogr-clipboard component)\n * Allows copy/paste\n */\n @Prop() useClipboard: boolean;\n\n // --------------------------------------------------------------------------\n //\n // Dynamic stores\n //\n // --------------------------------------------------------------------------\n @Prop() selectionStore: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n\n // --------------------------------------------------------------------------\n //\n // Static stores, not expected to change during component lifetime\n //\n // --------------------------------------------------------------------------\n\n /**\n * Row data store\n */\n @Prop() dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n\n /**\n * Column data store\n */\n @Prop() colData: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;\n /**\n * Last cell position\n */\n @Prop() lastCell: Selection.Cell;\n /**\n * Custom editors register\n */\n @Prop() editors: Edition.Editors;\n /** If true applys changes when cell closes if not Escape */\n @Prop() applyChangesOnClose: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n // Events\n //\n // --------------------------------------------------------------------------\n\n @Event({ cancelable: true }) internalCopy: EventEmitter;\n @Event({ cancelable: true }) internalPaste: EventEmitter;\n\n @Event({ cancelable: true }) internalCellEdit: EventEmitter<Edition.BeforeSaveDataDetails>;\n @Event({ cancelable: true }) beforeFocusCell: EventEmitter<Edition.BeforeSaveDataDetails>;\n\n @Event() setEdit: EventEmitter<Edition.BeforeEdit>;\n @Event({ eventName: 'before-apply-range' }) beforeApplyRange: EventEmitter<FocusRenderEvent>;\n @Event({ eventName: 'before-set-range' }) beforeSetRange: EventEmitter;\n @Event({ eventName: 'before-edit-render' }) beforeEditRender: EventEmitter<FocusRenderEvent>;\n @Event() setRange: EventEmitter<Selection.RangeArea & { type: RevoGrid.MultiDimensionType }>;\n @Event({ eventName: 'selectall' }) selectAll: EventEmitter;\n /**\n * Used for editors support when close requested\n */\n @Event() cancelEdit: EventEmitter;\n @Event() setTempRange: EventEmitter<Selection.TempRange | null>;\n\n @Event() applyFocus: EventEmitter<FocusRenderEvent>;\n @Event() focusCell: EventEmitter<ApplyFocusEvent>;\n /** Range data apply */\n @Event() beforeRangeDataApply: EventEmitter<FocusRenderEvent>;\n /** Selection range changed */\n @Event({ cancelable: true }) internalSelectionChanged: EventEmitter<Selection.ChangedRange>;\n /** Selection range changed */\n @Event({ cancelable: true, bubbles: true }) beforeRangeCopyApply: EventEmitter<Selection.ChangedRange>;\n\n /** Range data apply */\n @Event({ cancelable: true }) internalRangeDataApply: EventEmitter<Edition.BeforeRangeSaveDataDetails>;\n /** Range copy */\n @Event({ cancelable: true }) rangeClipboardCopy: EventEmitter;\n @Event({ cancelable: true }) rangeClipboardPaste: EventEmitter;\n\n /**\n * Runs before cell save\n * Can be used to override or cancel original save\n */\n @Event({ eventName: 'before-cell-save', cancelable: true }) beforeCellSave: EventEmitter;\n // --------------------------------------------------------------------------\n //\n // Listeners\n //\n // --------------------------------------------------------------------------\n @Listen('touchmove', { target: 'document' })\n @Listen('mousemove', { target: 'document' })\n onMouseMove(e: MouseEvent & TouchEvent) {\n if (this.selectionStoreService.focused) {\n this.autoFillService.selectionMouseMove(e);\n }\n }\n\n\n /** Action finished inside of the document */\n /** Pointer left document, clear any active operation */\n @Listen('touchend', { target: 'document' })\n @Listen('mouseup', { target: 'document' })\n @Listen('mouseleave', { target: 'document' })\n onMouseUp() {\n this.autoFillService.clearAutoFillSelection();\n }\n\n /** Row drag started */\n @Listen('dragStartCell') onCellDrag(e: CustomEvent<DragStartEvent>) {\n this.orderEditor?.dragStart(e.detail);\n }\n\n /** Get keyboard down from element */\n @Listen('keyup', { target: 'document' }) onKeyUp(e: KeyboardEvent) {\n this.keyboardService?.keyUp(e);\n }\n\n /** Get keyboard down from element */\n @Listen('keydown', { target: 'document' }) onKeyDown(e: KeyboardEvent) {\n if (e.defaultPrevented) {\n return;\n }\n this.keyboardService?.keyDown(e, this.range);\n }\n\n // selection & keyboard\n @Watch('selectionStore') selectionServiceSet(s: Observable<Selection.SelectionStoreState>) {\n this.selectionStoreService = new SelectionStoreService(s, {\n changeRange: range => this.triggerRangeEvent(range),\n focus: (focus, end) => this.doFocus(focus, end),\n });\n\n this.keyboardService = new KeyboardService({\n selectionStoreService: this.selectionStoreService,\n selectionStore: s,\n range: r => this.selectionStoreService.changeRange(r),\n focusNext: (f, next) => this.doFocus(f, f, next),\n applyEdit: val => {\n if (this.readonly) {\n return;\n }\n this.doEdit(val);\n },\n cancelEdit: async () => {\n await this.revogrEdit.cancel();\n this.closeEdit();\n },\n clearCell: () => !this.readonly && this.clearCell(),\n internalPaste: () => !this.readonly && this.internalPaste.emit(),\n getData: () => this.getData(),\n selectAll: () => this.selectAll.emit(),\n });\n this.createAutoFillService();\n this.createClipboardService();\n }\n // autofill\n @Watch('dimensionRow')\n @Watch('dimensionCol')\n createAutoFillService() {\n this.autoFillService = new AutoFillService({\n selectionStoreService: this.selectionStoreService,\n dimensionRow: this.dimensionRow,\n dimensionCol: this.dimensionCol,\n columnService: this.columnService,\n dataStore: this.dataStore,\n\n clearRangeDataApply: e =>\n this.beforeRangeDataApply.emit({\n ...e,\n ...this.types,\n }),\n setTempRange: e => this.setTempRange.emit(e),\n selectionChanged: e => this.internalSelectionChanged.emit(e),\n rangeCopy: e => this.beforeRangeCopyApply.emit(e),\n rangeDataApply: e => this.internalRangeDataApply.emit(e),\n\n setRange: e => this.triggerRangeEvent(e),\n getData: () => this.getData(),\n });\n }\n\n // columns\n @Watch('dataStore')\n @Watch('colData')\n columnServiceSet() {\n this.columnService?.destroy();\n this.columnService = new ColumnService(this.dataStore, this.colData);\n this.createAutoFillService();\n this.createClipboardService();\n }\n\n // clipboard\n createClipboardService() {\n this.clipboardService = new ClipboardService({\n selectionStoreService: this.selectionStoreService,\n columnService: this.columnService,\n dataStore: this.dataStore,\n rangeApply: (d, r) => this.autoFillService.onRangeApply(d, r),\n rangeCopy: range => {\n if (!range) {\n return undefined;\n }\n const { data, mapping } = this.columnService.copyRangeArray(range, this.dataStore);\n const event = this.rangeClipboardCopy.emit({\n range,\n data,\n mapping,\n ...this.types,\n });\n if (event.defaultPrevented) {\n return undefined;\n }\n return event.detail.data;\n },\n rangeClear: () => !this.readonly && this.clearCell(),\n beforeCopy: range => this.internalCopy.emit(range),\n beforePaste: (data, range) => {\n return this.rangeClipboardPaste.emit({\n data,\n range,\n ...this.types,\n });\n },\n });\n }\n\n connectedCallback() {\n this.columnServiceSet();\n this.selectionServiceSet(this.selectionStore);\n }\n\n disconnectedCallback() {\n this.columnService?.destroy();\n }\n\n private renderRange(range: Selection.RangeArea) {\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return [<div class={SELECTION_BORDER_CLASS} style={style} />];\n }\n\n private renderEditCell() {\n // if can edit\n const editCell = this.selectionStore.get('edit');\n if (this.readonly || !editCell) {\n return null;\n }\n const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);\n const editable = {\n ...editCell,\n ...this.columnService.getSaveData(editCell.y, editCell.x, val),\n };\n const renderEvent = this.beforeEditRender.emit({\n range: {\n ...editCell,\n x1: editCell.x,\n y1: editCell.y,\n },\n ...this.types,\n });\n if (renderEvent.defaultPrevented) {\n return null;\n }\n\n const {\n detail: { range },\n } = renderEvent;\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <revogr-edit\n ref={el => {\n this.revogrEdit = el;\n }}\n onCellEdit={e => {\n const saveEv = this.beforeCellSave.emit(e.detail);\n if (!saveEv.defaultPrevented) {\n this.cellEdit(saveEv.detail);\n }\n\n // if not clear navigate to next cell after edit\n if (!saveEv.detail.preventFocus) {\n this.focusNext();\n }\n }}\n onCloseEdit={e => this.closeEdit(e)}\n editCell={editable}\n saveOnClose={this.applyChangesOnClose}\n column={this.columnService.columns[editCell.x]}\n editor={this.columnService.getCellEditor(editCell.y, editCell.x, this.editors)}\n style={style}\n />\n );\n }\n\n render() {\n const els: VNode[] = [];\n const editCell = this.renderEditCell();\n if (editCell) {\n els.push(editCell);\n } else {\n const range = this.selectionStoreService.ranged;\n const selectionFocus = this.selectionStoreService.focused;\n if ((range || selectionFocus) && this.useClipboard) {\n els.push(this.clipboardService.renderClipboard());\n }\n\n if (range) {\n els.push(...this.renderRange(range));\n }\n if (selectionFocus && !this.readonly && this.range) {\n els.push(this.autoFillService.renderAutofill(range, selectionFocus));\n }\n if (this.canDrag) {\n els.push(\n <revogr-order-editor\n ref={e => (this.orderEditor = e)}\n dataStore={this.dataStore}\n dimensionRow={this.dimensionRow}\n dimensionCol={this.dimensionCol}\n parent={this.element}\n onInternalRowDragStart={e => this.onRowDragStart(e)}\n />,\n );\n }\n }\n return (\n <Host onDblClick={() => this.doEdit()} onMouseDown={(e: MouseEvent) => this.onElementMouseDown(e)}>\n {els}\n <slot name=\"data\" />\n </Host>\n );\n }\n\n private doFocus(focus: Selection.Cell, end: Selection.Cell, next?: Partial<Selection.Cell>) {\n const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));\n if (defaultPrevented) {\n return false;\n }\n const evData = {\n range: {\n ...focus,\n x1: end.x,\n y1: end.y,\n },\n next,\n ...this.types,\n };\n const applyEvent = this.applyFocus.emit(evData);\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const { range } = applyEvent.detail;\n return !this.focusCell.emit({\n focus: {\n x: range.x,\n y: range.y,\n },\n end: {\n x: range.x1,\n y: range.y1,\n },\n ...applyEvent.detail,\n }).defaultPrevented;\n }\n\n private triggerRangeEvent(range: Selection.RangeArea) {\n const type = this.types.rowType;\n const applyEvent = this.beforeApplyRange.emit({\n range: { ...range },\n ...this.types,\n });\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const data = this.columnService.getRangeTransformedToProps(applyEvent.detail.range, this.dataStore);\n let e = this.beforeSetRange.emit(data);\n e = this.setRange.emit({ ...applyEvent.detail.range, type });\n if (e.defaultPrevented) {\n return false;\n }\n return !e.defaultPrevented;\n }\n\n protected onElementMouseDown(e: MouseEvent) {\n // Ignore focus if clicked input\n if (isEditInput(e.target as HTMLElement | undefined)) {\n return;\n }\n const data = this.getData();\n if (e.defaultPrevented) {\n return;\n }\n // Regular cell click\n const focusCell = getCurrentCell({ x: e.x, y: e.y }, data);\n this.selectionStoreService.focus(focusCell, this.range && e.shiftKey);\n\n // Initiate autofill selection\n if (this.range) {\n this.autoFillService.selectionStart(e, data);\n }\n }\n\n protected doEdit(val = '') {\n if (this.canEdit()) {\n const editCell = this.selectionStore.get('focus');\n const data = this.columnService.getSaveData(editCell.y, editCell.x);\n this.setEdit?.emit({\n ...data,\n val,\n });\n }\n }\n\n /**\n * Close editor event triggered\n * @param details - if requires focus next\n */\n private closeEdit(e?: CustomEvent<boolean>) {\n this.cancelEdit.emit();\n if (e?.detail) {\n this.focusNext();\n }\n }\n\n /** Edit finished, close cell and save */\n protected cellEdit(e: Edition.SaveDataDetails) {\n const dataToSave = this.columnService.getSaveData(e.rgRow, e.rgCol, e.val);\n this.internalCellEdit.emit(dataToSave);\n }\n\n private async focusNext() {\n const canFocus = await this.keyboardService.keyChangeSelection(\n new KeyboardEvent('keydown', {\n code: codesLetter.ARROW_DOWN,\n }),\n this.range,\n );\n if (!canFocus) {\n this.closeEdit();\n }\n }\n\n protected clearCell() {\n if (this.selectionStoreService.ranged && !isRangeSingleCell(this.selectionStoreService.ranged)) {\n const data = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, '');\n this.autoFillService.onRangeApply(data, this.selectionStoreService.ranged);\n } else if (this.canEdit()) {\n const focused = this.selectionStoreService.focused;\n this.cellEdit({ rgRow: focused.y, rgCol: focused.x, val: '' });\n }\n }\n\n private onRowDragStart({ detail }: CustomEvent<{ cell: Selection.Cell; text: string }>) {\n detail.text = this.columnService.getCellData(detail.cell.y, detail.cell.x);\n }\n\n /** Check if edit possible */\n protected canEdit() {\n if (this.readonly) {\n return false;\n }\n const editCell = this.selectionStoreService.focused;\n return editCell && !this.columnService?.isReadOnly(editCell.y, editCell.x);\n }\n\n get types(): AllDimensionType {\n return {\n rowType: this.dataStore.get('type'),\n colType: this.columnService.type,\n };\n }\n\n /** Collect data from element */\n protected getData() {\n return {\n el: this.element,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n lastCell: this.lastCell,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"revogr-overlay-selection.js","sourceRoot":"","sources":["../../../src/components/overlay/revogr-overlay-selection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAS,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG7G,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,qBAAqB,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMrE,MAAM,OAAO,gBAAgB;;IA+HnB,oBAAe,GAA2B,IAAI,CAAC;IAC/C,oBAAe,GAA2B,IAAI,CAAC;IAC/C,qBAAgB,GAA4B,IAAI,CAAC;IAEjD,eAAU,GAAiC,IAAI,CAAC;;;;;;;;;;;;+BAlEjB,KAAK;;;;EAwE5C,6EAA6E;EAC7E,EAAE;EACF,aAAa;EACb,EAAE;EACF,6EAA6E;EAG7E,WAAW,CAAC,CAA0B;IACpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;MACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KAC5C;EACH,CAAC;EAGD,6CAA6C;EAC7C,wDAAwD;EAIxD,SAAS;IACP,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;EAChD,CAAC;EAED,uBAAuB;EACE,UAAU,CAAC,CAA8B;;IAChE,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;EACxC,CAAC;EAED,qCAAqC;EACI,OAAO,CAAC,CAAgB;;IAC/D,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;EACjC,CAAC;EAED,qCAAqC;EACM,SAAS,CAAC,CAAgB;;IACnE,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO;KACR;IACD,MAAA,IAAI,CAAC,eAAe,0CAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;EAC/C,CAAC;EAED,uBAAuB;EACE,mBAAmB,CAAC,CAA4C;IACvF,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,CAAC,EAAE;MACxD,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;MACnD,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;MACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,cAAc,EAAE,CAAC;MACjB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;MACrD,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;MAChD,SAAS,EAAE,GAAG,CAAC,EAAE;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;UACjB,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;MACnB,CAAC;MACD,UAAU,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;MACnB,CAAC;MACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;MACnD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;MAChE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;MAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;KACvC,CAAC,CAAC;IACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;EAChC,CAAC;EACD,WAAW;EAGX,qBAAqB;IACnB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;MACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,YAAY,EAAE,IAAI,CAAC,YAAY;MAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;MAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,SAAS,EAAE,IAAI,CAAC,SAAS;MAEzB,mBAAmB,EAAE,CAAC,CAAC,EAAE,CACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,iCACzB,CAAC,GACD,IAAI,CAAC,KAAK,EACb;MACJ,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;MAC5C,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;MAC5D,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;MACjD,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;MAExD,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;MACxC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;KAC9B,CAAC,CAAC;EACL,CAAC;EAED,UAAU;EAGV,gBAAgB;;IACd,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;EAChC,CAAC;EAED,YAAY;EACZ,sBAAsB;IACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;MAC3C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;MACjD,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,SAAS,EAAE,IAAI,CAAC,SAAS;MACzB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;MAC7D,SAAS,EAAE,KAAK,CAAC,EAAE;QACjB,IAAI,CAAC,KAAK,EAAE;UACV,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,iBACxC,KAAK;UACL,IAAI;UACJ,OAAO,IACJ,IAAI,CAAC,KAAK,EACb,CAAC;QACH,IAAI,KAAK,CAAC,gBAAgB,EAAE;UAC1B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;MAC3B,CAAC;MACD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;MACpD,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;MAClD,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,iBAClC,IAAI;UACJ,KAAK,IACF,IAAI,CAAC,KAAK,EACb,CAAC;MACL,CAAC;KACF,CAAC,CAAC;EACL,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;EAChD,CAAC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,EAAE,CAAC;EAChC,CAAC;EAEO,WAAW,CAAC,KAA0B;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO;MACL,WAAK,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,IAC7C,IAAI,CAAC,cAAc,IAAI,WAAK,KAAK,EAAC,gBAAgB;QAAC,YAAM,KAAK,EAAE,YAAY,GAAS;QAAA,YAAM,KAAK,EAAE,YAAY,GAAS,CAAM,CAC1H;KACP,CAAC;EACJ,CAAC;EAEO,cAAc;IACpB,cAAc;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;MAC9B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,QAAQ,mCACT,QAAQ,GACR,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/D,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,iBAC5C,KAAK,kCACA,QAAQ,KACX,EAAE,EAAE,QAAQ,CAAC,CAAC,EACd,EAAE,EAAE,QAAQ,CAAC,CAAC,OAEb,IAAI,CAAC,KAAK,EACb,CAAC;IACH,IAAI,WAAW,CAAC,gBAAgB,EAAE;MAChC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EACJ,MAAM,EAAE,EAAE,KAAK,EAAE,GAClB,GAAG,WAAW,CAAC;IAChB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,CACL,mBACE,GAAG,EAAE,EAAE,CAAC,EAAE;QACR,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;MACvB,CAAC,EACD,UAAU,EAAE,CAAC,CAAC,EAAE;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;UAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC9B;QAED,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;UAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;MACH,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,mBAAmB,EACrC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC9C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAC9E,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACvC,IAAI,QAAQ,EAAE;MACZ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpB;SAAM;MACL,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;MAChD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;MAC1D,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;OAChE;MAED,IAAI,KAAK,EAAE;QACT,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;OACtC;MACD,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;QAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;OACtE;MACD,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,GAAG,CAAC,IAAI,CACN,2BACE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAChC,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GACnD,CACH,CAAC;OACH;KACF;IACD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;MACtC,uBAAuB;MACvB,UAAU,EAAE,CAAC,CAAa,EAAE,EAAE;QAC5B,oDAAoD;QACpD,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE;UACvB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;MACH,CAAC,EACD,WAAW,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC1D,YAAY,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC;MAChE,GAAG;MACJ,YAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACR,CAAC;EACJ,CAAC;EAEO,OAAO,CAAC,KAAqB,EAAE,GAAmB,EAAE,IAA8B;IACxF,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,IAAI,gBAAgB,EAAE;MACpB,OAAO,KAAK,CAAC;KACd;IACD,MAAM,MAAM,mBACV,KAAK,kCACA,KAAK,KACR,EAAE,EAAE,GAAG,CAAC,CAAC,EACT,EAAE,EAAE,GAAG,CAAC,CAAC,KAEX,IAAI,IACD,IAAI,CAAC,KAAK,CACd,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,gBAAgB,EAAE;MAC/B,OAAO,KAAK,CAAC;KACd;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,iBACzB,KAAK,EAAE;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;OACX,EACD,GAAG,EAAE;QACH,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,KAAK,CAAC,EAAE;OACZ,IACE,UAAU,CAAC,MAAM,EACpB,CAAC,gBAAgB,CAAC;EACtB,CAAC;EAEO,iBAAiB,CAAC,KAA0B;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,iBAC3C,KAAK,oBAAO,KAAK,KACd,IAAI,CAAC,KAAK,EACb,CAAC;IACH,IAAI,UAAU,CAAC,gBAAgB,EAAE;MAC/B,OAAO,KAAK,CAAC;KACd;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,iCAAM,UAAU,CAAC,MAAM,CAAC,KAAK,KAAE,IAAI,IAAG,CAAC;IAC7D,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;EAC7B,CAAC;EAES,kBAAkB,CAAC,CAA0B,EAAE,KAAK,GAAG,KAAK;IACpE,gCAAgC;IAChC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAiC,CAAC,EAAE;MACpD,OAAO;KACR;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,gBAAgB,EAAE;MACtB,OAAO;KACR;IACD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACrC,aAAa;IACb,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;MAC5B,OAAO;KACR;IACD,qBAAqB;IACrB,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEtE,8BAA8B;IAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;MACd,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,MAAqB,EAAE,IAAI,CAAC,CAAC;MACnE,IAAI,CAAC,KAAK,EAAE;QACV,CAAC,CAAC,cAAc,EAAE,CAAC;OACpB;WAAM,IAAI,iBAAiB,CAAE,CAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE;QACxE,CAAC,CAAC,cAAc,EAAE,CAAC;OACpB;KACF;EACH,CAAC;EAED;;KAEG;EACO,MAAM,CAAC,GAAG,GAAG,EAAE;;IACvB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;MAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;MAClD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;MACpE,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,iCACb,IAAI,KACP,GAAG,IACH,CAAC;KACJ;EACH,CAAC;EAED;;;KAGG;EACK,SAAS,CAAC,CAAwB;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,EAAE;MACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;EACH,CAAC;EAED,yCAAyC;EAC/B,QAAQ,CAAC,CAA0B;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EACzC,CAAC;EAEO,KAAK,CAAC,SAAS;IACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAC5D,IAAI,aAAa,CAAC,SAAS,EAAE;MAC3B,IAAI,EAAE,WAAW,CAAC,UAAU;KAC7B,CAAC,EACF,IAAI,CAAC,KAAK,CACX,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE;MACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;EACH,CAAC;EAES,SAAS;IACjB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;MAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;MAC1F,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC5E;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;MACzB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;MACnD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;MAClE,IAAI,CAAC,QAAQ,CAAC;QACZ,KAAK,EAAE,OAAO,CAAC,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC,CAAC;QAChB,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;OAChB,CAAC,CAAC;KACJ;EACH,CAAC;EAEO,cAAc,CAAC,EAAE,MAAM,EAAuD;IACpF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC7E,CAAC;EAED,6BAA6B;EACnB,OAAO;;IACf,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,OAAO,KAAK,CAAC;KACd;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACpD,OAAO,QAAQ,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC;EAC7E,CAAC;EAED,IAAI,KAAK;IACP,OAAO;MACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;MACnC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;KACjC,CAAC;EACJ,CAAC;EAED,gCAAgC;EACtB,OAAO;IACf,OAAO;MACL,EAAE,EAAE,IAAI,CAAC,OAAO;MAChB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;MAC7B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;MAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, h, Host, Listen, Prop, VNode, Element, Watch } from '@stencil/core';\n\nimport { AllDimensionType, ApplyFocusEvent, FocusRenderEvent, Edition, Observable, RevoGrid, Selection, DragStartEvent } from '../../interfaces';\nimport ColumnService from '../data/columnService';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport { codesLetter } from '../../utils/keyCodes';\nimport { MOBILE_CLASS, SELECTION_BORDER_CLASS } from '../../utils/consts';\nimport { DataSourceState } from '../../store/dataSource/data.store';\nimport { isRangeSingleCell } from '../../store/selection/selection.helpers';\nimport { getCurrentCell, getElStyle } from './selection.utils';\nimport { isEditInput } from './editors/edit.utils';\nimport { KeyboardService } from './keyboard.service';\nimport { AutoFillService } from './autofill.service';\nimport { ClipboardService } from './clipboard.service';\nimport { getFromEvent, verifyTouchTarget } from '../../utils/events';\n\n@Component({\n tag: 'revogr-overlay-selection',\n styleUrl: 'revogr-overlay-style.scss',\n})\nexport class OverlaySelection {\n\n @Element() element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n /**\n * If readonly mode enables\n */\n @Prop() readonly: boolean;\n /**\n * Range selection mode\n */\n @Prop() range: boolean;\n /**\n * Enable revogr-order-editor component (read more in revogr-order-editor component)\n * Allows D&D\n */\n @Prop() canDrag: boolean;\n\n /**\n * Enable revogr-clipboard component (read more in revogr-clipboard component)\n * Allows copy/paste\n */\n @Prop() useClipboard: boolean;\n\n // --------------------------------------------------------------------------\n //\n // Dynamic stores\n //\n // --------------------------------------------------------------------------\n @Prop() selectionStore: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n\n // --------------------------------------------------------------------------\n //\n // Static stores, not expected to change during component lifetime\n //\n // --------------------------------------------------------------------------\n\n /**\n * Row data store\n */\n @Prop() dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n\n /**\n * Column data store\n */\n @Prop() colData: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;\n /**\n * Last cell position\n */\n @Prop() lastCell: Selection.Cell;\n /**\n * Custom editors register\n */\n @Prop() editors: Edition.Editors;\n /**\n * If true applys changes when cell closes if not Escape\n */\n @Prop() applyChangesOnClose: boolean = false;\n /**\n * Additional data to pass to renderer\n */\n @Prop() additionalData: any;\n\n /**\n * Is mobile view mode\n */\n @Prop() isMobileDevice: boolean;\n\n // --------------------------------------------------------------------------\n //\n // Events\n //\n // --------------------------------------------------------------------------\n\n /**\n * Before clipboard copy happened\n */\n @Event({ cancelable: true }) internalCopy: EventEmitter;\n /**\n * Before paste happened\n */\n @Event({ cancelable: true }) internalPaste: EventEmitter;\n\n @Event({ cancelable: true }) internalCellEdit: EventEmitter<Edition.BeforeSaveDataDetails>;\n @Event({ cancelable: true }) beforeFocusCell: EventEmitter<Edition.BeforeSaveDataDetails>;\n\n /**\n * Set edit cell\n */\n @Event() setEdit: EventEmitter<Edition.BeforeEdit>;\n @Event({ eventName: 'before-apply-range' }) beforeApplyRange: EventEmitter<FocusRenderEvent>;\n @Event({ eventName: 'before-set-range' }) beforeSetRange: EventEmitter;\n @Event({ eventName: 'before-edit-render' }) beforeEditRender: EventEmitter<FocusRenderEvent>;\n @Event() setRange: EventEmitter<Selection.RangeArea & { type: RevoGrid.MultiDimensionType }>;\n @Event({ eventName: 'selectall' }) selectAll: EventEmitter;\n /**\n * Used for editors support when close requested\n */\n @Event() cancelEdit: EventEmitter;\n @Event() setTempRange: EventEmitter<Selection.TempRange | null>;\n\n @Event() applyFocus: EventEmitter<FocusRenderEvent>;\n @Event() focusCell: EventEmitter<ApplyFocusEvent>;\n /** Range data apply */\n @Event() beforeRangeDataApply: EventEmitter<FocusRenderEvent>;\n /** Selection range changed */\n @Event({ cancelable: true }) internalSelectionChanged: EventEmitter<Selection.ChangedRange>;\n /** Selection range changed */\n @Event({ cancelable: true, bubbles: true }) beforeRangeCopyApply: EventEmitter<Selection.ChangedRange>;\n\n /** Range data apply */\n @Event({ cancelable: true }) internalRangeDataApply: EventEmitter<Edition.BeforeRangeSaveDataDetails>;\n /** Range copy */\n @Event({ cancelable: true }) rangeClipboardCopy: EventEmitter;\n @Event({ cancelable: true }) rangeClipboardPaste: EventEmitter;\n\n protected columnService: ColumnService;\n\n protected selectionStoreService: SelectionStoreService;\n private keyboardService: KeyboardService | null = null;\n private autoFillService: AutoFillService | null = null;\n private clipboardService: ClipboardService | null = null;\n private orderEditor: HTMLRevogrOrderEditorElement;\n private revogrEdit: HTMLRevogrEditElement | null = null;\n /**\n * Runs before cell save\n * Can be used to override or cancel original save\n */\n @Event({ eventName: 'before-cell-save', cancelable: true }) beforeCellSave: EventEmitter;\n // --------------------------------------------------------------------------\n //\n // Listeners\n //\n // --------------------------------------------------------------------------\n @Listen('touchmove', { target: 'document' })\n @Listen('mousemove', { target: 'document' })\n onMouseMove(e: MouseEvent | TouchEvent) {\n if (this.selectionStoreService.focused) {\n this.autoFillService.selectionMouseMove(e);\n }\n }\n\n\n /** Action finished inside of the document */\n /** Pointer left document, clear any active operation */\n @Listen('touchend', { target: 'document' })\n @Listen('mouseup', { target: 'document' })\n @Listen('mouseleave', { target: 'document' })\n onMouseUp() {\n this.autoFillService.clearAutoFillSelection();\n }\n\n /** Row drag started */\n @Listen('dragStartCell') onCellDrag(e: CustomEvent<DragStartEvent>) {\n this.orderEditor?.dragStart(e.detail);\n }\n\n /** Get keyboard down from element */\n @Listen('keyup', { target: 'document' }) onKeyUp(e: KeyboardEvent) {\n this.keyboardService?.keyUp(e);\n }\n\n /** Get keyboard down from element */\n @Listen('keydown', { target: 'document' }) onKeyDown(e: KeyboardEvent) {\n if (e.defaultPrevented) {\n return;\n }\n this.keyboardService?.keyDown(e, this.range);\n }\n\n // selection & keyboard\n @Watch('selectionStore') selectionServiceSet(s: Observable<Selection.SelectionStoreState>) {\n this.selectionStoreService = new SelectionStoreService(s, {\n changeRange: range => this.triggerRangeEvent(range),\n focus: (focus, end) => this.doFocus(focus, end),\n });\n\n this.keyboardService = new KeyboardService({\n selectionStoreService: this.selectionStoreService,\n selectionStore: s,\n range: r => this.selectionStoreService.changeRange(r),\n focusNext: (f, next) => this.doFocus(f, f, next),\n applyEdit: val => {\n if (this.readonly) {\n return;\n }\n this.doEdit(val);\n },\n cancelEdit: async () => {\n await this.revogrEdit.cancel();\n this.closeEdit();\n },\n clearCell: () => !this.readonly && this.clearCell(),\n internalPaste: () => !this.readonly && this.internalPaste.emit(),\n getData: () => this.getData(),\n selectAll: () => this.selectAll.emit(),\n });\n this.createAutoFillService();\n this.createClipboardService();\n }\n // autofill\n @Watch('dimensionRow')\n @Watch('dimensionCol')\n createAutoFillService() {\n this.autoFillService = new AutoFillService({\n selectionStoreService: this.selectionStoreService,\n dimensionRow: this.dimensionRow,\n dimensionCol: this.dimensionCol,\n columnService: this.columnService,\n dataStore: this.dataStore,\n\n clearRangeDataApply: e =>\n this.beforeRangeDataApply.emit({\n ...e,\n ...this.types,\n }),\n setTempRange: e => this.setTempRange.emit(e),\n selectionChanged: e => this.internalSelectionChanged.emit(e),\n rangeCopy: e => this.beforeRangeCopyApply.emit(e),\n rangeDataApply: e => this.internalRangeDataApply.emit(e),\n\n setRange: e => this.triggerRangeEvent(e),\n getData: () => this.getData(),\n });\n }\n\n // columns\n @Watch('dataStore')\n @Watch('colData')\n columnServiceSet() {\n this.columnService?.destroy();\n this.columnService = new ColumnService(this.dataStore, this.colData);\n this.createAutoFillService();\n this.createClipboardService();\n }\n\n // clipboard\n createClipboardService() {\n this.clipboardService = new ClipboardService({\n selectionStoreService: this.selectionStoreService,\n columnService: this.columnService,\n dataStore: this.dataStore,\n rangeApply: (d, r) => this.autoFillService.onRangeApply(d, r),\n rangeCopy: range => {\n if (!range) {\n return undefined;\n }\n const { data, mapping } = this.columnService.copyRangeArray(range, this.dataStore);\n const event = this.rangeClipboardCopy.emit({\n range,\n data,\n mapping,\n ...this.types,\n });\n if (event.defaultPrevented) {\n return undefined;\n }\n return event.detail.data;\n },\n rangeClear: () => !this.readonly && this.clearCell(),\n beforeCopy: range => this.internalCopy.emit(range),\n beforePaste: (data, range) => {\n return this.rangeClipboardPaste.emit({\n data,\n range,\n ...this.types,\n });\n },\n });\n }\n\n connectedCallback() {\n this.columnServiceSet();\n this.selectionServiceSet(this.selectionStore);\n }\n\n disconnectedCallback() {\n this.columnService?.destroy();\n }\n\n private renderRange(range: Selection.RangeArea) {\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return [\n <div class={SELECTION_BORDER_CLASS} style={style}>\n {this.isMobileDevice && <div class=\"range-handlers\"><span class={MOBILE_CLASS}></span><span class={MOBILE_CLASS}></span></div>}\n </div>\n ];\n }\n\n private renderEditCell() {\n // if can edit\n const editCell = this.selectionStore.get('edit');\n if (this.readonly || !editCell) {\n return null;\n }\n const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);\n const editable = {\n ...editCell,\n ...this.columnService.getSaveData(editCell.y, editCell.x, val),\n };\n const renderEvent = this.beforeEditRender.emit({\n range: {\n ...editCell,\n x1: editCell.x,\n y1: editCell.y,\n },\n ...this.types,\n });\n if (renderEvent.defaultPrevented) {\n return null;\n }\n\n const {\n detail: { range },\n } = renderEvent;\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <revogr-edit\n ref={el => {\n this.revogrEdit = el;\n }}\n onCellEdit={e => {\n const saveEv = this.beforeCellSave.emit(e.detail);\n if (!saveEv.defaultPrevented) {\n this.cellEdit(saveEv.detail);\n }\n\n // if not clear navigate to next cell after edit\n if (!saveEv.detail.preventFocus) {\n this.focusNext();\n }\n }}\n onCloseEdit={e => this.closeEdit(e)}\n editCell={editable}\n saveOnClose={this.applyChangesOnClose}\n column={this.columnService.columns[editCell.x]}\n editor={this.columnService.getCellEditor(editCell.y, editCell.x, this.editors)}\n additionalData={this.additionalData}\n style={style}\n />\n );\n }\n\n render() {\n const els: VNode[] = [];\n const editCell = this.renderEditCell();\n if (editCell) {\n els.push(editCell);\n } else {\n const range = this.selectionStoreService.ranged;\n const selectionFocus = this.selectionStoreService.focused;\n if ((range || selectionFocus) && this.useClipboard) {\n els.push(this.clipboardService.renderClipboard(this.readonly));\n }\n\n if (range) {\n els.push(...this.renderRange(range));\n }\n if (selectionFocus && !this.readonly && this.range) {\n els.push(this.autoFillService.renderAutofill(range, selectionFocus));\n }\n if (this.canDrag) {\n els.push(\n <revogr-order-editor\n ref={e => (this.orderEditor = e)}\n dataStore={this.dataStore}\n dimensionRow={this.dimensionRow}\n dimensionCol={this.dimensionCol}\n parent={this.element}\n onInternalRowDragStart={e => this.onRowDragStart(e)}\n />,\n );\n }\n }\n return (\n <Host\n class={{ mobile: this.isMobileDevice }}\n // run edit on dblclick\n onDblClick={(e: MouseEvent) => {\n // if dblclick prevented outside edit will not start\n if (!e.defaultPrevented) {\n this.doEdit();\n }\n }}\n onMouseDown={(e: MouseEvent) => this.onElementMouseDown(e)}\n onTouchStart={(e: TouchEvent) => this.onElementMouseDown(e, true)}>\n {els}\n <slot name=\"data\" />\n </Host>\n );\n }\n\n private doFocus(focus: Selection.Cell, end: Selection.Cell, next?: Partial<Selection.Cell>) {\n const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));\n if (defaultPrevented) {\n return false;\n }\n const evData = {\n range: {\n ...focus,\n x1: end.x,\n y1: end.y,\n },\n next,\n ...this.types,\n };\n const applyEvent = this.applyFocus.emit(evData);\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const { range } = applyEvent.detail;\n return !this.focusCell.emit({\n focus: {\n x: range.x,\n y: range.y,\n },\n end: {\n x: range.x1,\n y: range.y1,\n },\n ...applyEvent.detail,\n }).defaultPrevented;\n }\n\n private triggerRangeEvent(range: Selection.RangeArea) {\n const type = this.types.rowType;\n const applyEvent = this.beforeApplyRange.emit({\n range: { ...range },\n ...this.types,\n });\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const data = this.columnService.getRangeTransformedToProps(applyEvent.detail.range, this.dataStore);\n let e = this.beforeSetRange.emit(data);\n e = this.setRange.emit({ ...applyEvent.detail.range, type });\n if (e.defaultPrevented) {\n return false;\n }\n return !e.defaultPrevented;\n }\n\n protected onElementMouseDown(e: MouseEvent | TouchEvent, touch = false) {\n // Ignore focus if clicked input\n if (isEditInput(e.target as HTMLElement | undefined)) {\n return;\n }\n const data = this.getData();\n if (e.defaultPrevented) {\n return;\n }\n const x = getFromEvent(e, 'clientX');\n const y = getFromEvent(e, 'clientY');\n // skip touch\n if (x === null || y === null) {\n return;\n }\n // Regular cell click\n const focusCell = getCurrentCell({ x, y }, data);\n this.selectionStoreService.focus(focusCell, this.range && e.shiftKey);\n\n // Initiate autofill selection\n if (this.range) {\n this.autoFillService.selectionStart(e.target as HTMLElement, data);\n if (!touch) {\n e.preventDefault();\n } else if (verifyTouchTarget((e as TouchEvent).touches[0], MOBILE_CLASS)) {\n e.preventDefault();\n }\n }\n }\n\n /** \n * Start cell editing\n */\n protected doEdit(val = '') {\n if (this.canEdit()) {\n const editCell = this.selectionStore.get('focus');\n const data = this.columnService.getSaveData(editCell.y, editCell.x);\n this.setEdit?.emit({\n ...data,\n val,\n });\n }\n }\n\n /**\n * Close editor event triggered\n * @param details - if requires focus next\n */\n private closeEdit(e?: CustomEvent<boolean>) {\n this.cancelEdit.emit();\n if (e?.detail) {\n this.focusNext();\n }\n }\n\n /** Edit finished, close cell and save */\n protected cellEdit(e: Edition.SaveDataDetails) {\n const dataToSave = this.columnService.getSaveData(e.rgRow, e.rgCol, e.val);\n this.internalCellEdit.emit(dataToSave);\n }\n\n private async focusNext() {\n const canFocus = await this.keyboardService.keyChangeSelection(\n new KeyboardEvent('keydown', {\n code: codesLetter.ARROW_DOWN,\n }),\n this.range,\n );\n if (!canFocus) {\n this.closeEdit();\n }\n }\n\n protected clearCell() {\n if (this.selectionStoreService.ranged && !isRangeSingleCell(this.selectionStoreService.ranged)) {\n const data = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, '');\n this.autoFillService.onRangeApply(data, this.selectionStoreService.ranged);\n } else if (this.canEdit()) {\n const focused = this.selectionStoreService.focused;\n const cell = this.columnService.getSaveData(focused.y, focused.x);\n this.cellEdit({\n rgRow: focused.y,\n rgCol: focused.x,\n val: '',\n type: cell.type,\n prop: cell.prop,\n });\n }\n }\n\n private onRowDragStart({ detail }: CustomEvent<{ cell: Selection.Cell; text: string }>) {\n detail.text = this.columnService.getCellData(detail.cell.y, detail.cell.x);\n }\n\n /** Check if edit possible */\n protected canEdit() {\n if (this.readonly) {\n return false;\n }\n const editCell = this.selectionStoreService.focused;\n return editCell && !this.columnService?.isReadOnly(editCell.y, editCell.x);\n }\n\n get types(): AllDimensionType {\n return {\n rowType: this.dataStore.get('type'),\n colType: this.columnService.type,\n };\n }\n\n /** Collect data from element */\n protected getData() {\n return {\n el: this.element,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n lastCell: this.lastCell,\n };\n }\n}\n"]}
|
|
@@ -75,24 +75,91 @@ revogr-overlay-selection {
|
|
|
75
75
|
}
|
|
76
76
|
revogr-overlay-selection .autofill-handle {
|
|
77
77
|
position: absolute;
|
|
78
|
+
width: 14px;
|
|
79
|
+
height: 14px;
|
|
80
|
+
margin-left: -13px;
|
|
81
|
+
margin-top: -13px;
|
|
82
|
+
z-index: 10;
|
|
83
|
+
cursor: crosshair;
|
|
84
|
+
}
|
|
85
|
+
revogr-overlay-selection .autofill-handle::before {
|
|
86
|
+
content: "";
|
|
87
|
+
position: absolute;
|
|
88
|
+
right: 0;
|
|
89
|
+
bottom: 0;
|
|
78
90
|
width: 10px;
|
|
79
91
|
height: 10px;
|
|
80
92
|
background: #0d63e8;
|
|
81
|
-
margin-left: -9px;
|
|
82
|
-
margin-top: -9px;
|
|
83
93
|
border: 1px solid white;
|
|
84
94
|
box-sizing: border-box;
|
|
95
|
+
}
|
|
96
|
+
revogr-overlay-selection.mobile .autofill-handle {
|
|
97
|
+
position: absolute;
|
|
98
|
+
width: 30px;
|
|
99
|
+
height: 30px;
|
|
100
|
+
margin-left: -29px;
|
|
101
|
+
margin-top: -29px;
|
|
85
102
|
z-index: 10;
|
|
86
103
|
cursor: crosshair;
|
|
87
104
|
}
|
|
105
|
+
revogr-overlay-selection.mobile .autofill-handle::before {
|
|
106
|
+
content: "";
|
|
107
|
+
position: absolute;
|
|
108
|
+
right: 0;
|
|
109
|
+
bottom: 0;
|
|
110
|
+
width: 12px;
|
|
111
|
+
height: 12px;
|
|
112
|
+
background: #0d63e8;
|
|
113
|
+
border: 1px solid white;
|
|
114
|
+
box-sizing: border-box;
|
|
115
|
+
}
|
|
88
116
|
revogr-overlay-selection .selection-border-range {
|
|
89
117
|
position: absolute;
|
|
90
118
|
pointer-events: none;
|
|
91
119
|
z-index: 9;
|
|
92
|
-
}
|
|
93
|
-
revogr-overlay-selection .selection-border-range {
|
|
94
120
|
box-shadow: -1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset;
|
|
95
121
|
}
|
|
122
|
+
revogr-overlay-selection .selection-border-range .range-handlers {
|
|
123
|
+
height: 100%;
|
|
124
|
+
background-color: transparent;
|
|
125
|
+
width: 75%;
|
|
126
|
+
max-width: 50px;
|
|
127
|
+
min-width: 20px;
|
|
128
|
+
left: 50%;
|
|
129
|
+
transform: translateX(-50%);
|
|
130
|
+
position: absolute;
|
|
131
|
+
}
|
|
132
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span {
|
|
133
|
+
pointer-events: auto;
|
|
134
|
+
height: 20px;
|
|
135
|
+
width: 20px;
|
|
136
|
+
position: absolute;
|
|
137
|
+
left: 50%;
|
|
138
|
+
transform: translateX(-50%);
|
|
139
|
+
}
|
|
140
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span:before, revogr-overlay-selection .selection-border-range .range-handlers > span:after {
|
|
141
|
+
position: absolute;
|
|
142
|
+
border-radius: 5px;
|
|
143
|
+
width: 15px;
|
|
144
|
+
height: 5px;
|
|
145
|
+
left: 50%;
|
|
146
|
+
transform: translateX(-50%);
|
|
147
|
+
background-color: rgba(0, 0, 0, 0.2);
|
|
148
|
+
}
|
|
149
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span:first-child {
|
|
150
|
+
top: -7px;
|
|
151
|
+
}
|
|
152
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span:first-child:before {
|
|
153
|
+
content: "";
|
|
154
|
+
top: 0;
|
|
155
|
+
}
|
|
156
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span:last-child {
|
|
157
|
+
bottom: -7px;
|
|
158
|
+
}
|
|
159
|
+
revogr-overlay-selection .selection-border-range .range-handlers > span:last-child:after {
|
|
160
|
+
content: "";
|
|
161
|
+
bottom: 0;
|
|
162
|
+
}
|
|
96
163
|
revogr-overlay-selection revogr-edit {
|
|
97
164
|
z-index: 10;
|
|
98
165
|
}
|
|
@@ -65,9 +65,10 @@ export declare class RevoGridComponent {
|
|
|
65
65
|
* Every plugin should be inherited from BasePlugin
|
|
66
66
|
*/
|
|
67
67
|
plugins: RevoPlugin.PluginClass[];
|
|
68
|
-
/** Types
|
|
68
|
+
/** Column Types Format
|
|
69
69
|
* Every type represent multiple column properties
|
|
70
70
|
* Types will be merged but can be replaced with column properties
|
|
71
|
+
* Types were made as separate objects to be reusable per multiple columns
|
|
71
72
|
*/
|
|
72
73
|
columnTypes: {
|
|
73
74
|
[name: string]: RevoGrid.ColumnType;
|
|
@@ -253,6 +254,13 @@ export declare class RevoGridComponent {
|
|
|
253
254
|
type: RevoGrid.DimensionRows;
|
|
254
255
|
source: RevoGrid.DataType[];
|
|
255
256
|
}>;
|
|
257
|
+
/**
|
|
258
|
+
* After all rows updated. Use it if you want to track all changes from sources pinned and main
|
|
259
|
+
*/
|
|
260
|
+
afterAnySource: EventEmitter<{
|
|
261
|
+
type: RevoGrid.DimensionRows;
|
|
262
|
+
source: RevoGrid.DataType[];
|
|
263
|
+
}>;
|
|
256
264
|
/** Before column update */
|
|
257
265
|
beforecolumnsset: EventEmitter<ColumnCollection>;
|
|
258
266
|
/** Before column applied but after column set gathered and viewport updated */
|
|
@@ -410,8 +418,8 @@ export declare class RevoGridComponent {
|
|
|
410
418
|
*/
|
|
411
419
|
getSelectedRange(): Promise<Selection.RangeArea | null>;
|
|
412
420
|
private clickTrackForFocusClear;
|
|
413
|
-
mousedownHandle(event: MouseEvent
|
|
414
|
-
mouseupHandle(event: MouseEvent
|
|
421
|
+
mousedownHandle(event: MouseEvent | TouchEvent): void;
|
|
422
|
+
mouseupHandle(event: MouseEvent | TouchEvent): void;
|
|
415
423
|
/** DRAG AND DROP */
|
|
416
424
|
onRowDragStarted(e: CustomEvent<{
|
|
417
425
|
pos: RevoGrid.PositionItem;
|
|
@@ -447,6 +455,10 @@ export declare class RevoGridComponent {
|
|
|
447
455
|
*/
|
|
448
456
|
private internalPlugins;
|
|
449
457
|
element: HTMLRevoGridElement;
|
|
458
|
+
/**
|
|
459
|
+
* Column format change will trigger column structure update
|
|
460
|
+
*/
|
|
461
|
+
columnTypesChanged(): void;
|
|
450
462
|
columnChanged(newVal?: RevoGrid.ColumnDataSchema[]): void;
|
|
451
463
|
rowSizeChanged(s: number): void;
|
|
452
464
|
themeChanged(t: ThemeSpace.Theme): void;
|
|
@@ -466,7 +478,6 @@ export declare class RevoGridComponent {
|
|
|
466
478
|
applyFilter(cfg: boolean | ColumnFilterConfig): void;
|
|
467
479
|
rowheaderschanged: EventEmitter;
|
|
468
480
|
rowHeadersChange(rowHeaders?: RevoGrid.RowHeaders | boolean): void;
|
|
469
|
-
private dataSourceApply;
|
|
470
481
|
connectedCallback(): void;
|
|
471
482
|
disconnectedCallback(): void;
|
|
472
483
|
render(): any;
|
|
@@ -11,7 +11,7 @@ import ViewportProvider from '../../services/viewport.provider';
|
|
|
11
11
|
import ThemeService from '../../themeManager/themeService';
|
|
12
12
|
import { timeout } from '../../utils';
|
|
13
13
|
import AutoSize from '../../plugins/autoSizeColumn';
|
|
14
|
-
import { columnTypes, rowTypes } from '../../store/storeTypes';
|
|
14
|
+
import { columnTypes as columnDimensions, rowTypes as rowDimensions } from '../../store/storeTypes';
|
|
15
15
|
import FilterPlugin from '../../plugins/filter/filter.plugin';
|
|
16
16
|
import SortingPlugin from '../../plugins/sorting/sorting.plugin';
|
|
17
17
|
import ExportFilePlugin from '../../plugins/export/export.plugin';
|
|
@@ -213,7 +213,8 @@ export class RevoGridComponent {
|
|
|
213
213
|
* Clear current grid focus
|
|
214
214
|
*/
|
|
215
215
|
async clearFocus() {
|
|
216
|
-
|
|
216
|
+
var _a;
|
|
217
|
+
const focused = (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.getFocused();
|
|
217
218
|
const event = this.beforefocuslost.emit(focused);
|
|
218
219
|
if (event.defaultPrevented) {
|
|
219
220
|
return;
|
|
@@ -249,14 +250,24 @@ export class RevoGridComponent {
|
|
|
249
250
|
return (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.getSelectedRange();
|
|
250
251
|
}
|
|
251
252
|
mousedownHandle(event) {
|
|
252
|
-
|
|
253
|
+
const screenX = getFromEvent(event, 'screenX');
|
|
254
|
+
const screenY = getFromEvent(event, 'screenY');
|
|
255
|
+
if (screenX === null || screenY === null) {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
this.clickTrackForFocusClear = screenX + screenY;
|
|
253
259
|
}
|
|
254
260
|
mouseupHandle(event) {
|
|
261
|
+
const screenX = getFromEvent(event, 'screenX');
|
|
262
|
+
const screenY = getFromEvent(event, 'screenY');
|
|
263
|
+
if (screenX === null || screenY === null) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
255
266
|
if (event.defaultPrevented) {
|
|
256
267
|
return;
|
|
257
268
|
}
|
|
258
269
|
const target = event.target;
|
|
259
|
-
const pos =
|
|
270
|
+
const pos = screenX + screenY;
|
|
260
271
|
// detect if mousemove then do nothing
|
|
261
272
|
if (Math.abs(this.clickTrackForFocusClear - pos) > 10) {
|
|
262
273
|
return;
|
|
@@ -348,12 +359,18 @@ export class RevoGridComponent {
|
|
|
348
359
|
e.preventDefault();
|
|
349
360
|
}
|
|
350
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Column format change will trigger column structure update
|
|
364
|
+
*/
|
|
365
|
+
columnTypesChanged() {
|
|
366
|
+
this.columnChanged(this.columns);
|
|
367
|
+
}
|
|
351
368
|
columnChanged(newVal = []) {
|
|
352
369
|
// clear existing data
|
|
353
370
|
this.dimensionProvider.dropColumns();
|
|
354
371
|
const columnGather = ColumnDataProvider.getColumns(newVal, 0, this.columnTypes);
|
|
355
372
|
this.beforecolumnsset.emit(columnGather);
|
|
356
|
-
for (let type of
|
|
373
|
+
for (let type of columnDimensions) {
|
|
357
374
|
const items = columnGather.columns[type];
|
|
358
375
|
this.dimensionProvider.setNewColumns(type, items.length, ColumnDataProvider.getSizes(items), type !== 'rgCol');
|
|
359
376
|
}
|
|
@@ -366,7 +383,7 @@ export class RevoGridComponent {
|
|
|
366
383
|
}
|
|
367
384
|
rowSizeChanged(s) {
|
|
368
385
|
this.dimensionProvider.setSettings({ originItemSize: s }, 'rgRow');
|
|
369
|
-
|
|
386
|
+
rowDimensions.forEach((t) => {
|
|
370
387
|
this.dimensionProvider.clearSize(t, this.dataProvider.stores[t].store.get('source').length);
|
|
371
388
|
this.dimensionProvider.setCustomSizes(t, {}, true);
|
|
372
389
|
});
|
|
@@ -395,7 +412,12 @@ export class RevoGridComponent {
|
|
|
395
412
|
newVal = beforesourceset.detail.source;
|
|
396
413
|
break;
|
|
397
414
|
}
|
|
398
|
-
this.
|
|
415
|
+
const beforesourceset = this.beforeAnySource.emit({
|
|
416
|
+
type,
|
|
417
|
+
source: newVal,
|
|
418
|
+
});
|
|
419
|
+
const newSource = [...beforesourceset.detail.source];
|
|
420
|
+
this.dataProvider.setData(newSource, type);
|
|
399
421
|
/** applied for source only for cross compatability between plugins */
|
|
400
422
|
if (watchName === 'source') {
|
|
401
423
|
this.aftersourceset.emit({
|
|
@@ -403,6 +425,10 @@ export class RevoGridComponent {
|
|
|
403
425
|
source: newVal,
|
|
404
426
|
});
|
|
405
427
|
}
|
|
428
|
+
this.afterAnySource.emit({
|
|
429
|
+
type,
|
|
430
|
+
source: newVal,
|
|
431
|
+
});
|
|
406
432
|
}
|
|
407
433
|
rowDefChanged(after, before) {
|
|
408
434
|
const { detail: { vals: newVal, oldVals: oldVal } } = this.beforerowdefinition.emit({
|
|
@@ -475,14 +501,6 @@ export class RevoGridComponent {
|
|
|
475
501
|
rowHeadersChange(rowHeaders) {
|
|
476
502
|
this.rowheaderschanged.emit(rowHeaders);
|
|
477
503
|
}
|
|
478
|
-
dataSourceApply(source = [], type = 'rgRow') {
|
|
479
|
-
const beforesourceset = this.beforeAnySource.emit({
|
|
480
|
-
type,
|
|
481
|
-
source,
|
|
482
|
-
});
|
|
483
|
-
const newSource = [...beforesourceset.detail.source];
|
|
484
|
-
return this.dataProvider.setData(newSource, type);
|
|
485
|
-
}
|
|
486
504
|
connectedCallback() {
|
|
487
505
|
this.viewportProvider = new ViewportProvider();
|
|
488
506
|
this.themeService = new ThemeService({
|
|
@@ -567,7 +585,7 @@ export class RevoGridComponent {
|
|
|
567
585
|
const views = [];
|
|
568
586
|
if (this.rowHeaders && this.viewport.columns.length) {
|
|
569
587
|
const anyView = this.viewport.columns[0];
|
|
570
|
-
views.push(h("revogr-row-headers", { additionalData: this.additionalData, height: contentHeight, rowClass: this.rowClass, resize: this.resize, dataPorts: anyView.dataPorts, headerProp: anyView.headerProp, uiid: anyView.prop[UUID], rowHeaderColumn: typeof this.rowHeaders === 'object' ? this.rowHeaders : undefined, onScrollViewport: ({ detail: e }) => this.scrollingService.
|
|
588
|
+
views.push(h("revogr-row-headers", { additionalData: this.additionalData, height: contentHeight, rowClass: this.rowClass, resize: this.resize, dataPorts: anyView.dataPorts, headerProp: anyView.headerProp, uiid: anyView.prop[UUID], rowHeaderColumn: typeof this.rowHeaders === 'object' ? this.rowHeaders : undefined, onScrollViewport: ({ detail: e }) => this.scrollingService.scrollService(e, 'headerRow'), onElementToScroll: ({ detail: e }) => this.scrollingService.registerElement(e, 'headerRow') }));
|
|
571
589
|
}
|
|
572
590
|
views.push(h(ViewPortSections, { additionalData: this.additionalData, columnFilter: !!this.filter, resize: this.resize, readonly: this.readonly, range: this.range, rowClass: this.rowClass, editors: this.editors, applyEditorChangesOnClose: this.applyOnClose, useClipboard: this.useClipboard, columns: this.viewport.columns, onSelectAll: () => {
|
|
573
591
|
this.selectionStoreConnector.selectAll();
|
|
@@ -578,8 +596,8 @@ export class RevoGridComponent {
|
|
|
578
596
|
}
|
|
579
597
|
}, onCancelEdit: () => {
|
|
580
598
|
this.selectionStoreConnector.setEdit(false);
|
|
581
|
-
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k),
|
|
582
|
-
return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }), h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.
|
|
599
|
+
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), scrollSection: (details, k) => this.scrollingService.scrollService(details, k), scrollSectionSilent: (details, k) => this.scrollingService.scrollSilentService(details, k), focusTemplate: this.focusTemplate }));
|
|
600
|
+
return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }), h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.scrollService(details) }, views), this.extraElements));
|
|
583
601
|
}
|
|
584
602
|
static get is() { return "revo-grid"; }
|
|
585
603
|
static get originalStyleUrls() {
|
|
@@ -941,7 +959,7 @@ export class RevoGridComponent {
|
|
|
941
959
|
"optional": false,
|
|
942
960
|
"docs": {
|
|
943
961
|
"tags": [],
|
|
944
|
-
"text": "Types\nEvery type represent multiple column properties\nTypes will be merged but can be replaced with column properties"
|
|
962
|
+
"text": "Column Types Format\nEvery type represent multiple column properties\nTypes will be merged but can be replaced with column properties\nTypes were made as separate objects to be reusable per multiple columns"
|
|
945
963
|
},
|
|
946
964
|
"defaultValue": "{}"
|
|
947
965
|
},
|
|
@@ -1525,6 +1543,26 @@ export class RevoGridComponent {
|
|
|
1525
1543
|
}
|
|
1526
1544
|
}
|
|
1527
1545
|
}
|
|
1546
|
+
}, {
|
|
1547
|
+
"method": "afterAnySource",
|
|
1548
|
+
"name": "after-any-source",
|
|
1549
|
+
"bubbles": true,
|
|
1550
|
+
"cancelable": true,
|
|
1551
|
+
"composed": true,
|
|
1552
|
+
"docs": {
|
|
1553
|
+
"tags": [],
|
|
1554
|
+
"text": "After all rows updated. Use it if you want to track all changes from sources pinned and main"
|
|
1555
|
+
},
|
|
1556
|
+
"complexType": {
|
|
1557
|
+
"original": "{\n type: RevoGrid.DimensionRows;\n source: RevoGrid.DataType[];\n }",
|
|
1558
|
+
"resolved": "{ type: DimensionRows; source: DataType[]; }",
|
|
1559
|
+
"references": {
|
|
1560
|
+
"RevoGrid": {
|
|
1561
|
+
"location": "import",
|
|
1562
|
+
"path": "../../interfaces"
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1528
1566
|
}, {
|
|
1529
1567
|
"method": "beforecolumnsset",
|
|
1530
1568
|
"name": "beforecolumnsset",
|
|
@@ -2355,6 +2393,9 @@ export class RevoGridComponent {
|
|
|
2355
2393
|
static get elementRef() { return "element"; }
|
|
2356
2394
|
static get watchers() {
|
|
2357
2395
|
return [{
|
|
2396
|
+
"propName": "columnTypes",
|
|
2397
|
+
"methodName": "columnTypesChanged"
|
|
2398
|
+
}, {
|
|
2358
2399
|
"propName": "columns",
|
|
2359
2400
|
"methodName": "columnChanged"
|
|
2360
2401
|
}, {
|