@revolist/revogrid 4.0.11 → 4.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/dist/cjs/app-globals-53fde1aa.js.map +1 -1
  2. package/dist/cjs/base.plugin-32f80cb5.js +219 -0
  3. package/dist/cjs/base.plugin-32f80cb5.js.map +1 -0
  4. package/dist/cjs/{column.service-e83d9809.js → column.service-52b4cac9.js} +28 -12
  5. package/dist/cjs/column.service-52b4cac9.js.map +1 -0
  6. package/dist/cjs/dimension.helpers-ee39d6c4.js.map +1 -1
  7. package/dist/cjs/events-b28cc194.js +52 -0
  8. package/dist/cjs/events-b28cc194.js.map +1 -0
  9. package/dist/cjs/filter.button-db6cbd2e.js.map +1 -1
  10. package/dist/cjs/{header-cell-renderer-8ba9b56d.js → header-cell-renderer-a3f202a1.js} +2 -2
  11. package/dist/cjs/{header-cell-renderer-8ba9b56d.js.map → header-cell-renderer-a3f202a1.js.map} +1 -1
  12. package/dist/cjs/{index-73c149e3.js → index-a9f1b728.js} +3 -4
  13. package/dist/cjs/index-a9f1b728.js.map +1 -0
  14. package/dist/cjs/index.cjs.js +26 -23
  15. package/dist/cjs/index.cjs.js.map +1 -1
  16. package/dist/cjs/{key.utils-59b9b528.js → key.utils-ee3d9eab.js} +2 -2
  17. package/dist/cjs/{key.utils-59b9b528.js.map → key.utils-ee3d9eab.js.map} +1 -1
  18. package/dist/cjs/revo-grid.cjs.entry.js +74 -164
  19. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  20. package/dist/cjs/revogr-attribution_6.cjs.entry.js +193 -142
  21. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  22. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +2 -2
  23. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  24. package/dist/cjs/revogr-data_4.cjs.entry.js +9 -9
  25. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  26. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  27. package/dist/cjs/{selection.store-2e110a67.js → selection.helpers-32abb2a9.js} +77 -75
  28. package/dist/cjs/selection.helpers-32abb2a9.js.map +1 -0
  29. package/dist/cjs/{throttle-f7aee21b.js → throttle-46478b04.js} +2 -2
  30. package/dist/cjs/{throttle-f7aee21b.js.map → throttle-46478b04.js.map} +1 -1
  31. package/dist/cjs/{viewport.helpers-6670177c.js → viewport.store-2ab4e166.js} +186 -1
  32. package/dist/cjs/viewport.store-2ab4e166.js.map +1 -0
  33. package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
  34. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  35. package/dist/collection/components/data/cell-renderer.js.map +1 -1
  36. package/dist/collection/components/data/column.service.js +2 -2
  37. package/dist/collection/components/data/column.service.js.map +1 -1
  38. package/dist/collection/components/data/revogr-data.js +46 -46
  39. package/dist/collection/components/data/revogr-data.js.map +1 -1
  40. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -1
  41. package/dist/collection/components/editors/edit.utils.js.map +1 -1
  42. package/dist/collection/components/editors/revogr-edit.js +9 -9
  43. package/dist/collection/components/editors/revogr-edit.js.map +1 -1
  44. package/dist/collection/components/editors/text-editor.js.map +1 -1
  45. package/dist/collection/components/header/header-cell-renderer.js.map +1 -1
  46. package/dist/collection/components/header/header-renderer.js.map +1 -1
  47. package/dist/collection/components/header/revogr-header.js +28 -28
  48. package/dist/collection/components/header/revogr-header.js.map +1 -1
  49. package/dist/collection/components/order/order-renderer.js.map +1 -1
  50. package/dist/collection/components/order/order-row.service.js +1 -1
  51. package/dist/collection/components/order/order-row.service.js.map +1 -1
  52. package/dist/collection/components/order/revogr-order-editor.js +31 -28
  53. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  54. package/dist/collection/components/overlay/autofill.service.js +37 -26
  55. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  56. package/dist/collection/components/overlay/keyboard.service.js +8 -8
  57. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  58. package/dist/collection/components/overlay/revogr-overlay-selection.js +141 -93
  59. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  60. package/dist/collection/components/overlay/selection.utils.js +37 -9
  61. package/dist/collection/components/overlay/selection.utils.js.map +1 -1
  62. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -1
  63. package/dist/collection/components/revoGrid/revo-grid-style.css +8 -3
  64. package/dist/collection/components/revoGrid/revo-grid.js +150 -135
  65. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  66. package/dist/collection/components/revoGrid/viewport.helpers.js +22 -8
  67. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -1
  68. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +4 -2
  69. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  70. package/dist/collection/components/revoGrid/viewport.service.js +2 -2
  71. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  72. package/dist/collection/components/rowHeaders/revogr-row-headers.js +11 -12
  73. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  74. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -1
  75. package/dist/collection/components/scroll/revogr-viewport-scroll.js +17 -17
  76. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  77. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +17 -17
  78. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  79. package/dist/collection/components/selectionFocus/revogr-focus.js +44 -43
  80. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  81. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +12 -12
  82. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  83. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  84. package/dist/collection/index.js +2 -12
  85. package/dist/collection/index.js.map +1 -1
  86. package/dist/collection/plugins/column.auto-size.plugin.js +3 -4
  87. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  88. package/dist/collection/plugins/export/export.plugin.js +1 -1
  89. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  90. package/dist/collection/plugins/export/types.js.map +1 -1
  91. package/dist/collection/plugins/filter/filter.button.js.map +1 -1
  92. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  93. package/dist/collection/plugins/filter/filter.pop.js +4 -4
  94. package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
  95. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -1
  96. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  97. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -1
  98. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  99. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -1
  100. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +1 -2
  101. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  102. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
  103. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
  104. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
  105. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -1
  106. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -1
  107. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  108. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  109. package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
  110. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  111. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
  112. package/dist/collection/serve/controller.js +86 -18
  113. package/dist/collection/services/column.data.provider.js +1 -2
  114. package/dist/collection/services/column.data.provider.js.map +1 -1
  115. package/dist/collection/services/data.provider.js +1 -2
  116. package/dist/collection/services/data.provider.js.map +1 -1
  117. package/dist/collection/services/dimension.provider.js +3 -5
  118. package/dist/collection/services/dimension.provider.js.map +1 -1
  119. package/dist/collection/services/selection.store.connector.js +1 -2
  120. package/dist/collection/services/selection.store.connector.js.map +1 -1
  121. package/dist/collection/services/viewport.provider.js +1 -2
  122. package/dist/collection/services/viewport.provider.js.map +1 -1
  123. package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
  124. package/dist/collection/store/dataSource/data.store.js +1 -1
  125. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  126. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  127. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
  128. package/dist/collection/store/dimension/dimension.store.js +1 -1
  129. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  130. package/dist/collection/store/{storeTypes.js → index.js} +5 -1
  131. package/dist/collection/store/index.js.map +1 -0
  132. package/dist/collection/store/selection/index.js +0 -1
  133. package/dist/collection/store/selection/index.js.map +1 -1
  134. package/dist/collection/store/selection/selection.helpers.js.map +1 -1
  135. package/dist/collection/store/selection/selection.store.js +1 -1
  136. package/dist/collection/store/selection/selection.store.js.map +1 -1
  137. package/dist/collection/store/vp/index.js.map +1 -0
  138. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  139. package/dist/collection/store/{viewport → vp}/viewport.store.js +4 -7
  140. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  141. package/dist/collection/types/index.js +11 -0
  142. package/dist/collection/types/index.js.map +1 -0
  143. package/dist/collection/types/interfaces.js +4 -0
  144. package/dist/collection/types/interfaces.js.map +1 -1
  145. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  146. package/dist/collection/utils/events.js +11 -1
  147. package/dist/collection/utils/events.js.map +1 -1
  148. package/dist/collection/utils/index.js +0 -1
  149. package/dist/collection/utils/index.js.map +1 -1
  150. package/dist/collection/utils/row-header-utils.js +2 -2
  151. package/dist/collection/utils/row-header-utils.js.map +1 -1
  152. package/dist/collection/utils/store.utils.js.map +1 -1
  153. package/dist/esm/app-globals-ef1fca59.js.map +1 -1
  154. package/dist/esm/base.plugin-d0e589d8.js +213 -0
  155. package/dist/esm/base.plugin-d0e589d8.js.map +1 -0
  156. package/dist/esm/{column.service-f4922a8d.js → column.service-a826bbd6.js} +27 -11
  157. package/dist/esm/column.service-a826bbd6.js.map +1 -0
  158. package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -1
  159. package/dist/esm/events-77b43b40.js +48 -0
  160. package/dist/esm/events-77b43b40.js.map +1 -0
  161. package/dist/esm/filter.button-46ce4f80.js.map +1 -1
  162. package/dist/esm/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
  163. package/dist/esm/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
  164. package/dist/esm/{index-98fd0168.js → index-5a722722.js} +3 -4
  165. package/dist/esm/index-5a722722.js.map +1 -0
  166. package/dist/esm/index.js +4 -4
  167. package/dist/esm/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  168. package/dist/esm/{key.utils-2836e8ae.js.map → key.utils-7c5d91dd.js.map} +1 -1
  169. package/dist/esm/revo-grid.entry.js +42 -132
  170. package/dist/esm/revo-grid.entry.js.map +1 -1
  171. package/dist/esm/revogr-attribution_6.entry.js +187 -136
  172. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  173. package/dist/esm/revogr-clipboard_3.entry.js +2 -2
  174. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  175. package/dist/esm/revogr-data_4.entry.js +9 -9
  176. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  177. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  178. package/dist/esm/{selection.store-2577ddf9.js → selection.helpers-883ce6bc.js} +77 -75
  179. package/dist/esm/selection.helpers-883ce6bc.js.map +1 -0
  180. package/dist/esm/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  181. package/dist/esm/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +1 -1
  182. package/dist/esm/{viewport.helpers-6591d423.js → viewport.store-d9e291c5.js} +187 -3
  183. package/dist/esm/viewport.store-d9e291c5.js.map +1 -0
  184. package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -1
  185. package/dist/revo-grid/base.plugin-d0e589d8.js +5 -0
  186. package/dist/revo-grid/base.plugin-d0e589d8.js.map +1 -0
  187. package/dist/revo-grid/column.service-a826bbd6.js +5 -0
  188. package/dist/revo-grid/column.service-a826bbd6.js.map +1 -0
  189. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -1
  190. package/dist/revo-grid/events-77b43b40.js +5 -0
  191. package/dist/revo-grid/events-77b43b40.js.map +1 -0
  192. package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -1
  193. package/dist/revo-grid/{header-cell-renderer-ac962570.js → header-cell-renderer-19738045.js} +2 -2
  194. package/dist/revo-grid/{header-cell-renderer-ac962570.js.map → header-cell-renderer-19738045.js.map} +1 -1
  195. package/dist/revo-grid/index-5a722722.js +5 -0
  196. package/dist/{esm/index-98fd0168.js.map → revo-grid/index-5a722722.js.map} +1 -1
  197. package/dist/revo-grid/index.esm.js +1 -1
  198. package/dist/revo-grid/{key.utils-2836e8ae.js → key.utils-7c5d91dd.js} +2 -2
  199. package/dist/revo-grid/key.utils-7c5d91dd.js.map +1 -0
  200. package/dist/revo-grid/revo-grid.entry.js +1 -1
  201. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  202. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  203. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  204. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  205. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  206. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  207. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  208. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  209. package/dist/revo-grid/selection.helpers-883ce6bc.js +5 -0
  210. package/dist/revo-grid/selection.helpers-883ce6bc.js.map +1 -0
  211. package/dist/revo-grid/{throttle-cfd527d6.js → throttle-eeca0062.js} +2 -2
  212. package/dist/revo-grid/viewport.store-d9e291c5.js +5 -0
  213. package/dist/revo-grid/viewport.store-d9e291c5.js.map +1 -0
  214. package/dist/types/components/clipboard/revogr-clipboard.d.ts +1 -1
  215. package/dist/types/components/data/cell-renderer.d.ts +1 -1
  216. package/dist/types/components/data/column.service.d.ts +5 -5
  217. package/dist/types/components/data/revogr-data.d.ts +4 -4
  218. package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
  219. package/dist/types/components/editors/edit.utils.d.ts +1 -1
  220. package/dist/types/components/editors/revogr-edit.d.ts +2 -2
  221. package/dist/types/components/editors/text-editor.d.ts +2 -2
  222. package/dist/types/components/header/header-cell-renderer.d.ts +1 -1
  223. package/dist/types/components/header/header-renderer.d.ts +2 -2
  224. package/dist/types/components/header/revogr-header.d.ts +4 -4
  225. package/dist/types/components/order/order-renderer.d.ts +2 -2
  226. package/dist/types/components/order/order-row.service.d.ts +1 -2
  227. package/dist/types/components/order/revogr-order-editor.d.ts +7 -4
  228. package/dist/types/components/overlay/autofill.service.d.ts +11 -10
  229. package/dist/types/components/overlay/keyboard.service.d.ts +4 -5
  230. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +42 -19
  231. package/dist/types/components/overlay/selection.utils.d.ts +13 -6
  232. package/dist/types/components/revoGrid/grid.helpers.d.ts +1 -1
  233. package/dist/types/components/revoGrid/revo-grid.d.ts +10 -7
  234. package/dist/types/components/revoGrid/viewport.helpers.d.ts +14 -5
  235. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +1 -3
  236. package/dist/types/components/revoGrid/viewport.service.d.ts +1 -4
  237. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +1 -2
  238. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  239. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -2
  240. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -2
  241. package/dist/types/components/selectionFocus/revogr-focus.d.ts +3 -5
  242. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -2
  243. package/dist/types/components/vnode/vnode.utils.d.ts +1 -1
  244. package/dist/types/components.d.ts +30 -16
  245. package/dist/types/index.d.ts +2 -12
  246. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  247. package/dist/types/plugins/export/types.d.ts +1 -1
  248. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  249. package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
  250. package/dist/types/plugins/filter/filter.pop.d.ts +1 -1
  251. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -4
  252. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +3 -3
  253. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  254. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +1 -1
  255. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
  256. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  257. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +1 -1
  258. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  259. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
  260. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +1 -3
  261. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -3
  262. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  263. package/dist/types/services/column.data.provider.d.ts +2 -3
  264. package/dist/types/services/data.provider.d.ts +2 -5
  265. package/dist/types/services/dimension.provider.d.ts +2 -4
  266. package/dist/types/services/selection.store.connector.d.ts +2 -3
  267. package/dist/types/services/viewport.provider.d.ts +3 -3
  268. package/dist/types/store/dataSource/data.proxy.d.ts +2 -2
  269. package/dist/types/store/dataSource/data.store.d.ts +3 -3
  270. package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
  271. package/dist/types/store/dimension/dimension.helpers.d.ts +1 -1
  272. package/dist/types/store/dimension/dimension.store.d.ts +4 -5
  273. package/dist/types/store/{storeTypes.d.ts → index.d.ts} +5 -1
  274. package/dist/types/store/selection/index.d.ts +0 -1
  275. package/dist/types/store/selection/selection.helpers.d.ts +1 -1
  276. package/dist/types/store/selection/selection.store.d.ts +2 -2
  277. package/dist/types/store/vp/index.d.ts +7 -0
  278. package/dist/types/store/{viewport → vp}/viewport.helpers.d.ts +1 -1
  279. package/dist/types/store/{viewport → vp}/viewport.store.d.ts +3 -7
  280. package/dist/types/types/index.d.ts +7 -0
  281. package/dist/types/types/interfaces.d.ts +444 -23
  282. package/dist/types/types/viewport.interfaces.d.ts +5 -8
  283. package/dist/types/utils/events.d.ts +4 -1
  284. package/dist/types/utils/index.d.ts +0 -1
  285. package/dist/types/utils/row-header-utils.d.ts +1 -1
  286. package/dist/types/utils/store.utils.d.ts +1 -1
  287. package/hydrate/index.js +3224 -3126
  288. package/package.json +7 -8
  289. package/standalone/_baseIteratee.js +1104 -13
  290. package/standalone/_baseIteratee.js.map +1 -1
  291. package/standalone/_nodeUtil.js +260 -0
  292. package/standalone/_nodeUtil.js.map +1 -0
  293. package/standalone/column.service.js +78 -74
  294. package/standalone/column.service.js.map +1 -1
  295. package/standalone/data.store.js +2 -4
  296. package/standalone/data.store.js.map +1 -1
  297. package/standalone/debounce.js +2 -2
  298. package/standalone/dimension.helpers.js +1 -1
  299. package/standalone/dimension.helpers.js.map +1 -1
  300. package/standalone/filter.button.js.map +1 -1
  301. package/standalone/identity.js +42 -2
  302. package/standalone/identity.js.map +1 -1
  303. package/standalone/index.js +5 -7
  304. package/standalone/index.js.map +1 -1
  305. package/standalone/index2.js +2 -3
  306. package/standalone/index2.js.map +1 -1
  307. package/standalone/isObjectLike.js +1 -34
  308. package/standalone/isObjectLike.js.map +1 -1
  309. package/standalone/revo-grid.js +125 -106
  310. package/standalone/revo-grid.js.map +1 -1
  311. package/standalone/revogr-clipboard2.js.map +1 -1
  312. package/standalone/revogr-data2.js +3 -0
  313. package/standalone/revogr-data2.js.map +1 -1
  314. package/standalone/revogr-edit2.js +1 -1
  315. package/standalone/revogr-edit2.js.map +1 -1
  316. package/standalone/revogr-filter-panel.js.map +1 -1
  317. package/standalone/revogr-focus2.js +7 -3
  318. package/standalone/revogr-focus2.js.map +1 -1
  319. package/standalone/revogr-header2.js +5 -4
  320. package/standalone/revogr-header2.js.map +1 -1
  321. package/standalone/revogr-order-editor2.js +3 -0
  322. package/standalone/revogr-order-editor2.js.map +1 -1
  323. package/standalone/revogr-overlay-selection2.js +143 -143
  324. package/standalone/revogr-overlay-selection2.js.map +1 -1
  325. package/standalone/revogr-row-headers2.js +7 -7
  326. package/standalone/revogr-row-headers2.js.map +1 -1
  327. package/standalone/revogr-scroll-virtual2.js +1 -1
  328. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  329. package/standalone/revogr-temp-range2.js +1 -1
  330. package/standalone/revogr-temp-range2.js.map +1 -1
  331. package/standalone/revogr-viewport-scroll2.js +23 -9
  332. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  333. package/standalone/selection.utils.js +76 -9
  334. package/standalone/selection.utils.js.map +1 -1
  335. package/standalone/throttle.js +1 -1
  336. package/standalone/toNumber.js +35 -2
  337. package/standalone/toNumber.js.map +1 -1
  338. package/dist/cjs/column.service-e83d9809.js.map +0 -1
  339. package/dist/cjs/events-7ccd6894.js +0 -233
  340. package/dist/cjs/events-7ccd6894.js.map +0 -1
  341. package/dist/cjs/index-73c149e3.js.map +0 -1
  342. package/dist/cjs/selection.store-2e110a67.js.map +0 -1
  343. package/dist/cjs/storeTypes-b3f924b2.js +0 -106
  344. package/dist/cjs/storeTypes-b3f924b2.js.map +0 -1
  345. package/dist/cjs/viewport.helpers-6670177c.js.map +0 -1
  346. package/dist/collection/store/selection/selection.store.service.js +0 -39
  347. package/dist/collection/store/selection/selection.store.service.js.map +0 -1
  348. package/dist/collection/store/storeTypes.js.map +0 -1
  349. package/dist/collection/store/viewport/index.js.map +0 -1
  350. package/dist/collection/store/viewport/viewport.helpers.js.map +0 -1
  351. package/dist/collection/store/viewport/viewport.store.js.map +0 -1
  352. package/dist/esm/column.service-f4922a8d.js.map +0 -1
  353. package/dist/esm/events-3dd8ee7c.js +0 -228
  354. package/dist/esm/events-3dd8ee7c.js.map +0 -1
  355. package/dist/esm/selection.store-2577ddf9.js.map +0 -1
  356. package/dist/esm/storeTypes-f2647985.js +0 -101
  357. package/dist/esm/storeTypes-f2647985.js.map +0 -1
  358. package/dist/esm/viewport.helpers-6591d423.js.map +0 -1
  359. package/dist/revo-grid/column.service-f4922a8d.js +0 -5
  360. package/dist/revo-grid/column.service-f4922a8d.js.map +0 -1
  361. package/dist/revo-grid/events-3dd8ee7c.js +0 -5
  362. package/dist/revo-grid/events-3dd8ee7c.js.map +0 -1
  363. package/dist/revo-grid/index-98fd0168.js +0 -5
  364. package/dist/revo-grid/index-98fd0168.js.map +0 -1
  365. package/dist/revo-grid/key.utils-2836e8ae.js.map +0 -1
  366. package/dist/revo-grid/selection.store-2577ddf9.js +0 -5
  367. package/dist/revo-grid/selection.store-2577ddf9.js.map +0 -1
  368. package/dist/revo-grid/storeTypes-f2647985.js +0 -5
  369. package/dist/revo-grid/storeTypes-f2647985.js.map +0 -1
  370. package/dist/revo-grid/viewport.helpers-6591d423.js +0 -5
  371. package/dist/revo-grid/viewport.helpers-6591d423.js.map +0 -1
  372. package/dist/types/store/selection/selection.store.service.d.ts +0 -17
  373. package/dist/types/store/viewport/index.d.ts +0 -2
  374. package/standalone/_stringToPath.js +0 -1389
  375. package/standalone/_stringToPath.js.map +0 -1
  376. /package/dist/collection/store/{viewport → vp}/index.js +0 -0
  377. /package/dist/collection/store/{viewport → vp}/viewport.helpers.js +0 -0
  378. /package/dist/revo-grid/{throttle-cfd527d6.js.map → throttle-eeca0062.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"app-globals-53fde1aa.js","mappings":";;;;;;;;;AACY,MAAC,aAAa,GAAGA;;;;","names":["appGlobalScript"],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/Users/maks/Projects/revogrid/src/global/global.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
1
+ {"file":"app-globals-53fde1aa.js","mappings":";;;;;;;;;AACY,MAAC,aAAa,GAAGA;;;;","names":["appGlobalScript"],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/home/runner/work/revogrid/revogrid/src/global/global.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
@@ -0,0 +1,219 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ 'use strict';
5
+
6
+ const dimension_helpers = require('./dimension.helpers-ee39d6c4.js');
7
+ require('./index-84e32c2a.js');
8
+ require('./toNumber-838e6ff5.js');
9
+
10
+ /**
11
+ * Storing pre-calculated
12
+ * Dimension information and sizes
13
+ */
14
+ const trimmedPlugin = (store) => {
15
+ let trimmedSize = {};
16
+ const setTrimmed = (sizes, trimmed) => {
17
+ const newSize = Object.assign({}, sizes);
18
+ trimmedSize = {};
19
+ dimension_helpers.each(trimmed, (v, index) => {
20
+ if (v && newSize[index]) {
21
+ trimmedSize[index] = newSize[index];
22
+ delete newSize[index];
23
+ }
24
+ });
25
+ store.setDimensionSize(newSize);
26
+ };
27
+ return {
28
+ set(key, val) {
29
+ switch (key) {
30
+ case 'trimmed':
31
+ const trim = val;
32
+ const sizes = store.store.get('sizes');
33
+ // recover trimmed, apply new trim
34
+ setTrimmed(Object.assign(Object.assign({}, sizes), trimmedSize), trim);
35
+ break;
36
+ }
37
+ },
38
+ };
39
+ };
40
+ const realSizePlugin = (store) => {
41
+ return {
42
+ set(k) {
43
+ switch (k) {
44
+ case 'count':
45
+ case 'sizes':
46
+ case 'originItemSize':
47
+ let realSize = 0;
48
+ const count = store.store.get('count');
49
+ for (let i = 0; i < count; i++) {
50
+ realSize +=
51
+ store.store.get('sizes')[i] || store.store.get('originItemSize');
52
+ }
53
+ store.setStore({ realSize });
54
+ }
55
+ },
56
+ };
57
+ };
58
+ function initialBase() {
59
+ return {
60
+ indexes: [],
61
+ count: 0,
62
+ // plugin support
63
+ trimmed: {},
64
+ // size operations, this provider stores only changed sizes, not all of them
65
+ // same as indexes but for sizes and positions
66
+ // item index to size
67
+ sizes: {},
68
+ // order in indexes[] to coordinate
69
+ positionIndexToItem: {},
70
+ // initial element to coordinate ^
71
+ indexToItem: {},
72
+ positionIndexes: [],
73
+ };
74
+ }
75
+ function initialState() {
76
+ return Object.assign(Object.assign({}, initialBase()), {
77
+ // size which all items can take
78
+ realSize: 0,
79
+ // initial item size if it wasn't changed
80
+ originItemSize: 0 });
81
+ }
82
+ class DimensionStore {
83
+ constructor() {
84
+ this.store = dimension_helpers.createStore(initialState());
85
+ this.store.use(trimmedPlugin(this));
86
+ this.store.use(realSizePlugin(this));
87
+ }
88
+ getCurrentState() {
89
+ const state = initialState();
90
+ const keys = Object.keys(state);
91
+ return dimension_helpers.reduce_1(keys, (r, k) => {
92
+ const data = this.store.get(k);
93
+ r[k] = data;
94
+ return r;
95
+ }, state);
96
+ }
97
+ dispose() {
98
+ dimension_helpers.setStore(this.store, initialState());
99
+ }
100
+ setStore(data) {
101
+ dimension_helpers.setStore(this.store, data);
102
+ }
103
+ drop() {
104
+ dimension_helpers.setStore(this.store, initialBase());
105
+ }
106
+ /**
107
+ * Set custom dimension sizes and overwrite old
108
+ * Generates new indexes based on sizes
109
+ * @param sizes - sizes to set
110
+ */
111
+ setDimensionSize(sizes) {
112
+ const dimensionData = dimension_helpers.calculateDimensionData(this.store.get('originItemSize'), sizes);
113
+ dimension_helpers.setStore(this.store, dimensionData);
114
+ return dimensionData;
115
+ }
116
+ }
117
+
118
+ const rowTypes = ['rowPinStart', 'rgRow', 'rowPinEnd'];
119
+ const columnTypes = [
120
+ 'colPinStart',
121
+ 'rgCol',
122
+ 'colPinEnd',
123
+ ];
124
+ function isRowType(type) {
125
+ return rowTypes.indexOf(type) > -1;
126
+ }
127
+
128
+ /**
129
+ * Base layer for plugins
130
+ * Provide minimal starting core for plugins to work
131
+ * Extend this class to create plugin
132
+ */
133
+ class BasePlugin {
134
+ constructor(revogrid, providers) {
135
+ this.revogrid = revogrid;
136
+ this.providers = providers;
137
+ this.subscriptions = {};
138
+ }
139
+ /**
140
+ *
141
+ * @param eventName - event name to subscribe to in revo-grid component (e.g. 'beforeheaderclick')
142
+ * @param callback - callback function for event
143
+ */
144
+ addEventListener(eventName, callback) {
145
+ this.revogrid.addEventListener(eventName, callback);
146
+ this.subscriptions[eventName] = callback;
147
+ }
148
+ /**
149
+ * Subscribe to property change in revo-grid component
150
+ * You can return false in callback to prevent default value set
151
+ *
152
+ * @param prop - property name
153
+ * @param callback - callback function
154
+ * @param immediate - trigger callback immediately with current value
155
+ */
156
+ watch(prop, callback, { immediate } = { immediate: false }) {
157
+ const nativeValueDesc = Object.getOwnPropertyDescriptor(this.revogrid, prop) ||
158
+ Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype, prop);
159
+ // Overwrite property descriptor for this instance
160
+ Object.defineProperty(this.revogrid, prop, {
161
+ set(val) {
162
+ var _a;
163
+ const keepDefault = callback(val);
164
+ if (keepDefault === false) {
165
+ return;
166
+ }
167
+ // Continue with native behavior
168
+ return (_a = nativeValueDesc === null || nativeValueDesc === void 0 ? void 0 : nativeValueDesc.set) === null || _a === void 0 ? void 0 : _a.call(this, val);
169
+ },
170
+ get() {
171
+ var _a;
172
+ // Continue with native behavior
173
+ return (_a = nativeValueDesc === null || nativeValueDesc === void 0 ? void 0 : nativeValueDesc.get) === null || _a === void 0 ? void 0 : _a.call(this);
174
+ },
175
+ });
176
+ if (immediate) {
177
+ callback(nativeValueDesc === null || nativeValueDesc === void 0 ? void 0 : nativeValueDesc.value);
178
+ }
179
+ }
180
+ /**
181
+ * Remove event listener
182
+ * @param eventName
183
+ */
184
+ removeEventListener(eventName) {
185
+ this.revogrid.removeEventListener(eventName, this.subscriptions[eventName]);
186
+ delete this.subscriptions[eventName];
187
+ }
188
+ /**
189
+ * Emit event from revo-grid component
190
+ * Event can be cancelled by calling event.preventDefault() in callback
191
+ */
192
+ emit(eventName, detail) {
193
+ const event = new CustomEvent(eventName, { detail, cancelable: true });
194
+ this.revogrid.dispatchEvent(event);
195
+ return event;
196
+ }
197
+ /**
198
+ * Clear all subscriptions
199
+ */
200
+ clearSubscriptions() {
201
+ for (let type in this.subscriptions) {
202
+ this.removeEventListener(type);
203
+ }
204
+ }
205
+ /**
206
+ * Destroy plugin and clear all subscriptions
207
+ */
208
+ destroy() {
209
+ this.clearSubscriptions();
210
+ }
211
+ }
212
+
213
+ exports.BasePlugin = BasePlugin;
214
+ exports.DimensionStore = DimensionStore;
215
+ exports.columnTypes = columnTypes;
216
+ exports.isRowType = isRowType;
217
+ exports.rowTypes = rowTypes;
218
+
219
+ //# sourceMappingURL=base.plugin-32f80cb5.js.map
@@ -0,0 +1 @@
1
+ {"file":"base.plugin-32f80cb5.js","mappings":"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","names":["each","createStore","reduce","setStore","calculateDimensionData"],"sources":["src/store/dimension/dimension.store.ts","src/store/index.ts","src/plugins/base.plugin.ts"],"sourcesContent":["/**\n * Storing pre-calculated\n * Dimension information and sizes\n */\n\nimport { createStore } from '@stencil/store';\nimport reduce from 'lodash/reduce';\n\nimport { setStore } from '../../utils/store.utils';\nimport { calculateDimensionData } from './dimension.helpers';\nimport each from 'lodash/each';\nimport {\n DimensionCalc,\n DimensionSettingsState,\n Observable,\n PluginSubscribe,\n ViewSettingSizeProp,\n MultiDimensionType,\n} from '@type';\n\nexport type DimensionStoreCollection = {\n [T in MultiDimensionType]: DimensionStore;\n};\n\ntype Item = keyof DimensionSettingsState;\n\nconst trimmedPlugin = (\n store: DimensionStore,\n): PluginSubscribe<DimensionSettingsState> => {\n let trimmedSize: DimensionSettingsState['sizes'] = {};\n\n const setTrimmed = (\n sizes: DimensionSettingsState['sizes'],\n trimmed: DimensionSettingsState['trimmed'],\n ) => {\n const newSize = { ...sizes };\n trimmedSize = {};\n each(trimmed, (v, index) => {\n if (v && newSize[index]) {\n trimmedSize[index] = newSize[index];\n delete newSize[index];\n }\n });\n store.setDimensionSize(newSize);\n };\n return {\n set(key, val) {\n switch (key) {\n case 'trimmed':\n const trim = val as DimensionSettingsState['trimmed'];\n const sizes = store.store.get('sizes');\n // recover trimmed, apply new trim\n setTrimmed({ ...sizes, ...trimmedSize }, trim);\n break;\n }\n },\n };\n};\n\nconst realSizePlugin = (\n store: DimensionStore,\n): PluginSubscribe<DimensionSettingsState> => {\n return {\n set(k) {\n switch (k) {\n case 'count':\n case 'sizes':\n case 'originItemSize':\n let realSize = 0;\n const count = store.store.get('count');\n for (let i = 0; i < count; i++) {\n realSize +=\n store.store.get('sizes')[i] || store.store.get('originItemSize');\n }\n store.setStore({ realSize });\n }\n },\n };\n};\n\nfunction initialBase(): DimensionCalc {\n return {\n indexes: [],\n count: 0,\n\n // plugin support\n trimmed: {},\n\n // size operations, this provider stores only changed sizes, not all of them\n // same as indexes but for sizes and positions\n // item index to size\n sizes: {},\n // order in indexes[] to coordinate\n positionIndexToItem: {},\n // initial element to coordinate ^\n indexToItem: {},\n positionIndexes: [],\n };\n}\n\nfunction initialState(): DimensionSettingsState {\n return {\n ...initialBase(),\n // size which all items can take\n realSize: 0,\n\n // initial item size if it wasn't changed\n originItemSize: 0,\n };\n}\n\nexport class DimensionStore {\n readonly store: Observable<DimensionSettingsState>;\n constructor() {\n this.store = createStore(initialState());\n this.store.use(trimmedPlugin(this));\n this.store.use(realSizePlugin(this));\n }\n\n getCurrentState(): DimensionSettingsState {\n const state = initialState();\n const keys = Object.keys(state);\n return reduce(\n keys,\n (r: DimensionSettingsState, k: Item) => {\n const data = this.store.get(k);\n r[k] = data as never;\n return r;\n },\n state,\n );\n }\n\n dispose() {\n setStore(this.store, initialState());\n }\n\n setStore<T extends Record<string, any>>(data: Partial<T>) {\n setStore(this.store, data);\n }\n\n drop() {\n setStore(this.store, initialBase());\n }\n\n /**\n * Set custom dimension sizes and overwrite old\n * Generates new indexes based on sizes\n * @param sizes - sizes to set\n */\n setDimensionSize(sizes: ViewSettingSizeProp) {\n const dimensionData = calculateDimensionData(\n this.store.get('originItemSize'),\n sizes,\n );\n setStore(this.store, dimensionData);\n return dimensionData;\n }\n}\n","import type { DimensionCols, DimensionRows } from '@type';\n\nexport * from './dataSource';\nexport * from './dimension';\nexport * from './selection';\nexport * from './vp';\n\nexport const rowTypes: DimensionRows[] = ['rowPinStart', 'rgRow', 'rowPinEnd'];\nexport const columnTypes: DimensionCols[] = [\n 'colPinStart',\n 'rgCol',\n 'colPinEnd',\n];\n\nexport function isRowType(type: DimensionRows | any): type is DimensionRows {\n return rowTypes.indexOf(type) > -1;\n}\n","import { PluginProviders, PluginBaseComponent } from '..';\n\ntype WatchConfig = { immediate: boolean };\n\n/**\n * Base layer for plugins\n * Provide minimal starting core for plugins to work\n * Extend this class to create plugin\n */\nexport class BasePlugin implements PluginBaseComponent {\n protected readonly subscriptions: Record<string, (...args: any[]) => void> = {};\n constructor(protected revogrid: HTMLRevoGridElement, protected providers: PluginProviders) {}\n /**\n *\n * @param eventName - event name to subscribe to in revo-grid component (e.g. 'beforeheaderclick')\n * @param callback - callback function for event\n */\n protected addEventListener(\n eventName: string,\n callback: (e: CustomEvent) => void,\n ) {\n this.revogrid.addEventListener(eventName, callback);\n this.subscriptions[eventName] = callback;\n }\n\n /**\n * Subscribe to property change in revo-grid component\n * You can return false in callback to prevent default value set\n *\n * @param prop - property name\n * @param callback - callback function\n * @param immediate - trigger callback immediately with current value\n */\n protected watch<T extends any>(\n prop: string,\n callback: (arg: T) => boolean | void,\n { immediate }: Partial<WatchConfig> = { immediate: false },\n ) {\n const nativeValueDesc =\n Object.getOwnPropertyDescriptor(this.revogrid, prop) ||\n Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype, prop);\n\n // Overwrite property descriptor for this instance\n Object.defineProperty(this.revogrid, prop, {\n set(val: T) {\n const keepDefault = callback(val);\n if (keepDefault === false) {\n return;\n }\n // Continue with native behavior\n return nativeValueDesc?.set?.call(this, val);\n },\n get() {\n // Continue with native behavior\n return nativeValueDesc?.get?.call(this);\n },\n });\n if (immediate) {\n callback(nativeValueDesc?.value);\n }\n }\n\n /**\n * Remove event listener\n * @param eventName\n */\n protected removeEventListener(eventName: string) {\n this.revogrid.removeEventListener(eventName, this.subscriptions[eventName]);\n delete this.subscriptions[eventName];\n }\n\n /**\n * Emit event from revo-grid component\n * Event can be cancelled by calling event.preventDefault() in callback\n */\n protected emit(eventName: string, detail?: any) {\n const event = new CustomEvent(eventName, { detail, cancelable: true });\n this.revogrid.dispatchEvent(event);\n return event;\n }\n\n /**\n * Clear all subscriptions\n */\n protected clearSubscriptions() {\n for (let type in this.subscriptions) {\n this.removeEventListener(type);\n }\n }\n\n /**\n * Destroy plugin and clear all subscriptions\n */\n destroy() {\n this.clearSubscriptions();\n }\n}\n"],"version":3}
@@ -4,8 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const dimension_helpers = require('./dimension.helpers-ee39d6c4.js');
7
- const index = require('./index-73c149e3.js');
8
- const selection_store = require('./selection.store-2e110a67.js');
7
+ require('./index-84e32c2a.js');
8
+ require('./toNumber-838e6ff5.js');
9
+ const selection_helpers = require('./selection.helpers-32abb2a9.js');
10
+ const index = require('./index-a9f1b728.js');
9
11
 
10
12
  const GROUP_DEPTH = `${index.GRID_INTERNALS}-depth`;
11
13
  const PSEUDO_GROUP_ITEM = `${index.GRID_INTERNALS}-name`;
@@ -139,16 +141,30 @@ function isSameGroup(currentGroup, currentModel, nextModel) {
139
141
  return currentModel[GROUP_DEPTH] < depth;
140
142
  }
141
143
 
142
- /** Collect data for pinned columns in required @ViewportProps format */
143
- const HEADER_SLOT = 'header';
144
- const FOOTER_SLOT = 'footer';
145
- const CONTENT_SLOT = 'content';
146
- const DATA_SLOT = 'data';
147
- /** Receive last visible in viewport by required type */
144
+ /**
145
+ * Collects data for pinned columns in the required @ViewportProps format.
146
+ */
147
+ /**
148
+ * Represents the slot names for the viewport slots.
149
+ */
150
+ const HEADER_SLOT = 'header'; // Slot name for the header slot
151
+ const FOOTER_SLOT = 'footer'; // Slot name for the footer slot
152
+ const CONTENT_SLOT = 'content'; // Slot name for the content slot
153
+ const DATA_SLOT = 'data'; // Slot name for the data slot
154
+ /**
155
+ * Returns the last visible cell in the viewport for a given row type.
156
+ * Coordinates are not zero-based and are relative to the viewport.
157
+ * If needed to be zero-based they can be adjusted by subtracting 1.
158
+ */
148
159
  function getLastCell(data, rowType) {
160
+ // Get the last visible column count from the viewport column data.
161
+ const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');
162
+ // Get the last visible row count for the given row type from the viewport column data.
163
+ const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');
164
+ // Return the last visible cell with the last visible column count and row count.
149
165
  return {
150
- x: data.viewports[data.colType].store.get('realCount'),
151
- y: data.viewports[rowType].store.get('realCount'),
166
+ x: lastVisibleColumnCount,
167
+ y: lastVisibleRowCount,
152
168
  };
153
169
  }
154
170
 
@@ -403,7 +419,7 @@ class ColumnService {
403
419
  }
404
420
  maxCol = Math.max(maxCol, colIndex - 1);
405
421
  }
406
- const range = selection_store.getRange(start, {
422
+ const range = selection_helpers.getRange(start, {
407
423
  y: rowIndex - 1,
408
424
  x: maxCol,
409
425
  });
@@ -548,4 +564,4 @@ exports.isGroupingColumn = isGroupingColumn;
548
564
  exports.isRowDragService = isRowDragService;
549
565
  exports.isSameGroup = isSameGroup;
550
566
 
551
- //# sourceMappingURL=column.service-e83d9809.js.map
567
+ //# sourceMappingURL=column.service-52b4cac9.js.map
@@ -0,0 +1 @@
1
+ {"file":"column.service-52b4cac9.js","mappings":"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","names":["GRID_INTERNALS","baseSlice","require$$0","require$$1","require$$2","getVisibleSourceItem","CELL_CLASS","DISABLED_CLASS","getSourceItem","getRange","slice"],"sources":["src/plugins/groupingRow/grouping.const.ts","src/plugins/groupingRow/grouping.service.ts","src/components/revoGrid/viewport.helpers.ts","node_modules/lodash/_baseSlice.js","node_modules/lodash/slice.js","src/components/data/column.service.ts"],"sourcesContent":["import { GRID_INTERNALS } from '../../utils/consts';\n\nexport const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;\nexport const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;\nexport const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;\nexport const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;\nexport const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;\nexport const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;\nexport const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;\nexport const GROUP_EXPAND_BTN = `group-expand`;\nexport const GROUP_EXPAND_EVENT = `groupexpandclick`;\nexport const GROUPING_ROW_TYPE = 'rgRow';\n","import { DataType, ColumnProp, ColumnRegular } from '@type';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n} from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n\n getGroupValue?(item: DataType, prop: string | number): any;\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n groupIds: ColumnProp[],\n { prevExpanded, expandedAll, getGroupValue = getGroupValueDefault }: ExpandedOptions,\n) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map(groupId => getGroupValue(item, groupId));\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach(value => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n });\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n const lastLevelItems = currentGroupLevel.get(\n lastLevelValue,\n ) as DataType[];\n lastLevelItems.push({\n ...item,\n [GROUP_ORIGINAL_INDEX]: originalIndex,\n });\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: DataType[] = [];\n function flattenGroupMaps(\n groupedValues: GroupedData,\n parentIds: string[],\n isExpanded: boolean,\n ) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded =\n isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach(value => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) =>\n levelIds.slice(0, index + 1).join(','),\n );\n pseudoGroupTestIds.forEach(pseudoGroupTestId => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\nexport function isGrouping(rgRow?: DataType) {\n return rgRow && typeof rgRow[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string): any[] {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safe guard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(\n currentGroup: any[],\n currentModel: DataType,\n nextModel: DataType,\n) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n","/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport { MultiDimensionType } from '@type';\nimport { Cell } from '@type';\nimport { ViewportColumn } from '@type';\n\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","import {\n DSourceState,\n getSourceItem,\n getVisibleSourceItem,\n} from '@store';\nimport { CELL_CLASS, DISABLED_CLASS } from '../../utils/consts';\nimport { getRange } from '@store';\n\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\nimport slice from 'lodash/slice';\nimport { DimensionCols, DimensionRows, RowDrag } from '@type';\nimport {\n ColumnRegular,\n Observable,\n DataType,\n ReadOnlyFormat,\n CellProps,\n ColumnDataSchemaModel,\n ColumnProp,\n DataLookup,\n DataFormat,\n} from '@type';\nimport {\n ChangedRange,\n OldNewRangeMapping,\n Cell,\n RangeArea,\n BeforeSaveDataDetails,\n EditorCtr,\n Editors,\n} from '@type';\n\nexport type ColumnStores = {\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n};\nexport type RowStores = {\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\n};\n\nexport default class ColumnService {\n private unsubscribe: { (): void }[] = [];\n get columns(): ColumnRegular[] {\n return getVisibleSourceItem(this.source);\n }\n\n hasGrouping = false;\n type: DimensionCols;\n\n constructor(\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\n ) {\n this.unsubscribe.push(\n source.onChange('source', s => this.checkGrouping(s)),\n );\n this.checkGrouping(source.get('source'));\n this.type = source.get('type');\n }\n\n private checkGrouping(cols: ColumnRegular[]) {\n for (let rgCol of cols) {\n if (isGroupingColumn(rgCol)) {\n this.hasGrouping = true;\n return;\n }\n this.hasGrouping = false;\n }\n }\n\n isReadOnly(r: number, c: number): boolean {\n const readOnly: ReadOnlyFormat = this.columns[c]?.readonly;\n if (typeof readOnly === 'function') {\n const data = this.rowDataModel(r, c);\n return readOnly(data);\n }\n return readOnly;\n }\n\n mergeProperties(\n r: number,\n c: number,\n defaultProps: CellProps,\n model: ColumnDataSchemaModel,\n extraPropsFunc: ColumnRegular['cellProperties'],\n ): CellProps {\n const cellClass: { [key: string]: boolean } = {\n [CELL_CLASS]: true,\n [DISABLED_CLASS]: this.isReadOnly(r, c),\n };\n let props: CellProps = {\n ...defaultProps,\n class: cellClass,\n };\n const extra = extraPropsFunc?.(model);\n if (!extra) {\n return props;\n }\n return doPropMerge(props, extra);\n }\n\n getRowClass(r: number, prop: string): string {\n const model = getSourceItem(this.dataStore, r) || {};\n return model[prop] || '';\n }\n\n getCellData(r: number, c: number): string {\n const data = this.rowDataModel(r, c);\n return getCellData(data.model[data.prop as number]);\n }\n\n getSaveData(\n rowIndex: number,\n colIndex: number,\n val?: string,\n ): BeforeSaveDataDetails {\n if (typeof val === 'undefined') {\n val = this.getCellData(rowIndex, colIndex);\n }\n const data = this.rowDataModel(rowIndex, colIndex);\n return {\n prop: data.prop,\n rowIndex,\n colIndex,\n val,\n model: data.model,\n colType: this.type,\n type: this.dataStore.get('type'),\n };\n }\n\n getCellEditor(\n _r: number,\n c: number,\n editors: Editors,\n ): EditorCtr | undefined {\n const editor = this.columns[c]?.editor;\n if (!editor) {\n return undefined;\n }\n // reference\n if (typeof editor === 'string') {\n return editors[editor];\n }\n return editor;\n }\n\n /**\n * Get cell data model for given rowIndex and colIndex\n * Used to pass data to editor/renderer\n */\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\n const column = this.columns[colIndex];\n const prop: ColumnProp | undefined = column?.prop;\n const model = getSourceItem(this.dataStore, rowIndex) || {};\n const value = model[prop];\n const type = this.dataStore.get('type');\n return {\n prop,\n model,\n data: this.dataStore.get('source'),\n column,\n rowIndex,\n colIndex,\n colType: this.type,\n type,\n value,\n };\n }\n\n getRangeData(\n d: ChangedRange,\n columns: ColumnRegular[],\n ): {\n changed: DataLookup;\n mapping: OldNewRangeMapping;\n } {\n const changed: DataLookup = {};\n\n // get original length sizes\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\n const mapping: OldNewRangeMapping = {};\n\n // rows\n for (\n let rowIndex = d.newRange.y, i = 0;\n rowIndex < d.newRange.y1 + 1;\n rowIndex++, i++\n ) {\n // copy original data link\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\n\n // columns\n for (\n let colIndex = d.newRange.x, j = 0;\n colIndex < d.newRange.x1 + 1;\n colIndex++, j++\n ) {\n // check if old range area\n if (\n rowIndex >= d.oldRange.y &&\n rowIndex <= d.oldRange.y1 &&\n colIndex >= d.oldRange.x &&\n colIndex <= d.oldRange.x1\n ) {\n continue;\n }\n\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const prop = this.columns[colIndex]?.prop;\n const copyColIndex = d.oldRange.x + (j % copyColLength);\n const copyColumnProp = columns[copyColIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][prop] = copyRow[copyColumnProp];\n /** Generate mapping object */\n if (!mapping[rowIndex]) {\n mapping[rowIndex] = {};\n }\n mapping[rowIndex][prop] = {\n colIndex: copyColIndex,\n colProp: copyColumnProp,\n rowIndex: oldRowIndex,\n };\n }\n }\n }\n return {\n changed,\n mapping,\n };\n }\n\n getTransformedDataToApply(\n start: Cell,\n data: DataFormat[][],\n ): {\n changed: DataLookup;\n range: RangeArea;\n } {\n const changed: DataLookup = {};\n const copyRowLength = data.length;\n const colLength = this.columns.length;\n const rowLength = this.dataStore.get('items').length;\n // rows\n let rowIndex = start.y;\n let maxCol = 0;\n for (\n let i = 0;\n rowIndex < rowLength && i < copyRowLength;\n rowIndex++, i++\n ) {\n // copy original data link\n const copyRow = data[i % copyRowLength];\n const copyColLength = copyRow?.length || 0;\n // columns\n let colIndex = start.x;\n for (\n let j = 0;\n colIndex < colLength && j < copyColLength;\n colIndex++, j++\n ) {\n const p = this.columns[colIndex].prop;\n const currentCol = j % colLength;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = copyRow[currentCol];\n }\n }\n maxCol = Math.max(maxCol, colIndex - 1);\n }\n const range = getRange(start, {\n y: rowIndex - 1,\n x: maxCol,\n });\n return {\n changed,\n range,\n };\n }\n\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\n const changed: DataLookup = {};\n\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const p = this.columns[colIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = value;\n }\n }\n }\n return changed;\n }\n\n getRangeTransformedToProps(\n d: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const area: {\n prop: ColumnProp;\n rowIndex: number;\n colIndex: number;\n model: DataType;\n colType: DimensionCols;\n type: DimensionRows;\n }[] = [];\n\n const type = this.dataStore.get('type');\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n const prop = this.columns[colIndex]?.prop;\n area.push({\n prop,\n rowIndex,\n colIndex,\n model: getSourceItem(store, rowIndex),\n type,\n colType: this.type,\n });\n }\n }\n return area;\n }\n\n copyRangeArray(\n range: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const cols = [...this.columns];\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\n const toCopy: DataFormat[][] = [];\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\n\n // rows indexes\n for (let i = range.y; i <= range.y1; i++) {\n const rgRow: DataFormat[] = [];\n mapping[i] = {};\n\n // columns indexes\n for (let prop of props) {\n const item = getSourceItem(store, i);\n\n // if no item - skip\n if (!item) {\n continue;\n }\n const val = item[prop];\n rgRow.push(val);\n mapping[i][prop] = val;\n }\n\n toCopy.push(rgRow);\n }\n return {\n data: toCopy,\n mapping,\n };\n }\n\n destroy() {\n this.unsubscribe.forEach(f => f());\n }\n}\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\n/**\n * Checks if the given rowDrag is a service for dragging rows.\n */\nexport function isRowDragService(\n rowDrag: RowDrag,\n model: ColumnDataSchemaModel,\n): boolean {\n if (typeof rowDrag === 'function') {\n return rowDrag(model);\n }\n return !!rowDrag;\n}\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\n let props: CellProps = { ...extra, ...existing };\n // extend existing props\n if (extra.class) {\n if (typeof extra.class === 'object' && typeof props.class === 'object') {\n props.class = { ...extra.class, ...props.class };\n } else if (\n typeof extra.class === 'string' &&\n typeof props.class === 'object'\n ) {\n props.class[extra.class] = true;\n } else if (typeof props.class === 'string') {\n props.class += ' ' + extra.class;\n }\n }\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n"],"version":3}