@revolist/revogrid 4.0.11 → 4.0.13

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 (379) 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 +8 -9
  289. package/readme.md +8 -8
  290. package/standalone/_baseIteratee.js +1104 -13
  291. package/standalone/_baseIteratee.js.map +1 -1
  292. package/standalone/_nodeUtil.js +260 -0
  293. package/standalone/_nodeUtil.js.map +1 -0
  294. package/standalone/column.service.js +78 -74
  295. package/standalone/column.service.js.map +1 -1
  296. package/standalone/data.store.js +2 -4
  297. package/standalone/data.store.js.map +1 -1
  298. package/standalone/debounce.js +2 -2
  299. package/standalone/dimension.helpers.js +1 -1
  300. package/standalone/dimension.helpers.js.map +1 -1
  301. package/standalone/filter.button.js.map +1 -1
  302. package/standalone/identity.js +42 -2
  303. package/standalone/identity.js.map +1 -1
  304. package/standalone/index.js +5 -7
  305. package/standalone/index.js.map +1 -1
  306. package/standalone/index2.js +2 -3
  307. package/standalone/index2.js.map +1 -1
  308. package/standalone/isObjectLike.js +1 -34
  309. package/standalone/isObjectLike.js.map +1 -1
  310. package/standalone/revo-grid.js +125 -106
  311. package/standalone/revo-grid.js.map +1 -1
  312. package/standalone/revogr-clipboard2.js.map +1 -1
  313. package/standalone/revogr-data2.js +3 -0
  314. package/standalone/revogr-data2.js.map +1 -1
  315. package/standalone/revogr-edit2.js +1 -1
  316. package/standalone/revogr-edit2.js.map +1 -1
  317. package/standalone/revogr-filter-panel.js.map +1 -1
  318. package/standalone/revogr-focus2.js +7 -3
  319. package/standalone/revogr-focus2.js.map +1 -1
  320. package/standalone/revogr-header2.js +5 -4
  321. package/standalone/revogr-header2.js.map +1 -1
  322. package/standalone/revogr-order-editor2.js +3 -0
  323. package/standalone/revogr-order-editor2.js.map +1 -1
  324. package/standalone/revogr-overlay-selection2.js +143 -143
  325. package/standalone/revogr-overlay-selection2.js.map +1 -1
  326. package/standalone/revogr-row-headers2.js +7 -7
  327. package/standalone/revogr-row-headers2.js.map +1 -1
  328. package/standalone/revogr-scroll-virtual2.js +1 -1
  329. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  330. package/standalone/revogr-temp-range2.js +1 -1
  331. package/standalone/revogr-temp-range2.js.map +1 -1
  332. package/standalone/revogr-viewport-scroll2.js +23 -9
  333. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  334. package/standalone/selection.utils.js +76 -9
  335. package/standalone/selection.utils.js.map +1 -1
  336. package/standalone/throttle.js +1 -1
  337. package/standalone/toNumber.js +35 -2
  338. package/standalone/toNumber.js.map +1 -1
  339. package/dist/cjs/column.service-e83d9809.js.map +0 -1
  340. package/dist/cjs/events-7ccd6894.js +0 -233
  341. package/dist/cjs/events-7ccd6894.js.map +0 -1
  342. package/dist/cjs/index-73c149e3.js.map +0 -1
  343. package/dist/cjs/selection.store-2e110a67.js.map +0 -1
  344. package/dist/cjs/storeTypes-b3f924b2.js +0 -106
  345. package/dist/cjs/storeTypes-b3f924b2.js.map +0 -1
  346. package/dist/cjs/viewport.helpers-6670177c.js.map +0 -1
  347. package/dist/collection/store/selection/selection.store.service.js +0 -39
  348. package/dist/collection/store/selection/selection.store.service.js.map +0 -1
  349. package/dist/collection/store/storeTypes.js.map +0 -1
  350. package/dist/collection/store/viewport/index.js.map +0 -1
  351. package/dist/collection/store/viewport/viewport.helpers.js.map +0 -1
  352. package/dist/collection/store/viewport/viewport.store.js.map +0 -1
  353. package/dist/esm/column.service-f4922a8d.js.map +0 -1
  354. package/dist/esm/events-3dd8ee7c.js +0 -228
  355. package/dist/esm/events-3dd8ee7c.js.map +0 -1
  356. package/dist/esm/selection.store-2577ddf9.js.map +0 -1
  357. package/dist/esm/storeTypes-f2647985.js +0 -101
  358. package/dist/esm/storeTypes-f2647985.js.map +0 -1
  359. package/dist/esm/viewport.helpers-6591d423.js.map +0 -1
  360. package/dist/revo-grid/column.service-f4922a8d.js +0 -5
  361. package/dist/revo-grid/column.service-f4922a8d.js.map +0 -1
  362. package/dist/revo-grid/events-3dd8ee7c.js +0 -5
  363. package/dist/revo-grid/events-3dd8ee7c.js.map +0 -1
  364. package/dist/revo-grid/index-98fd0168.js +0 -5
  365. package/dist/revo-grid/index-98fd0168.js.map +0 -1
  366. package/dist/revo-grid/key.utils-2836e8ae.js.map +0 -1
  367. package/dist/revo-grid/selection.store-2577ddf9.js +0 -5
  368. package/dist/revo-grid/selection.store-2577ddf9.js.map +0 -1
  369. package/dist/revo-grid/storeTypes-f2647985.js +0 -5
  370. package/dist/revo-grid/storeTypes-f2647985.js.map +0 -1
  371. package/dist/revo-grid/viewport.helpers-6591d423.js +0 -5
  372. package/dist/revo-grid/viewport.helpers-6591d423.js.map +0 -1
  373. package/dist/types/store/selection/selection.store.service.d.ts +0 -17
  374. package/dist/types/store/viewport/index.d.ts +0 -2
  375. package/standalone/_stringToPath.js +0 -1389
  376. package/standalone/_stringToPath.js.map +0 -1
  377. /package/dist/collection/store/{viewport → vp}/index.js +0 -0
  378. /package/dist/collection/store/{viewport → vp}/viewport.helpers.js +0 -0
  379. /package/dist/revo-grid/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +0 -0
@@ -5,74 +5,16 @@ import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/
5
5
  import { g as getRange, C as ColumnService, a as isRangeSingleCell } from './column.service.js';
6
6
  import { c as codesLetter, i as isClear, a as isEnterKey, b as isCopy, e as isCut, f as isPaste, g as isAll, h as isLetterKey, j as isEditInput, d as defineCustomElement$2 } from './revogr-edit2.js';
7
7
  import { R as RESIZE_INTERVAL, k as CELL_HANDLER_CLASS, l as MOBILE_CLASS, S as SELECTION_BORDER_CLASS } from './consts.js';
8
- import { a as getCoordinate, i as isAfterLast, b as isBeforeFirst, c as getCell, d as getCurrentCell, g as getElStyle } from './selection.utils.js';
8
+ import './_baseIteratee.js';
9
+ import './isObjectLike.js';
10
+ import './_nodeUtil.js';
11
+ import { b as getCoordinate, i as isAfterLast, c as isBeforeFirst, d as getCell, g as getPropertyFromEvent, e as getCurrentCell, a as getElStyle, f as getFocusCellBasedOnEvent, v as verifyTouchTarget } from './selection.utils.js';
9
12
  import { t as timeout } from './index2.js';
10
13
  import { d as debounce_1 } from './debounce.js';
11
14
  import { b as getSourceItem } from './data.store.js';
12
15
  import { d as defineCustomElement$3 } from './revogr-clipboard2.js';
13
16
  import { d as defineCustomElement$1 } from './revogr-order-editor2.js';
14
17
 
15
- class SelectionStoreService {
16
- constructor(store, config) {
17
- this.store = store;
18
- this.config = config;
19
- this.store = store;
20
- }
21
- get edited() {
22
- return this.store.get('edit');
23
- }
24
- get focused() {
25
- return this.store.get('focus');
26
- }
27
- get ranged() {
28
- return this.store.get('range');
29
- }
30
- changeRange(range) {
31
- return this.config.changeRange(range);
32
- }
33
- focus(cell, isMulti = false) {
34
- if (!cell) {
35
- return false;
36
- }
37
- let end = cell;
38
- // range edit
39
- if (isMulti) {
40
- let start = this.store.get('focus');
41
- if (start) {
42
- return this.config.changeRange(getRange(start, end));
43
- }
44
- }
45
- // single focus
46
- return this.config.focus(cell, end);
47
- }
48
- }
49
-
50
- function isTouch(e) {
51
- return !!e.touches;
52
- }
53
- function verifyTouchTarget(touchEvent, focusClass) {
54
- if (focusClass && touchEvent) {
55
- if (!(touchEvent.target instanceof Element && touchEvent.target.classList.contains(focusClass))) {
56
- return false;
57
- }
58
- }
59
- return true;
60
- }
61
- function getFromEvent(e, prop, focusClass // for touch events
62
- ) {
63
- if (isTouch(e)) {
64
- if (e.touches.length > 0) {
65
- const touchEvent = e.touches[0];
66
- if (!verifyTouchTarget(touchEvent, focusClass)) {
67
- return null;
68
- }
69
- return touchEvent[prop] || 0;
70
- }
71
- return null;
72
- }
73
- return e[prop] || 0;
74
- }
75
-
76
18
  const DIRECTION_CODES = [
77
19
  codesLetter.TAB,
78
20
  codesLetter.ARROW_UP,
@@ -84,9 +26,9 @@ class KeyboardService {
84
26
  constructor(sv) {
85
27
  this.sv = sv;
86
28
  }
87
- async keyDown(e, canRange) {
29
+ async keyDown(e, canRange, isEditMode, { range, focus }) {
88
30
  // IF EDIT MODE
89
- if (this.sv.selectionStoreService.edited) {
31
+ if (isEditMode) {
90
32
  switch (e.code) {
91
33
  case codesLetter.ESCAPE:
92
34
  this.sv.cancel();
@@ -96,12 +38,12 @@ class KeyboardService {
96
38
  }
97
39
  // IF NOT EDIT MODE
98
40
  // pressed clear key
99
- if (this.sv.selectionStoreService.ranged && isClear(e.code)) {
41
+ if (range && isClear(e.code)) {
100
42
  this.sv.clearCell();
101
43
  return;
102
44
  }
103
45
  // below works with focus only
104
- if (!this.sv.selectionStoreService.focused) {
46
+ if (!focus) {
105
47
  return;
106
48
  }
107
49
  // tab key means same as arrow right
@@ -177,7 +119,7 @@ class KeyboardService {
177
119
  }
178
120
  if (isMulti) {
179
121
  const eData = this.sv.getData();
180
- if (isAfterLast(data.end, eData) || isBeforeFirst(data.start)) {
122
+ if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {
181
123
  return false;
182
124
  }
183
125
  const range = getRange(data.start, data.end);
@@ -229,7 +171,10 @@ class AutoFillService {
229
171
  return (h("div", { class: {
230
172
  [CELL_HANDLER_CLASS]: true,
231
173
  [MOBILE_CLASS]: true,
232
- }, style: { left: `${handlerStyle.right}px`, top: `${handlerStyle.bottom}px` }, onMouseDown: (e) => this.autoFillHandler(e), onTouchStart: (e) => this.autoFillHandler(e) }));
174
+ }, style: {
175
+ left: `${handlerStyle.right}px`,
176
+ top: `${handlerStyle.bottom}px`,
177
+ }, onMouseDown: (e) => this.autoFillHandler(e), onTouchStart: (e) => this.autoFillHandler(e) }));
233
178
  }
234
179
  autoFillHandler(e, type = "AutoFill" /* AutoFillType.autoFill */) {
235
180
  let target = null;
@@ -245,7 +190,9 @@ class AutoFillService {
245
190
  get isAutoFill() {
246
191
  return !!this.autoFillType;
247
192
  }
248
- /** Process mouse move events */
193
+ /**
194
+ * Process mouse move events
195
+ */
249
196
  selectionMouseMove(e) {
250
197
  // initiate mouse move debounce if not present
251
198
  if (!this.onMouseMoveAutofill) {
@@ -255,9 +202,7 @@ class AutoFillService {
255
202
  this.onMouseMoveAutofill(e, this.sv.getData());
256
203
  }
257
204
  }
258
- getFocus() {
259
- let focus = this.sv.selectionStoreService.focused;
260
- const range = this.sv.selectionStoreService.ranged;
205
+ getFocus(focus, range) {
261
206
  // there was an issue that it was taking last cell from range but focus was out
262
207
  if (!focus && range) {
263
208
  focus = { x: range.x, y: range.y };
@@ -273,8 +218,8 @@ class AutoFillService {
273
218
  if (!this.autoFillInitial) {
274
219
  return;
275
220
  }
276
- const x = getFromEvent(event, 'clientX', MOBILE_CLASS);
277
- const y = getFromEvent(event, 'clientY', MOBILE_CLASS);
221
+ const x = getPropertyFromEvent(event, 'clientX', MOBILE_CLASS);
222
+ const y = getPropertyFromEvent(event, 'clientY', MOBILE_CLASS);
278
223
  // skip touch
279
224
  if (x === null || y === null) {
280
225
  return;
@@ -287,11 +232,12 @@ class AutoFillService {
287
232
  }
288
233
  }
289
234
  // check if not the latest, if latest - do nothing
290
- if (isAfterLast(current, data)) {
235
+ if (isAfterLast(current, data.lastCell)) {
291
236
  return;
292
237
  }
293
238
  this.autoFillLast = current;
294
- const isSame = current.x === this.autoFillInitial.x && current.y === this.autoFillInitial.y;
239
+ const isSame = current.x === this.autoFillInitial.x &&
240
+ current.y === this.autoFillInitial.y;
295
241
  // if same as initial - clear
296
242
  if (isSame) {
297
243
  this.sv.setTempRange(null);
@@ -312,39 +258,48 @@ class AutoFillService {
312
258
  selectionStart(target, data, type = "Selection" /* AutoFillType.selection */) {
313
259
  /** Get cell by autofill element */
314
260
  const { top, left } = target.getBoundingClientRect();
315
- this.autoFillInitial = this.getFocus();
261
+ this.autoFillInitial = this.getFocus(data.focus, data.range);
316
262
  this.autoFillType = type;
317
263
  this.autoFillStart = getCurrentCell({ x: left, y: top }, data);
318
264
  }
319
265
  /**
320
- * Clear current range selection
321
- * on mouse up and mouse leave events
266
+ * Clear current range selection on mouse up and mouse leave events
322
267
  */
323
- clearAutoFillSelection() {
324
- // Apply autofill values on mouse up if present
268
+ clearAutoFillSelection(focus, oldRange) {
269
+ // If autofill was active, apply autofill values
325
270
  if (this.autoFillInitial) {
326
- // Get latest
327
- this.autoFillInitial = this.getFocus();
328
- // Apply range data if present
271
+ // Fetch latest focus
272
+ this.autoFillInitial = this.getFocus(focus, oldRange);
273
+ // Apply range data if autofill mode is active
329
274
  if (this.autoFillType === "AutoFill" /* AutoFillType.autoFill */) {
330
275
  const range = getRange(this.autoFillInitial, this.autoFillLast);
276
+ // If range is present, apply data
331
277
  if (range) {
332
- const { defaultPrevented: stopApply, detail: { range: newRange } } = this.sv.clearRangeDataApply({
278
+ const { defaultPrevented: stopApply, detail: { range: newRange }, } = this.sv.clearRangeDataApply({
333
279
  range,
334
280
  });
281
+ // If data apply was not prevented, apply new range
335
282
  if (!stopApply) {
336
- this.applyRangeWithData(newRange);
283
+ this.applyRangeWithData(newRange, oldRange);
337
284
  }
338
285
  else {
339
- // if prevented - clear temp range
286
+ // If data apply was prevented, clear temporary range
340
287
  this.sv.setTempRange(null);
341
288
  }
342
289
  }
343
290
  }
344
291
  else {
292
+ // If not autofill mode, apply range only
345
293
  this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);
346
294
  }
347
295
  }
296
+ // Reset autofill state
297
+ this.resetAutoFillState();
298
+ }
299
+ /**
300
+ * Reset autofill state
301
+ */
302
+ resetAutoFillState() {
348
303
  this.autoFillType = null;
349
304
  this.autoFillInitial = null;
350
305
  this.autoFillLast = null;
@@ -364,8 +319,7 @@ class AutoFillService {
364
319
  this.sv.setRange(range);
365
320
  }
366
321
  /** Apply range and copy data during range application */
367
- applyRangeWithData(newRange) {
368
- const oldRange = this.sv.selectionStoreService.ranged;
322
+ applyRangeWithData(newRange, oldRange) {
369
323
  const rangeData = {
370
324
  type: this.sv.dataStore.get('type'),
371
325
  colType: this.sv.columnService.type,
@@ -455,44 +409,60 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
455
409
  // #endregion
456
410
  // #region Listeners
457
411
  onMouseMove(e) {
458
- if (this.selectionStoreService.focused) {
412
+ if (this.selectionStore.get('focus')) {
459
413
  this.autoFillService.selectionMouseMove(e);
460
414
  }
461
415
  }
462
- /** Action finished inside of the document. */
463
- /** Pointer left document, clear any active operation. */
416
+ /**
417
+ * Action finished inside of the document.
418
+ * Pointer left document, clear any active operation.
419
+ */
464
420
  onMouseUp() {
465
- this.autoFillService.clearAutoFillSelection();
421
+ // Clear auto fill selection
422
+ // when pointer left document,
423
+ // clear any active operation.
424
+ this.autoFillService.clearAutoFillSelection(this.selectionStore.get('focus'), this.selectionStore.get('range'));
466
425
  }
467
- /** Row drag started. */
426
+ /**
427
+ * Row drag started.
428
+ * This event is fired when drag action started on cell.
429
+ */
468
430
  onCellDrag(e) {
469
431
  var _a;
432
+ // Invoke drag start on order editor.
470
433
  (_a = this.orderEditor) === null || _a === void 0 ? void 0 : _a.dragStart(e.detail);
471
434
  }
472
- /** Get keyboard down from element. */
435
+ /**
436
+ * Get keyboard down from element.
437
+ * This event is fired when keyboard key is released.
438
+ */
473
439
  onKeyUp(e) {
440
+ // Emit before key up event.
474
441
  this.beforeKeyUp.emit(e);
475
442
  }
476
- /** Get keyboard down from element. */
443
+ /**
444
+ * Get keyboard down from element.
445
+ * This event is fired when keyboard key is pressed.
446
+ */
477
447
  onKeyDown(e) {
478
448
  var _a;
449
+ // Emit before key down event and check if default prevention is set.
479
450
  const proxy = this.beforeKeyDown.emit(e);
480
451
  if (e.defaultPrevented || proxy.defaultPrevented) {
481
452
  return;
482
453
  }
483
- (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyDown(e, this.range);
454
+ // Invoke key down on keyboard service.
455
+ (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyDown(e, this.range, !!this.selectionStore.get('edit'), {
456
+ focus: this.selectionStore.get('focus'),
457
+ range: this.selectionStore.get('range'),
458
+ });
484
459
  }
485
460
  // #endregion
486
461
  /** Selection & Keyboard */
487
462
  selectionServiceSet(s) {
488
- this.selectionStoreService = new SelectionStoreService(s, {
489
- changeRange: range => this.triggerRangeEvent(range),
490
- focus: (focus, end) => this.doFocus(focus, end),
491
- });
492
463
  this.keyboardService = new KeyboardService({
493
- selectionStoreService: this.selectionStoreService,
494
464
  selectionStore: s,
495
- range: r => this.selectionStoreService.changeRange(r),
465
+ range: r => this.triggerRangeEvent(r),
496
466
  focusNext: (f, next) => this.doFocus(f, f, next),
497
467
  change: val => {
498
468
  if (this.readonly) {
@@ -514,7 +484,6 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
514
484
  /** Autofill */
515
485
  createAutoFillService() {
516
486
  this.autoFillService = new AutoFillService({
517
- selectionStoreService: this.selectionStoreService,
518
487
  dimensionRow: this.dimensionRow,
519
488
  dimensionCol: this.dimensionCol,
520
489
  columnService: this.columnService,
@@ -590,10 +559,10 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
590
559
  nodes.push(editCell);
591
560
  }
592
561
  else {
593
- const range = this.selectionStoreService.ranged;
594
- const selectionFocus = this.selectionStoreService.focused;
562
+ const range = this.selectionStore.get('range');
563
+ const focus = this.selectionStore.get('focus');
595
564
  // Clipboard
596
- if ((range || selectionFocus) && this.useClipboard) {
565
+ if ((range || focus) && this.useClipboard) {
597
566
  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) }));
598
567
  }
599
568
  // Range
@@ -601,23 +570,19 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
601
570
  nodes.push(...this.renderRange(range));
602
571
  }
603
572
  // Autofill
604
- if (selectionFocus && !this.readonly && this.range) {
605
- nodes.push(this.autoFillService.renderAutofill(range, selectionFocus));
573
+ if (focus && !this.readonly && this.range) {
574
+ nodes.push(this.autoFillService.renderAutofill(range, focus));
606
575
  }
607
576
  // Order
608
577
  if (this.canDrag) {
609
578
  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) }));
610
579
  }
611
580
  }
612
- return (h(Host, { key: 'd20fcf63958e3d491f4fd881a4a5dd242cfdd9ac', class: { mobile: this.isMobileDevice },
613
- // Open Editor on DblClick
614
- onDblClick: (e) => {
615
- // DblClick prevented outside - Editor will not open
616
- if (!e.defaultPrevented) {
617
- this.doEdit();
618
- }
619
- }, onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true) }, nodes, h("slot", { key: '89b9bec7824739ea11fadeecbf3908ac74e85c96', name: "data" })));
581
+ 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" })));
620
582
  }
583
+ /**
584
+ * Executes the focus operation on the specified range of cells.
585
+ */
621
586
  doFocus(focus, end, next) {
622
587
  const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));
623
588
  if (defaultPrevented) {
@@ -651,31 +616,48 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
651
616
  }
652
617
  return !e.defaultPrevented;
653
618
  }
619
+ /**
620
+ * Open Editor on DblClick
621
+ */
622
+ onElementDblClick(e) {
623
+ // DblClick prevented outside - Editor will not open
624
+ // Get data from the component
625
+ const data = this.getData();
626
+ const focusCell = getFocusCellBasedOnEvent(e, data);
627
+ if (!focusCell) {
628
+ return;
629
+ }
630
+ this.doEdit();
631
+ }
632
+ /**
633
+ * Handle mouse down event on Host element
634
+ */
654
635
  onElementMouseDown(e, touch = false) {
636
+ // Get the target element from the event object
637
+ const targetElement = e.target;
655
638
  // Ignore focus if clicked input
656
- if (isEditInput(e.target)) {
639
+ if (isEditInput(targetElement)) {
657
640
  return;
658
641
  }
642
+ // Get data from the component
659
643
  const data = this.getData();
660
- if (e.defaultPrevented) {
661
- return;
662
- }
663
- const x = getFromEvent(e, 'clientX');
664
- const y = getFromEvent(e, 'clientY');
665
- // skip touch
666
- if (x === null || y === null) {
644
+ const focusCell = getFocusCellBasedOnEvent(e, data);
645
+ if (!focusCell) {
667
646
  return;
668
647
  }
669
- // Regular cell click
670
- const focusCell = getCurrentCell({ x, y }, data);
671
- this.selectionStoreService.focus(focusCell, this.range && e.shiftKey);
648
+ // Set focus on the current cell
649
+ this.focus(focusCell, this.range && e.shiftKey);
672
650
  // Initiate autofill selection
673
651
  if (this.range) {
674
- this.autoFillService.selectionStart(e.target, data);
652
+ this.autoFillService.selectionStart(targetElement, this.getData());
653
+ // Prevent default behavior for mouse events,
654
+ // but only if target element is not a mobile input
675
655
  if (!touch) {
676
656
  e.preventDefault();
677
657
  }
678
658
  else if (verifyTouchTarget(e.touches[0], MOBILE_CLASS)) {
659
+ // Prevent default behavior for touch events
660
+ // if target element is a mobile input
679
661
  e.preventDefault();
680
662
  }
681
663
  }
@@ -686,8 +668,8 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
686
668
  doEdit(val = '') {
687
669
  var _a;
688
670
  if (this.canEdit()) {
689
- const editCell = this.selectionStore.get('focus');
690
- const data = this.columnService.getSaveData(editCell.y, editCell.x);
671
+ const focus = this.selectionStore.get('focus');
672
+ const data = this.columnService.getSaveData(focus.y, focus.x);
691
673
  (_a = this.setEdit) === null || _a === void 0 ? void 0 : _a.emit(Object.assign(Object.assign({}, data), { val }));
692
674
  }
693
675
  }
@@ -710,8 +692,8 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
710
692
  this.cellEditApply.emit(dataToSave);
711
693
  }
712
694
  getRegion() {
713
- const focus = this.selectionStoreService.focused;
714
- let range = this.selectionStoreService.ranged;
695
+ const focus = this.selectionStore.get('focus');
696
+ let range = this.selectionStore.get('range');
715
697
  if (!range) {
716
698
  range = getRange(focus, focus);
717
699
  }
@@ -737,8 +719,8 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
737
719
  return true;
738
720
  }
739
721
  onPaste(data) {
740
- const focus = this.selectionStoreService.focused;
741
- const isEditing = this.selectionStoreService.edited !== null;
722
+ const focus = this.selectionStore.get('focus');
723
+ const isEditing = this.selectionStore.get('edit') !== null;
742
724
  if (!focus || isEditing) {
743
725
  return;
744
726
  }
@@ -758,13 +740,13 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
758
740
  }
759
741
  }
760
742
  clearCell() {
761
- if (this.selectionStoreService.ranged &&
762
- !isRangeSingleCell(this.selectionStoreService.ranged)) {
763
- const data = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, '');
764
- this.autoFillService.onRangeApply(data, this.selectionStoreService.ranged);
743
+ if (this.selectionStore.get('range') &&
744
+ !isRangeSingleCell(this.selectionStore.get('range'))) {
745
+ const data = this.columnService.getRangeStaticData(this.selectionStore.get('range'), '');
746
+ this.autoFillService.onRangeApply(data, this.selectionStore.get('range'));
765
747
  }
766
748
  else if (this.canEdit()) {
767
- const focused = this.selectionStoreService.focused;
749
+ const focused = this.selectionStore.get('focus');
768
750
  const cell = this.columnService.getSaveData(focused.y, focused.x);
769
751
  this.cellEdit({
770
752
  rgRow: focused.y,
@@ -786,8 +768,24 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
786
768
  if (this.readonly) {
787
769
  return false;
788
770
  }
789
- const editCell = this.selectionStoreService.focused;
790
- return editCell && !((_a = this.columnService) === null || _a === void 0 ? void 0 : _a.isReadOnly(editCell.y, editCell.x));
771
+ const focus = this.selectionStore.get('focus');
772
+ return focus && !((_a = this.columnService) === null || _a === void 0 ? void 0 : _a.isReadOnly(focus.y, focus.x));
773
+ }
774
+ get edited() {
775
+ return this.selectionStore.get('edit');
776
+ }
777
+ /**
778
+ * Sets the focus on a cell and optionally edits a range.
779
+ */
780
+ focus(cell, isRangeEdit = false) {
781
+ if (!cell)
782
+ return false;
783
+ const end = cell;
784
+ const start = this.selectionStore.get('focus');
785
+ if (isRangeEdit && start) {
786
+ return this.triggerRangeEvent(getRange(start, end));
787
+ }
788
+ return this.doFocus(cell, end);
791
789
  }
792
790
  get types() {
793
791
  return {
@@ -804,6 +802,8 @@ const OverlaySelection = /*@__PURE__*/ proxyCustomElement(class OverlaySelection
804
802
  rows: this.dimensionRow.state,
805
803
  cols: this.dimensionCol.state,
806
804
  lastCell: this.lastCell,
805
+ focus: this.selectionStore.get('focus'),
806
+ range: this.selectionStore.get('range'),
807
807
  };
808
808
  }
809
809
  get element() { return this; }
@@ -866,6 +866,6 @@ function defineCustomElement() {
866
866
  } });
867
867
  }
868
868
 
869
- export { OverlaySelection as O, defineCustomElement as d, getFromEvent as g };
869
+ export { OverlaySelection as O, defineCustomElement as d };
870
870
 
871
871
  //# sourceMappingURL=revogr-overlay-selection2.js.map