@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
@@ -4,4 +4,4 @@ export * from './plugins';
4
4
  export * from './components';
5
5
  export * from './utils';
6
6
  export { TextEditor } from './components/editors/text-editor';
7
- export { h } from './stencil-public-runtime';
7
+ export { h, type FunctionalComponent } from './stencil-public-runtime';
@@ -0,0 +1,14 @@
1
+ import type { PluginProviders } from '../types/plugin.types';
2
+ import { BasePlugin } from './base.plugin';
3
+ /**
4
+ * Automatically adds new rows when pasted data is larger than current rows
5
+ * @event newRows - is triggered when new rows are added. Data of new rows can be filled with default values. If the event is prevented, no rows will be added. Event data: { newRows: RowData[] }
6
+ */
7
+ export declare class AutoAddRowsPlugin extends BasePlugin {
8
+ constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders);
9
+ handleBeforePasteApply(event: CustomEvent<{
10
+ raw: string;
11
+ parsed: string[][];
12
+ event: ClipboardEvent;
13
+ }>): void;
14
+ }
@@ -1,6 +1,6 @@
1
1
  import { h } from '../stencil-public-runtime';
2
- import { PluginProviders, PluginBaseComponent } from '..';
3
- type WatchConfig = {
2
+ import type { PluginProviders, PluginBaseComponent, RevoGridCustomEvent } from '..';
3
+ export type WatchConfig = {
4
4
  immediate: boolean;
5
5
  };
6
6
  /**
@@ -19,7 +19,7 @@ export declare class BasePlugin implements PluginBaseComponent {
19
19
  * @param eventName - event name to subscribe to in revo-grid component (e.g. 'beforeheaderclick')
20
20
  * @param callback - callback function for event
21
21
  */
22
- addEventListener<T = any>(eventName: string, callback: (e: CustomEvent<T>) => void): void;
22
+ addEventListener<K extends keyof HTMLRevoGridElementEventMap>(eventName: K, callback: (this: BasePlugin, e: RevoGridCustomEvent<HTMLRevoGridElementEventMap[K]>) => void): void;
23
23
  /**
24
24
  * Subscribe to property change in revo-grid component
25
25
  * You can return false in callback to prevent default value set
@@ -49,4 +49,3 @@ export declare class BasePlugin implements PluginBaseComponent {
49
49
  destroy(): void;
50
50
  }
51
51
  export type GridPlugin = (typeof BasePlugin);
52
- export {};
@@ -30,7 +30,7 @@ declare enum ColumnAutoSizeMode {
30
30
  autoSizeOnTextOverlap = "autoSizeOnTextOverlap",
31
31
  autoSizeAll = "autoSizeAll"
32
32
  }
33
- export default class AutoSizeColumnPlugin extends BasePlugin {
33
+ export declare class AutoSizeColumnPlugin extends BasePlugin {
34
34
  providers: PluginProviders;
35
35
  config?: AutoSizeColumnConfig | undefined;
36
36
  autoSizeColumns: Partial<AutoSizeColumns> | null;
@@ -1,6 +1,6 @@
1
1
  import { BasePlugin } from './base.plugin';
2
2
  import { DimensionCols, PluginBaseComponent, PluginProviders, ColumnRegular } from "../types/index";
3
- export default class StretchColumn extends BasePlugin {
3
+ export declare class StretchColumn extends BasePlugin {
4
4
  providers: PluginProviders;
5
5
  private stretchedColumn;
6
6
  private readonly scrollSize;
@@ -1,6 +1,6 @@
1
1
  import { CSVFormat, DataInput, Formatter } from './types';
2
2
  export type CSVFormatter = (options: Partial<CSVFormat>, data: DataInput) => string;
3
- export default class ExportCsv implements Formatter {
3
+ export declare class ExportCsv implements Formatter {
4
4
  readonly options: Readonly<CSVFormat>;
5
5
  constructor(options?: Partial<CSVFormat>);
6
6
  doExport({ data, headers, props }: DataInput): string;
@@ -1,10 +1,12 @@
1
1
  import { BasePlugin } from '../base.plugin';
2
- import { CSVFormat, Formatter } from './types';
2
+ import type { CSVFormat, Formatter } from './types';
3
+ export * from './csv';
4
+ export * from './types';
3
5
  declare enum ExportTypes {
4
6
  csv = "csv"
5
7
  }
6
8
  export type ExportFormat = Partial<CSVFormat>;
7
- export default class ExportFilePlugin extends BasePlugin {
9
+ export declare class ExportFilePlugin extends BasePlugin {
8
10
  /** Exports string */
9
11
  exportString(options?: ExportFormat, t?: ExportTypes): Promise<string | null>;
10
12
  /** Exports Blob */
@@ -21,4 +23,3 @@ export default class ExportFilePlugin extends BasePlugin {
21
23
  private getSource;
22
24
  private formatter;
23
25
  }
24
- export {};
@@ -1,7 +1,7 @@
1
- import { EventEmitter, VNode } from '../../stencil-public-runtime';
1
+ import { EventEmitter, type VNode } from '../../stencil-public-runtime';
2
2
  import '../../utils/closest.polifill';
3
3
  import { FilterCaptions, LogicFunction, MultiFilterItem, ShowData } from './filter.types';
4
- import { ColumnProp } from "../../types/index";
4
+ import type { ColumnProp } from "../../types/index";
5
5
  import { FilterType } from './filter.indexed';
6
6
  /**
7
7
  * Filter panel for editing filters
@@ -1,6 +1,7 @@
1
+ import { type VNode } from '../../stencil-public-runtime';
1
2
  import type { ColumnProp, ColumnRegular, DataType, PluginProviders } from "../../types/index";
2
3
  import { BasePlugin } from '../base.plugin';
3
- import type { ColumnFilterConfig, FilterCollection, LogicFunction, MultiFilterItem } from './filter.types';
4
+ import type { ColumnFilterConfig, FilterCollectionItem, LogicFunction, MultiFilterItem, ShowData } from './filter.types';
4
5
  export * from './filter.types';
5
6
  export * from './filter.indexed';
6
7
  export * from './filter.button';
@@ -10,27 +11,43 @@ export declare const FILTE_PANEL = "revogr-filter-panel";
10
11
  /**
11
12
  * @typedef ColumnFilterConfig
12
13
  * @type {object}
13
- * @property {FilterCollection|undefined} collection - preserved filter data
14
+ *
15
+ * @property {MultiFilterItem|undefined} multiFilterItems - data for multi filtering with relation
16
+ *
17
+ * @property {Record<ColumnProp, FilterCollectionItem>|undefined} collection - preserved filter data, relation for filters will be applied as 'and'
18
+ *
14
19
  * @property {string[]|undefined} include - filters to be included, if defined everything else out of scope will be ignored
20
+ *
15
21
  * @property {Record<string, CustomFilter>|undefined} customFilters - hash map of {FilterType:CustomFilter}.
22
+ *
16
23
  * @property {FilterLocalization|undefined} localization - translation for filter popup captions.
17
- * @property {MultiFilterItem|undefined} multiFilterItems - data for multi filtering.
24
+ *
18
25
  * @property {boolean|undefined} disableDynamicFiltering - disables dynamic filtering. A way to apply filters on Save only.
19
- * A way to define your own filter types per column
20
26
  */
21
27
  /**
22
28
  * @internal
23
29
  */
24
30
  export declare class FilterPlugin extends BasePlugin {
25
31
  revogrid: HTMLRevoGridElement;
32
+ config?: ColumnFilterConfig | undefined;
26
33
  pop?: HTMLRevogrFilterPanelElement;
27
- filterCollection: FilterCollection;
34
+ filterCollection: Record<ColumnProp, FilterCollectionItem>;
28
35
  multiFilterItems: MultiFilterItem;
36
+ /**
37
+ * Filter types
38
+ * @example
39
+ * {
40
+ * string: ['contains', 'beginswith'],
41
+ * number: ['eqN', 'neqN', 'gt']
42
+ * }
43
+ */
29
44
  filterByType: Record<string, string[]>;
30
45
  filterNameIndexByType: Record<string, string>;
31
46
  filterFunctionsIndexedByType: Record<string, LogicFunction>;
32
47
  filterProp: string;
33
- constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders, config?: ColumnFilterConfig);
48
+ extraHyperContent?: (data: ShowData) => VNode | VNode[];
49
+ constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders, config?: ColumnFilterConfig | undefined);
50
+ beforeshow(_: ShowData): void;
34
51
  extraContent(): any;
35
52
  initConfig(config: ColumnFilterConfig): void;
36
53
  headerclick(e: CustomEvent<ColumnRegular>): Promise<void>;
@@ -44,11 +61,12 @@ export declare class FilterPlugin extends BasePlugin {
44
61
  /**
45
62
  * Triggers grid filtering
46
63
  */
47
- doFiltering(collection: FilterCollection, source: DataType[], columns: ColumnRegular[], filterItems: MultiFilterItem): Promise<void>;
64
+ doFiltering(collection: Record<ColumnProp, FilterCollectionItem>, source: DataType[], columns: ColumnRegular[], filterItems: MultiFilterItem): Promise<void>;
48
65
  clearFiltering(): Promise<void>;
49
66
  runFiltering(multiFilterItems: MultiFilterItem): Promise<void>;
50
67
  /**
51
68
  * Get trimmed rows based on filter
52
69
  */
53
70
  getRowFilter(rows: DataType[], filterItems: MultiFilterItem, columnByProp: Record<string, ColumnRegular>): Record<number, boolean>;
71
+ private shouldTrimRow;
54
72
  }
@@ -1,5 +1,5 @@
1
- import { ColumnProp } from "../../types/index";
2
- import { FilterType } from './filter.indexed';
1
+ import type { ColumnProp, ColumnRegular } from "../../types/index";
2
+ import type { FilterType } from './filter.indexed';
3
3
  export type DateEnum = 'today' | 'yesterday' | 'tomorrow' | 'thisweek' | 'lastweek' | 'nextweek' | 'thismonth' | 'lastmonth' | 'nextmonth' | 'thisyear' | 'lastyear' | 'nextyear';
4
4
  export type ExtraField = 'input' | 'select' | 'multi' | 'datepicker';
5
5
  export type LogicFunctionParam = any;
@@ -8,9 +8,18 @@ export type LogicFunction<T1 = LogicFunctionParam, T2 = LogicFunctionExtraParam>
8
8
  (value: T1, extra?: T2): boolean;
9
9
  extra?: ExtraField;
10
10
  };
11
- type CustomFilter<T1 = LogicFunctionParam, T2 = LogicFunctionExtraParam> = {
11
+ export type CustomFilter<T1 = LogicFunctionParam, T2 = LogicFunctionExtraParam> = {
12
+ /**
13
+ * Property defined in column { filter: string/number/abstract/enum...etc }
14
+ */
12
15
  columnFilterType: string;
16
+ /**
17
+ * Filter name
18
+ */
13
19
  name: string;
20
+ /**
21
+ * Function to apply the filter
22
+ */
14
23
  func: LogicFunction<T1, T2>;
15
24
  };
16
25
  export type FilterCaptions = {
@@ -35,7 +44,7 @@ export type ColumnFilterConfig = {
35
44
  /**
36
45
  * The collection of filters to be applied to the column.
37
46
  */
38
- collection?: FilterCollection;
47
+ collection?: Record<ColumnProp, FilterCollectionItem>;
39
48
  /**
40
49
  * The names of the filters to be included in the filter dropdown.
41
50
  */
@@ -62,12 +71,10 @@ export type ColumnFilterConfig = {
62
71
  */
63
72
  disableDynamicFiltering?: boolean;
64
73
  };
65
- type FilterCollectionItem = {
66
- filter: LogicFunction;
74
+ export type FilterCollectionItem = {
67
75
  type: FilterType;
68
76
  value?: any;
69
77
  };
70
- export type FilterCollection = Record<ColumnProp, FilterCollectionItem>;
71
78
  export type FilterItem = {
72
79
  prop?: ColumnProp;
73
80
  type?: FilterType;
@@ -75,9 +82,22 @@ export type FilterItem = {
75
82
  };
76
83
  export type FilterData = {
77
84
  id: number;
85
+ /**
86
+ * Filter type
87
+ */
78
88
  type: FilterType;
89
+ /**
90
+ * Filter value
91
+ */
79
92
  value?: any;
80
- relation: 'and' | 'or';
93
+ /**
94
+ * Filter invisible in filter panel
95
+ */
96
+ hidden?: boolean;
97
+ /**
98
+ * Filter relation
99
+ */
100
+ relation?: 'and' | 'or';
81
101
  };
82
102
  export type MultiFilterItem = {
83
103
  [prop: string]: FilterData[];
@@ -90,5 +110,7 @@ export type ShowData = {
90
110
  */
91
111
  autoCorrect?: boolean;
92
112
  filterTypes?: Record<string, string[]>;
93
- } & FilterItem;
94
- export {};
113
+ filterItems?: MultiFilterItem;
114
+ hideDefaultFilters?: boolean;
115
+ extraContent?: (data: ShowData) => any;
116
+ } & FilterItem & Omit<ColumnRegular, 'filter'>;
@@ -1,4 +1,4 @@
1
- import { VNode } from '../../stencil-public-runtime';
1
+ import { h } from '../../stencil-public-runtime';
2
2
  import { Group } from "../../store/index";
3
3
  import { DimensionSettingsState, Providers, DimensionCols } from "../../types/index";
4
4
  import { ResizeProps } from '../../components/header/resizable.directive';
@@ -14,5 +14,5 @@ type Props<T> = {
14
14
  additionalData: any;
15
15
  onResize(changedX: number, startIndex: number, endIndex: number): void;
16
16
  } & Partial<Pick<ResizeProps, 'active'>>;
17
- declare const ColumnGroupsRenderer: ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }: Props<DimensionCols | "rowHeaders">) => VNode[];
17
+ declare const ColumnGroupsRenderer: ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }: Props<DimensionCols | "rowHeaders">) => ReturnType<typeof h>[];
18
18
  export default ColumnGroupsRenderer;
@@ -1,8 +1,7 @@
1
- import { VNode } from '../../stencil-public-runtime';
1
+ import { h } from '../../stencil-public-runtime';
2
2
  import { Group } from "../../store/index";
3
- import { Providers } from "../../types/index";
3
+ import type { Providers, DimensionCols } from "../../types/index";
4
4
  import { ResizeEvent, ResizeProps } from '../../components/header/resizable.directive';
5
- import { DimensionCols } from '../../components';
6
5
  type Props = {
7
6
  start: number;
8
7
  end: number;
@@ -12,5 +11,5 @@ type Props = {
12
11
  canResize?: boolean;
13
12
  onResize?(e: ResizeEvent): void;
14
13
  } & Partial<Pick<ResizeProps, 'active'>>;
15
- declare const GroupHeaderRenderer: (p: Props) => VNode[];
14
+ declare const GroupHeaderRenderer: (p: Props) => ReturnType<typeof h>;
16
15
  export default GroupHeaderRenderer;
@@ -1,10 +1,12 @@
1
+ import { DimensionRows } from "../../types/index";
1
2
  export declare const GROUP_DEPTH = "__rvgr-depth";
2
3
  export declare const PSEUDO_GROUP_ITEM = "__rvgr-name";
3
4
  export declare const PSEUDO_GROUP_ITEM_ID = "__rvgr-id";
4
5
  export declare const PSEUDO_GROUP_ITEM_VALUE = "__rvgr-value";
5
6
  export declare const PSEUDO_GROUP_COLUMN = "__rvgr-column";
6
7
  export declare const GROUP_EXPANDED = "__rvgr-expanded";
8
+ export declare const GROUP_COLUMN_PROP = "__rvgr-prop";
7
9
  export declare const GROUP_ORIGINAL_INDEX = "__rvgr-original-index";
8
10
  export declare const GROUP_EXPAND_BTN = "group-expand";
9
11
  export declare const GROUP_EXPAND_EVENT = "groupexpandclick";
10
- export declare const GROUPING_ROW_TYPE = "rgRow";
12
+ export declare const GROUPING_ROW_TYPE: DimensionRows;
@@ -1,24 +1,26 @@
1
- import { DSourceState } from "../../store/index";
1
+ import { type DSourceState } from "../../store/index";
2
2
  import { BasePlugin } from '../base.plugin';
3
- import { GroupingOptions } from './grouping.row.types';
4
- import { DataType, DimensionRows, PluginProviders } from "../../types/index";
5
- import { Observable } from '../../utils/store.utils';
6
- export default class GroupingRowPlugin extends BasePlugin {
3
+ import type { GroupingOptions, OnExpandEvent } from './grouping.row.types';
4
+ import type { DataType, DimensionRows, PluginProviders } from "../../types/index";
5
+ import type { Observable } from '../../utils';
6
+ declare global {
7
+ interface HTMLRevoGridElementEventMap {
8
+ groupexpandclick: OnExpandEvent;
9
+ }
10
+ }
11
+ export declare class GroupingRowPlugin extends BasePlugin {
7
12
  revogrid: HTMLRevoGridElement;
8
13
  providers: PluginProviders;
9
14
  private options;
10
- get hasProps(): number | undefined;
11
- get store(): Observable<DSourceState<DataType, DimensionRows>>;
12
- get rowItems(): number[];
13
- get trimmed(): Record<any, any>;
15
+ getStore(type?: DimensionRows): Observable<DSourceState<DataType, DimensionRows>>;
14
16
  constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders);
15
17
  private onFocus;
16
18
  private onExpand;
17
- private getSource;
18
19
  private setColumnGrouping;
19
20
  private setColumns;
20
21
  private onDrag;
21
22
  private beforeTrimmedApply;
23
+ private isSortingRunning;
22
24
  private subscribe;
23
25
  /**
24
26
  * Starts global source update with group clearing and applying new one
@@ -31,6 +33,9 @@ export default class GroupingRowPlugin extends BasePlugin {
31
33
  * If source came from other plugin
32
34
  */
33
35
  private onDataSet;
36
+ /**
37
+ * Externam call to apply grouping. Called by revogrid when prop changed.
38
+ */
34
39
  setGrouping(options: GroupingOptions): void;
35
40
  clearGrouping(): void;
36
41
  private updateTrimmed;
@@ -1,17 +1,36 @@
1
- import { VNode } from '../../stencil-public-runtime';
2
- import { HyperFunc, ColumnProp, DimensionRows, DataType } from "../../types/index";
1
+ import type { VNode } from '../../stencil-public-runtime';
2
+ import type { HyperFunc, ColumnProp, DimensionRows, DataType } from "../../types/index";
3
3
  export type GroupLabelTemplateFunc = (createElement: HyperFunc<VNode>, props: {
4
4
  name: string;
5
5
  itemIndex: number;
6
6
  expanded: boolean;
7
7
  depth: number;
8
+ model?: DataType;
8
9
  }) => any;
9
10
  export type GroupingOptions = {
11
+ /**
12
+ * Column props to which grouping will be applied
13
+ */
10
14
  props?: ColumnProp[];
11
- /** is expanded by default */
15
+ /**
16
+ * Currently expanded items.
17
+ * Corresponds to prop values as: source = [{ me: 'a' }, { me: 'b' }, { me: 'c' }], to set expanded: { a: true }
18
+ */
19
+ prevExpanded?: Record<string, boolean>;
20
+ /**
21
+ * Is expanded by default
22
+ */
12
23
  expandedAll?: boolean;
24
+ /**
25
+ * Should grouping be preserved on source update.
26
+ * default: true
27
+ */
28
+ preserveGroupingOnUpdate?: boolean;
29
+ /**
30
+ * Custom group label template
31
+ */
13
32
  groupLabelTemplate?: GroupLabelTemplateFunc;
14
- };
33
+ } & ExpandedOptions;
15
34
  export type BeforeSourceSetEvent = {
16
35
  type: DimensionRows;
17
36
  source: DataType[];
@@ -25,3 +44,18 @@ export type SourceGather = {
25
44
  prevExpanded: Record<string, boolean>;
26
45
  oldNewIndexes?: Record<number, number>;
27
46
  };
47
+ export type ExpandedOptions = {
48
+ prevExpanded?: Record<string, boolean>;
49
+ /**
50
+ * Is expanded by default
51
+ */
52
+ expandedAll?: boolean;
53
+ /**
54
+ * Custom group label value parser
55
+ */
56
+ getGroupValue?(item: DataType, prop: string | number): any;
57
+ /**
58
+ * Custom group label template
59
+ */
60
+ groupLabelTemplate?: GroupLabelTemplateFunc;
61
+ };
@@ -1,19 +1,15 @@
1
- import { DataType, ColumnProp, ColumnRegular } from "../../types/index";
2
- import { GROUP_DEPTH, GROUP_EXPANDED, PSEUDO_GROUP_ITEM, PSEUDO_GROUP_ITEM_VALUE } from './grouping.const';
3
- import { GroupLabelTemplateFunc } from './grouping.row.types';
4
- export type ExpandedOptions = {
5
- prevExpanded?: Record<string, boolean>;
6
- expandedAll?: boolean;
7
- getGroupValue?(item: DataType, prop: string | number): any;
8
- groupLabelTemplate?: GroupLabelTemplateFunc;
9
- };
1
+ import type { DataType, ColumnProp, ColumnRegular } from "../../types/index";
2
+ import { GROUP_DEPTH, GROUP_EXPANDED, PSEUDO_GROUP_ITEM, PSEUDO_GROUP_ITEM_VALUE, GROUP_COLUMN_PROP } from './grouping.const';
3
+ import type { ExpandedOptions, SourceGather } from './grouping.row.types';
4
+ export declare function getSource(source: DataType[], items: number[], withoutGrouping?: boolean): Required<SourceGather>;
5
+ export declare function getExpanded(model?: DataType): any;
10
6
  /**
11
7
  * Gather data for grouping
12
8
  * @param array - flat data array
13
- * @param groupIds - ids of groups
9
+ * @param columnProps - ids of groups
14
10
  * @param expanded - potentially expanded items if present
15
11
  */
16
- export declare function gatherGrouping(array: DataType[], groupIds: ColumnProp[], { prevExpanded, expandedAll, getGroupValue, }: ExpandedOptions): {
12
+ export declare function gatherGrouping(array: DataType[], columnProps: ColumnProp[], { prevExpanded, expandedAll, getGroupValue, }: ExpandedOptions): {
17
13
  sourceWithGroups: DataType[];
18
14
  depth: number;
19
15
  trimmed: Record<number, boolean>;
@@ -26,9 +22,10 @@ type GroupingItem = {
26
22
  [GROUP_EXPANDED]: boolean;
27
23
  [PSEUDO_GROUP_ITEM_VALUE]: string;
28
24
  [GROUP_DEPTH]: number;
25
+ [GROUP_COLUMN_PROP]: ColumnProp;
29
26
  };
30
27
  export declare function isGrouping(rgRow?: DataType): rgRow is GroupingItem;
31
- export declare function isGroupingColumn(column?: ColumnRegular): boolean | undefined;
28
+ export declare function isGroupingColumn(column?: ColumnRegular): boolean;
32
29
  export declare function measureEqualDepth<T>(groupA: T[], groupB: T[]): number;
33
30
  export declare function getParsedGroup(id: string): any[] | null;
34
31
  export declare function isSameGroup(currentGroup: any[], currentModel: DataType, nextModel: DataType): boolean;
@@ -7,6 +7,8 @@ export * from './filter/filter.plugin';
7
7
  export * from './groupingColumn/columnGroupsRenderer';
8
8
  export * from './groupingColumn/headerGroupRenderer';
9
9
  export * from './groupingRow/grouping.row.plugin';
10
+ export * from './groupingRow/grouping.service';
10
11
  export * from './moveColumn/column.drag.plugin';
11
12
  export * from './sorting/sorting.plugin';
12
13
  export * from './sorting/sorting.sign';
14
+ export * from './add-rows-on-paste.plugin';
@@ -1,5 +1,5 @@
1
1
  import { BasePlugin } from '../base.plugin';
2
- import { ColumnPropProp, DimensionCols, PluginProviders } from "../../types/index";
2
+ import type { ColumnPropProp, DimensionCols, PluginProviders } from "../../types/index";
3
3
  export type DragStartEventDetails = {
4
4
  event: MouseEvent;
5
5
  data: ColumnPropProp;
@@ -15,7 +15,7 @@ export type ColumnDragEventData = {
15
15
  scrollOffset: number;
16
16
  type: DimensionCols;
17
17
  };
18
- export default class ColumnPlugin extends BasePlugin {
18
+ export declare class ColumnMovePlugin extends BasePlugin {
19
19
  revogrid: HTMLRevoGridElement;
20
20
  providers: PluginProviders;
21
21
  private moveFunc;
@@ -0,0 +1,3 @@
1
+ import type { DataType } from "../../types/index";
2
+ import type { SortingOrderFunction } from './sorting.types';
3
+ export declare function sortIndexByItems(indexes: number[], source: DataType[], sortingFunc?: SortingOrderFunction): number[];
@@ -1,26 +1,27 @@
1
1
  import { BasePlugin } from '../base.plugin';
2
- import { ColumnProp, Order, CellCompareFunc, ColumnRegular, DataType, DimensionRows, PluginProviders } from "../../types/index";
3
- export type SortingOrder = Record<ColumnProp, Order>;
4
- type SortingOrderFunction = Record<ColumnProp, CellCompareFunc | undefined>;
2
+ import type { ColumnProp, Order, CellCompareFunc, ColumnRegular, DataType, DimensionRows, PluginProviders } from "../../types/index";
3
+ import type { SortingConfig, SortingOrder, SortingOrderFunction } from './sorting.types';
4
+ export * from './sorting.types';
5
5
  /**
6
6
  * Lifecycle
7
7
  * 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
8
+ * 1.1. @event `beforesourcesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted.
8
9
  * 2. @method `updateColumnSorting` - Updates the column sorting icon on the grid and the column itself, but the data remains untouched.
9
10
  * 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.
10
11
  * 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. This event occurs for both row and column sorting.
11
12
  *
12
13
  * Note: If you prevent an event, it will not proceed to the subsequent steps.
13
14
  */
14
- export default class SortingPlugin extends BasePlugin {
15
+ export declare class SortingPlugin extends BasePlugin {
15
16
  revogrid: HTMLRevoGridElement;
16
17
  sorting?: SortingOrder;
17
18
  sortingFunc?: SortingOrderFunction;
18
19
  sortingPromise: (() => void) | null;
19
- postponeSort: import("lodash").DebouncedFunc<(order?: SortingOrder, comparison?: SortingOrderFunction) => void>;
20
- runSorting(order?: SortingOrder, comparison?: SortingOrderFunction): void;
21
- constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders);
22
- startSorting(order?: SortingOrder, sortingFunc?: SortingOrderFunction): void;
23
- getComparer(column: ColumnRegular | undefined, order: Order): CellCompareFunc | undefined;
20
+ postponeSort: import("lodash").DebouncedFunc<(order?: SortingOrder, comparison?: SortingOrderFunction, ignoreViewportUpdate?: boolean) => void>;
21
+ runSorting(order?: SortingOrder, comparison?: SortingOrderFunction, ignoreViewportUpdate?: boolean): void;
22
+ constructor(revogrid: HTMLRevoGridElement, providers: PluginProviders, config?: SortingConfig);
23
+ startSorting(order?: SortingOrder, sortingFunc?: SortingOrderFunction, ignoreViewportUpdate?: boolean): void;
24
+ getComparer(column: Partial<ColumnRegular> | undefined, order: Order): CellCompareFunc | undefined;
24
25
  /**
25
26
  * Apply sorting to data on header click
26
27
  * If additive - add to existing sorting, multiple columns can be sorted
@@ -34,10 +35,10 @@ export default class SortingPlugin extends BasePlugin {
34
35
  * @param sorting - per column sorting
35
36
  * @param data - this.stores['rgRow'].store.get('source')
36
37
  */
37
- sort(sorting?: SortingOrder, sortingFunc?: SortingOrderFunction, types?: DimensionRows[]): void;
38
- defaultCellCompare(prop: ColumnProp, a: DataType, b: DataType): 0 | 1 | -1;
38
+ sort(sorting?: SortingOrder, sortingFunc?: SortingOrderFunction, types?: DimensionRows[], ignoreViewportUpdate?: boolean): void;
39
+ defaultCellCompare(this: {
40
+ column?: ColumnRegular;
41
+ }, prop: ColumnProp, a: DataType, b: DataType): 0 | 1 | -1;
39
42
  descCellCompare(cmp: CellCompareFunc): (prop: ColumnProp, a: DataType, b: DataType) => number;
40
- sortIndexByItems(indexes: number[], source: DataType[], sortingFunc?: SortingOrderFunction): number[];
41
43
  getNextOrder(currentOrder: Order): Order;
42
44
  }
43
- export {};
@@ -0,0 +1,13 @@
1
+ import type { CellCompareFunc, ColumnProp, Order } from "../../types/index";
2
+ export type SortingOrder = Record<ColumnProp, Order>;
3
+ export type SortingOrderFunction = Record<ColumnProp, CellCompareFunc | undefined>;
4
+ export type ColumnSetEvent = {
5
+ order: SortingOrder;
6
+ };
7
+ export type SortingConfig = {
8
+ columns?: {
9
+ prop: ColumnProp;
10
+ order: Order;
11
+ cellCompare?: CellCompareFunc;
12
+ }[];
13
+ };
@@ -1,5 +1,5 @@
1
1
  import { DataStore } from "../store/index";
2
- import type { ColumnProp, ColumnRegular, DimensionCols, DimensionColPin } from "../types/index";
2
+ import type { ColumnProp, ColumnRegular, DimensionCols } from "../types/index";
3
3
  import { ColumnCollection } from '../utils/column.utils';
4
4
  export type ColumnDataSources = Record<DimensionCols, DataStore<ColumnRegular, DimensionCols>>;
5
5
  type Sorting = Record<ColumnProp, ColumnRegular>;
@@ -11,13 +11,16 @@ export default class ColumnDataProvider {
11
11
  get order(): SortingOrder;
12
12
  get stores(): ColumnDataSources;
13
13
  constructor();
14
- column(c: number, pin?: DimensionColPin): ColumnRegular | undefined;
14
+ column(c: number, type?: DimensionCols): ColumnRegular | undefined;
15
15
  getColumn(virtualIndex: number, type: DimensionCols): ColumnRegular | undefined;
16
16
  getRawColumns(): Record<DimensionCols, ColumnRegular[]>;
17
17
  getColumns(type?: DimensionCols | 'all'): ColumnRegular[];
18
18
  getColumnIndexByProp(prop: ColumnProp, type: DimensionCols): number;
19
19
  getColumnByProp(prop: ColumnProp): ColumnRegular[] | undefined;
20
20
  refreshByType(type: DimensionCols): void;
21
+ /**
22
+ * Main method to set columns
23
+ */
21
24
  setColumns(data: ColumnCollection): ColumnCollection;
22
25
  /**
23
26
  * Used in plugins
@@ -7,6 +7,8 @@ export type RowDataSources = {
7
7
  };
8
8
  /**
9
9
  * Data source provider
10
+ *
11
+ * @dependsOn DimensionProvider
10
12
  */
11
13
  export declare class DataProvider {
12
14
  private dimensionProvider;
@@ -23,7 +25,7 @@ export declare class DataProvider {
23
25
  from: number;
24
26
  to: number;
25
27
  }): void;
26
- setCellData({ type, rowIndex, prop, val }: BeforeSaveDataDetails, mutate?: boolean): void;
28
+ setCellData({ type, rowIndex, prop, val }: Pick<BeforeSaveDataDetails, 'type' | 'rowIndex' | 'prop' | 'val'>, mutate?: boolean): void;
27
29
  setRangeData(data: DataLookup, type: DimensionRows): void;
28
30
  refresh(type?: DimensionRows | 'all'): void;
29
31
  refreshItems(type?: DimensionRows): void;
@@ -1,12 +1,14 @@
1
1
  import ViewportProvider from './viewport.provider';
2
2
  import { DimensionStoreCollection, Trimmed } from "../store/index";
3
- import { DimensionCols, DimensionType, MultiDimensionType, ColumnRegular, DimensionSettingsState, ViewPortScrollEvent, ViewSettingSizeProp } from "../types/index";
3
+ import type { DimensionCols, DimensionType, MultiDimensionType, ColumnRegular, DimensionSettingsState, ViewPortScrollEvent, ViewSettingSizeProp } from "../types/index";
4
4
  export type DimensionConfig = {
5
5
  realSizeChanged(k: MultiDimensionType): void;
6
6
  };
7
7
  /**
8
8
  * Dimension provider
9
9
  * Stores dimension information and custom sizes
10
+ *
11
+ * @dependsOn ViewportProvider
10
12
  */
11
13
  export default class DimensionProvider {
12
14
  private viewports;
@@ -33,7 +35,7 @@ export default class DimensionProvider {
33
35
  */
34
36
  setTrimmed(trimmed: Trimmed, type: MultiDimensionType): void;
35
37
  /**
36
- * Sets dimension data and view port coordinate
38
+ * Sets dimension data and viewport coordinate
37
39
  * @param itemCount
38
40
  * @param type - dimension type
39
41
  * @param noVirtual - disable virtual data
@@ -44,12 +46,15 @@ export default class DimensionProvider {
44
46
  * @param columns - new columns data
45
47
  * @param disableVirtualX - disable virtual data for X axis
46
48
  */
47
- applyNewColumns(columns: Record<DimensionCols, ColumnRegular[]>, disableVirtualX: boolean): void;
49
+ applyNewColumns(columns: Record<DimensionCols, ColumnRegular[]>, disableVirtualX: boolean, keepOld?: boolean): void;
50
+ /**
51
+ * Gets the full size of the grid by summing up the sizes of all dimensions
52
+ * Goes through all dimensions columnTypes (x) and rowTypes (y) and sums up their sizes
53
+ */
48
54
  getFullSize(): {
49
55
  x: number;
50
56
  y: number;
51
57
  };
52
- updateViewport(type: MultiDimensionType, force?: boolean): void;
53
58
  setViewPortCoordinate({ coordinate, type, force, }: {
54
59
  coordinate: number;
55
60
  type: MultiDimensionType;