@revolist/revogrid 4.9.1 → 4.9.3

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.
Files changed (262) hide show
  1. package/dist/cjs/{base.plugin-d48d867d.js → base.plugin-bf5f43a0.js} +2 -2
  2. package/dist/cjs/{base.plugin-d48d867d.js.map → base.plugin-bf5f43a0.js.map} +1 -1
  3. package/dist/cjs/{column.service-6f691f50.js → column.service-01f4a6c7.js} +25 -6
  4. package/dist/cjs/column.service-01f4a6c7.js.map +1 -0
  5. package/dist/cjs/{dimension.helpers-e9d22516.js → dimension.helpers-a6788214.js} +10 -5
  6. package/dist/cjs/dimension.helpers-a6788214.js.map +1 -0
  7. package/dist/cjs/{header-cell-renderer-81a22b00.js → header-cell-renderer-3bc70679.js} +10 -8
  8. package/dist/cjs/header-cell-renderer-3bc70679.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +4 -4
  10. package/dist/cjs/revo-grid.cjs.entry.js +81 -93
  11. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  12. package/dist/cjs/revogr-attribution_6.cjs.entry.js +71 -46
  13. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  14. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +12 -7
  15. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/revogr-data_4.cjs.entry.js +45 -36
  17. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  18. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  19. package/dist/cjs/{selection.helpers-8fa19c04.js → selection.helpers-1a8c8d49.js} +32 -31
  20. package/dist/cjs/selection.helpers-1a8c8d49.js.map +1 -0
  21. package/dist/cjs/{throttle-bcc4740d.js → throttle-52be9e67.js} +4 -3
  22. package/dist/cjs/throttle-52be9e67.js.map +1 -0
  23. package/dist/cjs/{viewport.store-9cf01c71.js → viewport.store-35a3e7ee.js} +13 -9
  24. package/dist/cjs/viewport.store-35a3e7ee.js.map +1 -0
  25. package/dist/collection/components/clipboard/revogr-clipboard.js +68 -89
  26. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  27. package/dist/collection/components/data/cell-renderer.js +7 -4
  28. package/dist/collection/components/data/cell-renderer.js.map +1 -1
  29. package/dist/collection/components/data/column.service.js +1 -1
  30. package/dist/collection/components/data/column.service.js.map +1 -1
  31. package/dist/collection/components/data/revogr-data.js +1 -1
  32. package/dist/collection/components/data/revogr-data.js.map +1 -1
  33. package/dist/collection/components/editors/revogr-edit.js +6 -6
  34. package/dist/collection/components/editors/revogr-edit.js.map +1 -1
  35. package/dist/collection/components/editors/text-editor.js +3 -1
  36. package/dist/collection/components/editors/text-editor.js.map +1 -1
  37. package/dist/collection/components/header/header-renderer.js +2 -1
  38. package/dist/collection/components/header/header-renderer.js.map +1 -1
  39. package/dist/collection/components/header/resizable.directive.js +7 -5
  40. package/dist/collection/components/header/resizable.directive.js.map +1 -1
  41. package/dist/collection/components/header/resizable.element.js +1 -1
  42. package/dist/collection/components/header/resizable.element.js.map +1 -1
  43. package/dist/collection/components/overlay/autofill.service.js +11 -12
  44. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  45. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  46. package/dist/collection/components/overlay/revogr-overlay-selection.js +74 -39
  47. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  48. package/dist/collection/components/overlay/selection.utils.js +13 -5
  49. package/dist/collection/components/overlay/selection.utils.js.map +1 -1
  50. package/dist/collection/components/revoGrid/grid.helpers.js +10 -8
  51. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -1
  52. package/dist/collection/components/revoGrid/revo-grid.js +42 -42
  53. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  54. package/dist/collection/components/revoGrid/viewport.helpers.js +19 -0
  55. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
  56. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -3
  57. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  58. package/dist/collection/components/revoGrid/viewport.service.js +27 -37
  59. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  60. package/dist/collection/components/rowHeaders/revogr-row-headers.js +2 -2
  61. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  62. package/dist/collection/components/scroll/revogr-viewport-scroll.js +34 -29
  63. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  64. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +1 -1
  65. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -1
  66. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +3 -3
  67. package/dist/collection/components/selectionFocus/revogr-focus.js +1 -1
  68. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  69. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  70. package/dist/collection/components/vnode/vnode-converter.js +6 -6
  71. package/dist/collection/components/vnode/vnode-converter.js.map +1 -1
  72. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  73. package/dist/collection/global/global.js.map +1 -1
  74. package/dist/collection/plugins/export/export.plugin.js +2 -2
  75. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  76. package/dist/collection/plugins/filter/filter.panel.js +4 -4
  77. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -1
  78. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  79. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +2 -2
  80. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  81. package/dist/collection/plugins/groupingRow/grouping.service.js +1 -1
  82. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
  83. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  84. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  85. package/dist/collection/plugins/sorting/sorting.plugin.js +9 -12
  86. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  87. package/dist/collection/services/cell.helpers.js +3 -2
  88. package/dist/collection/services/cell.helpers.js.map +1 -1
  89. package/dist/collection/services/column.data.provider.js.map +1 -1
  90. package/dist/collection/services/data.provider.js.map +1 -1
  91. package/dist/collection/services/dimension.provider.js +2 -1
  92. package/dist/collection/services/dimension.provider.js.map +1 -1
  93. package/dist/collection/services/local.scroll.service.js +3 -2
  94. package/dist/collection/services/local.scroll.service.js.map +1 -1
  95. package/dist/collection/services/selection.store.connector.js +20 -16
  96. package/dist/collection/services/selection.store.connector.js.map +1 -1
  97. package/dist/collection/store/selection/selection.helpers.js +8 -12
  98. package/dist/collection/store/selection/selection.helpers.js.map +1 -1
  99. package/dist/collection/store/selection/selection.store.js +2 -1
  100. package/dist/collection/store/selection/selection.store.js.map +1 -1
  101. package/dist/collection/store/vp/viewport.helpers.js +10 -6
  102. package/dist/collection/store/vp/viewport.helpers.js.map +1 -1
  103. package/dist/collection/store/vp/viewport.store.js +1 -1
  104. package/dist/collection/store/vp/viewport.store.js.map +1 -1
  105. package/dist/collection/themeManager/theme.service.js +1 -1
  106. package/dist/collection/themeManager/theme.service.js.map +1 -1
  107. package/dist/collection/types/interfaces.js.map +1 -1
  108. package/dist/collection/types/selection.js.map +1 -1
  109. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  110. package/dist/collection/utils/closest.polifill.js.map +1 -1
  111. package/dist/collection/utils/store.utils.js +9 -4
  112. package/dist/collection/utils/store.utils.js.map +1 -1
  113. package/dist/esm/{base.plugin-78393655.js → base.plugin-5e7a3c51.js} +2 -2
  114. package/dist/esm/{base.plugin-78393655.js.map → base.plugin-5e7a3c51.js.map} +1 -1
  115. package/dist/esm/{column.service-0e41057a.js → column.service-5d14e7e9.js} +25 -6
  116. package/dist/esm/column.service-5d14e7e9.js.map +1 -0
  117. package/dist/esm/{dimension.helpers-91398565.js → dimension.helpers-56298828.js} +10 -5
  118. package/dist/esm/dimension.helpers-56298828.js.map +1 -0
  119. package/dist/esm/{header-cell-renderer-6d8ac25d.js → header-cell-renderer-fc999784.js} +10 -8
  120. package/dist/esm/header-cell-renderer-fc999784.js.map +1 -0
  121. package/dist/esm/index.js +4 -4
  122. package/dist/esm/revo-grid.entry.js +81 -93
  123. package/dist/esm/revo-grid.entry.js.map +1 -1
  124. package/dist/esm/revogr-attribution_6.entry.js +71 -46
  125. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  126. package/dist/esm/revogr-clipboard_3.entry.js +12 -7
  127. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  128. package/dist/esm/revogr-data_4.entry.js +45 -36
  129. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  130. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  131. package/dist/esm/{selection.helpers-50e9f09d.js → selection.helpers-accaad4a.js} +32 -31
  132. package/dist/esm/selection.helpers-accaad4a.js.map +1 -0
  133. package/dist/esm/{throttle-1b1dd9d2.js → throttle-7283692c.js} +4 -3
  134. package/dist/esm/throttle-7283692c.js.map +1 -0
  135. package/dist/esm/{viewport.store-bfd0b036.js → viewport.store-d8e03528.js} +13 -9
  136. package/dist/esm/viewport.store-d8e03528.js.map +1 -0
  137. package/dist/revo-grid/{base.plugin-78393655.js → base.plugin-5e7a3c51.js} +2 -2
  138. package/dist/revo-grid/column.service-5d14e7e9.js +5 -0
  139. package/dist/revo-grid/column.service-5d14e7e9.js.map +1 -0
  140. package/dist/revo-grid/{dimension.helpers-91398565.js → dimension.helpers-56298828.js} +2 -2
  141. package/dist/revo-grid/{dimension.helpers-91398565.js.map → dimension.helpers-56298828.js.map} +1 -1
  142. package/dist/revo-grid/header-cell-renderer-fc999784.js +5 -0
  143. package/dist/revo-grid/header-cell-renderer-fc999784.js.map +1 -0
  144. package/dist/revo-grid/index.esm.js +1 -1
  145. package/dist/revo-grid/revo-grid.entry.js +1 -1
  146. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  147. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  148. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  149. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  150. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  151. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  152. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  153. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  154. package/dist/revo-grid/selection.helpers-accaad4a.js +5 -0
  155. package/dist/revo-grid/selection.helpers-accaad4a.js.map +1 -0
  156. package/dist/revo-grid/{throttle-1b1dd9d2.js → throttle-7283692c.js} +2 -2
  157. package/dist/revo-grid/throttle-7283692c.js.map +1 -0
  158. package/dist/revo-grid/viewport.store-d8e03528.js +5 -0
  159. package/dist/revo-grid/viewport.store-d8e03528.js.map +1 -0
  160. package/dist/types/components/clipboard/revogr-clipboard.d.ts +32 -24
  161. package/dist/types/components/data/column.service.d.ts +1 -1
  162. package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
  163. package/dist/types/components/editors/revogr-edit.d.ts +1 -1
  164. package/dist/types/components/editors/text-editor.d.ts +3 -3
  165. package/dist/types/components/header/header-renderer.d.ts +2 -2
  166. package/dist/types/components/header/resizable.directive.d.ts +2 -2
  167. package/dist/types/components/overlay/autofill.service.d.ts +9 -7
  168. package/dist/types/components/overlay/keyboard.service.d.ts +4 -4
  169. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +20 -11
  170. package/dist/types/components/overlay/selection.utils.d.ts +7 -4
  171. package/dist/types/components/revoGrid/revo-grid.d.ts +7 -6
  172. package/dist/types/components/revoGrid/viewport.helpers.d.ts +18 -3
  173. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +1 -1
  174. package/dist/types/components/revoGrid/viewport.service.d.ts +2 -6
  175. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +6 -6
  176. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +1 -1
  177. package/dist/types/components/vnode/vnode-converter.d.ts +1 -1
  178. package/dist/types/components/vnode/vnode.utils.d.ts +1 -1
  179. package/dist/types/components.d.ts +80 -54
  180. package/dist/types/plugins/column.auto-size.plugin.d.ts +2 -2
  181. package/dist/types/plugins/export/export.plugin.d.ts +3 -3
  182. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  183. package/dist/types/plugins/filter/filter.panel.d.ts +1 -1
  184. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +1 -1
  185. package/dist/types/plugins/groupingRow/grouping.service.d.ts +3 -3
  186. package/dist/types/plugins/sorting/sorting.plugin.d.ts +8 -8
  187. package/dist/types/services/column.data.provider.d.ts +1 -1
  188. package/dist/types/services/data.provider.d.ts +1 -1
  189. package/dist/types/services/dimension.provider.d.ts +3 -2
  190. package/dist/types/services/selection.store.connector.d.ts +9 -9
  191. package/dist/types/store/selection/selection.helpers.d.ts +1 -1
  192. package/dist/types/store/selection/selection.store.d.ts +4 -4
  193. package/dist/types/store/vp/viewport.helpers.d.ts +2 -2
  194. package/dist/types/themeManager/theme.service.d.ts +1 -1
  195. package/dist/types/types/interfaces.d.ts +18 -1
  196. package/dist/types/types/viewport.interfaces.d.ts +2 -2
  197. package/dist/types/utils/store.utils.d.ts +7 -4
  198. package/hydrate/index.js +274 -215
  199. package/hydrate/index.mjs +274 -215
  200. package/package.json +1 -1
  201. package/standalone/column.service.js +33 -33
  202. package/standalone/column.service.js.map +1 -1
  203. package/standalone/data.store.js +2959 -7
  204. package/standalone/data.store.js.map +1 -1
  205. package/standalone/debounce.js +1 -1
  206. package/standalone/dimension.helpers.js +2 -2
  207. package/standalone/index.js.map +1 -1
  208. package/standalone/local.scroll.timer.js +3 -2
  209. package/standalone/local.scroll.timer.js.map +1 -1
  210. package/standalone/revo-grid.js +77 -90
  211. package/standalone/revo-grid.js.map +1 -1
  212. package/standalone/revogr-clipboard2.js +6 -3
  213. package/standalone/revogr-clipboard2.js.map +1 -1
  214. package/standalone/revogr-data2.js +7 -5
  215. package/standalone/revogr-data2.js.map +1 -1
  216. package/standalone/revogr-edit2.js +5 -3
  217. package/standalone/revogr-edit2.js.map +1 -1
  218. package/standalone/revogr-filter-panel.js.map +1 -1
  219. package/standalone/revogr-focus2.js +0 -1
  220. package/standalone/revogr-focus2.js.map +1 -1
  221. package/standalone/revogr-header2.js +12 -10
  222. package/standalone/revogr-header2.js.map +1 -1
  223. package/standalone/revogr-order-editor2.js +0 -1
  224. package/standalone/revogr-order-editor2.js.map +1 -1
  225. package/standalone/revogr-overlay-selection2.js +54 -38
  226. package/standalone/revogr-overlay-selection2.js.map +1 -1
  227. package/standalone/revogr-row-headers2.js +12 -9
  228. package/standalone/revogr-row-headers2.js.map +1 -1
  229. package/standalone/revogr-scroll-virtual2.js +1 -1
  230. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  231. package/standalone/revogr-temp-range2.js.map +1 -1
  232. package/standalone/revogr-viewport-scroll2.js +47 -23
  233. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  234. package/standalone/selection.utils.js +14 -6
  235. package/standalone/selection.utils.js.map +1 -1
  236. package/standalone/toNumber.js +1 -1
  237. package/standalone/vnode-converter.js +3 -3
  238. package/standalone/vnode-converter.js.map +1 -1
  239. package/dist/cjs/column.service-6f691f50.js.map +0 -1
  240. package/dist/cjs/dimension.helpers-e9d22516.js.map +0 -1
  241. package/dist/cjs/header-cell-renderer-81a22b00.js.map +0 -1
  242. package/dist/cjs/selection.helpers-8fa19c04.js.map +0 -1
  243. package/dist/cjs/throttle-bcc4740d.js.map +0 -1
  244. package/dist/cjs/viewport.store-9cf01c71.js.map +0 -1
  245. package/dist/esm/column.service-0e41057a.js.map +0 -1
  246. package/dist/esm/dimension.helpers-91398565.js.map +0 -1
  247. package/dist/esm/header-cell-renderer-6d8ac25d.js.map +0 -1
  248. package/dist/esm/selection.helpers-50e9f09d.js.map +0 -1
  249. package/dist/esm/throttle-1b1dd9d2.js.map +0 -1
  250. package/dist/esm/viewport.store-bfd0b036.js.map +0 -1
  251. package/dist/revo-grid/column.service-0e41057a.js +0 -5
  252. package/dist/revo-grid/column.service-0e41057a.js.map +0 -1
  253. package/dist/revo-grid/header-cell-renderer-6d8ac25d.js +0 -5
  254. package/dist/revo-grid/header-cell-renderer-6d8ac25d.js.map +0 -1
  255. package/dist/revo-grid/selection.helpers-50e9f09d.js +0 -5
  256. package/dist/revo-grid/selection.helpers-50e9f09d.js.map +0 -1
  257. package/dist/revo-grid/throttle-1b1dd9d2.js.map +0 -1
  258. package/dist/revo-grid/viewport.store-bfd0b036.js +0 -5
  259. package/dist/revo-grid/viewport.store-bfd0b036.js.map +0 -1
  260. package/standalone/_baseIteratee.js +0 -2956
  261. package/standalone/_baseIteratee.js.map +0 -1
  262. /package/dist/revo-grid/{base.plugin-78393655.js.map → base.plugin-5e7a3c51.js.map} +0 -0
@@ -7,15 +7,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-10d10c55.js');
9
9
  const index$1 = require('./index-2410bbd9.js');
10
- const dimension_helpers = require('./dimension.helpers-e9d22516.js');
10
+ const dimension_helpers = require('./dimension.helpers-a6788214.js');
11
11
  require('./toNumber-838e6ff5.js');
12
12
  const events = require('./events-b28cc194.js');
13
- const column_service = require('./column.service-6f691f50.js');
13
+ const column_service = require('./column.service-01f4a6c7.js');
14
14
  const key_utils = require('./key.utils-1e48ab8f.js');
15
- const selection_helpers = require('./selection.helpers-8fa19c04.js');
15
+ const selection_helpers = require('./selection.helpers-1a8c8d49.js');
16
16
  const debounce = require('./debounce-e2b7c6fb.js');
17
- const viewport_store = require('./viewport.store-9cf01c71.js');
18
- const throttle = require('./throttle-bcc4740d.js');
17
+ const viewport_store = require('./viewport.store-35a3e7ee.js');
18
+ const throttle = require('./throttle-52be9e67.js');
19
19
 
20
20
  const Attribution = class {
21
21
  constructor(hostRef) {
@@ -26,6 +26,14 @@ const Attribution = class {
26
26
  }
27
27
  };
28
28
 
29
+ function collectModelsOfRange(data, store) {
30
+ const models = {};
31
+ for (let i in data) {
32
+ const rowIndex = parseInt(i, 10);
33
+ models[rowIndex] = dimension_helpers.getSourceItem(store, rowIndex);
34
+ }
35
+ return models;
36
+ }
29
37
  function getFocusCellBasedOnEvent(e, data) {
30
38
  // If event default is prevented, return
31
39
  if (e.defaultPrevented) {
@@ -76,18 +84,18 @@ function getCurrentCell({ x, y }, { el, rows, cols }) {
76
84
  return { x: rgCol.itemIndex, y: rgRow.itemIndex };
77
85
  }
78
86
  function getCoordinate(range, focus, changes, isMulti = false) {
79
- const updateCoordinate = (c) => {
87
+ const updateCoordinate = (c, pos = 0) => {
80
88
  const start = { x: range.x, y: range.y };
81
89
  const end = isMulti ? { x: range.x1, y: range.y1 } : start;
82
90
  const point = end[c] > focus[c] ? end : start;
83
- point[c] += changes[c];
91
+ point[c] += pos;
84
92
  return { start, end };
85
93
  };
86
94
  if (changes.x) {
87
- return updateCoordinate('x');
95
+ return updateCoordinate('x', changes['x']);
88
96
  }
89
97
  if (changes.y) {
90
- return updateCoordinate('y');
98
+ return updateCoordinate('y', changes['y']);
91
99
  }
92
100
  return null;
93
101
  }
@@ -467,8 +475,9 @@ class AutoFillService {
467
475
  this.sv.setTempRange(null);
468
476
  }
469
477
  else {
478
+ const area = selection_helpers.getRange(this.autoFillInitial, this.autoFillLast);
470
479
  this.sv.setTempRange({
471
- area: selection_helpers.getRange(this.autoFillInitial, this.autoFillLast),
480
+ area,
472
481
  type: this.autoFillType,
473
482
  });
474
483
  }
@@ -503,7 +512,7 @@ class AutoFillService {
503
512
  range,
504
513
  });
505
514
  // If data apply was not prevented, apply new range
506
- if (!stopApply) {
515
+ if (!stopApply && oldRange) {
507
516
  this.applyRangeWithData(newRange, oldRange);
508
517
  }
509
518
  else {
@@ -529,28 +538,26 @@ class AutoFillService {
529
538
  this.autoFillLast = null;
530
539
  this.autoFillStart = null;
531
540
  }
532
- /** Trigger range apply events and handle responses */
541
+ /**
542
+ * Trigger range apply events and handle responses
543
+ */
533
544
  onRangeApply(data, range) {
534
- const models = {};
535
- for (let rowIndex in data) {
536
- models[rowIndex] = dimension_helpers.getSourceItem(this.sv.dataStore, parseInt(rowIndex, 10));
537
- }
538
545
  this.sv.rangeDataApply({
539
546
  data,
540
- models,
547
+ models: collectModelsOfRange(data, this.sv.dataStore),
541
548
  type: this.sv.dataStore.get('type'),
542
549
  });
543
550
  this.sv.setRange(range);
544
551
  }
545
552
  /** Apply range and copy data during range application */
546
- applyRangeWithData(newRange, oldRange) {
553
+ applyRangeWithData(newRange, rangeToCopy) {
547
554
  const rangeData = {
548
555
  type: this.sv.dataStore.get('type'),
549
556
  colType: this.sv.columnService.type,
550
557
  newData: {},
551
558
  mapping: {},
552
559
  newRange,
553
- oldRange,
560
+ oldRange: rangeToCopy,
554
561
  };
555
562
  const { mapping, changed } = this.sv.columnService.getRangeData(rangeData, this.sv.columnService.columns);
556
563
  rangeData.newData = changed;
@@ -614,7 +621,6 @@ const OverlaySelection = class {
614
621
  this.beforeCellSave = index.createEvent(this, "beforecellsave", 7);
615
622
  this.keyboardService = null;
616
623
  this.autoFillService = null;
617
- this.revogrEdit = null;
618
624
  this.unsubscribeSelectionStore = [];
619
625
  this.readonly = undefined;
620
626
  this.range = undefined;
@@ -634,19 +640,21 @@ const OverlaySelection = class {
634
640
  // #endregion
635
641
  // #region Listeners
636
642
  onMouseMove(e) {
643
+ var _a;
637
644
  if (this.selectionStore.get('focus')) {
638
- this.autoFillService.selectionMouseMove(e);
645
+ (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.selectionMouseMove(e);
639
646
  }
640
647
  }
641
648
  /**
642
- * Action finished inside of the document.
649
+ * Action finished inside the document.
643
650
  * Pointer left document, clear any active operation.
644
651
  */
645
652
  onMouseUp() {
646
- // Clear auto fill selection
653
+ var _a;
654
+ // Clear autofill selection
647
655
  // when pointer left document,
648
656
  // clear any active operation.
649
- this.autoFillService.clearAutoFillSelection(this.selectionStore.get('focus'), this.selectionStore.get('range'));
657
+ (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.clearAutoFillSelection(this.selectionStore.get('focus'), this.selectionStore.get('range'));
650
658
  }
651
659
  /**
652
660
  * Row drag started.
@@ -690,10 +698,10 @@ const OverlaySelection = class {
690
698
  // clear subscriptions
691
699
  this.unsubscribeSelectionStore.forEach(v => v());
692
700
  this.unsubscribeSelectionStore.length = 0;
693
- this.unsubscribeSelectionStore.push(s.onChange('nextFocus', (v) => this.doFocus(v, v)));
701
+ this.unsubscribeSelectionStore.push(s.onChange('nextFocus', (v) => v && this.doFocus(v, v)));
694
702
  this.keyboardService = new KeyboardService({
695
703
  selectionStore: s,
696
- range: r => this.triggerRangeEvent(r),
704
+ range: r => !!r && this.triggerRangeEvent(r),
697
705
  focus: (f, changes, focusNextViewport) => {
698
706
  if (focusNextViewport) {
699
707
  this.beforeNextViewportFocus.emit(f);
@@ -710,7 +718,8 @@ const OverlaySelection = class {
710
718
  this.doEdit(val);
711
719
  },
712
720
  cancel: async () => {
713
- await this.revogrEdit.cancelChanges();
721
+ var _a;
722
+ await ((_a = this.revogrEdit) === null || _a === void 0 ? void 0 : _a.cancelChanges());
714
723
  this.closeEdit();
715
724
  },
716
725
  clearCell: () => !this.readonly && this.clearCell(),
@@ -732,7 +741,7 @@ const OverlaySelection = class {
732
741
  selectionChanged: e => this.selectionChange.emit(e),
733
742
  rangeCopy: e => this.beforeRangeCopyApply.emit(e),
734
743
  rangeDataApply: e => this.rangeEditApply.emit(e),
735
- setRange: e => this.triggerRangeEvent(e),
744
+ setRange: e => !!e && this.triggerRangeEvent(e),
736
745
  getData: () => this.getData(),
737
746
  });
738
747
  }
@@ -794,6 +803,7 @@ const OverlaySelection = class {
794
803
  } }));
795
804
  }
796
805
  render() {
806
+ var _a;
797
807
  const nodes = [];
798
808
  const editCell = this.renderEditor();
799
809
  // Editor
@@ -813,14 +823,14 @@ const OverlaySelection = class {
813
823
  }
814
824
  // Autofill
815
825
  if (focus && !this.readonly && this.range) {
816
- nodes.push(this.autoFillService.renderAutofill(range, focus));
826
+ nodes.push((_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.renderAutofill(range, focus));
817
827
  }
818
828
  // Order
819
829
  if (this.canDrag) {
820
830
  nodes.push(index.h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onRowdragstartinit: e => this.rowDragStart(e) }));
821
831
  }
822
832
  }
823
- return (index.h(index.Host, { key: '81dee4cfcce410cefb2bd9ff2661261472fc3a75', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, index.h("slot", { key: '6ac75c388ae3fbc5539a27c3acd58178dd53d1af', name: "data" })));
833
+ return (index.h(index.Host, { key: '0767a5d015d0c8fe99444ef26b136a3a11792724', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, index.h("slot", { key: '8551244579316e0d4ab61defa1c1c9bc1011f446', name: "data" })));
824
834
  }
825
835
  /**
826
836
  * Executes the focus operation on the specified range of cells.
@@ -875,6 +885,7 @@ const OverlaySelection = class {
875
885
  * Handle mouse down event on Host element
876
886
  */
877
887
  onElementMouseDown(e, touch = false) {
888
+ var _a;
878
889
  // Get the target element from the event object
879
890
  const targetElement = e.target;
880
891
  // Ignore focus if clicked input
@@ -891,7 +902,7 @@ const OverlaySelection = class {
891
902
  this.focus(focusCell, this.range && e.shiftKey);
892
903
  // Initiate autofill selection
893
904
  if (this.range) {
894
- this.autoFillService.selectionStart(targetElement, this.getData());
905
+ targetElement && ((_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.selectionStart(targetElement, this.getData()));
895
906
  // Prevent default behavior for mouse events,
896
907
  // but only if target element is not a mobile input
897
908
  if (!touch) {
@@ -911,18 +922,21 @@ const OverlaySelection = class {
911
922
  var _a;
912
923
  if (this.canEdit()) {
913
924
  const focus = this.selectionStore.get('focus');
925
+ if (!focus) {
926
+ return;
927
+ }
914
928
  const data = this.columnService.getSaveData(focus.y, focus.x);
915
929
  (_a = this.setEdit) === null || _a === void 0 ? void 0 : _a.emit(Object.assign(Object.assign({}, data), { val }));
916
930
  }
917
931
  }
918
932
  /**
919
933
  * Close editor event triggered
920
- * @param details - if requires focus next
934
+ * @param details - if it requires focus next
921
935
  */
922
- closeEdit(e) {
936
+ async closeEdit(e) {
923
937
  this.cancelEdit.emit();
924
938
  if (e === null || e === void 0 ? void 0 : e.detail) {
925
- this.focusNext();
939
+ await this.focusNext();
926
940
  }
927
941
  }
928
942
  /**
@@ -942,6 +956,7 @@ const OverlaySelection = class {
942
956
  return range;
943
957
  }
944
958
  onCopy(e) {
959
+ var _a;
945
960
  const range = this.getRegion();
946
961
  const canCopyEvent = this.beforeCopyRegion.emit(range);
947
962
  if (canCopyEvent.defaultPrevented) {
@@ -957,38 +972,45 @@ const OverlaySelection = class {
957
972
  rangeData = event.detail.data;
958
973
  }
959
974
  }
960
- this.clipboard.doCopy(e, rangeData);
975
+ (_a = this.clipboard) === null || _a === void 0 ? void 0 : _a.doCopy(e, rangeData);
961
976
  return true;
962
977
  }
963
978
  onPaste(data) {
979
+ var _a;
964
980
  const focus = this.selectionStore.get('focus');
965
981
  const isEditing = this.selectionStore.get('edit') !== null;
966
982
  if (!focus || isEditing) {
967
983
  return;
968
984
  }
969
985
  let { changed, range } = this.columnService.getTransformedDataToApply(focus, data);
970
- const { defaultPrevented: canPaste } = this.rangeClipboardPaste.emit(Object.assign({ data: changed, range }, this.types));
986
+ const { defaultPrevented: canPaste } = this.rangeClipboardPaste.emit(Object.assign({ data: changed, models: collectModelsOfRange(changed, this.dataStore), range }, this.types));
971
987
  if (canPaste) {
972
988
  return;
973
989
  }
974
- this.autoFillService.onRangeApply(changed, range);
990
+ (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(changed, range);
975
991
  }
976
992
  async focusNext() {
977
- const canFocus = await this.keyboardService.keyChangeSelection(new KeyboardEvent('keydown', {
993
+ var _a;
994
+ const canFocus = await ((_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyChangeSelection(new KeyboardEvent('keydown', {
978
995
  code: key_utils.codesLetter.ARROW_DOWN,
979
- }), this.range);
996
+ }), this.range));
980
997
  if (!canFocus) {
981
998
  this.closeEdit();
982
999
  }
983
1000
  }
984
1001
  clearCell() {
985
- if (this.selectionStore.get('range') &&
986
- !selection_helpers.isRangeSingleCell(this.selectionStore.get('range'))) {
987
- const data = this.columnService.getRangeStaticData(this.selectionStore.get('range'), '');
988
- this.autoFillService.onRangeApply(data, this.selectionStore.get('range'));
1002
+ var _a;
1003
+ const range = this.selectionStore.get('range');
1004
+ if (range &&
1005
+ !selection_helpers.isRangeSingleCell(range)) {
1006
+ const data = this.columnService.getRangeStaticData(range, '');
1007
+ (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(data, range);
989
1008
  }
990
1009
  else if (this.canEdit()) {
991
1010
  const focused = this.selectionStore.get('focus');
1011
+ if (!focused) {
1012
+ return;
1013
+ }
992
1014
  const cell = this.columnService.getSaveData(focused.y, focused.x);
993
1015
  this.cellEdit({
994
1016
  rgRow: focused.y,
@@ -1025,7 +1047,10 @@ const OverlaySelection = class {
1025
1047
  const end = cell;
1026
1048
  const start = this.selectionStore.get('focus');
1027
1049
  if (isRangeEdit && start) {
1028
- return this.triggerRangeEvent(selection_helpers.getRange(start, end));
1050
+ const range = selection_helpers.getRange(start, end);
1051
+ if (range) {
1052
+ return this.triggerRangeEvent(range);
1053
+ }
1029
1054
  }
1030
1055
  return this.doFocus(cell, end);
1031
1056
  }
@@ -1116,7 +1141,7 @@ const RevogrRowHeaders = class {
1116
1141
  const viewportHeader = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: index$1.ROW_HEADER_TYPE,
1117
1142
  // parent,
1118
1143
  slot: column_service.HEADER_SLOT });
1119
- return (index.h(index.Host, { class: { [index$1.ROW_HEADER_TYPE]: true }, key: index$1.ROW_HEADER_TYPE }, index.h("revogr-viewport-scroll", Object.assign({ key: 'efaaa386cb5ea8b848d42e3407dbde8ad99d1db8' }, viewportScroll, { "row-header": true }), index.h("revogr-header", Object.assign({ key: '57fb6d08cd094f9b19145ff65c3ab805992fbb68' }, viewportHeader)), dataViews)));
1144
+ return (index.h(index.Host, { class: { [index$1.ROW_HEADER_TYPE]: true }, key: index$1.ROW_HEADER_TYPE }, index.h("revogr-viewport-scroll", Object.assign({ key: '743c1dbaed3edf679c0616a2b79171a43d94806f' }, viewportScroll, { "row-header": true }), index.h("revogr-header", Object.assign({ key: '53f1f64b1358d7828a5e45807915740ef198df21' }, viewportHeader)), dataViews)));
1120
1145
  }
1121
1146
  };
1122
1147
 
@@ -1153,7 +1178,7 @@ class AutohideScrollPlugin {
1153
1178
  show(element, timeout) {
1154
1179
  clearTimeout(timeout);
1155
1180
  return Number(setTimeout(() => {
1156
- element.removeAttribute('visible');
1181
+ element === null || element === void 0 ? void 0 : element.removeAttribute('visible');
1157
1182
  }, 1000));
1158
1183
  }
1159
1184
  clear() {