@revolist/revogrid 4.0.12 → 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 (360) 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-bc269420.js → column.service-52b4cac9.js} +6 -4
  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-57acd2f7.js → header-cell-renderer-a3f202a1.js} +2 -2
  11. package/dist/cjs/{header-cell-renderer-57acd2f7.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 +51 -157
  19. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  20. package/dist/cjs/revogr-attribution_6.cjs.entry.js +23 -22
  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 +45 -45
  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 +8 -8
  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 +27 -27
  53. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  54. package/dist/collection/components/overlay/autofill.service.js +1 -2
  55. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  56. package/dist/collection/components/overlay/keyboard.service.js +1 -1
  57. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  58. package/dist/collection/components/overlay/revogr-overlay-selection.js +36 -36
  59. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  60. package/dist/collection/components/overlay/selection.utils.js +1 -1
  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.js +128 -128
  64. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  65. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
  66. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -2
  67. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  68. package/dist/collection/components/revoGrid/viewport.service.js +1 -2
  69. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  70. package/dist/collection/components/rowHeaders/revogr-row-headers.js +11 -12
  71. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  72. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -1
  73. package/dist/collection/components/scroll/revogr-viewport-scroll.js +17 -17
  74. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  75. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +17 -17
  76. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  77. package/dist/collection/components/selectionFocus/revogr-focus.js +44 -43
  78. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  79. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +12 -12
  80. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  81. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  82. package/dist/collection/index.js +2 -12
  83. package/dist/collection/index.js.map +1 -1
  84. package/dist/collection/plugins/column.auto-size.plugin.js +3 -4
  85. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  86. package/dist/collection/plugins/export/export.plugin.js +1 -1
  87. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  88. package/dist/collection/plugins/export/types.js.map +1 -1
  89. package/dist/collection/plugins/filter/filter.button.js.map +1 -1
  90. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  91. package/dist/collection/plugins/filter/filter.pop.js +4 -4
  92. package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
  93. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -1
  94. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  95. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -1
  96. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  97. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -1
  98. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +1 -2
  99. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  100. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
  101. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
  102. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
  103. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -1
  104. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -1
  105. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  106. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  107. package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
  108. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  109. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
  110. package/dist/collection/services/column.data.provider.js +1 -2
  111. package/dist/collection/services/column.data.provider.js.map +1 -1
  112. package/dist/collection/services/data.provider.js +1 -2
  113. package/dist/collection/services/data.provider.js.map +1 -1
  114. package/dist/collection/services/dimension.provider.js +3 -5
  115. package/dist/collection/services/dimension.provider.js.map +1 -1
  116. package/dist/collection/services/selection.store.connector.js +1 -2
  117. package/dist/collection/services/selection.store.connector.js.map +1 -1
  118. package/dist/collection/services/viewport.provider.js +1 -2
  119. package/dist/collection/services/viewport.provider.js.map +1 -1
  120. package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
  121. package/dist/collection/store/dataSource/data.store.js +1 -1
  122. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  123. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  124. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
  125. package/dist/collection/store/dimension/dimension.store.js +1 -1
  126. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  127. package/dist/collection/store/{storeTypes.js → index.js} +5 -1
  128. package/dist/collection/store/index.js.map +1 -0
  129. package/dist/collection/store/selection/selection.helpers.js.map +1 -1
  130. package/dist/collection/store/selection/selection.store.js +1 -1
  131. package/dist/collection/store/selection/selection.store.js.map +1 -1
  132. package/dist/collection/store/vp/index.js.map +1 -0
  133. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  134. package/dist/collection/store/{viewport → vp}/viewport.store.js +4 -7
  135. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  136. package/dist/collection/types/index.js +11 -0
  137. package/dist/collection/types/index.js.map +1 -0
  138. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  139. package/dist/collection/utils/index.js +0 -1
  140. package/dist/collection/utils/index.js.map +1 -1
  141. package/dist/collection/utils/store.utils.js.map +1 -1
  142. package/dist/esm/app-globals-ef1fca59.js.map +1 -1
  143. package/dist/esm/base.plugin-d0e589d8.js +213 -0
  144. package/dist/esm/base.plugin-d0e589d8.js.map +1 -0
  145. package/dist/esm/{column.service-195345ab.js → column.service-a826bbd6.js} +5 -3
  146. package/dist/esm/column.service-a826bbd6.js.map +1 -0
  147. package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -1
  148. package/dist/esm/events-77b43b40.js +48 -0
  149. package/dist/esm/events-77b43b40.js.map +1 -0
  150. package/dist/esm/filter.button-46ce4f80.js.map +1 -1
  151. package/dist/esm/{header-cell-renderer-7c76465d.js → header-cell-renderer-19738045.js} +2 -2
  152. package/dist/esm/{header-cell-renderer-7c76465d.js.map → header-cell-renderer-19738045.js.map} +1 -1
  153. package/dist/esm/{index-98fd0168.js → index-5a722722.js} +3 -4
  154. package/dist/esm/index-5a722722.js.map +1 -0
  155. package/dist/esm/index.js +4 -4
  156. package/dist/esm/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  157. package/dist/esm/{key.utils-2836e8ae.js.map → key.utils-7c5d91dd.js.map} +1 -1
  158. package/dist/esm/revo-grid.entry.js +19 -125
  159. package/dist/esm/revo-grid.entry.js.map +1 -1
  160. package/dist/esm/revogr-attribution_6.entry.js +15 -14
  161. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  162. package/dist/esm/revogr-clipboard_3.entry.js +2 -2
  163. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  164. package/dist/esm/revogr-data_4.entry.js +9 -9
  165. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  166. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  167. package/dist/esm/{selection.store-2577ddf9.js → selection.helpers-883ce6bc.js} +77 -75
  168. package/dist/esm/selection.helpers-883ce6bc.js.map +1 -0
  169. package/dist/esm/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  170. package/dist/esm/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +1 -1
  171. package/dist/esm/{viewport.helpers-6591d423.js → viewport.store-d9e291c5.js} +187 -3
  172. package/dist/esm/viewport.store-d9e291c5.js.map +1 -0
  173. package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -1
  174. package/dist/revo-grid/base.plugin-d0e589d8.js +5 -0
  175. package/dist/revo-grid/base.plugin-d0e589d8.js.map +1 -0
  176. package/dist/revo-grid/column.service-a826bbd6.js +5 -0
  177. package/dist/revo-grid/column.service-a826bbd6.js.map +1 -0
  178. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -1
  179. package/dist/revo-grid/events-77b43b40.js +5 -0
  180. package/dist/revo-grid/events-77b43b40.js.map +1 -0
  181. package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -1
  182. package/dist/revo-grid/{header-cell-renderer-7c76465d.js → header-cell-renderer-19738045.js} +2 -2
  183. package/dist/revo-grid/{header-cell-renderer-7c76465d.js.map → header-cell-renderer-19738045.js.map} +1 -1
  184. package/dist/revo-grid/index-5a722722.js +5 -0
  185. package/dist/{esm/index-98fd0168.js.map → revo-grid/index-5a722722.js.map} +1 -1
  186. package/dist/revo-grid/index.esm.js +1 -1
  187. package/dist/revo-grid/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  188. package/dist/revo-grid/key.utils-7c5d91dd.js.map +1 -0
  189. package/dist/revo-grid/revo-grid.entry.js +1 -1
  190. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  191. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  192. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  193. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  194. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  195. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  196. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  197. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  198. package/dist/revo-grid/selection.helpers-883ce6bc.js +5 -0
  199. package/dist/revo-grid/selection.helpers-883ce6bc.js.map +1 -0
  200. package/dist/revo-grid/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  201. package/dist/revo-grid/viewport.store-d9e291c5.js +5 -0
  202. package/dist/revo-grid/viewport.store-d9e291c5.js.map +1 -0
  203. package/dist/types/components/clipboard/revogr-clipboard.d.ts +1 -1
  204. package/dist/types/components/data/cell-renderer.d.ts +1 -1
  205. package/dist/types/components/data/column.service.d.ts +4 -4
  206. package/dist/types/components/data/revogr-data.d.ts +4 -4
  207. package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
  208. package/dist/types/components/editors/edit.utils.d.ts +1 -1
  209. package/dist/types/components/editors/revogr-edit.d.ts +2 -2
  210. package/dist/types/components/editors/text-editor.d.ts +2 -2
  211. package/dist/types/components/header/header-cell-renderer.d.ts +1 -1
  212. package/dist/types/components/header/header-renderer.d.ts +2 -2
  213. package/dist/types/components/header/revogr-header.d.ts +4 -4
  214. package/dist/types/components/order/order-renderer.d.ts +2 -2
  215. package/dist/types/components/order/order-row.service.d.ts +1 -2
  216. package/dist/types/components/order/revogr-order-editor.d.ts +4 -4
  217. package/dist/types/components/overlay/autofill.service.d.ts +2 -4
  218. package/dist/types/components/overlay/keyboard.service.d.ts +2 -2
  219. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +5 -5
  220. package/dist/types/components/overlay/selection.utils.d.ts +1 -2
  221. package/dist/types/components/revoGrid/grid.helpers.d.ts +1 -1
  222. package/dist/types/components/revoGrid/revo-grid.d.ts +6 -6
  223. package/dist/types/components/revoGrid/viewport.helpers.d.ts +3 -3
  224. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +1 -3
  225. package/dist/types/components/revoGrid/viewport.service.d.ts +1 -4
  226. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +1 -2
  227. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  228. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -2
  229. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -2
  230. package/dist/types/components/selectionFocus/revogr-focus.d.ts +3 -5
  231. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -2
  232. package/dist/types/components/vnode/vnode.utils.d.ts +1 -1
  233. package/dist/types/components.d.ts +4 -14
  234. package/dist/types/index.d.ts +2 -12
  235. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  236. package/dist/types/plugins/export/types.d.ts +1 -1
  237. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  238. package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
  239. package/dist/types/plugins/filter/filter.pop.d.ts +1 -1
  240. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -4
  241. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +3 -3
  242. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  243. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +1 -1
  244. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
  245. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  246. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +1 -1
  247. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  248. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
  249. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +1 -3
  250. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -3
  251. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  252. package/dist/types/services/column.data.provider.d.ts +2 -3
  253. package/dist/types/services/data.provider.d.ts +2 -5
  254. package/dist/types/services/dimension.provider.d.ts +2 -4
  255. package/dist/types/services/selection.store.connector.d.ts +2 -3
  256. package/dist/types/services/viewport.provider.d.ts +3 -3
  257. package/dist/types/store/dataSource/data.proxy.d.ts +2 -2
  258. package/dist/types/store/dataSource/data.store.d.ts +3 -3
  259. package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
  260. package/dist/types/store/dimension/dimension.helpers.d.ts +1 -1
  261. package/dist/types/store/dimension/dimension.store.d.ts +4 -5
  262. package/dist/types/store/{storeTypes.d.ts → index.d.ts} +5 -1
  263. package/dist/types/store/selection/selection.helpers.d.ts +1 -1
  264. package/dist/types/store/selection/selection.store.d.ts +2 -2
  265. package/dist/types/store/vp/index.d.ts +7 -0
  266. package/dist/types/store/{viewport → vp}/viewport.helpers.d.ts +1 -1
  267. package/dist/types/store/{viewport → vp}/viewport.store.d.ts +3 -7
  268. package/dist/types/types/index.d.ts +7 -0
  269. package/dist/types/types/viewport.interfaces.d.ts +5 -8
  270. package/dist/types/utils/index.d.ts +0 -1
  271. package/dist/types/utils/store.utils.d.ts +1 -1
  272. package/hydrate/index.js +3169 -3167
  273. package/package.json +5 -5
  274. package/readme.md +8 -8
  275. package/standalone/_baseIteratee.js +1104 -13
  276. package/standalone/_baseIteratee.js.map +1 -1
  277. package/standalone/_nodeUtil.js +260 -0
  278. package/standalone/_nodeUtil.js.map +1 -0
  279. package/standalone/column.service.js +78 -74
  280. package/standalone/column.service.js.map +1 -1
  281. package/standalone/data.store.js +2 -4
  282. package/standalone/data.store.js.map +1 -1
  283. package/standalone/debounce.js +2 -2
  284. package/standalone/dimension.helpers.js +1 -1
  285. package/standalone/dimension.helpers.js.map +1 -1
  286. package/standalone/filter.button.js.map +1 -1
  287. package/standalone/identity.js +42 -2
  288. package/standalone/identity.js.map +1 -1
  289. package/standalone/index.js +5 -7
  290. package/standalone/index.js.map +1 -1
  291. package/standalone/index2.js +2 -3
  292. package/standalone/index2.js.map +1 -1
  293. package/standalone/isObjectLike.js +1 -34
  294. package/standalone/isObjectLike.js.map +1 -1
  295. package/standalone/revo-grid.js +100 -98
  296. package/standalone/revo-grid.js.map +1 -1
  297. package/standalone/revogr-clipboard2.js.map +1 -1
  298. package/standalone/revogr-data2.js +3 -0
  299. package/standalone/revogr-data2.js.map +1 -1
  300. package/standalone/revogr-edit2.js +1 -1
  301. package/standalone/revogr-edit2.js.map +1 -1
  302. package/standalone/revogr-filter-panel.js.map +1 -1
  303. package/standalone/revogr-focus2.js +6 -2
  304. package/standalone/revogr-focus2.js.map +1 -1
  305. package/standalone/revogr-header2.js +5 -4
  306. package/standalone/revogr-header2.js.map +1 -1
  307. package/standalone/revogr-order-editor2.js +3 -0
  308. package/standalone/revogr-order-editor2.js.map +1 -1
  309. package/standalone/revogr-overlay-selection2.js +4 -1
  310. package/standalone/revogr-overlay-selection2.js.map +1 -1
  311. package/standalone/revogr-row-headers2.js +5 -5
  312. package/standalone/revogr-row-headers2.js.map +1 -1
  313. package/standalone/revogr-scroll-virtual2.js +1 -1
  314. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  315. package/standalone/revogr-temp-range2.js.map +1 -1
  316. package/standalone/revogr-viewport-scroll2.js +1 -1
  317. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  318. package/standalone/selection.utils.js +4 -0
  319. package/standalone/selection.utils.js.map +1 -1
  320. package/standalone/throttle.js +1 -1
  321. package/standalone/toNumber.js +35 -2
  322. package/standalone/toNumber.js.map +1 -1
  323. package/dist/cjs/column.service-bc269420.js.map +0 -1
  324. package/dist/cjs/events-f8893bba.js +0 -243
  325. package/dist/cjs/events-f8893bba.js.map +0 -1
  326. package/dist/cjs/index-73c149e3.js.map +0 -1
  327. package/dist/cjs/selection.store-2e110a67.js.map +0 -1
  328. package/dist/cjs/storeTypes-b3f924b2.js +0 -106
  329. package/dist/cjs/storeTypes-b3f924b2.js.map +0 -1
  330. package/dist/cjs/viewport.helpers-6670177c.js.map +0 -1
  331. package/dist/collection/store/storeTypes.js.map +0 -1
  332. package/dist/collection/store/viewport/index.js.map +0 -1
  333. package/dist/collection/store/viewport/viewport.helpers.js.map +0 -1
  334. package/dist/collection/store/viewport/viewport.store.js.map +0 -1
  335. package/dist/esm/column.service-195345ab.js.map +0 -1
  336. package/dist/esm/events-3e39de50.js +0 -238
  337. package/dist/esm/events-3e39de50.js.map +0 -1
  338. package/dist/esm/selection.store-2577ddf9.js.map +0 -1
  339. package/dist/esm/storeTypes-f2647985.js +0 -101
  340. package/dist/esm/storeTypes-f2647985.js.map +0 -1
  341. package/dist/esm/viewport.helpers-6591d423.js.map +0 -1
  342. package/dist/revo-grid/column.service-195345ab.js +0 -5
  343. package/dist/revo-grid/column.service-195345ab.js.map +0 -1
  344. package/dist/revo-grid/events-3e39de50.js +0 -5
  345. package/dist/revo-grid/events-3e39de50.js.map +0 -1
  346. package/dist/revo-grid/index-98fd0168.js +0 -5
  347. package/dist/revo-grid/index-98fd0168.js.map +0 -1
  348. package/dist/revo-grid/key.utils-2836e8ae.js.map +0 -1
  349. package/dist/revo-grid/selection.store-2577ddf9.js +0 -5
  350. package/dist/revo-grid/selection.store-2577ddf9.js.map +0 -1
  351. package/dist/revo-grid/storeTypes-f2647985.js +0 -5
  352. package/dist/revo-grid/storeTypes-f2647985.js.map +0 -1
  353. package/dist/revo-grid/viewport.helpers-6591d423.js +0 -5
  354. package/dist/revo-grid/viewport.helpers-6591d423.js.map +0 -1
  355. package/dist/types/store/viewport/index.d.ts +0 -2
  356. package/standalone/_stringToPath.js +0 -1389
  357. package/standalone/_stringToPath.js.map +0 -1
  358. /package/dist/collection/store/{viewport → vp}/index.js +0 -0
  359. /package/dist/collection/store/{viewport → vp}/viewport.helpers.js +0 -0
  360. /package/dist/revo-grid/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"header-renderer.js","sourceRoot":"","sources":["../../../src/components/header/header-renderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { FilterButton } from '../../plugins/filter/filter.button';\nimport { SortingSign } from '../../plugins/sorting/sorting.sign';\nimport { ResizeEvent, ResizeProps } from '../../services/resizable.directive';\nimport { DATA_COL, FOCUS_CLASS, HEADER_CLASS, HEADER_SORTABLE_CLASS, MIN_COL_SIZE } from '../../utils/consts';\nimport { HeaderCellRenderer } from './header-cell-renderer';\nimport { VirtualPositionItem, ColumnTemplateProp, InitialHeaderClick, CellProps } from '../../types/interfaces';\nimport { RangeArea } from '../../types/selection';\n\ntype Props = {\n column: VirtualPositionItem;\n additionalData: any;\n data?: ColumnTemplateProp;\n range?: RangeArea;\n canResize?: boolean;\n canFilter?: boolean;\n onResize?(e: ResizeEvent): void;\n onClick?(data: InitialHeaderClick): void;\n onDoubleClick?(data: InitialHeaderClick): void;\n} & Partial<Pick<ResizeProps, 'active'>>;\n\nconst HeaderRenderer = (p: Props): VNode => {\n const cellClass: { [key: string]: boolean } = {\n [HEADER_CLASS]: true,\n [HEADER_SORTABLE_CLASS]: !!p.data?.sortable,\n };\n if (p.data?.order) {\n cellClass[p.data.order] = true;\n }\n const dataProps: CellProps & Partial<ResizeProps> = {\n [DATA_COL]: p.column.itemIndex,\n canResize: p.canResize,\n minWidth: p.data?.minSize || MIN_COL_SIZE,\n maxWidth: p.data?.maxSize,\n active: p.active || ['r'],\n class: cellClass,\n style: { width: `${p.column.size}px`, transform: `translateX(${p.column.start}px)` },\n onResize: p.onResize,\n onDoubleClick(originalEvent: MouseEvent) {\n p.onDoubleClick({ column: p.data, index: p.column.itemIndex, originalEvent });\n },\n onClick(originalEvent: MouseEvent) {\n if (originalEvent.defaultPrevented || !p.onClick) {\n return;\n }\n p.onClick({ column: p.data, index: p.column.itemIndex, originalEvent });\n },\n };\n if (p.range) {\n if (p.column.itemIndex >= p.range.x && p.column.itemIndex <= p.range.x1) {\n if (typeof dataProps.class === 'object') {\n dataProps.class[FOCUS_CLASS] = true;\n }\n }\n }\n return (\n <HeaderCellRenderer data={p.data} props={dataProps} additionalData={p.additionalData}>\n {p.data?.order ? <SortingSign column={p.data} /> : ''}\n {p.canFilter && p.data?.filter !== false ? <FilterButton column={p.data} /> : ''}\n </HeaderCellRenderer>\n );\n};\n\nexport default HeaderRenderer;\n"]}
1
+ {"version":3,"file":"header-renderer.js","sourceRoot":"","sources":["../../../src/components/header/header-renderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { FilterButton } from '../../plugins/filter/filter.button';\nimport { SortingSign } from '../../plugins/sorting/sorting.sign';\nimport { ResizeEvent, ResizeProps } from '../../services/resizable.directive';\nimport { DATA_COL, FOCUS_CLASS, HEADER_CLASS, HEADER_SORTABLE_CLASS, MIN_COL_SIZE } from '../../utils/consts';\nimport { HeaderCellRenderer } from './header-cell-renderer';\nimport { VirtualPositionItem, ColumnTemplateProp, InitialHeaderClick, CellProps } from '@type';\nimport { RangeArea } from '@type';\n\ntype Props = {\n column: VirtualPositionItem;\n additionalData: any;\n data?: ColumnTemplateProp;\n range?: RangeArea;\n canResize?: boolean;\n canFilter?: boolean;\n onResize?(e: ResizeEvent): void;\n onClick?(data: InitialHeaderClick): void;\n onDoubleClick?(data: InitialHeaderClick): void;\n} & Partial<Pick<ResizeProps, 'active'>>;\n\nconst HeaderRenderer = (p: Props): VNode => {\n const cellClass: { [key: string]: boolean } = {\n [HEADER_CLASS]: true,\n [HEADER_SORTABLE_CLASS]: !!p.data?.sortable,\n };\n if (p.data?.order) {\n cellClass[p.data.order] = true;\n }\n const dataProps: CellProps & Partial<ResizeProps> = {\n [DATA_COL]: p.column.itemIndex,\n canResize: p.canResize,\n minWidth: p.data?.minSize || MIN_COL_SIZE,\n maxWidth: p.data?.maxSize,\n active: p.active || ['r'],\n class: cellClass,\n style: { width: `${p.column.size}px`, transform: `translateX(${p.column.start}px)` },\n onResize: p.onResize,\n onDoubleClick(originalEvent: MouseEvent) {\n p.onDoubleClick({ column: p.data, index: p.column.itemIndex, originalEvent });\n },\n onClick(originalEvent: MouseEvent) {\n if (originalEvent.defaultPrevented || !p.onClick) {\n return;\n }\n p.onClick({ column: p.data, index: p.column.itemIndex, originalEvent });\n },\n };\n if (p.range) {\n if (p.column.itemIndex >= p.range.x && p.column.itemIndex <= p.range.x1) {\n if (typeof dataProps.class === 'object') {\n dataProps.class[FOCUS_CLASS] = true;\n }\n }\n }\n return (\n <HeaderCellRenderer data={p.data} props={dataProps} additionalData={p.additionalData}>\n {p.data?.order ? <SortingSign column={p.data} /> : ''}\n {p.canFilter && p.data?.filter !== false ? <FilterButton column={p.data} /> : ''}\n </HeaderCellRenderer>\n );\n};\n\nexport default HeaderRenderer;\n"]}
@@ -56,8 +56,8 @@ export class RevogrHeaderComponent {
56
56
  visibleProps[colData === null || colData === void 0 ? void 0 : colData.prop] = rgCol.itemIndex;
57
57
  }
58
58
  return [
59
- h("div", { key: '186c9ac48cd47c05c558772de450b4fb1e022510', class: "group-rgRow" }, h(ColumnGroupsRenderer, { key: '811b7b296e9f8835d744bb3d544d62e2c9a62234', canResize: this.canResize, active: this.resizeHandler, visibleProps: visibleProps, providers: this.providers, groups: this.groups, dimensionCol: this.dimensionCol.state, depth: this.groupingDepth, onResize: (changedX, startIndex, endIndex) => this.onResizeGroup(changedX, startIndex, endIndex), additionalData: this.additionalData })),
60
- h("div", { key: '9077358e7cc8e72f4d4845dfb13b48e7839f7230', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
59
+ h("div", { key: '346967e82d0d9d9f7f0310f7e5827a34c0ac4e5e', class: "group-rgRow" }, h(ColumnGroupsRenderer, { key: '82a8d6ad81f6432d26a680680a8b077fea6ba3cc', canResize: this.canResize, active: this.resizeHandler, visibleProps: visibleProps, providers: this.providers, groups: this.groups, dimensionCol: this.dimensionCol.state, depth: this.groupingDepth, onResize: (changedX, startIndex, endIndex) => this.onResizeGroup(changedX, startIndex, endIndex), additionalData: this.additionalData })),
60
+ h("div", { key: '513119463e5e51caaa79a738f856bc3c1540564f', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
61
61
  ];
62
62
  }
63
63
  get providers() {
@@ -92,13 +92,13 @@ export class RevogrHeaderComponent {
92
92
  "references": {
93
93
  "Observable": {
94
94
  "location": "import",
95
- "path": "../../types/interfaces",
96
- "id": "src/types/interfaces.ts::Observable"
95
+ "path": "@type",
96
+ "id": "src/types/index.ts::Observable"
97
97
  },
98
98
  "ViewportState": {
99
99
  "location": "import",
100
- "path": "../../types/interfaces",
101
- "id": "src/types/interfaces.ts::ViewportState"
100
+ "path": "@type",
101
+ "id": "src/types/index.ts::ViewportState"
102
102
  }
103
103
  }
104
104
  },
@@ -118,13 +118,13 @@ export class RevogrHeaderComponent {
118
118
  "references": {
119
119
  "Observable": {
120
120
  "location": "import",
121
- "path": "../../types/interfaces",
122
- "id": "src/types/interfaces.ts::Observable"
121
+ "path": "@type",
122
+ "id": "src/types/index.ts::Observable"
123
123
  },
124
124
  "DimensionSettingsState": {
125
125
  "location": "import",
126
- "path": "../../types/interfaces",
127
- "id": "src/types/interfaces.ts::DimensionSettingsState"
126
+ "path": "@type",
127
+ "id": "src/types/index.ts::DimensionSettingsState"
128
128
  }
129
129
  }
130
130
  },
@@ -144,13 +144,13 @@ export class RevogrHeaderComponent {
144
144
  "references": {
145
145
  "Observable": {
146
146
  "location": "import",
147
- "path": "../../types/interfaces",
148
- "id": "src/types/interfaces.ts::Observable"
147
+ "path": "@type",
148
+ "id": "src/types/index.ts::Observable"
149
149
  },
150
150
  "SelectionStoreState": {
151
151
  "location": "import",
152
- "path": "../../types/selection",
153
- "id": "src/types/selection.ts::SelectionStoreState"
152
+ "path": "@type",
153
+ "id": "src/types/index.ts::SelectionStoreState"
154
154
  }
155
155
  }
156
156
  },
@@ -170,8 +170,8 @@ export class RevogrHeaderComponent {
170
170
  "references": {
171
171
  "Groups": {
172
172
  "location": "import",
173
- "path": "../../store/dataSource/data.store",
174
- "id": "src/store/dataSource/data.store.ts::Groups"
173
+ "path": "@store",
174
+ "id": "src/store/index.ts::Groups"
175
175
  }
176
176
  }
177
177
  },
@@ -264,8 +264,8 @@ export class RevogrHeaderComponent {
264
264
  "references": {
265
265
  "ColumnRegular": {
266
266
  "location": "import",
267
- "path": "../../types/interfaces",
268
- "id": "src/types/interfaces.ts::ColumnRegular"
267
+ "path": "@type",
268
+ "id": "src/types/index.ts::ColumnRegular"
269
269
  }
270
270
  }
271
271
  },
@@ -302,8 +302,8 @@ export class RevogrHeaderComponent {
302
302
  "references": {
303
303
  "DimensionCols": {
304
304
  "location": "import",
305
- "path": "../../types/dimension",
306
- "id": "src/types/dimension.ts::DimensionCols"
305
+ "path": "@type",
306
+ "id": "src/types/index.ts::DimensionCols"
307
307
  }
308
308
  }
309
309
  },
@@ -353,8 +353,8 @@ export class RevogrHeaderComponent {
353
353
  "references": {
354
354
  "InitialHeaderClick": {
355
355
  "location": "import",
356
- "path": "../../types/interfaces",
357
- "id": "src/types/interfaces.ts::InitialHeaderClick"
356
+ "path": "@type",
357
+ "id": "src/types/index.ts::InitialHeaderClick"
358
358
  }
359
359
  }
360
360
  }
@@ -374,8 +374,8 @@ export class RevogrHeaderComponent {
374
374
  "references": {
375
375
  "ViewSettingSizeProp": {
376
376
  "location": "import",
377
- "path": "../../types/interfaces",
378
- "id": "src/types/interfaces.ts::ViewSettingSizeProp"
377
+ "path": "@type",
378
+ "id": "src/types/index.ts::ViewSettingSizeProp"
379
379
  }
380
380
  }
381
381
  }
@@ -395,8 +395,8 @@ export class RevogrHeaderComponent {
395
395
  "references": {
396
396
  "ColumnRegular": {
397
397
  "location": "import",
398
- "path": "../../types/interfaces",
399
- "id": "src/types/interfaces.ts::ColumnRegular"
398
+ "path": "@type",
399
+ "id": "src/types/index.ts::ColumnRegular"
400
400
  }
401
401
  }
402
402
  }
@@ -416,8 +416,8 @@ export class RevogrHeaderComponent {
416
416
  "references": {
417
417
  "InitialHeaderClick": {
418
418
  "location": "import",
419
- "path": "../../types/interfaces",
420
- "id": "src/types/interfaces.ts::InitialHeaderClick"
419
+ "path": "@type",
420
+ "id": "src/types/index.ts::InitialHeaderClick"
421
421
  }
422
422
  }
423
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"revogr-header.js","sourceRoot":"","sources":["../../../src/components/header/revogr-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { HTMLStencilElement, VNode } from '@stencil/core/internal';\nimport keyBy from 'lodash/keyBy';\n\nimport { HEADER_ACTUAL_ROW_CLASS, HEADER_ROW_CLASS } from '../../utils/consts';\nimport { Groups } from '../../store/dataSource/data.store';\nimport HeaderRenderer from './header-renderer';\nimport ColumnGroupsRenderer from '../../plugins/groupingColumn/columnGroupsRenderer';\nimport { ResizeProps } from '../../services/resizable.directive';\nimport {\n ColumnRegular,\n DimensionSettingsState,\n InitialHeaderClick,\n Observable,\n Providers,\n ViewportState,\n ViewSettingSizeProp,\n} from '../../types/interfaces';\nimport { DimensionCols } from '../../types/dimension';\nimport { SelectionStoreState } from '../../types/selection';\n\n@Component({\n tag: 'revogr-header',\n styleUrl: 'revogr-header-style.scss',\n})\nexport class RevogrHeaderComponent {\n // #region Properties\n /**\n * Stores\n */\n /** Viewport X */\n @Prop() viewportCol: Observable<ViewportState>;\n /** Dimension settings X */\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\n /** Selection, range, focus */\n @Prop() selectionStore: Observable<SelectionStoreState>;\n\n /**\n * Column groups\n */\n @Prop() groups: Groups;\n /**\n * Grouping depth, how many levels of grouping\n */\n @Prop() groupingDepth = 0;\n\n /**\n * Readonly mode\n */\n @Prop() readonly: boolean;\n /**\n * If columns can be resized\n */\n @Prop() canResize: boolean;\n /**\n * Defines resize position\n */\n @Prop() resizeHandler: ResizeProps['active'];\n\n /**\n * Columns - defines an array of grid columns.\n */\n @Prop() colData: ColumnRegular[];\n\n /**\n * Column filter\n */\n @Prop() columnFilter: boolean;\n\n /**\n * Column type\n */\n @Prop() type!: DimensionCols | 'rowHeaders';\n\n /**\n * Extra properties to pass into header renderer, such as vue or react components to handle parent\n */\n @Prop() additionalData: any = {};\n // #endregion\n\n // #region Events\n\n /**\n * On initial header click\n */\n @Event({\n eventName: 'beforeheaderclick',\n })\n initialHeaderClick: EventEmitter<InitialHeaderClick>;\n\n /**\n * On header resize\n */\n @Event({\n eventName: 'headerresize',\n })\n headerresize: EventEmitter<ViewSettingSizeProp>;\n\n /**\n * On before header resize\n */\n @Event({ eventName: 'beforeheaderresize', cancelable: true })\n beforeResize: EventEmitter<ColumnRegular[]>;\n\n /**\n * On header double click\n */\n @Event({\n eventName: 'headerdblclick',\n })\n headerdblClick: EventEmitter<InitialHeaderClick>;\n // #endregion\n\n @Element() element!: HTMLStencilElement;\n\n private onResize({ width }: { width?: number }, index: number) {\n const col = this.colData[index];\n const event = this.beforeResize.emit([\n {\n ...col,\n size: width || undefined,\n },\n ]);\n if (event.defaultPrevented) {\n return;\n }\n this.headerresize.emit({ [index]: width || 0 });\n }\n\n private onResizeGroup(\n changedX: number,\n startIndex: number,\n endIndex: number,\n ) {\n const sizes: ViewSettingSizeProp = {};\n const cols = keyBy(this.viewportCol.get('items'), 'itemIndex');\n const change = changedX / (endIndex - startIndex + 1);\n for (let i = startIndex; i <= endIndex; i++) {\n const item = cols[i];\n if (item) {\n sizes[i] = item.size + change;\n }\n }\n this.headerresize.emit(sizes);\n }\n\n render() {\n const cols = this.viewportCol.get('items');\n const range = this.selectionStore?.get('range');\n const cells: VNode[] = [];\n const visibleProps: { [prop: string]: number } = {};\n\n // render header columns\n for (let rgCol of cols) {\n const colData = this.colData[rgCol.itemIndex];\n cells.push(\n <HeaderRenderer\n range={range}\n column={rgCol}\n data={{\n ...colData,\n index: rgCol.itemIndex,\n providers: this.providers,\n }}\n canFilter={!!this.columnFilter}\n canResize={this.canResize}\n active={this.resizeHandler}\n onResize={e => this.onResize(e, rgCol.itemIndex)}\n onDoubleClick={e => this.headerdblClick.emit(e)}\n onClick={e => this.initialHeaderClick.emit(e)}\n additionalData={this.additionalData}\n />,\n );\n visibleProps[colData?.prop] = rgCol.itemIndex;\n }\n\n return [\n <div class=\"group-rgRow\">\n <ColumnGroupsRenderer\n canResize={this.canResize}\n active={this.resizeHandler}\n visibleProps={visibleProps}\n providers={this.providers}\n groups={this.groups}\n dimensionCol={this.dimensionCol.state}\n depth={this.groupingDepth}\n onResize={(changedX, startIndex, endIndex) =>\n this.onResizeGroup(changedX, startIndex, endIndex)\n }\n additionalData={this.additionalData}\n />\n </div>,\n <div class={`${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}`}>\n {cells}\n </div>,\n ];\n }\n\n get providers(): Providers<DimensionCols | 'rowHeaders'> {\n return {\n type: this.type,\n readonly: this.readonly,\n data: this.colData,\n viewport: this.viewportCol,\n dimension: this.dimensionCol,\n selection: this.selectionStore,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"revogr-header.js","sourceRoot":"","sources":["../../../src/components/header/revogr-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { HTMLStencilElement, VNode } from '@stencil/core/internal';\nimport keyBy from 'lodash/keyBy';\n\nimport { HEADER_ACTUAL_ROW_CLASS, HEADER_ROW_CLASS } from '../../utils/consts';\nimport { Groups } from '@store';\nimport HeaderRenderer from './header-renderer';\nimport ColumnGroupsRenderer from '../../plugins/groupingColumn/columnGroupsRenderer';\nimport { ResizeProps } from '../../services/resizable.directive';\nimport {\n ColumnRegular,\n DimensionSettingsState,\n InitialHeaderClick,\n Observable,\n Providers,\n ViewportState,\n ViewSettingSizeProp,\n} from '@type';\nimport { DimensionCols } from '@type';\nimport { SelectionStoreState } from '@type';\n\n@Component({\n tag: 'revogr-header',\n styleUrl: 'revogr-header-style.scss',\n})\nexport class RevogrHeaderComponent {\n // #region Properties\n /**\n * Stores\n */\n /** Viewport X */\n @Prop() viewportCol: Observable<ViewportState>;\n /** Dimension settings X */\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\n /** Selection, range, focus */\n @Prop() selectionStore: Observable<SelectionStoreState>;\n\n /**\n * Column groups\n */\n @Prop() groups: Groups;\n /**\n * Grouping depth, how many levels of grouping\n */\n @Prop() groupingDepth = 0;\n\n /**\n * Readonly mode\n */\n @Prop() readonly: boolean;\n /**\n * If columns can be resized\n */\n @Prop() canResize: boolean;\n /**\n * Defines resize position\n */\n @Prop() resizeHandler: ResizeProps['active'];\n\n /**\n * Columns - defines an array of grid columns.\n */\n @Prop() colData: ColumnRegular[];\n\n /**\n * Column filter\n */\n @Prop() columnFilter: boolean;\n\n /**\n * Column type\n */\n @Prop() type!: DimensionCols | 'rowHeaders';\n\n /**\n * Extra properties to pass into header renderer, such as vue or react components to handle parent\n */\n @Prop() additionalData: any = {};\n // #endregion\n\n // #region Events\n\n /**\n * On initial header click\n */\n @Event({\n eventName: 'beforeheaderclick',\n })\n initialHeaderClick: EventEmitter<InitialHeaderClick>;\n\n /**\n * On header resize\n */\n @Event({\n eventName: 'headerresize',\n })\n headerresize: EventEmitter<ViewSettingSizeProp>;\n\n /**\n * On before header resize\n */\n @Event({ eventName: 'beforeheaderresize', cancelable: true })\n beforeResize: EventEmitter<ColumnRegular[]>;\n\n /**\n * On header double click\n */\n @Event({\n eventName: 'headerdblclick',\n })\n headerdblClick: EventEmitter<InitialHeaderClick>;\n // #endregion\n\n @Element() element!: HTMLStencilElement;\n\n private onResize({ width }: { width?: number }, index: number) {\n const col = this.colData[index];\n const event = this.beforeResize.emit([\n {\n ...col,\n size: width || undefined,\n },\n ]);\n if (event.defaultPrevented) {\n return;\n }\n this.headerresize.emit({ [index]: width || 0 });\n }\n\n private onResizeGroup(\n changedX: number,\n startIndex: number,\n endIndex: number,\n ) {\n const sizes: ViewSettingSizeProp = {};\n const cols = keyBy(this.viewportCol.get('items'), 'itemIndex');\n const change = changedX / (endIndex - startIndex + 1);\n for (let i = startIndex; i <= endIndex; i++) {\n const item = cols[i];\n if (item) {\n sizes[i] = item.size + change;\n }\n }\n this.headerresize.emit(sizes);\n }\n\n render() {\n const cols = this.viewportCol.get('items');\n const range = this.selectionStore?.get('range');\n const cells: VNode[] = [];\n const visibleProps: { [prop: string]: number } = {};\n\n // render header columns\n for (let rgCol of cols) {\n const colData = this.colData[rgCol.itemIndex];\n cells.push(\n <HeaderRenderer\n range={range}\n column={rgCol}\n data={{\n ...colData,\n index: rgCol.itemIndex,\n providers: this.providers,\n }}\n canFilter={!!this.columnFilter}\n canResize={this.canResize}\n active={this.resizeHandler}\n onResize={e => this.onResize(e, rgCol.itemIndex)}\n onDoubleClick={e => this.headerdblClick.emit(e)}\n onClick={e => this.initialHeaderClick.emit(e)}\n additionalData={this.additionalData}\n />,\n );\n visibleProps[colData?.prop] = rgCol.itemIndex;\n }\n\n return [\n <div class=\"group-rgRow\">\n <ColumnGroupsRenderer\n canResize={this.canResize}\n active={this.resizeHandler}\n visibleProps={visibleProps}\n providers={this.providers}\n groups={this.groups}\n dimensionCol={this.dimensionCol.state}\n depth={this.groupingDepth}\n onResize={(changedX, startIndex, endIndex) =>\n this.onResizeGroup(changedX, startIndex, endIndex)\n }\n additionalData={this.additionalData}\n />\n </div>,\n <div class={`${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}`}>\n {cells}\n </div>,\n ];\n }\n\n get providers(): Providers<DimensionCols | 'rowHeaders'> {\n return {\n type: this.type,\n readonly: this.readonly,\n data: this.colData,\n viewport: this.viewportCol,\n dimension: this.dimensionCol,\n selection: this.selectionStore,\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"order-renderer.js","sourceRoot":"","sources":["../../../src/components/order/order-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAMzC;;GAEG;AACH,MAAM,OAAO,cAAc;IAA3B;QACU,YAAO,GAAG,CAAC,CAAC;IAoCtB,CAAC;IA9BC,KAAK,CAAC,MAAmB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAA0D;;QACrG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,MAAA,IAAI,CAAC,EAAE,0CAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,GAAG;;QACD,MAAA,IAAI,CAAC,EAAE,0CAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,GAAiB;QACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACtC,CAAC;IAEO,WAAW,CAAC,CAAS;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;IACpD,CAAC;CACF;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,EAAS,EAAW,EAAE;IAChD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,GAAG,CAAC,OAAO,CAAC,CAAC;IACb,OAAO,CACL,WAAK,KAAK,EAAC,0BAA0B,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,WAAK,KAAK,EAAC,WAAW,EAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;YACxD,YAAM,KAAK,EAAC,eAAe,GAAG;YAC9B,YAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAI,CAClC;QACN,WAAK,KAAK,EAAC,eAAe,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAI,CACxD,CACP,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,aAAa,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { PositionItem } from '../../types/interfaces';\nimport { Cell } from '../../types/selection';\n\ntype Props = { ref: { (e: OrdererService): void } };\n\n/**\n * Draw drag\n */\nexport class OrdererService {\n private parentY = 0;\n el!: HTMLElement;\n rgRow!: HTMLElement;\n text!: HTMLElement;\n draggable!: HTMLElement;\n\n start(parent: HTMLElement, { pos, text, event }: { pos: PositionItem; text: string; event: MouseEvent }) {\n const { top } = parent.getBoundingClientRect();\n this.parentY = top;\n if (this.text) {\n this.text.innerText = text;\n }\n this.move(pos);\n this.moveTip({ x: event.x, y: event.y });\n this.el?.classList.remove('hidden');\n }\n end() {\n this.el?.classList.add('hidden');\n }\n move(pos: PositionItem) {\n this.moveElement(pos.end - this.parentY);\n }\n moveTip({ x, y }: Cell) {\n if (!this.draggable) {\n return;\n }\n this.draggable.style.left = `${x}px`;\n this.draggable.style.top = `${y}px`;\n }\n\n private moveElement(y: number) {\n if (!this.rgRow) {\n return;\n }\n this.rgRow.style.transform = `translateY(${y}px)`;\n }\n}\n\nconst OrderRenderer = ({ ref }: Props): VNode[] => {\n const service = new OrdererService();\n ref(service);\n return (\n <div class=\"draggable-wrapper hidden\" ref={e => (service.el = e)}>\n <div class=\"draggable\" ref={el => (service.draggable = el)}>\n <span class=\"revo-alt-icon\" />\n <span ref={e => (service.text = e)} />\n </div>\n <div class=\"drag-position\" ref={e => (service.rgRow = e)} />\n </div>\n );\n};\nexport default OrderRenderer;\n"]}
1
+ {"version":3,"file":"order-renderer.js","sourceRoot":"","sources":["../../../src/components/order/order-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAMzC;;GAEG;AACH,MAAM,OAAO,cAAc;IAA3B;QACU,YAAO,GAAG,CAAC,CAAC;IAoCtB,CAAC;IA9BC,KAAK,CAAC,MAAmB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAA0D;;QACrG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,MAAA,IAAI,CAAC,EAAE,0CAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,GAAG;;QACD,MAAA,IAAI,CAAC,EAAE,0CAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,GAAiB;QACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACtC,CAAC;IAEO,WAAW,CAAC,CAAS;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;IACpD,CAAC;CACF;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,EAAS,EAAW,EAAE;IAChD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,GAAG,CAAC,OAAO,CAAC,CAAC;IACb,OAAO,CACL,WAAK,KAAK,EAAC,0BAA0B,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,WAAK,KAAK,EAAC,WAAW,EAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;YACxD,YAAM,KAAK,EAAC,eAAe,GAAG;YAC9B,YAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAI,CAClC;QACN,WAAK,KAAK,EAAC,eAAe,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAI,CACxD,CACP,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,aAAa,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { PositionItem } from '@type';\nimport { Cell } from '@type';\n\ntype Props = { ref: { (e: OrdererService): void } };\n\n/**\n * Draw drag\n */\nexport class OrdererService {\n private parentY = 0;\n el!: HTMLElement;\n rgRow!: HTMLElement;\n text!: HTMLElement;\n draggable!: HTMLElement;\n\n start(parent: HTMLElement, { pos, text, event }: { pos: PositionItem; text: string; event: MouseEvent }) {\n const { top } = parent.getBoundingClientRect();\n this.parentY = top;\n if (this.text) {\n this.text.innerText = text;\n }\n this.move(pos);\n this.moveTip({ x: event.x, y: event.y });\n this.el?.classList.remove('hidden');\n }\n end() {\n this.el?.classList.add('hidden');\n }\n move(pos: PositionItem) {\n this.moveElement(pos.end - this.parentY);\n }\n moveTip({ x, y }: Cell) {\n if (!this.draggable) {\n return;\n }\n this.draggable.style.left = `${x}px`;\n this.draggable.style.top = `${y}px`;\n }\n\n private moveElement(y: number) {\n if (!this.rgRow) {\n return;\n }\n this.rgRow.style.transform = `translateY(${y}px)`;\n }\n}\n\nconst OrderRenderer = ({ ref }: Props): VNode[] => {\n const service = new OrdererService();\n ref(service);\n return (\n <div class=\"draggable-wrapper hidden\" ref={e => (service.el = e)}>\n <div class=\"draggable\" ref={el => (service.draggable = el)}>\n <span class=\"revo-alt-icon\" />\n <span ref={e => (service.text = e)} />\n </div>\n <div class=\"drag-position\" ref={e => (service.rgRow = e)} />\n </div>\n );\n};\nexport default OrderRenderer;\n"]}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { getItemByPosition } from "../../store/dimension/dimension.helpers";
4
+ import { getItemByPosition } from "../../store/index";
5
5
  export default class RowOrderService {
6
6
  constructor(config) {
7
7
  this.config = config;
@@ -1 +1 @@
1
- {"version":3,"file":"order-row.service.js","sourceRoot":"","sources":["../../../src/components/order/order-row.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getItemByPosition } from '../../store/dimension/dimension.helpers';\nimport { DimensionSettingsState, PositionItem } from '../..';\nimport { Cell } from '../..';\n\ntype EventData = { el: HTMLElement; rows: DimensionSettingsState; cols: DimensionSettingsState };\ninterface Config {\n positionChanged(from: number, to: number): void;\n}\n\nexport default class RowOrderService {\n private currentCell: Cell | null = null;\n private previousRow: number | null = null;\n\n constructor(private config: Config) {}\n\n /** Drag finished, calculate and apply changes */\n endOrder(e: MouseEvent, data: EventData) {\n if (this.currentCell === null) {\n return;\n }\n const newRow = this.getCell(e, data);\n\n // if position changed\n if (newRow.y !== this.currentCell.y) {\n // rgRow dragged out table\n if (newRow.y < 0) {\n newRow.y = 0;\n }\n // rgRow dragged to the top\n else if (newRow.y < this.currentCell.y) {\n newRow.y++;\n }\n this.config.positionChanged(this.currentCell.y, newRow.y);\n }\n this.clear();\n }\n\n /** Drag started, reserve initial cell for farther use */\n startOrder(e: MouseEvent, data: EventData): Cell {\n this.currentCell = this.getCell(e, data);\n return this.currentCell;\n }\n\n move(y: number, data: EventData): PositionItem | null {\n const rgRow = this.getRow(y, data);\n // if rgRow same as previous or below range (-1 = 0) do nothing\n if (this.previousRow === rgRow.itemIndex || rgRow.itemIndex < -1) {\n return null;\n }\n this.previousRow = rgRow.itemIndex;\n return rgRow;\n }\n\n /** Drag stopped, probably cursor outside of document area */\n clear() {\n this.currentCell = null;\n this.previousRow = null;\n }\n\n /** Calculate cell based on x, y position */\n getRow(y: number, { el, rows }: EventData): PositionItem {\n const { top } = el.getBoundingClientRect();\n const topRelative = y - top;\n const rgRow = getItemByPosition(rows, topRelative);\n const absolutePosition = {\n itemIndex: rgRow.itemIndex,\n start: rgRow.start + top,\n end: rgRow.end + top,\n };\n return absolutePosition;\n }\n\n /** Calculate cell based on x, y position */\n getCell({ x, y }: Cell, { el, rows, cols }: EventData): Cell {\n const { top, left } = el.getBoundingClientRect();\n const topRelative = y - top;\n const leftRelative = x - left;\n const rgRow = getItemByPosition(rows, topRelative);\n const rgCol = getItemByPosition(cols, leftRelative);\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\n }\n}\n"]}
1
+ {"version":3,"file":"order-row.service.js","sourceRoot":"","sources":["../../../src/components/order/order-row.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getItemByPosition } from '@store';\nimport { DimensionSettingsState, PositionItem, Cell } from '@type';\n\ntype EventData = { el: HTMLElement; rows: DimensionSettingsState; cols: DimensionSettingsState };\ninterface Config {\n positionChanged(from: number, to: number): void;\n}\n\nexport default class RowOrderService {\n private currentCell: Cell | null = null;\n private previousRow: number | null = null;\n\n constructor(private config: Config) {}\n\n /** Drag finished, calculate and apply changes */\n endOrder(e: MouseEvent, data: EventData) {\n if (this.currentCell === null) {\n return;\n }\n const newRow = this.getCell(e, data);\n\n // if position changed\n if (newRow.y !== this.currentCell.y) {\n // rgRow dragged out table\n if (newRow.y < 0) {\n newRow.y = 0;\n }\n // rgRow dragged to the top\n else if (newRow.y < this.currentCell.y) {\n newRow.y++;\n }\n this.config.positionChanged(this.currentCell.y, newRow.y);\n }\n this.clear();\n }\n\n /** Drag started, reserve initial cell for farther use */\n startOrder(e: MouseEvent, data: EventData): Cell {\n this.currentCell = this.getCell(e, data);\n return this.currentCell;\n }\n\n move(y: number, data: EventData): PositionItem | null {\n const rgRow = this.getRow(y, data);\n // if rgRow same as previous or below range (-1 = 0) do nothing\n if (this.previousRow === rgRow.itemIndex || rgRow.itemIndex < -1) {\n return null;\n }\n this.previousRow = rgRow.itemIndex;\n return rgRow;\n }\n\n /** Drag stopped, probably cursor outside of document area */\n clear() {\n this.currentCell = null;\n this.previousRow = null;\n }\n\n /** Calculate cell based on x, y position */\n getRow(y: number, { el, rows }: EventData): PositionItem {\n const { top } = el.getBoundingClientRect();\n const topRelative = y - top;\n const rgRow = getItemByPosition(rows, topRelative);\n const absolutePosition = {\n itemIndex: rgRow.itemIndex,\n start: rgRow.start + top,\n end: rgRow.end + top,\n };\n return absolutePosition;\n }\n\n /** Calculate cell based on x, y position */\n getCell({ x, y }: Cell, { el, rows, cols }: EventData): Cell {\n const { top, left } = el.getBoundingClientRect();\n const topRelative = y - top;\n const leftRelative = x - left;\n const rgRow = getItemByPosition(rows, topRelative);\n const rgCol = getItemByPosition(cols, leftRelative);\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import debounce from "lodash/debounce";
2
- import { setItems } from "../../store/dataSource/data.store";
2
+ import { setItems } from "../../store/index";
3
3
  import { DRAGG_TEXT } from "../../utils/consts";
4
4
  import RowOrderService from "./order-row.service";
5
5
  /**
@@ -126,13 +126,13 @@ export class OrderEditor {
126
126
  "references": {
127
127
  "Observable": {
128
128
  "location": "import",
129
- "path": "../../types/interfaces",
130
- "id": "src/types/interfaces.ts::Observable"
129
+ "path": "@type",
130
+ "id": "src/types/index.ts::Observable"
131
131
  },
132
132
  "DimensionSettingsState": {
133
133
  "location": "import",
134
- "path": "../../types/interfaces",
135
- "id": "src/types/interfaces.ts::DimensionSettingsState"
134
+ "path": "@type",
135
+ "id": "src/types/index.ts::DimensionSettingsState"
136
136
  }
137
137
  }
138
138
  },
@@ -152,13 +152,13 @@ export class OrderEditor {
152
152
  "references": {
153
153
  "Observable": {
154
154
  "location": "import",
155
- "path": "../../types/interfaces",
156
- "id": "src/types/interfaces.ts::Observable"
155
+ "path": "@type",
156
+ "id": "src/types/index.ts::Observable"
157
157
  },
158
158
  "DimensionSettingsState": {
159
159
  "location": "import",
160
- "path": "../../types/interfaces",
161
- "id": "src/types/interfaces.ts::DimensionSettingsState"
160
+ "path": "@type",
161
+ "id": "src/types/index.ts::DimensionSettingsState"
162
162
  }
163
163
  }
164
164
  },
@@ -178,23 +178,23 @@ export class OrderEditor {
178
178
  "references": {
179
179
  "Observable": {
180
180
  "location": "import",
181
- "path": "../../types/interfaces",
182
- "id": "src/types/interfaces.ts::Observable"
181
+ "path": "@type",
182
+ "id": "src/types/index.ts::Observable"
183
183
  },
184
184
  "DSourceState": {
185
185
  "location": "import",
186
- "path": "../../store/dataSource/data.store",
187
- "id": "src/store/dataSource/data.store.ts::DSourceState"
186
+ "path": "@store",
187
+ "id": "src/store/index.ts::DSourceState"
188
188
  },
189
189
  "DataType": {
190
190
  "location": "import",
191
- "path": "../../types/interfaces",
192
- "id": "src/types/interfaces.ts::DataType"
191
+ "path": "@type",
192
+ "id": "src/types/index.ts::DataType"
193
193
  },
194
194
  "DimensionRows": {
195
195
  "location": "import",
196
- "path": "../../types/dimension",
197
- "id": "src/types/dimension.ts::DimensionRows"
196
+ "path": "@type",
197
+ "id": "src/types/index.ts::DimensionRows"
198
198
  }
199
199
  }
200
200
  },
@@ -224,13 +224,13 @@ export class OrderEditor {
224
224
  "references": {
225
225
  "Cell": {
226
226
  "location": "import",
227
- "path": "../../types/selection",
228
- "id": "src/types/selection.ts::Cell"
227
+ "path": "@type",
228
+ "id": "src/types/index.ts::Cell"
229
229
  },
230
230
  "PositionItem": {
231
231
  "location": "import",
232
- "path": "../../types/interfaces",
233
- "id": "src/types/interfaces.ts::PositionItem"
232
+ "path": "@type",
233
+ "id": "src/types/index.ts::PositionItem"
234
234
  },
235
235
  "MouseEvent": {
236
236
  "location": "global",
@@ -269,8 +269,8 @@ export class OrderEditor {
269
269
  "references": {
270
270
  "PositionItem": {
271
271
  "location": "import",
272
- "path": "../../types/interfaces",
273
- "id": "src/types/interfaces.ts::PositionItem"
272
+ "path": "@type",
273
+ "id": "src/types/index.ts::PositionItem"
274
274
  }
275
275
  }
276
276
  }
@@ -290,8 +290,8 @@ export class OrderEditor {
290
290
  "references": {
291
291
  "Cell": {
292
292
  "location": "import",
293
- "path": "../../types/selection",
294
- "id": "src/types/selection.ts::Cell"
293
+ "path": "@type",
294
+ "id": "src/types/index.ts::Cell"
295
295
  }
296
296
  }
297
297
  }
@@ -329,8 +329,8 @@ export class OrderEditor {
329
329
  },
330
330
  "DragStartEvent": {
331
331
  "location": "import",
332
- "path": "../../types/interfaces",
333
- "id": "src/types/interfaces.ts::DragStartEvent"
332
+ "path": "@type",
333
+ "id": "src/types/index.ts::DragStartEvent"
334
334
  },
335
335
  "MouseEvent": {
336
336
  "location": "global",
@@ -1 +1 @@
1
- {"version":3,"file":"revogr-order-editor.js","sourceRoot":"","sources":["../../../src/components/order/revogr-order-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAgB,IAAI,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAgB,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAWlD;;GAEG;AAEH,MAAM,OAAO,WAAW;;QA6Cd,WAAM,GAGR,EAAE,CAAC;QACD,gBAAW,GAAG,QAAQ,CAAC,CAAC,CAAS,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;IACN,aAAa;IAEb,kBAAkB;IACR,KAAK,CAAC,SAAS,CAAC,CAAiB;QACzC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAEjC,gCAAgC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5C,IAAI;YACJ,IAAI,EAAE,UAAU;YAChB,GAAG;YACH,KAAK,EAAE,CAAC,CAAC,aAAa;SACvB,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,QAAQ;SACnB,EACD;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,OAAO;SAClB,EACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,UAAU;SACrB,CACF,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjD,yCAAyC;QACzC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,CAAa;QACpC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,aAAa;IAEb,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAA4B;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;YACzC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,EAAU;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAEO,OAAO;QACb,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;YAC7B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAC9B,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Method, Event, EventEmitter, Prop } from '@stencil/core';\nimport debounce from 'lodash/debounce';\n\nimport { DSourceState, setItems } from '../../store/dataSource/data.store';\nimport { DRAGG_TEXT } from '../../utils/consts';\nimport RowOrderService from './order-row.service';\nimport { DimensionRows } from '../../types/dimension';\nimport {\n DataType,\n DimensionSettingsState,\n DragStartEvent,\n Observable,\n PositionItem,\n} from '../../types/interfaces';\nimport { Cell } from '../../types/selection';\n\n/**\n * Component for handling row order editor.\n */\n@Component({ tag: 'revogr-order-editor' })\nexport class OrderEditor {\n // #region Properties\n /** Parent element */\n @Prop() parent: HTMLElement;\n /** Dimension settings Y */\n @Prop() dimensionRow: Observable<DimensionSettingsState>;\n /** Dimension settings X */\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\n\n /** Static stores, not expected to change during component lifetime */\n @Prop() dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n // #endregion\n\n // #region Events\n /** Row drag started */\n @Event({ eventName: 'rowdragstartinit', cancelable: true })\n rowDragStart: EventEmitter<{\n cell: Cell;\n text: string;\n pos: PositionItem;\n event: MouseEvent;\n }>;\n\n /** Row drag ended started */\n @Event({ eventName: 'rowdragendinit' })\n rowDragEnd: EventEmitter;\n\n /** Row move started */\n @Event({ eventName: 'rowdragmoveinit', cancelable: true })\n rowDrag: EventEmitter<PositionItem>;\n\n /** Row mouse move started */\n @Event({ eventName: 'rowdragmousemove', cancelable: true })\n rowMouseMove: EventEmitter<Cell>;\n\n /** Row dragged, new range ready to be applied */\n @Event({ eventName: 'rowdropinit', cancelable: true })\n rowDropped: EventEmitter<{\n from: number;\n to: number;\n }>;\n // #endregion\n\n // #region Private\n private rowOrderService: RowOrderService;\n private events: {\n name: keyof DocumentEventMap;\n listener: (e: MouseEvent) => void;\n }[] = [];\n private rowMoveFunc = debounce((y: number) => {\n const rgRow = this.rowOrderService.move(y, this.getData());\n if (rgRow !== null) {\n this.rowDrag.emit(rgRow);\n }\n }, 5);\n // #endregion\n\n // #region Methods\n @Method() async dragStart(e: DragStartEvent) {\n e.originalEvent.preventDefault();\n\n // extra check if previous ended\n if (this.events.length) {\n this.clearOrder();\n }\n\n const data = this.getData();\n const cell = this.rowOrderService.startOrder(e.originalEvent, data);\n const pos = this.rowOrderService.getRow(e.originalEvent.y, data);\n const dragStartEvent = this.rowDragStart.emit({\n cell,\n text: DRAGG_TEXT,\n pos,\n event: e.originalEvent,\n });\n if (dragStartEvent.defaultPrevented) {\n return;\n }\n\n const moveMove = (e: MouseEvent) => this.move(e);\n const mouseUp = (e: MouseEvent) => this.endOrder(e);\n const mouseLeave = () => this.clearOrder();\n\n this.events.push(\n {\n name: 'mousemove',\n listener: moveMove,\n },\n {\n name: 'mouseup',\n listener: mouseUp,\n },\n {\n name: 'mouseleave',\n listener: mouseLeave,\n },\n );\n document.addEventListener('mousemove', moveMove);\n // Action finished inside of the document\n document.addEventListener('mouseup', mouseUp);\n document.addEventListener('mouseleave', mouseLeave);\n }\n\n @Method() async endOrder(e: MouseEvent) {\n this.rowOrderService.endOrder(e, this.getData());\n this.clearOrder();\n }\n\n @Method() async clearOrder() {\n this.rowOrderService.clear();\n this.events.forEach(v => document.removeEventListener(v.name, v.listener));\n this.events.length = 0;\n this.rowDragEnd.emit();\n }\n // #endregion\n\n move({ x, y }: { x: number; y: number }) {\n this.rowMouseMove.emit({ x, y });\n this.rowMoveFunc(y);\n }\n\n connectedCallback() {\n this.rowOrderService = new RowOrderService({\n positionChanged: (f, t) => this.onPositionChanged(f, t),\n });\n }\n\n private onPositionChanged(from: number, to: number) {\n const dropEvent = this.rowDropped.emit({ from, to });\n if (dropEvent.defaultPrevented) {\n return;\n }\n const items = [...this.dataStore.get('items')];\n const toMove = items.splice(from, 1);\n items.splice(to, 0, ...toMove);\n setItems(this.dataStore, items);\n }\n\n private getData() {\n return {\n el: this.parent,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"revogr-order-editor.js","sourceRoot":"","sources":["../../../src/components/order/revogr-order-editor.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Method, Event, EventEmitter, Prop } from '@stencil/core';\nimport debounce from 'lodash/debounce';\n\nimport { DSourceState, setItems } from '@store';\nimport { DRAGG_TEXT } from '../../utils/consts';\nimport RowOrderService from './order-row.service';\nimport { DimensionRows } from '@type';\nimport {\n DataType,\n DimensionSettingsState,\n DragStartEvent,\n Observable,\n PositionItem,\n} from '@type';\nimport { Cell } from '@type';\n\n/**\n * Component for handling row order editor.\n */\n@Component({ tag: 'revogr-order-editor' })\nexport class OrderEditor {\n // #region Properties\n /** Parent element */\n @Prop() parent: HTMLElement;\n /** Dimension settings Y */\n @Prop() dimensionRow: Observable<DimensionSettingsState>;\n /** Dimension settings X */\n @Prop() dimensionCol: Observable<DimensionSettingsState>;\n\n /** Static stores, not expected to change during component lifetime */\n @Prop() dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n // #endregion\n\n // #region Events\n /** Row drag started */\n @Event({ eventName: 'rowdragstartinit', cancelable: true })\n rowDragStart: EventEmitter<{\n cell: Cell;\n text: string;\n pos: PositionItem;\n event: MouseEvent;\n }>;\n\n /** Row drag ended started */\n @Event({ eventName: 'rowdragendinit' })\n rowDragEnd: EventEmitter;\n\n /** Row move started */\n @Event({ eventName: 'rowdragmoveinit', cancelable: true })\n rowDrag: EventEmitter<PositionItem>;\n\n /** Row mouse move started */\n @Event({ eventName: 'rowdragmousemove', cancelable: true })\n rowMouseMove: EventEmitter<Cell>;\n\n /** Row dragged, new range ready to be applied */\n @Event({ eventName: 'rowdropinit', cancelable: true })\n rowDropped: EventEmitter<{\n from: number;\n to: number;\n }>;\n // #endregion\n\n // #region Private\n private rowOrderService: RowOrderService;\n private events: {\n name: keyof DocumentEventMap;\n listener: (e: MouseEvent) => void;\n }[] = [];\n private rowMoveFunc = debounce((y: number) => {\n const rgRow = this.rowOrderService.move(y, this.getData());\n if (rgRow !== null) {\n this.rowDrag.emit(rgRow);\n }\n }, 5);\n // #endregion\n\n // #region Methods\n @Method() async dragStart(e: DragStartEvent) {\n e.originalEvent.preventDefault();\n\n // extra check if previous ended\n if (this.events.length) {\n this.clearOrder();\n }\n\n const data = this.getData();\n const cell = this.rowOrderService.startOrder(e.originalEvent, data);\n const pos = this.rowOrderService.getRow(e.originalEvent.y, data);\n const dragStartEvent = this.rowDragStart.emit({\n cell,\n text: DRAGG_TEXT,\n pos,\n event: e.originalEvent,\n });\n if (dragStartEvent.defaultPrevented) {\n return;\n }\n\n const moveMove = (e: MouseEvent) => this.move(e);\n const mouseUp = (e: MouseEvent) => this.endOrder(e);\n const mouseLeave = () => this.clearOrder();\n\n this.events.push(\n {\n name: 'mousemove',\n listener: moveMove,\n },\n {\n name: 'mouseup',\n listener: mouseUp,\n },\n {\n name: 'mouseleave',\n listener: mouseLeave,\n },\n );\n document.addEventListener('mousemove', moveMove);\n // Action finished inside of the document\n document.addEventListener('mouseup', mouseUp);\n document.addEventListener('mouseleave', mouseLeave);\n }\n\n @Method() async endOrder(e: MouseEvent) {\n this.rowOrderService.endOrder(e, this.getData());\n this.clearOrder();\n }\n\n @Method() async clearOrder() {\n this.rowOrderService.clear();\n this.events.forEach(v => document.removeEventListener(v.name, v.listener));\n this.events.length = 0;\n this.rowDragEnd.emit();\n }\n // #endregion\n\n move({ x, y }: { x: number; y: number }) {\n this.rowMouseMove.emit({ x, y });\n this.rowMoveFunc(y);\n }\n\n connectedCallback() {\n this.rowOrderService = new RowOrderService({\n positionChanged: (f, t) => this.onPositionChanged(f, t),\n });\n }\n\n private onPositionChanged(from: number, to: number) {\n const dropEvent = this.rowDropped.emit({ from, to });\n if (dropEvent.defaultPrevented) {\n return;\n }\n const items = [...this.dataStore.get('items')];\n const toMove = items.splice(from, 1);\n items.splice(to, 0, ...toMove);\n setItems(this.dataStore, items);\n }\n\n private getData() {\n return {\n el: this.parent,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n };\n }\n}\n"]}
@@ -5,8 +5,7 @@ import debounce from "lodash/debounce";
5
5
  import { h } from "@stencil/core";
6
6
  import { CELL_HANDLER_CLASS, MOBILE_CLASS } from "../../utils/consts";
7
7
  import { getCell, getCurrentCell, isAfterLast, } from "./selection.utils";
8
- import { getRange } from "../../store/selection/selection.helpers";
9
- import { getSourceItem } from "../../store/dataSource/data.store";
8
+ import { getSourceItem, getRange } from "../../store/index";
10
9
  import { getPropertyFromEvent } from "../../utils/events";
11
10
  export class AutoFillService {
12
11
  constructor(sv) {
@@ -1 +1 @@
1
- {"version":3,"file":"autofill.service.js","sourceRoot":"","sources":["../../../src/components/overlay/autofill.service.tsx"],"names":[],"mappings":"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","sourcesContent":["import debounce from 'lodash/debounce';\nimport { DebouncedFunc } from 'lodash';\n\nimport { h } from '@stencil/core';\nimport { CELL_HANDLER_CLASS, MOBILE_CLASS } from '../../utils/consts';\nimport {\n EventData,\n getCell,\n getCurrentCell,\n isAfterLast,\n} from './selection.utils';\nimport { getRange } from '../../store/selection/selection.helpers';\nimport ColumnService from '../data/column.service';\nimport { DSourceState, getSourceItem } from '../../store/dataSource/data.store';\nimport { getPropertyFromEvent } from '../../utils/events';\nimport {\n DataLookup,\n DataType,\n DimensionSettingsState,\n Observable,\n} from '../../types/interfaces';\nimport {\n TempRange,\n ChangedRange,\n BeforeRangeSaveDataDetails,\n RangeArea,\n Cell,\n} from '../../types/selection';\nimport { DimensionRows } from '../../types/dimension';\n\ntype Config = {\n dimensionRow: Observable<DimensionSettingsState>;\n dimensionCol: Observable<DimensionSettingsState>;\n columnService: ColumnService;\n dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n\n setTempRange(e: TempRange | null): Event;\n selectionChanged(e: ChangedRange): Event;\n rangeCopy(e: ChangedRange): Event;\n rangeDataApply(e: BeforeRangeSaveDataDetails): CustomEvent;\n setRange(e: RangeArea): boolean;\n clearRangeDataApply(e: { range: RangeArea }): CustomEvent<{\n range: RangeArea;\n }>;\n\n getData(): any;\n};\n\nconst enum AutoFillType {\n selection = 'Selection',\n autoFill = 'AutoFill',\n}\n\nexport class AutoFillService {\n private autoFillType: AutoFillType | null = null;\n private autoFillInitial: Cell | null = null;\n private autoFillStart: Cell | null = null;\n private autoFillLast: Cell | null = null;\n\n private onMouseMoveAutofill: DebouncedFunc<\n (e: MouseEvent | TouchEvent, data: EventData) => void\n >;\n\n constructor(private sv: Config) {}\n\n /**\n * Render autofill box\n * @param range\n * @param selectionFocus\n */\n renderAutofill(range: RangeArea, selectionFocus: Cell) {\n let handlerStyle;\n if (range) {\n handlerStyle = getCell(\n range,\n this.sv.dimensionRow.state,\n this.sv.dimensionCol.state,\n );\n } else {\n handlerStyle = getCell(\n {\n ...selectionFocus,\n x1: selectionFocus.x,\n y1: selectionFocus.y,\n },\n this.sv.dimensionRow.state,\n this.sv.dimensionCol.state,\n );\n }\n return (\n <div\n class={{\n [CELL_HANDLER_CLASS]: true,\n [MOBILE_CLASS]: true,\n }}\n style={{\n left: `${handlerStyle.right}px`,\n top: `${handlerStyle.bottom}px`,\n }}\n onMouseDown={(e: MouseEvent) => this.autoFillHandler(e)}\n onTouchStart={(e: TouchEvent) => this.autoFillHandler(e)}\n />\n );\n }\n\n private autoFillHandler(\n e: MouseEvent | TouchEvent,\n type = AutoFillType.autoFill,\n ) {\n let target: Element | null = null;\n if (e.target instanceof Element) {\n target = e.target;\n }\n if (!target) {\n return;\n }\n this.selectionStart(target, this.sv.getData(), type);\n e.preventDefault();\n }\n\n get isAutoFill() {\n return !!this.autoFillType;\n }\n\n /**\n * Process mouse move events\n */\n selectionMouseMove(e: MouseEvent | TouchEvent) {\n // initiate mouse move debounce if not present\n if (!this.onMouseMoveAutofill) {\n this.onMouseMoveAutofill = debounce(\n (e: MouseEvent | TouchEvent, data: EventData) =>\n this.doAutofillMouseMove(e, data),\n 5,\n );\n }\n if (this.isAutoFill) {\n this.onMouseMoveAutofill(e, this.sv.getData());\n }\n }\n\n private getFocus(focus: Cell, range: RangeArea) {\n // there was an issue that it was taking last cell from range but focus was out\n if (!focus && range) {\n focus = { x: range.x, y: range.y };\n }\n return focus || null;\n }\n\n /**\n * Autofill logic:\n * on mouse move apply based on previous direction (if present)\n */\n private doAutofillMouseMove(event: MouseEvent | TouchEvent, data: EventData) {\n // if no initial - not started\n if (!this.autoFillInitial) {\n return;\n }\n const x = getPropertyFromEvent(event, 'clientX', MOBILE_CLASS);\n const y = getPropertyFromEvent(event, 'clientY', MOBILE_CLASS);\n // skip touch\n if (x === null || y === null) {\n return;\n }\n const current = getCurrentCell({ x, y }, data);\n\n // first time or direction equal to start(same as first time)\n if (!this.autoFillLast) {\n if (!this.autoFillLast) {\n this.autoFillLast = this.autoFillStart;\n }\n }\n\n // check if not the latest, if latest - do nothing\n if (isAfterLast(current, data.lastCell)) {\n return;\n }\n this.autoFillLast = current;\n\n const isSame =\n current.x === this.autoFillInitial.x &&\n current.y === this.autoFillInitial.y;\n\n // if same as initial - clear\n if (isSame) {\n this.sv.setTempRange(null);\n } else {\n this.sv.setTempRange({\n area: getRange(this.autoFillInitial, this.autoFillLast),\n type: this.autoFillType,\n });\n }\n }\n\n /**\n * Range selection started\n * Mode @param type:\n * Can be triggered from MouseDown selection on element\n * Or can be triggered on corner square drag\n */\n selectionStart(\n target: Element,\n data: EventData,\n type = AutoFillType.selection,\n ) {\n /** Get cell by autofill element */\n const { top, left } = target.getBoundingClientRect();\n this.autoFillInitial = this.getFocus(data.focus, data.range);\n this.autoFillType = type;\n this.autoFillStart = getCurrentCell({ x: left, y: top }, data);\n }\n\n /**\n * Clear current range selection on mouse up and mouse leave events\n */\n clearAutoFillSelection(\n focus: Cell,\n oldRange: RangeArea\n ) {\n // If autofill was active, apply autofill values\n if (this.autoFillInitial) {\n // Fetch latest focus\n this.autoFillInitial = this.getFocus(focus, oldRange);\n\n // Apply range data if autofill mode is active\n if (this.autoFillType === AutoFillType.autoFill) {\n const range = getRange(this.autoFillInitial, this.autoFillLast);\n\n // If range is present, apply data\n if (range) {\n const {\n defaultPrevented: stopApply,\n detail: { range: newRange },\n } = this.sv.clearRangeDataApply({\n range,\n });\n\n // If data apply was not prevented, apply new range\n if (!stopApply) {\n this.applyRangeWithData(newRange, oldRange);\n } else {\n // If data apply was prevented, clear temporary range\n this.sv.setTempRange(null);\n }\n }\n } else {\n // If not autofill mode, apply range only\n this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);\n }\n }\n\n // Reset autofill state\n this.resetAutoFillState();\n }\n\n /**\n * Reset autofill state\n */\n private resetAutoFillState() {\n this.autoFillType = null;\n this.autoFillInitial = null;\n this.autoFillLast = null;\n this.autoFillStart = null;\n }\n\n /** Trigger range apply events and handle responses */\n onRangeApply(data: DataLookup, range: RangeArea) {\n const models: DataLookup = {};\n for (let rowIndex in data) {\n models[rowIndex] = getSourceItem(\n this.sv.dataStore,\n parseInt(rowIndex, 10),\n );\n }\n this.sv.rangeDataApply({\n data,\n models,\n type: this.sv.dataStore.get('type'),\n });\n\n this.sv.setRange(range);\n }\n\n /** Apply range and copy data during range application */\n private applyRangeWithData(newRange: RangeArea, oldRange: RangeArea) {\n const rangeData: ChangedRange = {\n type: this.sv.dataStore.get('type'),\n colType: this.sv.columnService.type,\n newData: {},\n mapping: {},\n newRange,\n oldRange,\n };\n const { mapping, changed } = this.sv.columnService.getRangeData(\n rangeData,\n this.sv.columnService.columns,\n );\n rangeData.newData = changed;\n rangeData.mapping = mapping;\n let e = this.sv.selectionChanged(rangeData);\n\n // if default prevented - clear range\n if (e.defaultPrevented) {\n this.sv.setTempRange(null);\n return;\n }\n\n e = this.sv.rangeCopy(rangeData);\n if (e.defaultPrevented) {\n this.sv.setRange(newRange);\n return;\n }\n this.onRangeApply(rangeData.newData, newRange);\n }\n\n /**\n * Update range selection only,\n * no data change (mouse selection)\n */\n private applyRangeOnly(start?: Cell, end?: Cell) {\n // no changes to apply\n if (!start || !end) {\n return;\n }\n\n const newRange = getRange(start, end);\n this.sv.setRange(newRange);\n }\n}\n"]}
1
+ {"version":3,"file":"autofill.service.js","sourceRoot":"","sources":["../../../src/components/overlay/autofill.service.tsx"],"names":[],"mappings":"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","sourcesContent":["import debounce from 'lodash/debounce';\nimport { DebouncedFunc } from 'lodash';\n\nimport { h } from '@stencil/core';\nimport { CELL_HANDLER_CLASS, MOBILE_CLASS } from '../../utils/consts';\nimport {\n EventData,\n getCell,\n getCurrentCell,\n isAfterLast,\n} from './selection.utils';\nimport { DSourceState, getSourceItem, getRange } from '@store';\nimport ColumnService from '../data/column.service';\nimport { getPropertyFromEvent } from '../../utils/events';\nimport {\n DataLookup,\n DataType,\n DimensionSettingsState,\n Observable,\n TempRange,\n ChangedRange,\n BeforeRangeSaveDataDetails,\n RangeArea,\n Cell,\n DimensionRows,\n} from '@type';\n\ntype Config = {\n dimensionRow: Observable<DimensionSettingsState>;\n dimensionCol: Observable<DimensionSettingsState>;\n columnService: ColumnService;\n dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n\n setTempRange(e: TempRange | null): Event;\n selectionChanged(e: ChangedRange): Event;\n rangeCopy(e: ChangedRange): Event;\n rangeDataApply(e: BeforeRangeSaveDataDetails): CustomEvent;\n setRange(e: RangeArea): boolean;\n clearRangeDataApply(e: { range: RangeArea }): CustomEvent<{\n range: RangeArea;\n }>;\n\n getData(): any;\n};\n\nconst enum AutoFillType {\n selection = 'Selection',\n autoFill = 'AutoFill',\n}\n\nexport class AutoFillService {\n private autoFillType: AutoFillType | null = null;\n private autoFillInitial: Cell | null = null;\n private autoFillStart: Cell | null = null;\n private autoFillLast: Cell | null = null;\n\n private onMouseMoveAutofill: DebouncedFunc<\n (e: MouseEvent | TouchEvent, data: EventData) => void\n >;\n\n constructor(private sv: Config) {}\n\n /**\n * Render autofill box\n * @param range\n * @param selectionFocus\n */\n renderAutofill(range: RangeArea, selectionFocus: Cell) {\n let handlerStyle;\n if (range) {\n handlerStyle = getCell(\n range,\n this.sv.dimensionRow.state,\n this.sv.dimensionCol.state,\n );\n } else {\n handlerStyle = getCell(\n {\n ...selectionFocus,\n x1: selectionFocus.x,\n y1: selectionFocus.y,\n },\n this.sv.dimensionRow.state,\n this.sv.dimensionCol.state,\n );\n }\n return (\n <div\n class={{\n [CELL_HANDLER_CLASS]: true,\n [MOBILE_CLASS]: true,\n }}\n style={{\n left: `${handlerStyle.right}px`,\n top: `${handlerStyle.bottom}px`,\n }}\n onMouseDown={(e: MouseEvent) => this.autoFillHandler(e)}\n onTouchStart={(e: TouchEvent) => this.autoFillHandler(e)}\n />\n );\n }\n\n private autoFillHandler(\n e: MouseEvent | TouchEvent,\n type = AutoFillType.autoFill,\n ) {\n let target: Element | null = null;\n if (e.target instanceof Element) {\n target = e.target;\n }\n if (!target) {\n return;\n }\n this.selectionStart(target, this.sv.getData(), type);\n e.preventDefault();\n }\n\n get isAutoFill() {\n return !!this.autoFillType;\n }\n\n /**\n * Process mouse move events\n */\n selectionMouseMove(e: MouseEvent | TouchEvent) {\n // initiate mouse move debounce if not present\n if (!this.onMouseMoveAutofill) {\n this.onMouseMoveAutofill = debounce(\n (e: MouseEvent | TouchEvent, data: EventData) =>\n this.doAutofillMouseMove(e, data),\n 5,\n );\n }\n if (this.isAutoFill) {\n this.onMouseMoveAutofill(e, this.sv.getData());\n }\n }\n\n private getFocus(focus: Cell, range: RangeArea) {\n // there was an issue that it was taking last cell from range but focus was out\n if (!focus && range) {\n focus = { x: range.x, y: range.y };\n }\n return focus || null;\n }\n\n /**\n * Autofill logic:\n * on mouse move apply based on previous direction (if present)\n */\n private doAutofillMouseMove(event: MouseEvent | TouchEvent, data: EventData) {\n // if no initial - not started\n if (!this.autoFillInitial) {\n return;\n }\n const x = getPropertyFromEvent(event, 'clientX', MOBILE_CLASS);\n const y = getPropertyFromEvent(event, 'clientY', MOBILE_CLASS);\n // skip touch\n if (x === null || y === null) {\n return;\n }\n const current = getCurrentCell({ x, y }, data);\n\n // first time or direction equal to start(same as first time)\n if (!this.autoFillLast) {\n if (!this.autoFillLast) {\n this.autoFillLast = this.autoFillStart;\n }\n }\n\n // check if not the latest, if latest - do nothing\n if (isAfterLast(current, data.lastCell)) {\n return;\n }\n this.autoFillLast = current;\n\n const isSame =\n current.x === this.autoFillInitial.x &&\n current.y === this.autoFillInitial.y;\n\n // if same as initial - clear\n if (isSame) {\n this.sv.setTempRange(null);\n } else {\n this.sv.setTempRange({\n area: getRange(this.autoFillInitial, this.autoFillLast),\n type: this.autoFillType,\n });\n }\n }\n\n /**\n * Range selection started\n * Mode @param type:\n * Can be triggered from MouseDown selection on element\n * Or can be triggered on corner square drag\n */\n selectionStart(\n target: Element,\n data: EventData,\n type = AutoFillType.selection,\n ) {\n /** Get cell by autofill element */\n const { top, left } = target.getBoundingClientRect();\n this.autoFillInitial = this.getFocus(data.focus, data.range);\n this.autoFillType = type;\n this.autoFillStart = getCurrentCell({ x: left, y: top }, data);\n }\n\n /**\n * Clear current range selection on mouse up and mouse leave events\n */\n clearAutoFillSelection(focus: Cell, oldRange: RangeArea) {\n // If autofill was active, apply autofill values\n if (this.autoFillInitial) {\n // Fetch latest focus\n this.autoFillInitial = this.getFocus(focus, oldRange);\n\n // Apply range data if autofill mode is active\n if (this.autoFillType === AutoFillType.autoFill) {\n const range = getRange(this.autoFillInitial, this.autoFillLast);\n\n // If range is present, apply data\n if (range) {\n const {\n defaultPrevented: stopApply,\n detail: { range: newRange },\n } = this.sv.clearRangeDataApply({\n range,\n });\n\n // If data apply was not prevented, apply new range\n if (!stopApply) {\n this.applyRangeWithData(newRange, oldRange);\n } else {\n // If data apply was prevented, clear temporary range\n this.sv.setTempRange(null);\n }\n }\n } else {\n // If not autofill mode, apply range only\n this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);\n }\n }\n\n // Reset autofill state\n this.resetAutoFillState();\n }\n\n /**\n * Reset autofill state\n */\n private resetAutoFillState() {\n this.autoFillType = null;\n this.autoFillInitial = null;\n this.autoFillLast = null;\n this.autoFillStart = null;\n }\n\n /** Trigger range apply events and handle responses */\n onRangeApply(data: DataLookup, range: RangeArea) {\n const models: DataLookup = {};\n for (let rowIndex in data) {\n models[rowIndex] = getSourceItem(\n this.sv.dataStore,\n parseInt(rowIndex, 10),\n );\n }\n this.sv.rangeDataApply({\n data,\n models,\n type: this.sv.dataStore.get('type'),\n });\n\n this.sv.setRange(range);\n }\n\n /** Apply range and copy data during range application */\n private applyRangeWithData(newRange: RangeArea, oldRange: RangeArea) {\n const rangeData: ChangedRange = {\n type: this.sv.dataStore.get('type'),\n colType: this.sv.columnService.type,\n newData: {},\n mapping: {},\n newRange,\n oldRange,\n };\n const { mapping, changed } = this.sv.columnService.getRangeData(\n rangeData,\n this.sv.columnService.columns,\n );\n rangeData.newData = changed;\n rangeData.mapping = mapping;\n let e = this.sv.selectionChanged(rangeData);\n\n // if default prevented - clear range\n if (e.defaultPrevented) {\n this.sv.setTempRange(null);\n return;\n }\n\n e = this.sv.rangeCopy(rangeData);\n if (e.defaultPrevented) {\n this.sv.setRange(newRange);\n return;\n }\n this.onRangeApply(rangeData.newData, newRange);\n }\n\n /**\n * Update range selection only,\n * no data change (mouse selection)\n */\n private applyRangeOnly(start?: Cell, end?: Cell) {\n // no changes to apply\n if (!start || !end) {\n return;\n }\n\n const newRange = getRange(start, end);\n this.sv.setRange(newRange);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { getRange } from "../../store/selection/selection.helpers";
4
+ import { getRange } from "../../store/index";
5
5
  import { codesLetter } from "../../utils/key.codes";
6
6
  import { isAll, isClear, isCopy, isCut, isEnterKey, isLetterKey, isPaste, } from "../../utils/key.utils";
7
7
  import { timeout } from "../../utils";
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.service.js","sourceRoot":"","sources":["../../../src/components/overlay/keyboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRange } from '../../store/selection/selection.helpers';\nimport { codesLetter } from '../../utils/key.codes';\nimport {\n isAll,\n isClear,\n isCopy,\n isCut,\n isEnterKey,\n isLetterKey,\n isPaste,\n} from '../../utils/key.utils';\nimport { timeout } from '../../utils';\nimport {\n EventData,\n getCoordinate,\n isAfterLast,\n isBeforeFirst,\n} from './selection.utils';\nimport { RESIZE_INTERVAL } from '../../utils/consts';\nimport { Cell, RangeArea, SelectionStoreState } from '../..';\nimport { Observable } from '../..';\n\ntype Config = {\n selectionStore: Observable<SelectionStoreState>;\n\n // Apply changes from edit.\n change(val?: any): void;\n // Cancels edit. Escape changes.\n cancel(): void;\n\n clearCell(): void;\n focusNext(focus: Cell, next: Partial<Cell>): boolean;\n\n getData(): any;\n internalPaste(): void;\n range(range: RangeArea): boolean;\n selectAll(): void;\n};\n\nconst DIRECTION_CODES: string[] = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nexport class KeyboardService {\n constructor(private sv: Config) {}\n\n async keyDown(\n e: KeyboardEvent,\n canRange: boolean,\n isEditMode: boolean,\n { range, focus }: Pick<EventData, 'range' | 'focus'>,\n ) {\n // IF EDIT MODE\n if (isEditMode) {\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancel();\n break;\n }\n return;\n }\n\n // IF NOT EDIT MODE\n\n // pressed clear key\n if (range && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n\n // below works with focus only\n if (!focus) {\n return;\n }\n\n // tab key means same as arrow right\n if (codesLetter.TAB === e.code) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n\n // pressed enter\n if (isEnterKey(e.code)) {\n this.sv.change();\n return;\n }\n\n // copy operation\n if (isCopy(e)) {\n return;\n }\n\n // cut operation\n if (isCut(e)) {\n return;\n }\n\n // paste operation\n if (isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n\n // select all\n if (isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n\n // pressed letter key\n if (isLetterKey(e.keyCode)) {\n this.sv.change(e.key);\n return;\n }\n\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n\n private selectAll(e: KeyboardEvent) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n\n async keyChangeSelection(e: KeyboardEvent, canRange: boolean) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n\n keyPositionChange(\n changes: Partial<Cell>,\n range?: RangeArea,\n focus?: Cell,\n isMulti = false,\n ) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n if (isMulti) {\n const eData: EventData = this.sv.getData();\n if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focusNext(data.start, changes);\n }\n\n /** Monitor key direction changes */\n changeDirectionKey(\n e: KeyboardEvent,\n canRange: boolean,\n ): { changes: Partial<Cell>; isMulti?: boolean } | void {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n"]}
1
+ {"version":3,"file":"keyboard.service.js","sourceRoot":"","sources":["../../../src/components/overlay/keyboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRange } from '@store';\nimport { codesLetter } from '../../utils/key.codes';\nimport {\n isAll,\n isClear,\n isCopy,\n isCut,\n isEnterKey,\n isLetterKey,\n isPaste,\n} from '../../utils/key.utils';\nimport { timeout } from '../../utils';\nimport {\n EventData,\n getCoordinate,\n isAfterLast,\n isBeforeFirst,\n} from './selection.utils';\nimport { RESIZE_INTERVAL } from '../../utils/consts';\nimport { Cell, RangeArea, SelectionStoreState } from '@type';\nimport { Observable } from '@type';\n\ntype Config = {\n selectionStore: Observable<SelectionStoreState>;\n\n // Apply changes from edit.\n change(val?: any): void;\n // Cancels edit. Escape changes.\n cancel(): void;\n\n clearCell(): void;\n focusNext(focus: Cell, next: Partial<Cell>): boolean;\n\n getData(): any;\n internalPaste(): void;\n range(range: RangeArea): boolean;\n selectAll(): void;\n};\n\nconst DIRECTION_CODES: string[] = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nexport class KeyboardService {\n constructor(private sv: Config) {}\n\n async keyDown(\n e: KeyboardEvent,\n canRange: boolean,\n isEditMode: boolean,\n { range, focus }: Pick<EventData, 'range' | 'focus'>,\n ) {\n // IF EDIT MODE\n if (isEditMode) {\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancel();\n break;\n }\n return;\n }\n\n // IF NOT EDIT MODE\n\n // pressed clear key\n if (range && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n\n // below works with focus only\n if (!focus) {\n return;\n }\n\n // tab key means same as arrow right\n if (codesLetter.TAB === e.code) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n\n // pressed enter\n if (isEnterKey(e.code)) {\n this.sv.change();\n return;\n }\n\n // copy operation\n if (isCopy(e)) {\n return;\n }\n\n // cut operation\n if (isCut(e)) {\n return;\n }\n\n // paste operation\n if (isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n\n // select all\n if (isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n\n // pressed letter key\n if (isLetterKey(e.keyCode)) {\n this.sv.change(e.key);\n return;\n }\n\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n\n private selectAll(e: KeyboardEvent) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n\n async keyChangeSelection(e: KeyboardEvent, canRange: boolean) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n\n keyPositionChange(\n changes: Partial<Cell>,\n range?: RangeArea,\n focus?: Cell,\n isMulti = false,\n ) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n if (isMulti) {\n const eData: EventData = this.sv.getData();\n if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focusNext(data.start, changes);\n }\n\n /** Monitor key direction changes */\n changeDirectionKey(\n e: KeyboardEvent,\n canRange: boolean,\n ): { changes: Partial<Cell>; isMulti?: boolean } | void {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n"]}