@revolist/revogrid 4.9.41 → 4.9.42

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 (403) hide show
  1. package/dist/cjs/app-globals-c0b20747.js.map +1 -1
  2. package/dist/cjs/{column.drag.plugin-fcd892ec.js → column.drag.plugin-a6ef25bf.js} +1034 -149
  3. package/dist/cjs/column.drag.plugin-a6ef25bf.js.map +1 -0
  4. package/dist/cjs/column.service-831e1c92.js +1321 -0
  5. package/dist/cjs/column.service-831e1c92.js.map +1 -0
  6. package/dist/cjs/{column.service-26c61ed6.js → dimension.helpers-1927ad24.js} +490 -1273
  7. package/dist/cjs/dimension.helpers-1927ad24.js.map +1 -0
  8. package/dist/cjs/{edit.utils-179c0800.js → edit.utils-e51411f6.js} +3 -3
  9. package/dist/cjs/{edit.utils-179c0800.js.map → edit.utils-e51411f6.js.map} +1 -1
  10. package/dist/cjs/{header-cell-renderer-d879d95e.js → header-cell-renderer-53ecdcdb.js} +2 -2
  11. package/dist/cjs/{header-cell-renderer-d879d95e.js.map → header-cell-renderer-53ecdcdb.js.map} +1 -1
  12. package/dist/cjs/index.cjs.js +127 -69
  13. package/dist/cjs/index.cjs.js.map +1 -1
  14. package/dist/cjs/key.utils-96d0bc42.js +101 -0
  15. package/dist/cjs/key.utils-96d0bc42.js.map +1 -0
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/revo-grid.cjs.entry.js +310 -941
  18. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  19. package/dist/cjs/revo-grid.cjs.js +1 -1
  20. package/dist/cjs/revogr-attribution_7.cjs.entry.js +100 -70
  21. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
  22. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +11 -10
  23. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  24. package/dist/cjs/revogr-data_4.cjs.entry.js +88 -78
  25. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  26. package/dist/cjs/revogr-filter-panel.cjs.entry.js +33 -13
  27. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  28. package/dist/cjs/{text-editor-b756d6b3.js → text-editor-1afffaf1.js} +6 -6
  29. package/dist/cjs/text-editor-1afffaf1.js.map +1 -0
  30. package/dist/cjs/{throttle-a57f51f9.js → throttle-bb713c73.js} +4 -4
  31. package/dist/cjs/{throttle-a57f51f9.js.map → throttle-bb713c73.js.map} +1 -1
  32. package/dist/cjs/{row-header-utils-c37f76e4.js → viewport.store-69b45f22.js} +15 -14
  33. package/dist/cjs/viewport.store-69b45f22.js.map +1 -0
  34. package/dist/collection/components/attribution/revogr-attribution.js +1 -1
  35. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -1
  36. package/dist/collection/components/data/cell-renderer.js +11 -9
  37. package/dist/collection/components/data/cell-renderer.js.map +1 -1
  38. package/dist/collection/components/data/column.service.js +7 -19
  39. package/dist/collection/components/data/column.service.js.map +1 -1
  40. package/dist/collection/components/data/revogr-data-style.css +10 -5
  41. package/dist/collection/components/data/revogr-data.js +50 -28
  42. package/dist/collection/components/data/revogr-data.js.map +1 -1
  43. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -1
  44. package/dist/collection/components/data/row-renderer.js.map +1 -1
  45. package/dist/collection/components/editors/revogr-edit-style.css +8 -5
  46. package/dist/collection/components/editors/revogr-edit.js +2 -2
  47. package/dist/collection/components/editors/revogr-edit.js.map +1 -1
  48. package/dist/collection/components/editors/text-editor.js +2 -2
  49. package/dist/collection/components/editors/text-editor.js.map +1 -1
  50. package/dist/collection/components/extra/revogr-extra.js +44 -6
  51. package/dist/collection/components/extra/revogr-extra.js.map +1 -1
  52. package/dist/collection/components/header/header-cell-renderer.js.map +1 -1
  53. package/dist/collection/components/header/header-renderer.js.map +1 -1
  54. package/dist/collection/components/header/resizable.element.js.map +1 -1
  55. package/dist/collection/components/header/revogr-header-style.css +8 -5
  56. package/dist/collection/components/header/revogr-header.js +9 -9
  57. package/dist/collection/components/header/revogr-header.js.map +1 -1
  58. package/dist/collection/components/order/order-renderer.js.map +1 -1
  59. package/dist/collection/components/order/revogr-order-editor.js +12 -24
  60. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  61. package/dist/collection/components/overlay/autofill.service.js +7 -5
  62. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  63. package/dist/collection/components/overlay/keyboard.service.js +1 -4
  64. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  65. package/dist/collection/components/overlay/revogr-overlay-selection.js +88 -72
  66. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  67. package/dist/collection/components/overlay/revogr-overlay-style.css +8 -5
  68. package/dist/collection/components/overlay/selection.utils.js.map +1 -1
  69. package/dist/collection/components/revoGrid/plugin.service.js +81 -0
  70. package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
  71. package/dist/collection/components/revoGrid/revo-grid-style.css +18 -11
  72. package/dist/collection/components/revoGrid/revo-grid.js +289 -140
  73. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  74. package/dist/collection/components/revoGrid/viewport.service.js +9 -9
  75. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  76. package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
  77. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  78. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -1
  79. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +8 -5
  80. package/dist/collection/components/scroll/revogr-viewport-scroll.js +26 -20
  81. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  82. package/dist/collection/components/scrollable/revogr-scroll-style.css +10 -7
  83. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +10 -8
  84. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  85. package/dist/collection/components/selectionFocus/revogr-focus-style.css +8 -5
  86. package/dist/collection/components/selectionFocus/revogr-focus.js +10 -10
  87. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  88. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +8 -5
  89. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +6 -6
  90. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  91. package/dist/collection/components/vnode/vnode-converter.js +1 -1
  92. package/dist/collection/components/vnode/vnode-converter.js.map +1 -1
  93. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  94. package/dist/collection/index.js.map +1 -1
  95. package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
  96. package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
  97. package/dist/collection/plugins/base.plugin.js.map +1 -1
  98. package/dist/collection/plugins/column.auto-size.plugin.js +1 -1
  99. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  100. package/dist/collection/plugins/column.stretch.plugin.js +1 -1
  101. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
  102. package/dist/collection/plugins/export/csv.js +1 -1
  103. package/dist/collection/plugins/export/csv.js.map +1 -1
  104. package/dist/collection/plugins/export/export.plugin.js +4 -2
  105. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  106. package/dist/collection/plugins/filter/filter.indexed.js +1 -0
  107. package/dist/collection/plugins/filter/filter.indexed.js.map +1 -1
  108. package/dist/collection/plugins/filter/filter.panel.js +35 -35
  109. package/dist/collection/plugins/filter/filter.panel.js.map +1 -1
  110. package/dist/collection/plugins/filter/filter.plugin.js +117 -77
  111. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  112. package/dist/collection/plugins/filter/filter.style.css +19 -5
  113. package/dist/collection/plugins/filter/filter.types.js.map +1 -1
  114. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  115. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  116. package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
  117. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -1
  118. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +64 -79
  119. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  120. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +3 -3
  121. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -1
  122. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -1
  123. package/dist/collection/plugins/groupingRow/grouping.service.js +40 -6
  124. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -1
  125. package/dist/collection/plugins/index.js +2 -0
  126. package/dist/collection/plugins/index.js.map +1 -1
  127. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +12 -6
  128. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  129. package/dist/collection/plugins/sorting/sorting.func.js +42 -0
  130. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
  131. package/dist/collection/plugins/sorting/sorting.plugin.js +71 -69
  132. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  133. package/dist/collection/plugins/sorting/sorting.types.js +2 -0
  134. package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
  135. package/dist/collection/serve/controller.js +32 -15
  136. package/dist/collection/serve/data.js +18 -11
  137. package/dist/collection/services/column.data.provider.js +5 -2
  138. package/dist/collection/services/column.data.provider.js.map +1 -1
  139. package/dist/collection/services/data.provider.js +18 -7
  140. package/dist/collection/services/data.provider.js.map +1 -1
  141. package/dist/collection/services/dimension.provider.js +32 -33
  142. package/dist/collection/services/dimension.provider.js.map +1 -1
  143. package/dist/collection/services/selection.store.connector.js +1 -1
  144. package/dist/collection/services/selection.store.connector.js.map +1 -1
  145. package/dist/collection/store/dataSource/data.proxy.js +9 -15
  146. package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
  147. package/dist/collection/store/dataSource/data.store.js +1 -1
  148. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  149. package/dist/collection/store/dataSource/trimmed.plugin.js +5 -8
  150. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  151. package/dist/collection/store/dimension/dimension.helpers.js +7 -9
  152. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
  153. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
  154. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  155. package/dist/collection/store/dimension/dimension.store.js +47 -67
  156. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  157. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  158. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  159. package/dist/collection/store/selection/selection.store.js +1 -1
  160. package/dist/collection/store/selection/selection.store.js.map +1 -1
  161. package/dist/collection/store/vp/viewport.store.js +4 -2
  162. package/dist/collection/store/vp/viewport.store.js.map +1 -1
  163. package/dist/collection/types/events.js +6 -2
  164. package/dist/collection/types/events.js.map +1 -1
  165. package/dist/collection/types/interfaces.js +4 -0
  166. package/dist/collection/types/interfaces.js.map +1 -1
  167. package/dist/collection/types/plugin.types.js.map +1 -1
  168. package/dist/collection/types/selection.js.map +1 -1
  169. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  170. package/dist/collection/utils/column.utils.js +13 -3
  171. package/dist/collection/utils/column.utils.js.map +1 -1
  172. package/dist/esm/app-globals-3a760941.js.map +1 -1
  173. package/dist/esm/{column.drag.plugin-3cc77986.js → column.drag.plugin-50f49fa9.js} +1012 -130
  174. package/dist/esm/column.drag.plugin-50f49fa9.js.map +1 -0
  175. package/dist/esm/column.service-a6a7c415.js +1281 -0
  176. package/dist/esm/column.service-a6a7c415.js.map +1 -0
  177. package/dist/esm/{debounce-72878ced.js → debounce-b3166f78.js} +2 -2
  178. package/dist/esm/{debounce-72878ced.js.map → debounce-b3166f78.js.map} +1 -1
  179. package/dist/esm/{column.service-751345b2.js → dimension.helpers-d0d709c4.js} +450 -1234
  180. package/dist/esm/dimension.helpers-d0d709c4.js.map +1 -0
  181. package/dist/esm/{edit.utils-6fc686b9.js → edit.utils-0ae0db50.js} +2 -2
  182. package/dist/esm/{edit.utils-6fc686b9.js.map → edit.utils-0ae0db50.js.map} +1 -1
  183. package/dist/esm/{header-cell-renderer-32d2ed96.js → header-cell-renderer-36ecbdef.js} +2 -2
  184. package/dist/esm/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-36ecbdef.js.map} +1 -1
  185. package/dist/esm/index.js +52 -11
  186. package/dist/esm/index.js.map +1 -1
  187. package/dist/esm/{key.utils-17273f42.js → key.utils-7c3218d4.js} +2 -2
  188. package/dist/esm/{key.utils-17273f42.js.map → key.utils-7c3218d4.js.map} +1 -1
  189. package/dist/esm/loader.js +1 -1
  190. package/dist/esm/revo-grid.entry.js +246 -877
  191. package/dist/esm/revo-grid.entry.js.map +1 -1
  192. package/dist/esm/revo-grid.js +1 -1
  193. package/dist/esm/revogr-attribution_7.entry.js +63 -33
  194. package/dist/esm/revogr-attribution_7.entry.js.map +1 -1
  195. package/dist/esm/revogr-clipboard_3.entry.js +7 -6
  196. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  197. package/dist/esm/revogr-data_4.entry.js +60 -50
  198. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  199. package/dist/esm/revogr-filter-panel.entry.js +34 -14
  200. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  201. package/dist/esm/{text-editor-901c3eb8.js → text-editor-148a17c1.js} +5 -5
  202. package/dist/esm/text-editor-148a17c1.js.map +1 -0
  203. package/dist/esm/{throttle-138d69c3.js → throttle-394e489c.js} +3 -3
  204. package/dist/esm/{throttle-138d69c3.js.map → throttle-394e489c.js.map} +1 -1
  205. package/dist/esm/{row-header-utils-3dfbb81f.js → viewport.store-afa8c4fe.js} +11 -10
  206. package/dist/esm/viewport.store-afa8c4fe.js.map +1 -0
  207. package/dist/revo-grid/app-globals-3a760941.js +8 -1
  208. package/dist/revo-grid/app-globals-3a760941.js.map +1 -1
  209. package/dist/revo-grid/column.drag.plugin-50f49fa9.js +2541 -0
  210. package/dist/revo-grid/column.drag.plugin-50f49fa9.js.map +1 -0
  211. package/dist/revo-grid/column.service-a6a7c415.js +1281 -0
  212. package/dist/revo-grid/column.service-a6a7c415.js.map +1 -0
  213. package/dist/revo-grid/debounce-b3166f78.js +495 -0
  214. package/dist/revo-grid/debounce-b3166f78.js.map +1 -0
  215. package/dist/revo-grid/dimension.helpers-d0d709c4.js +3611 -0
  216. package/dist/revo-grid/dimension.helpers-d0d709c4.js.map +1 -0
  217. package/dist/revo-grid/edit.utils-0ae0db50.js +17 -0
  218. package/dist/revo-grid/edit.utils-0ae0db50.js.map +1 -0
  219. package/dist/revo-grid/events-cf0893a3.js +38 -1
  220. package/dist/revo-grid/events-cf0893a3.js.map +1 -1
  221. package/dist/revo-grid/filter.button-d40ab17b.js +34 -1
  222. package/dist/revo-grid/filter.button-d40ab17b.js.map +1 -1
  223. package/dist/revo-grid/header-cell-renderer-36ecbdef.js +339 -0
  224. package/dist/revo-grid/header-cell-renderer-36ecbdef.js.map +1 -0
  225. package/dist/revo-grid/index-a61f225b.js +1845 -2
  226. package/dist/revo-grid/index-a61f225b.js.map +1 -1
  227. package/dist/revo-grid/index.esm.js +160 -1
  228. package/dist/revo-grid/index.esm.js.map +1 -1
  229. package/dist/revo-grid/key.utils-7c3218d4.js +89 -0
  230. package/dist/revo-grid/key.utils-7c3218d4.js.map +1 -0
  231. package/dist/revo-grid/resize-observer-83c9e167.js +501 -1
  232. package/dist/revo-grid/resize-observer-83c9e167.js.map +1 -1
  233. package/dist/revo-grid/revo-grid.entry.js +1934 -1
  234. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  235. package/dist/revo-grid/revo-grid.esm.js +21 -1
  236. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  237. package/dist/revo-grid/revogr-attribution_7.entry.js +1431 -1
  238. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
  239. package/dist/revo-grid/revogr-clipboard_3.entry.js +455 -1
  240. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  241. package/dist/revo-grid/revogr-data_4.entry.js +974 -1
  242. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  243. package/dist/revo-grid/revogr-filter-panel.entry.js +340 -1
  244. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  245. package/dist/revo-grid/sorting.sign-1a675bf7.js +9 -1
  246. package/dist/revo-grid/sorting.sign-1a675bf7.js.map +1 -1
  247. package/dist/revo-grid/text-editor-148a17c1.js +80 -0
  248. package/dist/revo-grid/text-editor-148a17c1.js.map +1 -0
  249. package/dist/revo-grid/throttle-394e489c.js +230 -0
  250. package/dist/revo-grid/throttle-394e489c.js.map +1 -0
  251. package/dist/revo-grid/viewport.helpers-7e7f9dad.js +48 -1
  252. package/dist/revo-grid/viewport.helpers-7e7f9dad.js.map +1 -1
  253. package/dist/revo-grid/viewport.store-afa8c4fe.js +406 -0
  254. package/dist/revo-grid/viewport.store-afa8c4fe.js.map +1 -0
  255. package/dist/types/components/data/cell-renderer.d.ts +3 -5
  256. package/dist/types/components/data/column.service.d.ts +2 -3
  257. package/dist/types/components/data/revogr-data.d.ts +10 -6
  258. package/dist/types/components/data/row-highlight.plugin.d.ts +1 -1
  259. package/dist/types/components/data/row-renderer.d.ts +1 -1
  260. package/dist/types/components/editors/revogr-edit.d.ts +2 -2
  261. package/dist/types/components/editors/text-editor.d.ts +5 -6
  262. package/dist/types/components/extra/revogr-extra.d.ts +17 -3
  263. package/dist/types/components/header/header-cell-renderer.d.ts +1 -1
  264. package/dist/types/components/header/header-renderer.d.ts +2 -2
  265. package/dist/types/components/header/resizable.element.d.ts +1 -1
  266. package/dist/types/components/header/revogr-header.d.ts +2 -3
  267. package/dist/types/components/order/order-renderer.d.ts +1 -1
  268. package/dist/types/components/order/revogr-order-editor.d.ts +4 -10
  269. package/dist/types/components/overlay/autofill.service.d.ts +2 -2
  270. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  271. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +16 -13
  272. package/dist/types/components/overlay/selection.utils.d.ts +1 -1
  273. package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
  274. package/dist/types/components/revoGrid/revo-grid.d.ts +105 -61
  275. package/dist/types/components/revoGrid/viewport.service.d.ts +2 -2
  276. package/dist/types/components/rowHeaders/row-header-render.d.ts +2 -2
  277. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +2 -5
  278. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -3
  279. package/dist/types/components/selectionFocus/revogr-focus.d.ts +2 -2
  280. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -3
  281. package/dist/types/components/vnode/vnode-converter.d.ts +1 -1
  282. package/dist/types/components/vnode/vnode.utils.d.ts +2 -2
  283. package/dist/types/components.d.ts +191 -108
  284. package/dist/types/index.d.ts +1 -1
  285. package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
  286. package/dist/types/plugins/base.plugin.d.ts +3 -4
  287. package/dist/types/plugins/column.auto-size.plugin.d.ts +1 -1
  288. package/dist/types/plugins/column.stretch.plugin.d.ts +1 -1
  289. package/dist/types/plugins/export/csv.d.ts +1 -1
  290. package/dist/types/plugins/export/export.plugin.d.ts +4 -3
  291. package/dist/types/plugins/filter/filter.panel.d.ts +2 -2
  292. package/dist/types/plugins/filter/filter.plugin.d.ts +25 -7
  293. package/dist/types/plugins/filter/filter.types.d.ts +32 -10
  294. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +2 -2
  295. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +3 -4
  296. package/dist/types/plugins/groupingRow/grouping.const.d.ts +3 -1
  297. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +15 -10
  298. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +38 -4
  299. package/dist/types/plugins/groupingRow/grouping.service.d.ts +9 -12
  300. package/dist/types/plugins/index.d.ts +2 -0
  301. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +2 -2
  302. package/dist/types/plugins/sorting/sorting.func.d.ts +3 -0
  303. package/dist/types/plugins/sorting/sorting.plugin.d.ts +14 -13
  304. package/dist/types/plugins/sorting/sorting.types.d.ts +13 -0
  305. package/dist/types/services/column.data.provider.d.ts +5 -2
  306. package/dist/types/services/data.provider.d.ts +3 -1
  307. package/dist/types/services/dimension.provider.d.ts +9 -4
  308. package/dist/types/services/selection.store.connector.d.ts +4 -4
  309. package/dist/types/store/dataSource/data.proxy.d.ts +7 -9
  310. package/dist/types/store/dataSource/data.store.d.ts +2 -3
  311. package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
  312. package/dist/types/store/dimension/dimension.helpers.d.ts +1 -4
  313. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
  314. package/dist/types/store/dimension/dimension.store.d.ts +3 -2
  315. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  316. package/dist/types/store/selection/selection.store.d.ts +1 -1
  317. package/dist/types/store/vp/viewport.store.d.ts +1 -1
  318. package/dist/types/types/events.d.ts +1 -1
  319. package/dist/types/types/interfaces.d.ts +36 -12
  320. package/dist/types/types/plugin.types.d.ts +17 -1
  321. package/dist/types/types/selection.d.ts +23 -17
  322. package/dist/types/types/viewport.interfaces.d.ts +1 -3
  323. package/dist/types/utils/column.utils.d.ts +1 -0
  324. package/hydrate/index.js +2490 -2135
  325. package/hydrate/index.mjs +2490 -2135
  326. package/package.json +20 -19
  327. package/readme.md +15 -17
  328. package/standalone/column.service.js +192 -160
  329. package/standalone/column.service.js.map +1 -1
  330. package/standalone/data.store.js +36 -25
  331. package/standalone/data.store.js.map +1 -1
  332. package/standalone/dimension.helpers.js +8 -10
  333. package/standalone/dimension.helpers.js.map +1 -1
  334. package/standalone/index.js +46 -6
  335. package/standalone/index.js.map +1 -1
  336. package/standalone/revo-grid.js +1275 -1022
  337. package/standalone/revo-grid.js.map +1 -1
  338. package/standalone/revogr-attribution2.js +1 -1
  339. package/standalone/revogr-attribution2.js.map +1 -1
  340. package/standalone/revogr-data2.js +26 -22
  341. package/standalone/revogr-data2.js.map +1 -1
  342. package/standalone/revogr-edit2.js +3 -3
  343. package/standalone/revogr-edit2.js.map +1 -1
  344. package/standalone/revogr-extra2.js +25 -4
  345. package/standalone/revogr-extra2.js.map +1 -1
  346. package/standalone/revogr-filter-panel.js +34 -14
  347. package/standalone/revogr-filter-panel.js.map +1 -1
  348. package/standalone/revogr-focus2.js +2 -1
  349. package/standalone/revogr-focus2.js.map +1 -1
  350. package/standalone/revogr-header2.js +6 -5
  351. package/standalone/revogr-header2.js.map +1 -1
  352. package/standalone/revogr-order-editor2.js +3 -0
  353. package/standalone/revogr-order-editor2.js.map +1 -1
  354. package/standalone/revogr-overlay-selection2.js +29 -17
  355. package/standalone/revogr-overlay-selection2.js.map +1 -1
  356. package/standalone/revogr-row-headers2.js +12 -9
  357. package/standalone/revogr-row-headers2.js.map +1 -1
  358. package/standalone/revogr-scroll-virtual2.js +6 -4
  359. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  360. package/standalone/revogr-temp-range2.js +1 -1
  361. package/standalone/revogr-temp-range2.js.map +1 -1
  362. package/standalone/revogr-viewport-scroll2.js +27 -21
  363. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  364. package/standalone/selection.utils.js +1 -0
  365. package/standalone/selection.utils.js.map +1 -1
  366. package/standalone/vnode-converter.js +1 -1
  367. package/standalone/vnode-converter.js.map +1 -1
  368. package/dist/cjs/column.drag.plugin-fcd892ec.js.map +0 -1
  369. package/dist/cjs/column.service-26c61ed6.js.map +0 -1
  370. package/dist/cjs/index-3ab26ab9.js +0 -513
  371. package/dist/cjs/index-3ab26ab9.js.map +0 -1
  372. package/dist/cjs/key.utils-f49d7bee.js +0 -101
  373. package/dist/cjs/key.utils-f49d7bee.js.map +0 -1
  374. package/dist/cjs/row-header-utils-c37f76e4.js.map +0 -1
  375. package/dist/cjs/text-editor-b756d6b3.js.map +0 -1
  376. package/dist/esm/column.drag.plugin-3cc77986.js.map +0 -1
  377. package/dist/esm/column.service-751345b2.js.map +0 -1
  378. package/dist/esm/index-1dcad6ef.js +0 -476
  379. package/dist/esm/index-1dcad6ef.js.map +0 -1
  380. package/dist/esm/row-header-utils-3dfbb81f.js.map +0 -1
  381. package/dist/esm/text-editor-901c3eb8.js.map +0 -1
  382. package/dist/revo-grid/column.drag.plugin-3cc77986.js +0 -5
  383. package/dist/revo-grid/column.drag.plugin-3cc77986.js.map +0 -1
  384. package/dist/revo-grid/column.service-751345b2.js +0 -5
  385. package/dist/revo-grid/column.service-751345b2.js.map +0 -1
  386. package/dist/revo-grid/debounce-72878ced.js +0 -5
  387. package/dist/revo-grid/debounce-72878ced.js.map +0 -1
  388. package/dist/revo-grid/edit.utils-6fc686b9.js +0 -5
  389. package/dist/revo-grid/edit.utils-6fc686b9.js.map +0 -1
  390. package/dist/revo-grid/header-cell-renderer-32d2ed96.js +0 -5
  391. package/dist/revo-grid/header-cell-renderer-32d2ed96.js.map +0 -1
  392. package/dist/revo-grid/index-1dcad6ef.js +0 -5
  393. package/dist/revo-grid/index-1dcad6ef.js.map +0 -1
  394. package/dist/revo-grid/key.utils-17273f42.js +0 -5
  395. package/dist/revo-grid/key.utils-17273f42.js.map +0 -1
  396. package/dist/revo-grid/row-header-utils-3dfbb81f.js +0 -5
  397. package/dist/revo-grid/row-header-utils-3dfbb81f.js.map +0 -1
  398. package/dist/revo-grid/text-editor-901c3eb8.js +0 -5
  399. package/dist/revo-grid/text-editor-901c3eb8.js.map +0 -1
  400. package/dist/revo-grid/throttle-138d69c3.js +0 -5
  401. package/dist/revo-grid/throttle-138d69c3.js.map +0 -1
  402. package/standalone/identity.js +0 -26
  403. package/standalone/identity.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.9.41",
3
+ "version": "4.9.42",
4
4
  "type": "module",
5
5
  "description": "Virtual reactive data grid spreadsheet component - RevoGrid.",
6
6
  "license": "MIT",
@@ -62,26 +62,26 @@
62
62
  "types": "dist/types/index.d.ts",
63
63
  "exports": {
64
64
  ".": {
65
+ "types": "./dist/types/index.d.ts",
65
66
  "import": "./dist/index.js",
66
- "require": "./dist/index.cjs.js",
67
- "types": "./dist/types/index.d.ts"
67
+ "require": "./dist/index.cjs.js"
68
68
  },
69
69
  "./standalone": {
70
- "import": "./standalone/revo-grid.js",
71
- "types": "./standalone/revo-grid.d.ts"
70
+ "types": "./standalone/revo-grid.d.ts",
71
+ "import": "./standalone/revo-grid.js"
72
72
  },
73
73
  "./standalone/revo-grid.js": {
74
- "import": "./standalone/revo-grid.js",
75
- "types": "./standalone/revo-grid.d.ts"
74
+ "types": "./standalone/revo-grid.d.ts",
75
+ "import": "./standalone/revo-grid.js"
76
76
  },
77
77
  "./standalone/revogr-filter-panel.js": {
78
- "import": "./standalone/revogr-filter-panel.js",
79
- "types": "./standalone/revogr-filter-panel.d.ts"
78
+ "types": "./standalone/revogr-filter-panel.d.ts",
79
+ "import": "./standalone/revogr-filter-panel.js"
80
80
  },
81
81
  "./loader": {
82
+ "types": "./loader/index.d.ts",
82
83
  "import": "./loader/index.js",
83
- "require": "./loader/index.cjs",
84
- "types": "./loader/index.d.ts"
84
+ "require": "./loader/index.cjs"
85
85
  }
86
86
  },
87
87
  "files": [
@@ -104,14 +104,14 @@
104
104
  "devDependencies": {
105
105
  "@angular/core": "^18.1.2",
106
106
  "@juggle/resize-observer": "^3.4.0",
107
- "@revolist/stencil-vue2-output-target": "^0.0.5",
107
+ "@revolist/stencil-vue2-output-target": "^0.0.6",
108
+ "@revolist/svelte-output-target": "0.0.5",
108
109
  "@stencil/angular-output-target": "0.8.4",
109
110
  "@stencil/core": "4.20.0",
110
111
  "@stencil/react-output-target": "0.5.3",
111
112
  "@stencil/sass": "^3.0.12",
112
113
  "@stencil/store": "^2.0.16",
113
- "@stencil/svelte-output-target": "0.0.3",
114
- "@stencil/vue-output-target": "^0.8.8",
114
+ "@stencil/vue-output-target": "^0.8.9",
115
115
  "@types/events": "^3.0.3",
116
116
  "@types/jest": "^29.5.12",
117
117
  "@types/lodash": "^4.17.5",
@@ -121,23 +121,24 @@
121
121
  "@types/resize-observer-browser": "^0.1.11",
122
122
  "bootstrap": "^5.3.2",
123
123
  "chalk": "^5.3.0",
124
+ "minimist": "^1.2.8",
124
125
  "execa": "^9.2.0",
125
126
  "fs": "^0.0.1-security",
126
- "jest": "26.0.1",
127
- "jest-cli": "26.0.1",
127
+ "jest": "^29.7.0",
128
+ "jest-cli": "^29.7.0",
129
+ "json2md": "^2.0.1",
128
130
  "lodash": "npm:lodash-es@4.17.21",
129
131
  "path": "^0.12.7",
130
132
  "prettier": "3.3.2",
131
133
  "react": "^18.3.1",
132
134
  "react-dom": "^18.3.1",
133
135
  "rxjs": "^7.8.1",
134
- "svelte": "^4.2.18",
136
+ "svelte": "^5.2.10",
135
137
  "typedoc": "^0.26.5",
136
138
  "typedoc-plugin-markdown": "^4.2.3",
137
139
  "typescript": "^5.5.4",
138
140
  "url": "^0.11.3",
139
- "vue": "^3.4.34",
140
- "json2md": "^2.0.1"
141
+ "vue": "^3.4.34"
141
142
  },
142
143
  "publishConfig": {
143
144
  "access": "public"
package/readme.md CHANGED
@@ -7,8 +7,9 @@
7
7
  <p align="center">
8
8
  <a href="https://www.npmjs.com/package/@revolist/revogrid"><img src="https://img.shields.io/npm/v/@revolist/revogrid" alt="Latest Version on NPM"/></a>
9
9
  <a href="https://github.com/revolist/revogrid/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/@revolist/revogrid" alt="Software License"/></a>
10
- <img src="https://badgen.net/bundlephobia/dependency-count/@revolist/revogrid@latest" alt="Tree shaking"/>
11
- <img src="https://badgen.net/bundlephobia/tree-shaking/@revolist/revogrid@latest" alt="Tree shaking"/>
10
+ <img src="https://badgen.net/bundlephobia/dependency-count/@revolist/revogrid" alt="Dependency count"/>
11
+ <img src="https://badgen.net/bundlephobia/tree-shaking/@revolist/revogrid" alt="Tree shaking"/>
12
+ <img src="https://img.shields.io/bundlephobia/min/@revolist/revogrid" alt="Bundle size"/>
12
13
  <img src="https://sonarcloud.io/api/project_badges/measure?project=revolist_revogrid&metric=alert_status" alt="Sonar Quality Gate"/>
13
14
  </p>
14
15
 
@@ -53,6 +54,8 @@ Support Millions of cells and thousands of columns easy and efficiently for fast
53
54
 
54
55
  - **Formula Support**: Evaluate formulas in cell data.
55
56
 
57
+ - **Master Detail/Subtables/Forms**: Expand rows to reveal child data.
58
+
56
59
  - **Drag and Drop**: Drag and drop in rows and columns.
57
60
 
58
61
  - **Sorting**: Multiple options, customizable per column, with advanced event handling.
@@ -225,11 +228,11 @@ grid.source = items;
225
228
 
226
229
  - Redesigned type support:
227
230
  - Removed deprecated namespaces:
228
- - **Before**: `RevoGrid.ColumnDataSchemaRegular`
229
- - **Now**: `ColumnDataSchemaRegular`;
231
+ - **Before**: `RevoGrid.ColumnRegular`
232
+ - **Now**: `ColumnRegular`;
230
233
  - Improved type import:
231
234
  - **Before**: `import { RevoGrid } from '@revolist/revogrid/dist/types/interfaces'`
232
- - **Now**: `import { ColumnDataSchemaRegular } from '@revolist/revogrid'`.
235
+ - **Now**: `import { ColumnRegular } from '@revolist/revogrid'`.
233
236
  - Changed viewport type names everywhere. For example, before: `rowDefinitions: [{ type: "row", index: 0, size: 145 }]`, after: `rowDefinitions: [{ type: "rgRow", index: 0, size: 145 }]`.
234
237
  - Updated [event](https://rv-grid.com/guide/api/revoGrid.html#Events) naming convention. Review your [event](https://rv-grid.com/guide/api/revoGrid.html#Events) usage. [Event names](https://rv-grid.com/guide/api/revoGrid.html#Events) are all lowercase now and are aligned with modern event naming conventions. For example, `afterEdit` -> `afteredit`.
235
238
  - Multiple event breaking changes introduced: beforerowrender now returns `BeforeRowRenderEvent`. Check all events for details.
@@ -251,33 +254,28 @@ grid.source = items;
251
254
 
252
255
  ## Our Sponsors
253
256
 
254
- We would like to extend our heartfelt gratitude to our sponsors for their generous support. Their contributions help us maintain and develop RevoGrid, ensuring continuous improvements and updates.
257
+ We would like to extend our heartfelt gratitude to our sponsors for their generous support. Their contributions help us maintain and develop RevoGrid.
255
258
 
256
259
  [![Altruistiq](https://cdn.prod.website-files.com/62cd69e08130a1a33f5ef900/6310b4d500e971695db5e9c3_615b5db69ce8931a276e5ed2_Social_Icons_AQ_3_32x32.png)](https://altruistiq.com)
257
260
 
258
261
 
259
262
  ### Become a Sponsor
260
263
 
261
- If you or your company would like to support the ongoing development of RevoGrid, please consider becoming a sponsor or use or [Pro version](https://rv-grid.com/pro/). Your support will help us continue to improve the project and provide the best possible tool for the community.
262
-
263
- [![Sponsor Us](https://img.shields.io/badge/Sponsor%20Us-%F0%9F%92%96-brightgreen)](https://opencollective.com/revogrid)
264
+ If you or your company would like to support the ongoing development of RevoGrid, please consider [![Sponsor Us](https://img.shields.io/badge/Sponsor%20Us-%F0%9F%92%96-brightgreen)](https://opencollective.com/revogrid) or use a [Pro version](https://rv-grid.com/pro/). Your support will help us continue to improve the project and provide the best possible tool for the community.
264
265
 
265
266
  Thank you for supporting RevoGrid! 🙏
266
267
 
268
+
267
269
  ## Contributing
268
270
 
269
- We invite you to join our vibrant community and contribute to the growth and success of RevoGrid. By getting involved, you'll have the opportunity to enhance your skills, gain valuable experience, and make a significant impact on an innovative project.
271
+ By getting involved, you'll have the opportunity to enhance your skills, gain valuable experience, and make a significant impact on an innovative project. Your contribution, no matter how big or small, is valuable.
270
272
 
271
273
  ### Why Contribute?
272
274
 
273
- - **Expand Your Knowledge**: Working on RevoGrid allows you to dive deep into modern web technologies, improve your coding skills, and learn best practices in performance optimization, data handling, and component-based architecture.
274
- - **Valuable Experience**: Contributing to an open-source project like RevoGrid provides you with practical experience that can be a great addition to your portfolio. It demonstrates your ability to work collaboratively, solve complex problems, and contribute to a project's success.
275
- - **Professional Growth**: By contributing, you become part of a network of talented developers. This can lead to mentorship opportunities, collaborations, and professional connections that can benefit your career.
276
- - **Make a Difference**: Your contributions can help improve RevoGrid, making it more powerful and user-friendly for developers around the world. Your input can shape the future of the project and drive innovation.
277
-
278
- ### Join Us
275
+ - **Expand Your Knowledge**: Working on complex libraries allows you to dive deep into modern web technologies, improve your coding skills, and learn best practices in performance optimization, data handling, and component-based architecture.
276
+ - **Experience**: Contributing to an open-source project like provides you with practical experience that can be a great addition to your portfolio. It demonstrates your ability to work collaboratively, solve complex problems, and contribute to a project's success.
277
+ - **Professional Growth**: By contributing, you become part of a network of talented developers. This can lead to mentorship opportunities, collaborations, and professional connections that can benefit your career.
279
278
 
280
- Your contribution, no matter how big or small, is valuable. By working on RevoGrid, you'll be part of an exciting project that's making a difference in the world of data grids. Join us today and let's build something amazing together!
281
279
 
282
280
  ## License
283
281
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { x as keys, o as isArrayLike, w as baseIteratee, k as isArray, j as createStore, i as setStore, m as isIterateeCall, l as toInteger, a as getVisibleSourceItem, b as getSourceItem } from './data.store.js';
4
+ import { y as keys, q as isArrayLike, x as baseIteratee, l as isArray, j as createStore, i as setStore, n as isIterateeCall, m as toInteger, a as getVisibleSourceItem, b as getSourceItem } from './data.store.js';
5
5
  import '@stencil/core/internal/client';
6
6
  import { G as GRID_INTERNALS, C as CELL_CLASS, b as DISABLED_CLASS } from './consts.js';
7
7
  import './platform.js';
@@ -189,6 +189,150 @@ function reduce(collection, iteratee, accumulator) {
189
189
  return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1);
190
190
  }
191
191
 
192
+ function getCellData(val) {
193
+ if (typeof val === 'undefined' || val === null) {
194
+ return '';
195
+ }
196
+ return val;
197
+ }
198
+ function getCellRaw(model, column) {
199
+ if (!column) {
200
+ return;
201
+ }
202
+ if (column.cellParser) {
203
+ return column.cellParser(model, column);
204
+ }
205
+ return model[column.prop];
206
+ }
207
+ function getCellDataParsed(model, column) {
208
+ return getCellData(getCellRaw(model, column));
209
+ }
210
+ /**
211
+ * Get column type from column data
212
+ */
213
+ function getColumnType(rgCol) {
214
+ if (rgCol.pin) {
215
+ return rgCol.pin;
216
+ }
217
+ return 'rgCol';
218
+ }
219
+ function getColumnSizes(cols) {
220
+ const res = {};
221
+ for (const [i, c] of cols.entries()) {
222
+ if (c.size) {
223
+ res[i] = c.size;
224
+ }
225
+ }
226
+ return res;
227
+ }
228
+ /**
229
+ * Check if column is grouping column
230
+ */
231
+ function isColGrouping(colData) {
232
+ return !!colData.children;
233
+ }
234
+ /**
235
+ * This function is used to create a collection of columns.
236
+ */
237
+ function getColumns(columns, level = 0, types) {
238
+ const collection = {
239
+ // columns as they are in stores per type
240
+ columns: {
241
+ rgCol: [],
242
+ colPinStart: [],
243
+ colPinEnd: [],
244
+ },
245
+ // columns indexed by prop for quick access
246
+ columnByProp: {},
247
+ // column grouping
248
+ columnGrouping: {
249
+ rgCol: [],
250
+ colPinStart: [],
251
+ colPinEnd: [],
252
+ },
253
+ // max depth level for column grouping
254
+ maxLevel: level,
255
+ // sorting
256
+ sort: {},
257
+ };
258
+ return reduce(columns, (res, colData) => {
259
+ // Grouped column
260
+ if (isColGrouping(colData)) {
261
+ res = gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
262
+ return res;
263
+ }
264
+ // Column type
265
+ const columnDefinitionFromType = colData.columnType && (types === null || types === void 0 ? void 0 : types[colData.columnType]);
266
+ // Regular column
267
+ const regularColumn = Object.assign(Object.assign({}, columnDefinitionFromType), colData);
268
+ // Regular column, no Pin
269
+ if (!regularColumn.pin) {
270
+ res.columns.rgCol.push(regularColumn);
271
+ // Pin
272
+ }
273
+ else {
274
+ res.columns[regularColumn.pin].push(regularColumn);
275
+ }
276
+ if (regularColumn.order) {
277
+ res.sort[regularColumn.prop] = regularColumn;
278
+ }
279
+ // it's possible that some columns have same prop, but better to avoid it
280
+ if (!res.columnByProp[regularColumn.prop]) {
281
+ res.columnByProp[regularColumn.prop] = [];
282
+ }
283
+ res.columnByProp[regularColumn.prop].push(regularColumn);
284
+ // trigger setup hook if present
285
+ regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
286
+ return res;
287
+ }, collection);
288
+ }
289
+ function gatherGroup(res, colData, collection, level = 0) {
290
+ // group template
291
+ const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
292
+ // check columns for update
293
+ for (let k in collection.columns) {
294
+ const key = k;
295
+ const resultItem = res.columns[key];
296
+ const collectionItem = collection.columns[key];
297
+ // if column data
298
+ if (isArray(resultItem) && isArray(collectionItem)) {
299
+ // fill columns
300
+ resultItem.push(...collectionItem);
301
+ // fill grouping
302
+ if (collectionItem.length) {
303
+ res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
304
+ }
305
+ }
306
+ }
307
+ // merge column groupings
308
+ for (let k in collection.columnGrouping) {
309
+ const key = k;
310
+ const collectionItem = collection.columnGrouping[key];
311
+ res.columnGrouping[key].push(...collectionItem);
312
+ }
313
+ res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
314
+ res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
315
+ res.columnByProp = Object.assign(Object.assign({}, res.columnByProp), collection.columnByProp);
316
+ return res;
317
+ }
318
+ function findColumn(columns, prop) {
319
+ for (const c of columns) {
320
+ if (isColGrouping(c)) {
321
+ const found = findColumn(c.children, prop);
322
+ if (found) {
323
+ return found;
324
+ }
325
+ }
326
+ else if (c.prop === prop) {
327
+ return c;
328
+ }
329
+ }
330
+ return undefined;
331
+ }
332
+ function getColumnByProp(columns, prop) {
333
+ return findColumn(columns, prop);
334
+ }
335
+
192
336
  /**
193
337
  * Selection store
194
338
  */
@@ -620,164 +764,62 @@ function isRangeSingleCell(a) {
620
764
  return a.x === a.x1 && a.y === a.y1;
621
765
  }
622
766
 
623
- function getCellData(val) {
624
- if (typeof val === 'undefined' || val === null) {
625
- return '';
626
- }
627
- return val;
628
- }
629
- function getCellDataParsed(model, column) {
630
- const val = column.cellParser ? column.cellParser(model, column) : model[column.prop];
631
- return getCellData(val);
632
- }
633
- /**
634
- * Get column type from column data
635
- */
636
- function getColumnType(rgCol) {
637
- if (rgCol.pin) {
638
- return rgCol.pin;
639
- }
640
- return 'rgCol';
641
- }
642
- function getColumnSizes(cols) {
643
- const res = {};
644
- for (const [i, c] of cols.entries()) {
645
- if (c.size) {
646
- res[i] = c.size;
647
- }
648
- }
649
- return res;
650
- }
651
- /**
652
- * Check if column is grouping column
653
- */
654
- function isColGrouping(colData) {
655
- return !!colData.children;
656
- }
657
- /**
658
- * This function is used to create a collection of columns.
659
- */
660
- function getColumns(columns, level = 0, types) {
661
- const collection = {
662
- // columns as they are in stores per type
663
- columns: {
664
- rgCol: [],
665
- colPinStart: [],
666
- colPinEnd: [],
667
- },
668
- // columns indexed by prop for quick access
669
- columnByProp: {},
670
- // column grouping
671
- columnGrouping: {
672
- rgCol: [],
673
- colPinStart: [],
674
- colPinEnd: [],
675
- },
676
- // max depth level for column grouping
677
- maxLevel: level,
678
- // sorting
679
- sort: {},
680
- };
681
- return reduce(columns, (res, colData) => {
682
- // Grouped column
683
- if (isColGrouping(colData)) {
684
- return gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
685
- }
686
- // Column type
687
- const columnDefinitionFromType = colData.columnType && (types === null || types === void 0 ? void 0 : types[colData.columnType]);
688
- // Regular column
689
- const regularColumn = Object.assign(Object.assign({}, columnDefinitionFromType), colData);
690
- // Regular column, no Pin
691
- if (!regularColumn.pin) {
692
- res.columns.rgCol.push(regularColumn);
693
- // Pin
694
- }
695
- else {
696
- res.columns[regularColumn.pin].push(regularColumn);
697
- }
698
- if (regularColumn.order) {
699
- res.sort[regularColumn.prop] = regularColumn;
700
- }
701
- // it's possible that some columns have same prop, but better to avoid it
702
- if (!res.columnByProp[regularColumn.prop]) {
703
- res.columnByProp[regularColumn.prop] = [];
704
- }
705
- res.columnByProp[regularColumn.prop].push(regularColumn);
706
- // trigger setup hook if present
707
- regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
708
- return res;
709
- }, collection);
710
- }
711
- function gatherGroup(res, colData, collection, level = 0) {
712
- // group template
713
- const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
714
- // check columns for update
715
- for (let k in collection.columns) {
716
- const key = k;
717
- const resultItem = res.columns[key];
718
- const collectionItem = collection.columns[key];
719
- // if column data
720
- if (isArray(resultItem) && isArray(collectionItem)) {
721
- // fill columns
722
- resultItem.push(...collectionItem);
723
- // fill grouping
724
- if (collectionItem.length) {
725
- res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
726
- }
727
- }
728
- }
729
- // merge column groupings
730
- for (let k in collection.columnGrouping) {
731
- const key = k;
732
- const collectionItem = collection.columnGrouping[key];
733
- res.columnGrouping[key].push(...collectionItem);
734
- }
735
- res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
736
- res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
737
- return res;
738
- }
739
- function findColumn(columns, prop) {
740
- for (const c of columns) {
741
- if (isColGrouping(c)) {
742
- const found = findColumn(c.children, prop);
743
- if (found) {
744
- return found;
745
- }
746
- }
747
- else if (c.prop === prop) {
748
- return c;
749
- }
750
- }
751
- return undefined;
752
- }
753
- function getColumnByProp(columns, prop) {
754
- return findColumn(columns, prop);
755
- }
756
-
757
767
  const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;
758
768
  const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;
759
769
  const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;
760
770
  const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;
761
771
  const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;
762
772
  const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;
773
+ const GROUP_COLUMN_PROP = `${GRID_INTERNALS}-prop`;
763
774
  const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;
764
775
  const GROUP_EXPAND_BTN = `group-expand`;
765
- const GROUP_EXPAND_EVENT = `groupexpandclick`;
766
776
  const GROUPING_ROW_TYPE = 'rgRow';
767
777
 
768
778
  function getGroupValueDefault(item, prop) {
769
779
  return item[prop] || null;
770
780
  }
781
+ // get source based on proxy item collection to preserve rgRow order
782
+ function getSource(source, items, withoutGrouping = false) {
783
+ let index = 0;
784
+ const result = {
785
+ source: [],
786
+ prevExpanded: {},
787
+ oldNewIndexes: {},
788
+ };
789
+ // order important here, expected parent is first, then others
790
+ items.forEach(i => {
791
+ const model = source[i];
792
+ if (!withoutGrouping) {
793
+ result.source.push(model);
794
+ return;
795
+ }
796
+ // grouping filter
797
+ if (isGrouping(model)) {
798
+ if (getExpanded(model)) {
799
+ result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;
800
+ }
801
+ }
802
+ else {
803
+ result.source.push(model);
804
+ result.oldNewIndexes[i] = index;
805
+ index++;
806
+ }
807
+ });
808
+ return result;
809
+ }
810
+ function getExpanded(model = {}) {
811
+ return model[GROUP_EXPANDED];
812
+ }
771
813
  /**
772
814
  * Gather data for grouping
773
815
  * @param array - flat data array
774
- * @param groupIds - ids of groups
816
+ * @param columnProps - ids of groups
775
817
  * @param expanded - potentially expanded items if present
776
818
  */
777
- function gatherGrouping(array, groupIds, { prevExpanded, expandedAll, getGroupValue = getGroupValueDefault, }) {
819
+ function gatherGrouping(array, columnProps, { prevExpanded, expandedAll, getGroupValue = getGroupValueDefault, }) {
778
820
  const groupedItems = new Map();
779
821
  array.forEach((item, originalIndex) => {
780
- const groupLevelValues = groupIds.map(groupId => getGroupValue(item, groupId));
822
+ const groupLevelValues = columnProps.map(groupId => getGroupValue(item, groupId));
781
823
  const lastLevelValue = groupLevelValues.pop();
782
824
  let currentGroupLevel = groupedItems;
783
825
  groupLevelValues.forEach(value => {
@@ -793,7 +835,7 @@ function gatherGrouping(array, groupIds, { prevExpanded, expandedAll, getGroupVa
793
835
  lastLevelItems.push(Object.assign(Object.assign({}, item), { [GROUP_ORIGINAL_INDEX]: originalIndex }));
794
836
  });
795
837
  let itemIndex = -1;
796
- const groupingDepth = groupIds.length;
838
+ const groupingDepth = columnProps.length;
797
839
  // collapse all groups in the beginning
798
840
  const trimmed = {};
799
841
  // index mapping
@@ -813,6 +855,8 @@ function gatherGrouping(array, groupIds, { prevExpanded, expandedAll, getGroupVa
813
855
  [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),
814
856
  [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,
815
857
  [GROUP_EXPANDED]: isGroupExpanded,
858
+ [GROUP_COLUMN_PROP]: columnProps[depth],
859
+ [columnProps[depth]]: groupId,
816
860
  });
817
861
  itemIndex += 1;
818
862
  if (!isGroupExpanded && depth) {
@@ -856,7 +900,7 @@ function isGrouping(rgRow) {
856
900
  return typeof (rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM]) !== 'undefined';
857
901
  }
858
902
  function isGroupingColumn(column) {
859
- return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';
903
+ return typeof (column === null || column === void 0 ? void 0 : column[PSEUDO_GROUP_COLUMN]) !== 'undefined';
860
904
  }
861
905
  function measureEqualDepth(groupA, groupB) {
862
906
  const ln = groupA.length;
@@ -979,12 +1023,13 @@ class ColumnService {
979
1023
  }
980
1024
  return !!readOnly;
981
1025
  }
982
- mergeProperties(r, c, defaultProps, model, extraPropsFunc) {
1026
+ mergeProperties(r, c, defaultProps, schemaModel) {
1027
+ var _a, _b;
983
1028
  const props = Object.assign({}, defaultProps);
984
1029
  props.class = Object.assign(Object.assign({}, (typeof props.class === 'string'
985
1030
  ? { [props.class]: true }
986
1031
  : props.class)), { [CELL_CLASS]: true, [DISABLED_CLASS]: this.isReadOnly(r, c) });
987
- const extra = extraPropsFunc === null || extraPropsFunc === void 0 ? void 0 : extraPropsFunc(model);
1032
+ const extra = (_b = (_a = schemaModel.column) === null || _a === void 0 ? void 0 : _a.cellProperties) === null || _b === void 0 ? void 0 : _b.call(_a, schemaModel);
988
1033
  if (!extra) {
989
1034
  return props;
990
1035
  }
@@ -994,24 +1039,12 @@ class ColumnService {
994
1039
  const model = getSourceItem(this.dataStore, r) || {};
995
1040
  return model[prop] || '';
996
1041
  }
997
- getCellData(r, c) {
998
- const data = this.rowDataModel(r, c);
999
- return getCellData(data.model[data.prop]);
1000
- }
1001
1042
  getSaveData(rowIndex, colIndex, val) {
1002
1043
  const data = this.rowDataModel(rowIndex, colIndex);
1003
1044
  if (typeof val === 'undefined') {
1004
- val = getCellData(data.model[data.prop]);
1045
+ val = getCellData(data.value);
1005
1046
  }
1006
- return {
1007
- prop: data.prop,
1008
- rowIndex,
1009
- colIndex,
1010
- val,
1011
- model: data.model,
1012
- colType: this.type,
1013
- type: this.dataStore.get('type'),
1014
- };
1047
+ return Object.assign(Object.assign({}, data), { val });
1015
1048
  }
1016
1049
  getCellEditor(_r, c, editors) {
1017
1050
  var _a;
@@ -1033,7 +1066,6 @@ class ColumnService {
1033
1066
  const column = this.columns[colIndex];
1034
1067
  const prop = column === null || column === void 0 ? void 0 : column.prop;
1035
1068
  const model = getSourceItem(this.dataStore, rowIndex) || {};
1036
- const value = model[prop];
1037
1069
  const type = this.dataStore.get('type');
1038
1070
  return {
1039
1071
  prop,
@@ -1044,7 +1076,7 @@ class ColumnService {
1044
1076
  colIndex,
1045
1077
  colType: this.type,
1046
1078
  type,
1047
- value,
1079
+ value: getCellRaw(model, column),
1048
1080
  };
1049
1081
  }
1050
1082
  getRangeData(d, columns) {
@@ -1246,6 +1278,6 @@ function doPropMerge(existing, extra) {
1246
1278
  return props;
1247
1279
  }
1248
1280
 
1249
- export { SelectionStoreConnector as A, doPropMerge as B, GROUP_EXPAND_BTN as C, PSEUDO_GROUP_ITEM as D, EMPTY_INDEX as E, isRowDragService as F, GROUP_EXPANDED as G, ColumnService as H, PSEUDO_GROUP_ITEM_VALUE as P, SelectionStore as S, isRangeSingleCell as a, getCellData as b, cropCellToMax as c, getCellDataParsed as d, getColumnType as e, getColumnSizes as f, getRange as g, isColGrouping as h, isHiddenStore as i, getColumns as j, gatherGroup as k, getColumnByProp as l, baseEach$1 as m, nextCell as n, isGrouping as o, getGroupingName as p, getParsedGroup as q, reduce as r, isSameGroup as s, GROUP_DEPTH as t, PSEUDO_GROUP_ITEM_ID as u, GROUPING_ROW_TYPE as v, PSEUDO_GROUP_COLUMN as w, GROUP_EXPAND_EVENT as x, gatherGrouping as y, isGroupingColumn as z };
1281
+ export { PSEUDO_GROUP_ITEM_VALUE as A, GROUPING_ROW_TYPE as B, PSEUDO_GROUP_COLUMN as C, SelectionStoreConnector as D, EMPTY_INDEX as E, doPropMerge as F, GROUP_EXPANDED as G, GROUP_EXPAND_BTN as H, PSEUDO_GROUP_ITEM as I, isRowDragService as J, ColumnService as K, PSEUDO_GROUP_ITEM_ID as P, SelectionStore as S, isRangeSingleCell as a, getSource as b, cropCellToMax as c, getExpanded as d, gatherGrouping as e, getGroupingName as f, getRange as g, isGrouping as h, isHiddenStore as i, isGroupingColumn as j, getParsedGroup as k, isSameGroup as l, measureEqualDepth as m, nextCell as n, getCellData as o, getCellRaw as p, getCellDataParsed as q, getColumnType as r, getColumnSizes as s, isColGrouping as t, getColumns as u, gatherGroup as v, getColumnByProp as w, reduce as x, baseEach$1 as y, GROUP_DEPTH as z };
1250
1282
 
1251
1283
  //# sourceMappingURL=column.service.js.map