@revolist/revogrid 4.0.11 → 4.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/dist/cjs/app-globals-53fde1aa.js.map +1 -1
  2. package/dist/cjs/base.plugin-32f80cb5.js +219 -0
  3. package/dist/cjs/base.plugin-32f80cb5.js.map +1 -0
  4. package/dist/cjs/{column.service-e83d9809.js → column.service-52b4cac9.js} +28 -12
  5. package/dist/cjs/column.service-52b4cac9.js.map +1 -0
  6. package/dist/cjs/dimension.helpers-ee39d6c4.js.map +1 -1
  7. package/dist/cjs/events-b28cc194.js +52 -0
  8. package/dist/cjs/events-b28cc194.js.map +1 -0
  9. package/dist/cjs/filter.button-db6cbd2e.js.map +1 -1
  10. package/dist/cjs/{header-cell-renderer-8ba9b56d.js → header-cell-renderer-a3f202a1.js} +2 -2
  11. package/dist/cjs/{header-cell-renderer-8ba9b56d.js.map → header-cell-renderer-a3f202a1.js.map} +1 -1
  12. package/dist/cjs/{index-73c149e3.js → index-a9f1b728.js} +3 -4
  13. package/dist/cjs/index-a9f1b728.js.map +1 -0
  14. package/dist/cjs/index.cjs.js +26 -23
  15. package/dist/cjs/index.cjs.js.map +1 -1
  16. package/dist/cjs/{key.utils-59b9b528.js → key.utils-ee3d9eab.js} +2 -2
  17. package/dist/cjs/{key.utils-59b9b528.js.map → key.utils-ee3d9eab.js.map} +1 -1
  18. package/dist/cjs/revo-grid.cjs.entry.js +74 -164
  19. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  20. package/dist/cjs/revogr-attribution_6.cjs.entry.js +193 -142
  21. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  22. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +2 -2
  23. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  24. package/dist/cjs/revogr-data_4.cjs.entry.js +9 -9
  25. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  26. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  27. package/dist/cjs/{selection.store-2e110a67.js → selection.helpers-32abb2a9.js} +77 -75
  28. package/dist/cjs/selection.helpers-32abb2a9.js.map +1 -0
  29. package/dist/cjs/{throttle-f7aee21b.js → throttle-46478b04.js} +2 -2
  30. package/dist/cjs/{throttle-f7aee21b.js.map → throttle-46478b04.js.map} +1 -1
  31. package/dist/cjs/{viewport.helpers-6670177c.js → viewport.store-2ab4e166.js} +186 -1
  32. package/dist/cjs/viewport.store-2ab4e166.js.map +1 -0
  33. package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
  34. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  35. package/dist/collection/components/data/cell-renderer.js.map +1 -1
  36. package/dist/collection/components/data/column.service.js +2 -2
  37. package/dist/collection/components/data/column.service.js.map +1 -1
  38. package/dist/collection/components/data/revogr-data.js +46 -46
  39. package/dist/collection/components/data/revogr-data.js.map +1 -1
  40. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -1
  41. package/dist/collection/components/editors/edit.utils.js.map +1 -1
  42. package/dist/collection/components/editors/revogr-edit.js +9 -9
  43. package/dist/collection/components/editors/revogr-edit.js.map +1 -1
  44. package/dist/collection/components/editors/text-editor.js.map +1 -1
  45. package/dist/collection/components/header/header-cell-renderer.js.map +1 -1
  46. package/dist/collection/components/header/header-renderer.js.map +1 -1
  47. package/dist/collection/components/header/revogr-header.js +28 -28
  48. package/dist/collection/components/header/revogr-header.js.map +1 -1
  49. package/dist/collection/components/order/order-renderer.js.map +1 -1
  50. package/dist/collection/components/order/order-row.service.js +1 -1
  51. package/dist/collection/components/order/order-row.service.js.map +1 -1
  52. package/dist/collection/components/order/revogr-order-editor.js +31 -28
  53. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  54. package/dist/collection/components/overlay/autofill.service.js +37 -26
  55. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  56. package/dist/collection/components/overlay/keyboard.service.js +8 -8
  57. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  58. package/dist/collection/components/overlay/revogr-overlay-selection.js +141 -93
  59. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  60. package/dist/collection/components/overlay/selection.utils.js +37 -9
  61. package/dist/collection/components/overlay/selection.utils.js.map +1 -1
  62. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -1
  63. package/dist/collection/components/revoGrid/revo-grid-style.css +8 -3
  64. package/dist/collection/components/revoGrid/revo-grid.js +150 -135
  65. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  66. package/dist/collection/components/revoGrid/viewport.helpers.js +22 -8
  67. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
  68. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -2
  69. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  70. package/dist/collection/components/revoGrid/viewport.service.js +2 -2
  71. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  72. package/dist/collection/components/rowHeaders/revogr-row-headers.js +11 -12
  73. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  74. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -1
  75. package/dist/collection/components/scroll/revogr-viewport-scroll.js +17 -17
  76. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  77. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +17 -17
  78. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  79. package/dist/collection/components/selectionFocus/revogr-focus.js +44 -43
  80. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  81. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +12 -12
  82. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  83. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  84. package/dist/collection/index.js +2 -12
  85. package/dist/collection/index.js.map +1 -1
  86. package/dist/collection/plugins/column.auto-size.plugin.js +3 -4
  87. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  88. package/dist/collection/plugins/export/export.plugin.js +1 -1
  89. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  90. package/dist/collection/plugins/export/types.js.map +1 -1
  91. package/dist/collection/plugins/filter/filter.button.js.map +1 -1
  92. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  93. package/dist/collection/plugins/filter/filter.pop.js +4 -4
  94. package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
  95. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -1
  96. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  97. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -1
  98. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  99. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -1
  100. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +1 -2
  101. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  102. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
  103. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
  104. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
  105. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -1
  106. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -1
  107. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  108. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  109. package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
  110. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  111. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
  112. package/dist/collection/serve/controller.js +86 -18
  113. package/dist/collection/services/column.data.provider.js +1 -2
  114. package/dist/collection/services/column.data.provider.js.map +1 -1
  115. package/dist/collection/services/data.provider.js +1 -2
  116. package/dist/collection/services/data.provider.js.map +1 -1
  117. package/dist/collection/services/dimension.provider.js +3 -5
  118. package/dist/collection/services/dimension.provider.js.map +1 -1
  119. package/dist/collection/services/selection.store.connector.js +1 -2
  120. package/dist/collection/services/selection.store.connector.js.map +1 -1
  121. package/dist/collection/services/viewport.provider.js +1 -2
  122. package/dist/collection/services/viewport.provider.js.map +1 -1
  123. package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
  124. package/dist/collection/store/dataSource/data.store.js +1 -1
  125. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  126. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  127. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
  128. package/dist/collection/store/dimension/dimension.store.js +1 -1
  129. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  130. package/dist/collection/store/{storeTypes.js → index.js} +5 -1
  131. package/dist/collection/store/index.js.map +1 -0
  132. package/dist/collection/store/selection/index.js +0 -1
  133. package/dist/collection/store/selection/index.js.map +1 -1
  134. package/dist/collection/store/selection/selection.helpers.js.map +1 -1
  135. package/dist/collection/store/selection/selection.store.js +1 -1
  136. package/dist/collection/store/selection/selection.store.js.map +1 -1
  137. package/dist/collection/store/vp/index.js.map +1 -0
  138. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  139. package/dist/collection/store/{viewport → vp}/viewport.store.js +4 -7
  140. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  141. package/dist/collection/types/index.js +11 -0
  142. package/dist/collection/types/index.js.map +1 -0
  143. package/dist/collection/types/interfaces.js +4 -0
  144. package/dist/collection/types/interfaces.js.map +1 -1
  145. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  146. package/dist/collection/utils/events.js +11 -1
  147. package/dist/collection/utils/events.js.map +1 -1
  148. package/dist/collection/utils/index.js +0 -1
  149. package/dist/collection/utils/index.js.map +1 -1
  150. package/dist/collection/utils/row-header-utils.js +2 -2
  151. package/dist/collection/utils/row-header-utils.js.map +1 -1
  152. package/dist/collection/utils/store.utils.js.map +1 -1
  153. package/dist/esm/app-globals-ef1fca59.js.map +1 -1
  154. package/dist/esm/base.plugin-d0e589d8.js +213 -0
  155. package/dist/esm/base.plugin-d0e589d8.js.map +1 -0
  156. package/dist/esm/{column.service-f4922a8d.js → column.service-a826bbd6.js} +27 -11
  157. package/dist/esm/column.service-a826bbd6.js.map +1 -0
  158. package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -1
  159. package/dist/esm/events-77b43b40.js +48 -0
  160. package/dist/esm/events-77b43b40.js.map +1 -0
  161. package/dist/esm/filter.button-46ce4f80.js.map +1 -1
  162. package/dist/esm/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
  163. package/dist/esm/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
  164. package/dist/esm/{index-98fd0168.js → index-5a722722.js} +3 -4
  165. package/dist/esm/index-5a722722.js.map +1 -0
  166. package/dist/esm/index.js +4 -4
  167. package/dist/esm/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  168. package/dist/esm/{key.utils-2836e8ae.js.map → key.utils-7c5d91dd.js.map} +1 -1
  169. package/dist/esm/revo-grid.entry.js +42 -132
  170. package/dist/esm/revo-grid.entry.js.map +1 -1
  171. package/dist/esm/revogr-attribution_6.entry.js +187 -136
  172. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  173. package/dist/esm/revogr-clipboard_3.entry.js +2 -2
  174. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  175. package/dist/esm/revogr-data_4.entry.js +9 -9
  176. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  177. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  178. package/dist/esm/{selection.store-2577ddf9.js → selection.helpers-883ce6bc.js} +77 -75
  179. package/dist/esm/selection.helpers-883ce6bc.js.map +1 -0
  180. package/dist/esm/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  181. package/dist/esm/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +1 -1
  182. package/dist/esm/{viewport.helpers-6591d423.js → viewport.store-d9e291c5.js} +187 -3
  183. package/dist/esm/viewport.store-d9e291c5.js.map +1 -0
  184. package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -1
  185. package/dist/revo-grid/base.plugin-d0e589d8.js +5 -0
  186. package/dist/revo-grid/base.plugin-d0e589d8.js.map +1 -0
  187. package/dist/revo-grid/column.service-a826bbd6.js +5 -0
  188. package/dist/revo-grid/column.service-a826bbd6.js.map +1 -0
  189. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -1
  190. package/dist/revo-grid/events-77b43b40.js +5 -0
  191. package/dist/revo-grid/events-77b43b40.js.map +1 -0
  192. package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -1
  193. package/dist/revo-grid/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
  194. package/dist/revo-grid/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
  195. package/dist/revo-grid/index-5a722722.js +5 -0
  196. package/dist/{esm/index-98fd0168.js.map → revo-grid/index-5a722722.js.map} +1 -1
  197. package/dist/revo-grid/index.esm.js +1 -1
  198. package/dist/revo-grid/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  199. package/dist/revo-grid/key.utils-7c5d91dd.js.map +1 -0
  200. package/dist/revo-grid/revo-grid.entry.js +1 -1
  201. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  202. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  203. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  204. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  205. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  206. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  207. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  208. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  209. package/dist/revo-grid/selection.helpers-883ce6bc.js +5 -0
  210. package/dist/revo-grid/selection.helpers-883ce6bc.js.map +1 -0
  211. package/dist/revo-grid/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  212. package/dist/revo-grid/viewport.store-d9e291c5.js +5 -0
  213. package/dist/revo-grid/viewport.store-d9e291c5.js.map +1 -0
  214. package/dist/types/components/clipboard/revogr-clipboard.d.ts +1 -1
  215. package/dist/types/components/data/cell-renderer.d.ts +1 -1
  216. package/dist/types/components/data/column.service.d.ts +5 -5
  217. package/dist/types/components/data/revogr-data.d.ts +4 -4
  218. package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
  219. package/dist/types/components/editors/edit.utils.d.ts +1 -1
  220. package/dist/types/components/editors/revogr-edit.d.ts +2 -2
  221. package/dist/types/components/editors/text-editor.d.ts +2 -2
  222. package/dist/types/components/header/header-cell-renderer.d.ts +1 -1
  223. package/dist/types/components/header/header-renderer.d.ts +2 -2
  224. package/dist/types/components/header/revogr-header.d.ts +4 -4
  225. package/dist/types/components/order/order-renderer.d.ts +2 -2
  226. package/dist/types/components/order/order-row.service.d.ts +1 -2
  227. package/dist/types/components/order/revogr-order-editor.d.ts +7 -4
  228. package/dist/types/components/overlay/autofill.service.d.ts +11 -10
  229. package/dist/types/components/overlay/keyboard.service.d.ts +4 -5
  230. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +42 -19
  231. package/dist/types/components/overlay/selection.utils.d.ts +13 -6
  232. package/dist/types/components/revoGrid/grid.helpers.d.ts +1 -1
  233. package/dist/types/components/revoGrid/revo-grid.d.ts +10 -7
  234. package/dist/types/components/revoGrid/viewport.helpers.d.ts +14 -5
  235. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +1 -3
  236. package/dist/types/components/revoGrid/viewport.service.d.ts +1 -4
  237. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +1 -2
  238. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  239. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -2
  240. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -2
  241. package/dist/types/components/selectionFocus/revogr-focus.d.ts +3 -5
  242. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -2
  243. package/dist/types/components/vnode/vnode.utils.d.ts +1 -1
  244. package/dist/types/components.d.ts +30 -16
  245. package/dist/types/index.d.ts +2 -12
  246. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  247. package/dist/types/plugins/export/types.d.ts +1 -1
  248. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  249. package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
  250. package/dist/types/plugins/filter/filter.pop.d.ts +1 -1
  251. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -4
  252. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +3 -3
  253. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  254. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +1 -1
  255. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
  256. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  257. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +1 -1
  258. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  259. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
  260. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +1 -3
  261. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -3
  262. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  263. package/dist/types/services/column.data.provider.d.ts +2 -3
  264. package/dist/types/services/data.provider.d.ts +2 -5
  265. package/dist/types/services/dimension.provider.d.ts +2 -4
  266. package/dist/types/services/selection.store.connector.d.ts +2 -3
  267. package/dist/types/services/viewport.provider.d.ts +3 -3
  268. package/dist/types/store/dataSource/data.proxy.d.ts +2 -2
  269. package/dist/types/store/dataSource/data.store.d.ts +3 -3
  270. package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
  271. package/dist/types/store/dimension/dimension.helpers.d.ts +1 -1
  272. package/dist/types/store/dimension/dimension.store.d.ts +4 -5
  273. package/dist/types/store/{storeTypes.d.ts → index.d.ts} +5 -1
  274. package/dist/types/store/selection/index.d.ts +0 -1
  275. package/dist/types/store/selection/selection.helpers.d.ts +1 -1
  276. package/dist/types/store/selection/selection.store.d.ts +2 -2
  277. package/dist/types/store/vp/index.d.ts +7 -0
  278. package/dist/types/store/{viewport → vp}/viewport.helpers.d.ts +1 -1
  279. package/dist/types/store/{viewport → vp}/viewport.store.d.ts +3 -7
  280. package/dist/types/types/index.d.ts +7 -0
  281. package/dist/types/types/interfaces.d.ts +444 -23
  282. package/dist/types/types/viewport.interfaces.d.ts +5 -8
  283. package/dist/types/utils/events.d.ts +4 -1
  284. package/dist/types/utils/index.d.ts +0 -1
  285. package/dist/types/utils/row-header-utils.d.ts +1 -1
  286. package/dist/types/utils/store.utils.d.ts +1 -1
  287. package/hydrate/index.js +3224 -3126
  288. package/package.json +7 -8
  289. package/standalone/_baseIteratee.js +1104 -13
  290. package/standalone/_baseIteratee.js.map +1 -1
  291. package/standalone/_nodeUtil.js +260 -0
  292. package/standalone/_nodeUtil.js.map +1 -0
  293. package/standalone/column.service.js +78 -74
  294. package/standalone/column.service.js.map +1 -1
  295. package/standalone/data.store.js +2 -4
  296. package/standalone/data.store.js.map +1 -1
  297. package/standalone/debounce.js +2 -2
  298. package/standalone/dimension.helpers.js +1 -1
  299. package/standalone/dimension.helpers.js.map +1 -1
  300. package/standalone/filter.button.js.map +1 -1
  301. package/standalone/identity.js +42 -2
  302. package/standalone/identity.js.map +1 -1
  303. package/standalone/index.js +5 -7
  304. package/standalone/index.js.map +1 -1
  305. package/standalone/index2.js +2 -3
  306. package/standalone/index2.js.map +1 -1
  307. package/standalone/isObjectLike.js +1 -34
  308. package/standalone/isObjectLike.js.map +1 -1
  309. package/standalone/revo-grid.js +125 -106
  310. package/standalone/revo-grid.js.map +1 -1
  311. package/standalone/revogr-clipboard2.js.map +1 -1
  312. package/standalone/revogr-data2.js +3 -0
  313. package/standalone/revogr-data2.js.map +1 -1
  314. package/standalone/revogr-edit2.js +1 -1
  315. package/standalone/revogr-edit2.js.map +1 -1
  316. package/standalone/revogr-filter-panel.js.map +1 -1
  317. package/standalone/revogr-focus2.js +7 -3
  318. package/standalone/revogr-focus2.js.map +1 -1
  319. package/standalone/revogr-header2.js +5 -4
  320. package/standalone/revogr-header2.js.map +1 -1
  321. package/standalone/revogr-order-editor2.js +3 -0
  322. package/standalone/revogr-order-editor2.js.map +1 -1
  323. package/standalone/revogr-overlay-selection2.js +143 -143
  324. package/standalone/revogr-overlay-selection2.js.map +1 -1
  325. package/standalone/revogr-row-headers2.js +7 -7
  326. package/standalone/revogr-row-headers2.js.map +1 -1
  327. package/standalone/revogr-scroll-virtual2.js +1 -1
  328. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  329. package/standalone/revogr-temp-range2.js +1 -1
  330. package/standalone/revogr-temp-range2.js.map +1 -1
  331. package/standalone/revogr-viewport-scroll2.js +23 -9
  332. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  333. package/standalone/selection.utils.js +76 -9
  334. package/standalone/selection.utils.js.map +1 -1
  335. package/standalone/throttle.js +1 -1
  336. package/standalone/toNumber.js +35 -2
  337. package/standalone/toNumber.js.map +1 -1
  338. package/dist/cjs/column.service-e83d9809.js.map +0 -1
  339. package/dist/cjs/events-7ccd6894.js +0 -233
  340. package/dist/cjs/events-7ccd6894.js.map +0 -1
  341. package/dist/cjs/index-73c149e3.js.map +0 -1
  342. package/dist/cjs/selection.store-2e110a67.js.map +0 -1
  343. package/dist/cjs/storeTypes-b3f924b2.js +0 -106
  344. package/dist/cjs/storeTypes-b3f924b2.js.map +0 -1
  345. package/dist/cjs/viewport.helpers-6670177c.js.map +0 -1
  346. package/dist/collection/store/selection/selection.store.service.js +0 -39
  347. package/dist/collection/store/selection/selection.store.service.js.map +0 -1
  348. package/dist/collection/store/storeTypes.js.map +0 -1
  349. package/dist/collection/store/viewport/index.js.map +0 -1
  350. package/dist/collection/store/viewport/viewport.helpers.js.map +0 -1
  351. package/dist/collection/store/viewport/viewport.store.js.map +0 -1
  352. package/dist/esm/column.service-f4922a8d.js.map +0 -1
  353. package/dist/esm/events-3dd8ee7c.js +0 -228
  354. package/dist/esm/events-3dd8ee7c.js.map +0 -1
  355. package/dist/esm/selection.store-2577ddf9.js.map +0 -1
  356. package/dist/esm/storeTypes-f2647985.js +0 -101
  357. package/dist/esm/storeTypes-f2647985.js.map +0 -1
  358. package/dist/esm/viewport.helpers-6591d423.js.map +0 -1
  359. package/dist/revo-grid/column.service-f4922a8d.js +0 -5
  360. package/dist/revo-grid/column.service-f4922a8d.js.map +0 -1
  361. package/dist/revo-grid/events-3dd8ee7c.js +0 -5
  362. package/dist/revo-grid/events-3dd8ee7c.js.map +0 -1
  363. package/dist/revo-grid/index-98fd0168.js +0 -5
  364. package/dist/revo-grid/index-98fd0168.js.map +0 -1
  365. package/dist/revo-grid/key.utils-2836e8ae.js.map +0 -1
  366. package/dist/revo-grid/selection.store-2577ddf9.js +0 -5
  367. package/dist/revo-grid/selection.store-2577ddf9.js.map +0 -1
  368. package/dist/revo-grid/storeTypes-f2647985.js +0 -5
  369. package/dist/revo-grid/storeTypes-f2647985.js.map +0 -1
  370. package/dist/revo-grid/viewport.helpers-6591d423.js +0 -5
  371. package/dist/revo-grid/viewport.helpers-6591d423.js.map +0 -1
  372. package/dist/types/store/selection/selection.store.service.d.ts +0 -17
  373. package/dist/types/store/viewport/index.d.ts +0 -2
  374. package/standalone/_stringToPath.js +0 -1389
  375. package/standalone/_stringToPath.js.map +0 -1
  376. /package/dist/collection/store/{viewport → vp}/index.js +0 -0
  377. /package/dist/collection/store/{viewport → vp}/viewport.helpers.js +0 -0
  378. /package/dist/revo-grid/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +0 -0
@@ -2,51 +2,16 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, c as createEvent, a as getElement } from './index-21436631.js';
5
- import { F as FOCUS_CLASS, t as timeout, R as RESIZE_INTERVAL, a as CELL_HANDLER_CLASS, M as MOBILE_CLASS, S as SELECTION_BORDER_CLASS, b as ROW_HEADER_TYPE, g as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './index-98fd0168.js';
5
+ import { F as FOCUS_CLASS, t as timeout, R as RESIZE_INTERVAL, a as CELL_HANDLER_CLASS, M as MOBILE_CLASS, S as SELECTION_BORDER_CLASS, b as ROW_HEADER_TYPE, g as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './index-5a722722.js';
6
6
  import { i as getItemByPosition, j as getItemByIndex, b as getSourceItem, D as DataStore } from './dimension.helpers-a3065cb1.js';
7
- import { n as ColumnService, H as HEADER_SLOT } from './column.service-f4922a8d.js';
8
- import { g as getRange, a as isRangeSingleCell } from './selection.store-2577ddf9.js';
9
- import { c as codesLetter, i as isClear, a as isEnterKey, b as isCopy, d as isCut, e as isPaste, f as isAll, g as isLetterKey, h as isEditInput } from './key.utils-2836e8ae.js';
10
- import { d as debounce_1 } from './debounce-7781346d.js';
11
- import { g as getFromEvent, v as verifyTouchTarget, V as ViewportStore, c as calculateRowHeaderSize } from './events-3dd8ee7c.js';
12
- import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle_1 } from './throttle-cfd527d6.js';
13
7
  import './toNumber-8de324a7.js';
14
- import './viewport.helpers-6591d423.js';
15
-
16
- class SelectionStoreService {
17
- constructor(store, config) {
18
- this.store = store;
19
- this.config = config;
20
- this.store = store;
21
- }
22
- get edited() {
23
- return this.store.get('edit');
24
- }
25
- get focused() {
26
- return this.store.get('focus');
27
- }
28
- get ranged() {
29
- return this.store.get('range');
30
- }
31
- changeRange(range) {
32
- return this.config.changeRange(range);
33
- }
34
- focus(cell, isMulti = false) {
35
- if (!cell) {
36
- return false;
37
- }
38
- let end = cell;
39
- // range edit
40
- if (isMulti) {
41
- let start = this.store.get('focus');
42
- if (start) {
43
- return this.config.changeRange(getRange(start, end));
44
- }
45
- }
46
- // single focus
47
- return this.config.focus(cell, end);
48
- }
49
- }
8
+ import { g as getPropertyFromEvent, v as verifyTouchTarget, c as calculateRowHeaderSize } from './events-77b43b40.js';
9
+ import { n as ColumnService, H as HEADER_SLOT } from './column.service-a826bbd6.js';
10
+ import { c as codesLetter, i as isClear, a as isEnterKey, b as isCopy, d as isCut, e as isPaste, f as isAll, g as isLetterKey, h as isEditInput } from './key.utils-7c5d91dd.js';
11
+ import { g as getRange, a as isRangeSingleCell } from './selection.helpers-883ce6bc.js';
12
+ import { d as debounce_1 } from './debounce-7781346d.js';
13
+ import { V as ViewportStore } from './viewport.store-d9e291c5.js';
14
+ import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle_1 } from './throttle-eeca0062.js';
50
15
 
51
16
  const Attribution = class {
52
17
  constructor(hostRef) {
@@ -57,26 +22,50 @@ const Attribution = class {
57
22
  }
58
23
  };
59
24
 
60
- /** Calculate cell based on x, y position */
25
+ function getFocusCellBasedOnEvent(e, data) {
26
+ // If event default is prevented, return
27
+ if (e.defaultPrevented) {
28
+ return null;
29
+ }
30
+ // Get coordinates from event object
31
+ const x = getPropertyFromEvent(e, 'clientX');
32
+ const y = getPropertyFromEvent(e, 'clientY');
33
+ // If coordinates are not available, return
34
+ if (x === null || y === null) {
35
+ return null;
36
+ }
37
+ // Get current cell based on coordinates and data
38
+ const focusCell = getCurrentCell({ x, y }, data);
39
+ // If current cell is not available, return
40
+ if (isAfterLast(focusCell, data.lastCell)) {
41
+ return null;
42
+ }
43
+ return focusCell;
44
+ }
45
+ /**
46
+ * Calculate cell based on x, y position
47
+ */
61
48
  function getCurrentCell({ x, y }, { el, rows, cols }) {
49
+ // Get the bounding rectangle of the element
62
50
  const { top, left, height, width } = el.getBoundingClientRect();
51
+ // Calculate the cell position relative to the element
63
52
  let cellY = y - top;
64
- // limit to element height
53
+ let cellX = x - left;
54
+ // Limit the cell position to the element height
65
55
  if (cellY >= height) {
66
56
  cellY = height - 1;
67
57
  }
68
- let cellX = x - left;
69
- // limit to element width
58
+ // Limit the cell position to the element width
70
59
  if (cellX >= width) {
71
60
  cellX = width - 1;
72
61
  }
62
+ // Get the row and column items based on the cell position
73
63
  const rgRow = getItemByPosition(rows, cellY);
74
64
  const rgCol = getItemByPosition(cols, cellX);
75
- // before first
65
+ // Set the row and column index to 0 if they are before the first item
76
66
  if (rgCol.itemIndex < 0) {
77
67
  rgCol.itemIndex = 0;
78
68
  }
79
- // before first
80
69
  if (rgRow.itemIndex < 0) {
81
70
  rgRow.itemIndex = 0;
82
71
  }
@@ -98,8 +87,11 @@ function getCoordinate(range, focus, changes, isMulti = false) {
98
87
  }
99
88
  return null;
100
89
  }
101
- /** check if out of range */
102
- function isAfterLast({ x, y }, { lastCell }) {
90
+ /**
91
+ * Check if the x coordinate of the cell position is after or equal to the x coordinate of the last cell position
92
+ * or if the y coordinate of the cell position is after or equal to the y coordinate of the last cell position
93
+ */
94
+ function isAfterLast({ x, y }, lastCell) {
103
95
  return x >= lastCell.x || y >= lastCell.y;
104
96
  }
105
97
  /** check if out of range */
@@ -188,13 +180,14 @@ const RevogrFocus$1 = class {
188
180
  const column = getSourceItem(this.colData, focus.x);
189
181
  this.afterFocus.emit({
190
182
  model,
191
- column
183
+ column,
192
184
  });
193
185
  }
194
186
  componentDidRender() {
195
187
  var _a, _b;
196
188
  const currentFocus = this.selectionStore.get('focus');
197
- if (((_a = this.activeFocus) === null || _a === void 0 ? void 0 : _a.x) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.x) && ((_b = this.activeFocus) === null || _b === void 0 ? void 0 : _b.y) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.y)) {
189
+ if (((_a = this.activeFocus) === null || _a === void 0 ? void 0 : _a.x) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.x) &&
190
+ ((_b = this.activeFocus) === null || _b === void 0 ? void 0 : _b.y) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.y)) {
198
191
  return;
199
192
  }
200
193
  this.activeFocus = currentFocus;
@@ -240,9 +233,9 @@ class KeyboardService {
240
233
  constructor(sv) {
241
234
  this.sv = sv;
242
235
  }
243
- async keyDown(e, canRange) {
236
+ async keyDown(e, canRange, isEditMode, { range, focus }) {
244
237
  // IF EDIT MODE
245
- if (this.sv.selectionStoreService.edited) {
238
+ if (isEditMode) {
246
239
  switch (e.code) {
247
240
  case codesLetter.ESCAPE:
248
241
  this.sv.cancel();
@@ -252,12 +245,12 @@ class KeyboardService {
252
245
  }
253
246
  // IF NOT EDIT MODE
254
247
  // pressed clear key
255
- if (this.sv.selectionStoreService.ranged && isClear(e.code)) {
248
+ if (range && isClear(e.code)) {
256
249
  this.sv.clearCell();
257
250
  return;
258
251
  }
259
252
  // below works with focus only
260
- if (!this.sv.selectionStoreService.focused) {
253
+ if (!focus) {
261
254
  return;
262
255
  }
263
256
  // tab key means same as arrow right
@@ -333,7 +326,7 @@ class KeyboardService {
333
326
  }
334
327
  if (isMulti) {
335
328
  const eData = this.sv.getData();
336
- if (isAfterLast(data.end, eData) || isBeforeFirst(data.start)) {
329
+ if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {
337
330
  return false;
338
331
  }
339
332
  const range = getRange(data.start, data.end);
@@ -385,7 +378,10 @@ class AutoFillService {
385
378
  return (h("div", { class: {
386
379
  [CELL_HANDLER_CLASS]: true,
387
380
  [MOBILE_CLASS]: true,
388
- }, style: { left: `${handlerStyle.right}px`, top: `${handlerStyle.bottom}px` }, onMouseDown: (e) => this.autoFillHandler(e), onTouchStart: (e) => this.autoFillHandler(e) }));
381
+ }, style: {
382
+ left: `${handlerStyle.right}px`,
383
+ top: `${handlerStyle.bottom}px`,
384
+ }, onMouseDown: (e) => this.autoFillHandler(e), onTouchStart: (e) => this.autoFillHandler(e) }));
389
385
  }
390
386
  autoFillHandler(e, type = "AutoFill" /* AutoFillType.autoFill */) {
391
387
  let target = null;
@@ -401,7 +397,9 @@ class AutoFillService {
401
397
  get isAutoFill() {
402
398
  return !!this.autoFillType;
403
399
  }
404
- /** Process mouse move events */
400
+ /**
401
+ * Process mouse move events
402
+ */
405
403
  selectionMouseMove(e) {
406
404
  // initiate mouse move debounce if not present
407
405
  if (!this.onMouseMoveAutofill) {
@@ -411,9 +409,7 @@ class AutoFillService {
411
409
  this.onMouseMoveAutofill(e, this.sv.getData());
412
410
  }
413
411
  }
414
- getFocus() {
415
- let focus = this.sv.selectionStoreService.focused;
416
- const range = this.sv.selectionStoreService.ranged;
412
+ getFocus(focus, range) {
417
413
  // there was an issue that it was taking last cell from range but focus was out
418
414
  if (!focus && range) {
419
415
  focus = { x: range.x, y: range.y };
@@ -429,8 +425,8 @@ class AutoFillService {
429
425
  if (!this.autoFillInitial) {
430
426
  return;
431
427
  }
432
- const x = getFromEvent(event, 'clientX', MOBILE_CLASS);
433
- const y = getFromEvent(event, 'clientY', MOBILE_CLASS);
428
+ const x = getPropertyFromEvent(event, 'clientX', MOBILE_CLASS);
429
+ const y = getPropertyFromEvent(event, 'clientY', MOBILE_CLASS);
434
430
  // skip touch
435
431
  if (x === null || y === null) {
436
432
  return;
@@ -443,11 +439,12 @@ class AutoFillService {
443
439
  }
444
440
  }
445
441
  // check if not the latest, if latest - do nothing
446
- if (isAfterLast(current, data)) {
442
+ if (isAfterLast(current, data.lastCell)) {
447
443
  return;
448
444
  }
449
445
  this.autoFillLast = current;
450
- const isSame = current.x === this.autoFillInitial.x && current.y === this.autoFillInitial.y;
446
+ const isSame = current.x === this.autoFillInitial.x &&
447
+ current.y === this.autoFillInitial.y;
451
448
  // if same as initial - clear
452
449
  if (isSame) {
453
450
  this.sv.setTempRange(null);
@@ -468,39 +465,48 @@ class AutoFillService {
468
465
  selectionStart(target, data, type = "Selection" /* AutoFillType.selection */) {
469
466
  /** Get cell by autofill element */
470
467
  const { top, left } = target.getBoundingClientRect();
471
- this.autoFillInitial = this.getFocus();
468
+ this.autoFillInitial = this.getFocus(data.focus, data.range);
472
469
  this.autoFillType = type;
473
470
  this.autoFillStart = getCurrentCell({ x: left, y: top }, data);
474
471
  }
475
472
  /**
476
- * Clear current range selection
477
- * on mouse up and mouse leave events
473
+ * Clear current range selection on mouse up and mouse leave events
478
474
  */
479
- clearAutoFillSelection() {
480
- // Apply autofill values on mouse up if present
475
+ clearAutoFillSelection(focus, oldRange) {
476
+ // If autofill was active, apply autofill values
481
477
  if (this.autoFillInitial) {
482
- // Get latest
483
- this.autoFillInitial = this.getFocus();
484
- // Apply range data if present
478
+ // Fetch latest focus
479
+ this.autoFillInitial = this.getFocus(focus, oldRange);
480
+ // Apply range data if autofill mode is active
485
481
  if (this.autoFillType === "AutoFill" /* AutoFillType.autoFill */) {
486
482
  const range = getRange(this.autoFillInitial, this.autoFillLast);
483
+ // If range is present, apply data
487
484
  if (range) {
488
- const { defaultPrevented: stopApply, detail: { range: newRange } } = this.sv.clearRangeDataApply({
485
+ const { defaultPrevented: stopApply, detail: { range: newRange }, } = this.sv.clearRangeDataApply({
489
486
  range,
490
487
  });
488
+ // If data apply was not prevented, apply new range
491
489
  if (!stopApply) {
492
- this.applyRangeWithData(newRange);
490
+ this.applyRangeWithData(newRange, oldRange);
493
491
  }
494
492
  else {
495
- // if prevented - clear temp range
493
+ // If data apply was prevented, clear temporary range
496
494
  this.sv.setTempRange(null);
497
495
  }
498
496
  }
499
497
  }
500
498
  else {
499
+ // If not autofill mode, apply range only
501
500
  this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);
502
501
  }
503
502
  }
503
+ // Reset autofill state
504
+ this.resetAutoFillState();
505
+ }
506
+ /**
507
+ * Reset autofill state
508
+ */
509
+ resetAutoFillState() {
504
510
  this.autoFillType = null;
505
511
  this.autoFillInitial = null;
506
512
  this.autoFillLast = null;
@@ -520,8 +526,7 @@ class AutoFillService {
520
526
  this.sv.setRange(range);
521
527
  }
522
528
  /** Apply range and copy data during range application */
523
- applyRangeWithData(newRange) {
524
- const oldRange = this.sv.selectionStoreService.ranged;
529
+ applyRangeWithData(newRange, oldRange) {
525
530
  const rangeData = {
526
531
  type: this.sv.dataStore.get('type'),
527
532
  colType: this.sv.columnService.type,
@@ -610,44 +615,60 @@ const OverlaySelection = class {
610
615
  // #endregion
611
616
  // #region Listeners
612
617
  onMouseMove(e) {
613
- if (this.selectionStoreService.focused) {
618
+ if (this.selectionStore.get('focus')) {
614
619
  this.autoFillService.selectionMouseMove(e);
615
620
  }
616
621
  }
617
- /** Action finished inside of the document. */
618
- /** Pointer left document, clear any active operation. */
622
+ /**
623
+ * Action finished inside of the document.
624
+ * Pointer left document, clear any active operation.
625
+ */
619
626
  onMouseUp() {
620
- this.autoFillService.clearAutoFillSelection();
627
+ // Clear auto fill selection
628
+ // when pointer left document,
629
+ // clear any active operation.
630
+ this.autoFillService.clearAutoFillSelection(this.selectionStore.get('focus'), this.selectionStore.get('range'));
621
631
  }
622
- /** Row drag started. */
632
+ /**
633
+ * Row drag started.
634
+ * This event is fired when drag action started on cell.
635
+ */
623
636
  onCellDrag(e) {
624
637
  var _a;
638
+ // Invoke drag start on order editor.
625
639
  (_a = this.orderEditor) === null || _a === void 0 ? void 0 : _a.dragStart(e.detail);
626
640
  }
627
- /** Get keyboard down from element. */
641
+ /**
642
+ * Get keyboard down from element.
643
+ * This event is fired when keyboard key is released.
644
+ */
628
645
  onKeyUp(e) {
646
+ // Emit before key up event.
629
647
  this.beforeKeyUp.emit(e);
630
648
  }
631
- /** Get keyboard down from element. */
649
+ /**
650
+ * Get keyboard down from element.
651
+ * This event is fired when keyboard key is pressed.
652
+ */
632
653
  onKeyDown(e) {
633
654
  var _a;
655
+ // Emit before key down event and check if default prevention is set.
634
656
  const proxy = this.beforeKeyDown.emit(e);
635
657
  if (e.defaultPrevented || proxy.defaultPrevented) {
636
658
  return;
637
659
  }
638
- (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyDown(e, this.range);
660
+ // Invoke key down on keyboard service.
661
+ (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyDown(e, this.range, !!this.selectionStore.get('edit'), {
662
+ focus: this.selectionStore.get('focus'),
663
+ range: this.selectionStore.get('range'),
664
+ });
639
665
  }
640
666
  // #endregion
641
667
  /** Selection & Keyboard */
642
668
  selectionServiceSet(s) {
643
- this.selectionStoreService = new SelectionStoreService(s, {
644
- changeRange: range => this.triggerRangeEvent(range),
645
- focus: (focus, end) => this.doFocus(focus, end),
646
- });
647
669
  this.keyboardService = new KeyboardService({
648
- selectionStoreService: this.selectionStoreService,
649
670
  selectionStore: s,
650
- range: r => this.selectionStoreService.changeRange(r),
671
+ range: r => this.triggerRangeEvent(r),
651
672
  focusNext: (f, next) => this.doFocus(f, f, next),
652
673
  change: val => {
653
674
  if (this.readonly) {
@@ -669,7 +690,6 @@ const OverlaySelection = class {
669
690
  /** Autofill */
670
691
  createAutoFillService() {
671
692
  this.autoFillService = new AutoFillService({
672
- selectionStoreService: this.selectionStoreService,
673
693
  dimensionRow: this.dimensionRow,
674
694
  dimensionCol: this.dimensionCol,
675
695
  columnService: this.columnService,
@@ -745,10 +765,10 @@ const OverlaySelection = class {
745
765
  nodes.push(editCell);
746
766
  }
747
767
  else {
748
- const range = this.selectionStoreService.ranged;
749
- const selectionFocus = this.selectionStoreService.focused;
768
+ const range = this.selectionStore.get('range');
769
+ const focus = this.selectionStore.get('focus');
750
770
  // Clipboard
751
- if ((range || selectionFocus) && this.useClipboard) {
771
+ if ((range || focus) && this.useClipboard) {
752
772
  nodes.push(h("revogr-clipboard", { readonly: this.readonly, onCopyregion: e => this.onCopy(e.detail), onClearregion: () => !this.readonly && this.clearCell(), ref: e => (this.clipboard = e), onPasteregion: e => this.onPaste(e.detail) }));
753
773
  }
754
774
  // Range
@@ -756,23 +776,19 @@ const OverlaySelection = class {
756
776
  nodes.push(...this.renderRange(range));
757
777
  }
758
778
  // Autofill
759
- if (selectionFocus && !this.readonly && this.range) {
760
- nodes.push(this.autoFillService.renderAutofill(range, selectionFocus));
779
+ if (focus && !this.readonly && this.range) {
780
+ nodes.push(this.autoFillService.renderAutofill(range, focus));
761
781
  }
762
782
  // Order
763
783
  if (this.canDrag) {
764
784
  nodes.push(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) }));
765
785
  }
766
786
  }
767
- return (h(Host, { key: 'd20fcf63958e3d491f4fd881a4a5dd242cfdd9ac', class: { mobile: this.isMobileDevice },
768
- // Open Editor on DblClick
769
- onDblClick: (e) => {
770
- // DblClick prevented outside - Editor will not open
771
- if (!e.defaultPrevented) {
772
- this.doEdit();
773
- }
774
- }, onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, h("slot", { key: '89b9bec7824739ea11fadeecbf3908ac74e85c96', name: "data" })));
787
+ return (h(Host, { key: '3d40ea4ca89197d464bc5b84354e859a7bb9e1fa', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, h("slot", { key: '0d318f6e73fe84efd8d3b621c463bb3700d11eed', name: "data" })));
775
788
  }
789
+ /**
790
+ * Executes the focus operation on the specified range of cells.
791
+ */
776
792
  doFocus(focus, end, next) {
777
793
  const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));
778
794
  if (defaultPrevented) {
@@ -806,31 +822,48 @@ const OverlaySelection = class {
806
822
  }
807
823
  return !e.defaultPrevented;
808
824
  }
825
+ /**
826
+ * Open Editor on DblClick
827
+ */
828
+ onElementDblClick(e) {
829
+ // DblClick prevented outside - Editor will not open
830
+ // Get data from the component
831
+ const data = this.getData();
832
+ const focusCell = getFocusCellBasedOnEvent(e, data);
833
+ if (!focusCell) {
834
+ return;
835
+ }
836
+ this.doEdit();
837
+ }
838
+ /**
839
+ * Handle mouse down event on Host element
840
+ */
809
841
  onElementMouseDown(e, touch = false) {
842
+ // Get the target element from the event object
843
+ const targetElement = e.target;
810
844
  // Ignore focus if clicked input
811
- if (isEditInput(e.target)) {
845
+ if (isEditInput(targetElement)) {
812
846
  return;
813
847
  }
848
+ // Get data from the component
814
849
  const data = this.getData();
815
- if (e.defaultPrevented) {
816
- return;
817
- }
818
- const x = getFromEvent(e, 'clientX');
819
- const y = getFromEvent(e, 'clientY');
820
- // skip touch
821
- if (x === null || y === null) {
850
+ const focusCell = getFocusCellBasedOnEvent(e, data);
851
+ if (!focusCell) {
822
852
  return;
823
853
  }
824
- // Regular cell click
825
- const focusCell = getCurrentCell({ x, y }, data);
826
- this.selectionStoreService.focus(focusCell, this.range && e.shiftKey);
854
+ // Set focus on the current cell
855
+ this.focus(focusCell, this.range && e.shiftKey);
827
856
  // Initiate autofill selection
828
857
  if (this.range) {
829
- this.autoFillService.selectionStart(e.target, data);
858
+ this.autoFillService.selectionStart(targetElement, this.getData());
859
+ // Prevent default behavior for mouse events,
860
+ // but only if target element is not a mobile input
830
861
  if (!touch) {
831
862
  e.preventDefault();
832
863
  }
833
864
  else if (verifyTouchTarget(e.touches[0], MOBILE_CLASS)) {
865
+ // Prevent default behavior for touch events
866
+ // if target element is a mobile input
834
867
  e.preventDefault();
835
868
  }
836
869
  }
@@ -841,8 +874,8 @@ const OverlaySelection = class {
841
874
  doEdit(val = '') {
842
875
  var _a;
843
876
  if (this.canEdit()) {
844
- const editCell = this.selectionStore.get('focus');
845
- const data = this.columnService.getSaveData(editCell.y, editCell.x);
877
+ const focus = this.selectionStore.get('focus');
878
+ const data = this.columnService.getSaveData(focus.y, focus.x);
846
879
  (_a = this.setEdit) === null || _a === void 0 ? void 0 : _a.emit(Object.assign(Object.assign({}, data), { val }));
847
880
  }
848
881
  }
@@ -865,8 +898,8 @@ const OverlaySelection = class {
865
898
  this.cellEditApply.emit(dataToSave);
866
899
  }
867
900
  getRegion() {
868
- const focus = this.selectionStoreService.focused;
869
- let range = this.selectionStoreService.ranged;
901
+ const focus = this.selectionStore.get('focus');
902
+ let range = this.selectionStore.get('range');
870
903
  if (!range) {
871
904
  range = getRange(focus, focus);
872
905
  }
@@ -892,8 +925,8 @@ const OverlaySelection = class {
892
925
  return true;
893
926
  }
894
927
  onPaste(data) {
895
- const focus = this.selectionStoreService.focused;
896
- const isEditing = this.selectionStoreService.edited !== null;
928
+ const focus = this.selectionStore.get('focus');
929
+ const isEditing = this.selectionStore.get('edit') !== null;
897
930
  if (!focus || isEditing) {
898
931
  return;
899
932
  }
@@ -913,13 +946,13 @@ const OverlaySelection = class {
913
946
  }
914
947
  }
915
948
  clearCell() {
916
- if (this.selectionStoreService.ranged &&
917
- !isRangeSingleCell(this.selectionStoreService.ranged)) {
918
- const data = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, '');
919
- this.autoFillService.onRangeApply(data, this.selectionStoreService.ranged);
949
+ if (this.selectionStore.get('range') &&
950
+ !isRangeSingleCell(this.selectionStore.get('range'))) {
951
+ const data = this.columnService.getRangeStaticData(this.selectionStore.get('range'), '');
952
+ this.autoFillService.onRangeApply(data, this.selectionStore.get('range'));
920
953
  }
921
954
  else if (this.canEdit()) {
922
- const focused = this.selectionStoreService.focused;
955
+ const focused = this.selectionStore.get('focus');
923
956
  const cell = this.columnService.getSaveData(focused.y, focused.x);
924
957
  this.cellEdit({
925
958
  rgRow: focused.y,
@@ -941,8 +974,24 @@ const OverlaySelection = class {
941
974
  if (this.readonly) {
942
975
  return false;
943
976
  }
944
- const editCell = this.selectionStoreService.focused;
945
- return editCell && !((_a = this.columnService) === null || _a === void 0 ? void 0 : _a.isReadOnly(editCell.y, editCell.x));
977
+ const focus = this.selectionStore.get('focus');
978
+ return focus && !((_a = this.columnService) === null || _a === void 0 ? void 0 : _a.isReadOnly(focus.y, focus.x));
979
+ }
980
+ get edited() {
981
+ return this.selectionStore.get('edit');
982
+ }
983
+ /**
984
+ * Sets the focus on a cell and optionally edits a range.
985
+ */
986
+ focus(cell, isRangeEdit = false) {
987
+ if (!cell)
988
+ return false;
989
+ const end = cell;
990
+ const start = this.selectionStore.get('focus');
991
+ if (isRangeEdit && start) {
992
+ return this.triggerRangeEvent(getRange(start, end));
993
+ }
994
+ return this.doFocus(cell, end);
946
995
  }
947
996
  get types() {
948
997
  return {
@@ -959,6 +1008,8 @@ const OverlaySelection = class {
959
1008
  rows: this.dimensionRow.state,
960
1009
  cols: this.dimensionCol.state,
961
1010
  lastCell: this.lastCell,
1011
+ focus: this.selectionStore.get('focus'),
1012
+ range: this.selectionStore.get('range'),
962
1013
  };
963
1014
  }
964
1015
  get element() { return getElement(this); }
@@ -1002,7 +1053,7 @@ const RevogrRowHeaders = class {
1002
1053
  const colData = new DataStore('colPinStart');
1003
1054
  const column = Object.assign({ cellTemplate: RowHeaderRender(totalLength) }, this.rowHeaderColumn);
1004
1055
  colData.updateData([column]);
1005
- dataViews.push(h("revogr-data", Object.assign({}, data, { colType: 'rowHeaders', jobsBeforeRender: this.jobsBeforeRender, rowClass: this.rowClass, dataStore: dataStore.store, colData: colData.store, viewportCol: viewport.store, readonly: true, range: false })));
1056
+ dataViews.push(h("revogr-data", Object.assign({}, data, { colType: "rowHeaders", jobsBeforeRender: this.jobsBeforeRender, rowClass: this.rowClass, dataStore: dataStore.store, colData: colData.store, viewportCol: viewport.store, readonly: true, range: false })));
1006
1057
  totalLength += itemCount;
1007
1058
  }
1008
1059
  const colSize = calculateRowHeaderSize(totalLength, this.rowHeaderColumn);
@@ -1029,7 +1080,7 @@ const RevogrRowHeaders = class {
1029
1080
  const viewportHeader = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,
1030
1081
  // parent,
1031
1082
  slot: HEADER_SLOT });
1032
- return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h("revogr-viewport-scroll", Object.assign({ key: '53de708aa9a00a2ce363d8323b10d85aee070171' }, viewportScroll, { "row-header": true }), h("revogr-header", Object.assign({ key: '72e73ae122bb25f011422d3d044ccf7df613520c' }, viewportHeader)), dataViews)));
1083
+ return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h("revogr-viewport-scroll", Object.assign({ key: 'efaaa386cb5ea8b848d42e3407dbde8ad99d1db8' }, viewportScroll, { "row-header": true }), h("revogr-header", Object.assign({ key: '57fb6d08cd094f9b19145ff65c3ab805992fbb68' }, viewportHeader)), dataViews)));
1033
1084
  }
1034
1085
  };
1035
1086
 
@@ -1182,7 +1233,7 @@ const RevogrScrollVirtual = class {
1182
1233
  }
1183
1234
  render() {
1184
1235
  const sizeType = this.dimension === 'rgRow' ? 'height' : 'width';
1185
- return (h(Host, { key: '648f7c565364722ee80475ca00ce44fb00c3a042', onScroll: (e) => this.onScroll(e) }, h("div", { key: '8aca236453e97e0f79d35946daa81c5be049fc26', style: {
1236
+ return (h(Host, { key: '9d672a8992b1c13814270537389142ef53d322f9', onScroll: (e) => this.onScroll(e) }, h("div", { key: '250886ee28842f087d815d66cbb046b38c466ebf', style: {
1186
1237
  [sizeType]: `${getContentSize(this.dimensionStore.get('realSize'), this.size, this.viewportStore.get('virtualSize'))}px`,
1187
1238
  } })));
1188
1239
  }