lsp-grid 1.0.0

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 (675) hide show
  1. package/README.md +34 -0
  2. package/dist/cjs/app-globals-Bfsg1bDt.js +16 -0
  3. package/dist/cjs/app-globals-Bfsg1bDt.js.map +1 -0
  4. package/dist/cjs/cell-renderer-DtuYp7tj.js +106 -0
  5. package/dist/cjs/cell-renderer-DtuYp7tj.js.map +1 -0
  6. package/dist/cjs/column.drag.plugin-BIptTmfz.js +2554 -0
  7. package/dist/cjs/column.drag.plugin-BIptTmfz.js.map +1 -0
  8. package/dist/cjs/column.service-BnVSAfcu.js +1391 -0
  9. package/dist/cjs/column.service-BnVSAfcu.js.map +1 -0
  10. package/dist/cjs/data.store-CrF4Nf9q.js +3615 -0
  11. package/dist/cjs/data.store-CrF4Nf9q.js.map +1 -0
  12. package/dist/cjs/debounce-DgeyTQM0.js +498 -0
  13. package/dist/cjs/debounce-DgeyTQM0.js.map +1 -0
  14. package/dist/cjs/edit.utils-Bw-E3Fj6.js +118 -0
  15. package/dist/cjs/edit.utils-Bw-E3Fj6.js.map +1 -0
  16. package/dist/cjs/events-D0Syn6ut.js +46 -0
  17. package/dist/cjs/events-D0Syn6ut.js.map +1 -0
  18. package/dist/cjs/filter.button-CaAAXq-6.js +49 -0
  19. package/dist/cjs/filter.button-CaAAXq-6.js.map +1 -0
  20. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js +356 -0
  21. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js.map +1 -0
  22. package/dist/cjs/index-VM40U6Gh.js +2549 -0
  23. package/dist/cjs/index-VM40U6Gh.js.map +1 -0
  24. package/dist/cjs/index.cjs.js +346 -0
  25. package/dist/cjs/index.cjs.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +19 -0
  27. package/dist/cjs/loader.cjs.js.map +1 -0
  28. package/dist/cjs/revo-grid.cjs.entry.js +2187 -0
  29. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  30. package/dist/cjs/revo-grid.cjs.js +31 -0
  31. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  32. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
  33. package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
  34. package/dist/cjs/revogr-attribution_7.cjs.entry.js +1463 -0
  35. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -0
  36. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
  37. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +456 -0
  38. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  39. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
  40. package/dist/cjs/revogr-data_4.cjs.entry.js +948 -0
  41. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  42. package/dist/cjs/revogr-filter-panel.cjs.entry.js +382 -0
  43. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  44. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
  45. package/dist/cjs/row-header-utils-DL640c7x.js +420 -0
  46. package/dist/cjs/row-header-utils-DL640c7x.js.map +1 -0
  47. package/dist/cjs/text-editor-DWChyeVV.js +81 -0
  48. package/dist/cjs/text-editor-DWChyeVV.js.map +1 -0
  49. package/dist/cjs/throttle-Bb1Bbfd1.js +278 -0
  50. package/dist/cjs/throttle-Bb1Bbfd1.js.map +1 -0
  51. package/dist/cjs/viewport.helpers-CI6uB8tu.js +59 -0
  52. package/dist/cjs/viewport.helpers-CI6uB8tu.js.map +1 -0
  53. package/dist/collection/collection-manifest.json +28 -0
  54. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  55. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  56. package/dist/collection/components/clipboard/revogr-clipboard.js +396 -0
  57. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  58. package/dist/collection/components/data/cell-renderer.js +44 -0
  59. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  60. package/dist/collection/components/data/column.service.js +293 -0
  61. package/dist/collection/components/data/column.service.js.map +1 -0
  62. package/dist/collection/components/data/revogr-data-style.css +75 -0
  63. package/dist/collection/components/data/revogr-data.js +697 -0
  64. package/dist/collection/components/data/revogr-data.js.map +1 -0
  65. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  66. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  67. package/dist/collection/components/data/row-renderer.js +16 -0
  68. package/dist/collection/components/data/row-renderer.js.map +1 -0
  69. package/dist/collection/components/editors/edit.utils.js +13 -0
  70. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  71. package/dist/collection/components/editors/revogr-edit-style.css +16 -0
  72. package/dist/collection/components/editors/revogr-edit.js +346 -0
  73. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  74. package/dist/collection/components/editors/text-editor.js +74 -0
  75. package/dist/collection/components/editors/text-editor.js.map +1 -0
  76. package/dist/collection/components/extra/revogr-extra.js +125 -0
  77. package/dist/collection/components/extra/revogr-extra.js.map +1 -0
  78. package/dist/collection/components/header/header-cell-renderer.js +34 -0
  79. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  80. package/dist/collection/components/header/header-group-renderer.js +25 -0
  81. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  82. package/dist/collection/components/header/header-renderer.js +61 -0
  83. package/dist/collection/components/header/header-renderer.js.map +1 -0
  84. package/dist/collection/components/header/resizable.directive.js +237 -0
  85. package/dist/collection/components/header/resizable.directive.js.map +1 -0
  86. package/dist/collection/components/header/resizable.element.js +38 -0
  87. package/dist/collection/components/header/resizable.element.js.map +1 -0
  88. package/dist/collection/components/header/revogr-header-style.css +144 -0
  89. package/dist/collection/components/header/revogr-header.js +573 -0
  90. package/dist/collection/components/header/revogr-header.js.map +1 -0
  91. package/dist/collection/components/order/order-renderer.js +50 -0
  92. package/dist/collection/components/order/order-renderer.js.map +1 -0
  93. package/dist/collection/components/order/order-row.service.js +72 -0
  94. package/dist/collection/components/order/order-row.service.js.map +1 -0
  95. package/dist/collection/components/order/revogr-order-editor.js +461 -0
  96. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  97. package/dist/collection/components/overlay/autofill.service.js +224 -0
  98. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  99. package/dist/collection/components/overlay/keyboard.service.js +158 -0
  100. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  101. package/dist/collection/components/overlay/revogr-overlay-selection.js +1515 -0
  102. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  103. package/dist/collection/components/overlay/revogr-overlay-style.css +95 -0
  104. package/dist/collection/components/overlay/selection.utils.js +136 -0
  105. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  106. package/dist/collection/components/revoGrid/grid.helpers.js +33 -0
  107. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  108. package/dist/collection/components/revoGrid/plugin.service.js +81 -0
  109. package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
  110. package/dist/collection/components/revoGrid/revo-grid-style.css +567 -0
  111. package/dist/collection/components/revoGrid/revo-grid.js +3671 -0
  112. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  113. package/dist/collection/components/revoGrid/viewport.helpers.js +49 -0
  114. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  115. package/dist/collection/components/revoGrid/viewport.resize.service.js +55 -0
  116. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  117. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +90 -0
  118. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  119. package/dist/collection/components/revoGrid/viewport.service.js +237 -0
  120. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  121. package/dist/collection/components/rowHeaders/revogr-row-headers.js +291 -0
  122. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  123. package/dist/collection/components/rowHeaders/row-header-render.js +5 -0
  124. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  125. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +69 -0
  126. package/dist/collection/components/scroll/revogr-viewport-scroll.js +601 -0
  127. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  128. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  129. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  130. package/dist/collection/components/scrollable/revogr-scroll-style.css +34 -0
  131. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +295 -0
  132. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  133. package/dist/collection/components/selectionFocus/revogr-focus-style.css +7 -0
  134. package/dist/collection/components/selectionFocus/revogr-focus.js +400 -0
  135. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  136. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +28 -0
  137. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +171 -0
  138. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  139. package/dist/collection/components/vnode/vnode-converter.js +84 -0
  140. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  141. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  142. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  143. package/dist/collection/global/global.js +19 -0
  144. package/dist/collection/global/global.js.map +1 -0
  145. package/dist/collection/index.js +13 -0
  146. package/dist/collection/index.js.map +1 -0
  147. package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
  148. package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
  149. package/dist/collection/plugins/base.plugin.js +90 -0
  150. package/dist/collection/plugins/base.plugin.js.map +1 -0
  151. package/dist/collection/plugins/column.auto-size.plugin.js +225 -0
  152. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  153. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  154. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  155. package/dist/collection/plugins/dispatcher.js +40 -0
  156. package/dist/collection/plugins/dispatcher.js.map +1 -0
  157. package/dist/collection/plugins/export/csv.js +72 -0
  158. package/dist/collection/plugins/export/csv.js.map +1 -0
  159. package/dist/collection/plugins/export/export.plugin.js +157 -0
  160. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  161. package/dist/collection/plugins/export/types.js +2 -0
  162. package/dist/collection/plugins/export/types.js.map +1 -0
  163. package/dist/collection/plugins/filter/conditions/equal.js +21 -0
  164. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  165. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +14 -0
  166. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  167. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +11 -0
  168. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  169. package/dist/collection/plugins/filter/conditions/number/lessThan.js +16 -0
  170. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  171. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +11 -0
  172. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  173. package/dist/collection/plugins/filter/conditions/set.js +7 -0
  174. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  175. package/dist/collection/plugins/filter/conditions/string/beginswith.js +21 -0
  176. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  177. package/dist/collection/plugins/filter/conditions/string/contains.js +25 -0
  178. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  179. package/dist/collection/plugins/filter/filter.button.js +28 -0
  180. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  181. package/dist/collection/plugins/filter/filter.indexed.js +49 -0
  182. package/dist/collection/plugins/filter/filter.indexed.js.map +1 -0
  183. package/dist/collection/plugins/filter/filter.panel.js +610 -0
  184. package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
  185. package/dist/collection/plugins/filter/filter.plugin.js +388 -0
  186. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  187. package/dist/collection/plugins/filter/filter.style.css +165 -0
  188. package/dist/collection/plugins/filter/filter.types.js +9 -0
  189. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  190. package/dist/collection/plugins/groupingRow/grouping.const.js +16 -0
  191. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  192. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +79 -0
  193. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  194. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +245 -0
  195. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  196. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +38 -0
  197. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  198. package/dist/collection/plugins/groupingRow/grouping.row.types.js +2 -0
  199. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  200. package/dist/collection/plugins/groupingRow/grouping.service.js +178 -0
  201. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  202. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +61 -0
  203. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  204. package/dist/collection/plugins/index.js +15 -0
  205. package/dist/collection/plugins/index.js.map +1 -0
  206. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +175 -0
  207. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  208. package/dist/collection/plugins/moveColumn/order-column.handler.js +71 -0
  209. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  210. package/dist/collection/plugins/rtl/rtl.plugin.js +110 -0
  211. package/dist/collection/plugins/rtl/rtl.plugin.js.map +1 -0
  212. package/dist/collection/plugins/sorting/sorting.func.js +82 -0
  213. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
  214. package/dist/collection/plugins/sorting/sorting.plugin.js +224 -0
  215. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  216. package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
  217. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  218. package/dist/collection/plugins/sorting/sorting.types.js +2 -0
  219. package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
  220. package/dist/collection/plugins/wcag/index.js +84 -0
  221. package/dist/collection/plugins/wcag/index.js.map +1 -0
  222. package/dist/collection/serve/controller.js +344 -0
  223. package/dist/collection/serve/data.js +201 -0
  224. package/dist/collection/services/cell.helpers.js +12 -0
  225. package/dist/collection/services/cell.helpers.js.map +1 -0
  226. package/dist/collection/services/column.data.provider.js +119 -0
  227. package/dist/collection/services/column.data.provider.js.map +1 -0
  228. package/dist/collection/services/data.provider.js +89 -0
  229. package/dist/collection/services/data.provider.js.map +1 -0
  230. package/dist/collection/services/dimension.provider.js +176 -0
  231. package/dist/collection/services/dimension.provider.js.map +1 -0
  232. package/dist/collection/services/local.scroll.service.js +124 -0
  233. package/dist/collection/services/local.scroll.service.js.map +1 -0
  234. package/dist/collection/services/local.scroll.timer.js +81 -0
  235. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  236. package/dist/collection/services/selection.store.connector.js +307 -0
  237. package/dist/collection/services/selection.store.connector.js.map +1 -0
  238. package/dist/collection/services/viewport.provider.js +17 -0
  239. package/dist/collection/services/viewport.provider.js.map +1 -0
  240. package/dist/collection/store/dataSource/data.proxy.js +45 -0
  241. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  242. package/dist/collection/store/dataSource/data.store.js +144 -0
  243. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  244. package/dist/collection/store/dataSource/index.js +7 -0
  245. package/dist/collection/store/dataSource/index.js.map +1 -0
  246. package/dist/collection/store/dataSource/trimmed.plugin.js +34 -0
  247. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  248. package/dist/collection/store/dimension/dimension.helpers.js +101 -0
  249. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  250. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
  251. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  252. package/dist/collection/store/dimension/dimension.store.js +109 -0
  253. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  254. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  255. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  256. package/dist/collection/store/dimension/index.js +6 -0
  257. package/dist/collection/store/dimension/index.js.map +1 -0
  258. package/dist/collection/store/index.js +17 -0
  259. package/dist/collection/store/index.js.map +1 -0
  260. package/dist/collection/store/selection/index.js +6 -0
  261. package/dist/collection/store/selection/index.js.map +1 -0
  262. package/dist/collection/store/selection/selection.helpers.js +53 -0
  263. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  264. package/dist/collection/store/selection/selection.store.js +85 -0
  265. package/dist/collection/store/selection/selection.store.js.map +1 -0
  266. package/dist/collection/store/vp/index.js +6 -0
  267. package/dist/collection/store/vp/index.js.map +1 -0
  268. package/dist/collection/store/vp/viewport.helpers.js +251 -0
  269. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  270. package/dist/collection/store/vp/viewport.store.js +151 -0
  271. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  272. package/dist/collection/themeManager/theme.compact.js +9 -0
  273. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  274. package/dist/collection/themeManager/theme.default.js +9 -0
  275. package/dist/collection/themeManager/theme.default.js.map +1 -0
  276. package/dist/collection/themeManager/theme.material.js +9 -0
  277. package/dist/collection/themeManager/theme.material.js.map +1 -0
  278. package/dist/collection/themeManager/theme.service.js +53 -0
  279. package/dist/collection/themeManager/theme.service.js.map +1 -0
  280. package/dist/collection/types/dimension.js +2 -0
  281. package/dist/collection/types/dimension.js.map +1 -0
  282. package/dist/collection/types/events.js +118 -0
  283. package/dist/collection/types/events.js.map +1 -0
  284. package/dist/collection/types/index.js +12 -0
  285. package/dist/collection/types/index.js.map +1 -0
  286. package/dist/collection/types/interfaces.js +2 -0
  287. package/dist/collection/types/interfaces.js.map +1 -0
  288. package/dist/collection/types/plugin.js +2 -0
  289. package/dist/collection/types/plugin.js.map +1 -0
  290. package/dist/collection/types/plugin.types.js +2 -0
  291. package/dist/collection/types/plugin.types.js.map +1 -0
  292. package/dist/collection/types/selection.js +2 -0
  293. package/dist/collection/types/selection.js.map +1 -0
  294. package/dist/collection/types/theme.js +2 -0
  295. package/dist/collection/types/theme.js.map +1 -0
  296. package/dist/collection/types/viewport.interfaces.js +2 -0
  297. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  298. package/dist/collection/utils/browser.js +7 -0
  299. package/dist/collection/utils/browser.js.map +1 -0
  300. package/dist/collection/utils/closest.polifill.js +22 -0
  301. package/dist/collection/utils/closest.polifill.js.map +1 -0
  302. package/dist/collection/utils/column.utils.js +153 -0
  303. package/dist/collection/utils/column.utils.js.map +1 -0
  304. package/dist/collection/utils/consts.js +26 -0
  305. package/dist/collection/utils/consts.js.map +1 -0
  306. package/dist/collection/utils/events.js +39 -0
  307. package/dist/collection/utils/events.js.map +1 -0
  308. package/dist/collection/utils/header.utils.js +24 -0
  309. package/dist/collection/utils/header.utils.js.map +1 -0
  310. package/dist/collection/utils/index.js +140 -0
  311. package/dist/collection/utils/index.js.map +1 -0
  312. package/dist/collection/utils/key.codes.js +80 -0
  313. package/dist/collection/utils/key.codes.js.map +1 -0
  314. package/dist/collection/utils/key.utils.js +90 -0
  315. package/dist/collection/utils/key.utils.js.map +1 -0
  316. package/dist/collection/utils/mobile.js +7 -0
  317. package/dist/collection/utils/mobile.js.map +1 -0
  318. package/dist/collection/utils/platform.js +9 -0
  319. package/dist/collection/utils/platform.js.map +1 -0
  320. package/dist/collection/utils/row-header-utils.js +9 -0
  321. package/dist/collection/utils/row-header-utils.js.map +1 -0
  322. package/dist/collection/utils/store.types.js +2 -0
  323. package/dist/collection/utils/store.types.js.map +1 -0
  324. package/dist/collection/utils/store.utils.js +15 -0
  325. package/dist/collection/utils/store.utils.js.map +1 -0
  326. package/dist/esm/app-globals-FBz64o-g.js +14 -0
  327. package/dist/esm/app-globals-FBz64o-g.js.map +1 -0
  328. package/dist/esm/cell-renderer-Ca_PCGjJ.js +98 -0
  329. package/dist/esm/cell-renderer-Ca_PCGjJ.js.map +1 -0
  330. package/dist/esm/column.drag.plugin-BtuUyB-2.js +2528 -0
  331. package/dist/esm/column.drag.plugin-BtuUyB-2.js.map +1 -0
  332. package/dist/esm/column.service-CTqFIQUy.js +1343 -0
  333. package/dist/esm/column.service-CTqFIQUy.js.map +1 -0
  334. package/dist/esm/data.store-B-lvmoFH.js +3553 -0
  335. package/dist/esm/data.store-B-lvmoFH.js.map +1 -0
  336. package/dist/esm/debounce-DTUQ1fY7.js +488 -0
  337. package/dist/esm/debounce-DTUQ1fY7.js.map +1 -0
  338. package/dist/esm/edit.utils-CyCANCLB.js +103 -0
  339. package/dist/esm/edit.utils-CyCANCLB.js.map +1 -0
  340. package/dist/esm/events-CKtYJJSv.js +43 -0
  341. package/dist/esm/events-CKtYJJSv.js.map +1 -0
  342. package/dist/esm/filter.button-CjABZQgg.js +39 -0
  343. package/dist/esm/filter.button-CjABZQgg.js.map +1 -0
  344. package/dist/esm/header-cell-renderer-DnjpJuXq.js +351 -0
  345. package/dist/esm/header-cell-renderer-DnjpJuXq.js.map +1 -0
  346. package/dist/esm/index-BAoInZ4V.js +2519 -0
  347. package/dist/esm/index-BAoInZ4V.js.map +1 -0
  348. package/dist/esm/index.js +181 -0
  349. package/dist/esm/index.js.map +1 -0
  350. package/dist/esm/loader.js +17 -0
  351. package/dist/esm/loader.js.map +1 -0
  352. package/dist/esm/revo-grid.entry.js +2185 -0
  353. package/dist/esm/revo-grid.entry.js.map +1 -0
  354. package/dist/esm/revo-grid.js +27 -0
  355. package/dist/esm/revo-grid.js.map +1 -0
  356. package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
  357. package/dist/esm/revogr-attribution_7.entry.js +1455 -0
  358. package/dist/esm/revogr-attribution_7.entry.js.map +1 -0
  359. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
  360. package/dist/esm/revogr-clipboard_3.entry.js +452 -0
  361. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  362. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
  363. package/dist/esm/revogr-data_4.entry.js +943 -0
  364. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  365. package/dist/esm/revogr-filter-panel.entry.js +380 -0
  366. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  367. package/dist/esm/row-header-utils-vnoLGj5A.js +407 -0
  368. package/dist/esm/row-header-utils-vnoLGj5A.js.map +1 -0
  369. package/dist/esm/text-editor-Cp7lwBZi.js +79 -0
  370. package/dist/esm/text-editor-Cp7lwBZi.js.map +1 -0
  371. package/dist/esm/throttle-DiUrHjcY.js +273 -0
  372. package/dist/esm/throttle-DiUrHjcY.js.map +1 -0
  373. package/dist/esm/viewport.helpers-Ch4AQMMg.js +53 -0
  374. package/dist/esm/viewport.helpers-Ch4AQMMg.js.map +1 -0
  375. package/dist/index.cjs.js +1 -0
  376. package/dist/index.d.ts +1 -0
  377. package/dist/index.js +1 -0
  378. package/dist/revo-grid/app-globals-FBz64o-g.js +14 -0
  379. package/dist/revo-grid/app-globals-FBz64o-g.js.map +1 -0
  380. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js +98 -0
  381. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js.map +1 -0
  382. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js +2528 -0
  383. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js.map +1 -0
  384. package/dist/revo-grid/column.service-CTqFIQUy.js +1343 -0
  385. package/dist/revo-grid/column.service-CTqFIQUy.js.map +1 -0
  386. package/dist/revo-grid/data.store-B-lvmoFH.js +3553 -0
  387. package/dist/revo-grid/data.store-B-lvmoFH.js.map +1 -0
  388. package/dist/revo-grid/debounce-DTUQ1fY7.js +488 -0
  389. package/dist/revo-grid/debounce-DTUQ1fY7.js.map +1 -0
  390. package/dist/revo-grid/edit.utils-CyCANCLB.js +103 -0
  391. package/dist/revo-grid/edit.utils-CyCANCLB.js.map +1 -0
  392. package/dist/revo-grid/events-CKtYJJSv.js +43 -0
  393. package/dist/revo-grid/events-CKtYJJSv.js.map +1 -0
  394. package/dist/revo-grid/filter.button-CjABZQgg.js +39 -0
  395. package/dist/revo-grid/filter.button-CjABZQgg.js.map +1 -0
  396. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js +351 -0
  397. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js.map +1 -0
  398. package/dist/revo-grid/index-BAoInZ4V.js +2490 -0
  399. package/dist/revo-grid/index-BAoInZ4V.js.map +1 -0
  400. package/dist/revo-grid/index.esm.js +181 -0
  401. package/dist/revo-grid/index.esm.js.map +1 -0
  402. package/dist/revo-grid/loader.esm.js.map +1 -0
  403. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
  404. package/dist/revo-grid/revo-grid.entry.js +2185 -0
  405. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  406. package/dist/revo-grid/revo-grid.esm.js +27 -0
  407. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  408. package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
  409. package/dist/revo-grid/revogr-attribution_7.entry.js +1455 -0
  410. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -0
  411. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
  412. package/dist/revo-grid/revogr-clipboard_3.entry.js +452 -0
  413. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  414. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
  415. package/dist/revo-grid/revogr-data_4.entry.js +943 -0
  416. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  417. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
  418. package/dist/revo-grid/revogr-filter-panel.entry.js +380 -0
  419. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  420. package/dist/revo-grid/row-header-utils-vnoLGj5A.js +407 -0
  421. package/dist/revo-grid/row-header-utils-vnoLGj5A.js.map +1 -0
  422. package/dist/revo-grid/text-editor-Cp7lwBZi.js +79 -0
  423. package/dist/revo-grid/text-editor-Cp7lwBZi.js.map +1 -0
  424. package/dist/revo-grid/throttle-DiUrHjcY.js +273 -0
  425. package/dist/revo-grid/throttle-DiUrHjcY.js.map +1 -0
  426. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js +53 -0
  427. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js.map +1 -0
  428. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  429. package/dist/types/components/clipboard/revogr-clipboard.d.ts +89 -0
  430. package/dist/types/components/data/cell-renderer.d.ts +12 -0
  431. package/dist/types/components/data/column.service.d.ts +61 -0
  432. package/dist/types/components/data/revogr-data.d.ts +107 -0
  433. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  434. package/dist/types/components/data/row-renderer.d.ts +12 -0
  435. package/dist/types/components/editors/edit.utils.d.ts +3 -0
  436. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  437. package/dist/types/components/editors/text-editor.d.ts +43 -0
  438. package/dist/types/components/extra/revogr-extra.d.ts +38 -0
  439. package/dist/types/components/header/header-cell-renderer.d.ts +9 -0
  440. package/dist/types/components/header/header-group-renderer.d.ts +15 -0
  441. package/dist/types/components/header/header-renderer.d.ts +16 -0
  442. package/dist/types/components/header/resizable.directive.d.ts +55 -0
  443. package/dist/types/components/header/resizable.element.d.ts +5 -0
  444. package/dist/types/components/header/revogr-header.d.ts +90 -0
  445. package/dist/types/components/order/order-renderer.d.ts +29 -0
  446. package/dist/types/components/order/order-row.service.d.ts +27 -0
  447. package/dist/types/components/order/revogr-order-editor.d.ts +56 -0
  448. package/dist/types/components/overlay/autofill.service.d.ts +80 -0
  449. package/dist/types/components/overlay/keyboard.service.d.ts +28 -0
  450. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +278 -0
  451. package/dist/types/components/overlay/selection.utils.d.ts +47 -0
  452. package/dist/types/components/revoGrid/grid.helpers.d.ts +17 -0
  453. package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
  454. package/dist/types/components/revoGrid/revo-grid.d.ts +686 -0
  455. package/dist/types/components/revoGrid/viewport.helpers.d.ts +39 -0
  456. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
  457. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -0
  458. package/dist/types/components/revoGrid/viewport.service.d.ts +59 -0
  459. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +51 -0
  460. package/dist/types/components/rowHeaders/row-header-render.d.ts +9 -0
  461. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +117 -0
  462. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  463. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +43 -0
  464. package/dist/types/components/selectionFocus/revogr-focus.d.ts +58 -0
  465. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +28 -0
  466. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  467. package/dist/types/components/vnode/vnode.utils.d.ts +9 -0
  468. package/dist/types/components.d.ts +2583 -0
  469. package/dist/types/global/global.d.ts +1 -0
  470. package/dist/types/index.d.ts +9 -0
  471. package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
  472. package/dist/types/plugins/base.plugin.d.ts +51 -0
  473. package/dist/types/plugins/column.auto-size.plugin.d.ts +55 -0
  474. package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
  475. package/dist/types/plugins/dispatcher.d.ts +20 -0
  476. package/dist/types/plugins/export/csv.d.ts +9 -0
  477. package/dist/types/plugins/export/export.plugin.d.ts +24 -0
  478. package/dist/types/plugins/export/types.d.ts +23 -0
  479. package/dist/types/plugins/filter/conditions/equal.d.ts +4 -0
  480. package/dist/types/plugins/filter/conditions/number/greaterThan.d.ts +3 -0
  481. package/dist/types/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +3 -0
  482. package/dist/types/plugins/filter/conditions/number/lessThan.d.ts +3 -0
  483. package/dist/types/plugins/filter/conditions/number/lessThanOrEqual.d.ts +3 -0
  484. package/dist/types/plugins/filter/conditions/set.d.ts +4 -0
  485. package/dist/types/plugins/filter/conditions/string/beginswith.d.ts +3 -0
  486. package/dist/types/plugins/filter/conditions/string/contains.d.ts +4 -0
  487. package/dist/types/plugins/filter/filter.button.d.ts +14 -0
  488. package/dist/types/plugins/filter/filter.indexed.d.ts +20 -0
  489. package/dist/types/plugins/filter/filter.panel.d.ts +53 -0
  490. package/dist/types/plugins/filter/filter.plugin.d.ts +73 -0
  491. package/dist/types/plugins/filter/filter.types.d.ts +129 -0
  492. package/dist/types/plugins/groupingRow/grouping.const.d.ts +12 -0
  493. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +15 -0
  494. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +39 -0
  495. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -0
  496. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +103 -0
  497. package/dist/types/plugins/groupingRow/grouping.service.d.ts +36 -0
  498. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +10 -0
  499. package/dist/types/plugins/index.d.ts +11 -0
  500. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +42 -0
  501. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  502. package/dist/types/plugins/rtl/rtl.plugin.d.ts +37 -0
  503. package/dist/types/plugins/sorting/sorting.func.d.ts +9 -0
  504. package/dist/types/plugins/sorting/sorting.plugin.d.ts +48 -0
  505. package/dist/types/plugins/sorting/sorting.sign.d.ts +6 -0
  506. package/dist/types/plugins/sorting/sorting.types.d.ts +14 -0
  507. package/dist/types/plugins/wcag/index.d.ts +26 -0
  508. package/dist/types/services/cell.helpers.d.ts +2 -0
  509. package/dist/types/services/column.data.provider.d.ts +27 -0
  510. package/dist/types/services/data.provider.d.ts +36 -0
  511. package/dist/types/services/dimension.provider.d.ts +66 -0
  512. package/dist/types/services/local.scroll.service.d.ts +36 -0
  513. package/dist/types/services/local.scroll.timer.d.ts +32 -0
  514. package/dist/types/services/selection.store.connector.d.ts +79 -0
  515. package/dist/types/services/viewport.provider.d.ts +7 -0
  516. package/dist/types/stencil-public-runtime.d.ts +1709 -0
  517. package/dist/types/store/dataSource/data.proxy.d.ts +14 -0
  518. package/dist/types/store/dataSource/data.store.d.ts +74 -0
  519. package/dist/types/store/dataSource/index.d.ts +3 -0
  520. package/dist/types/store/dataSource/trimmed.plugin.d.ts +12 -0
  521. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -0
  522. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
  523. package/dist/types/store/dimension/dimension.store.d.ts +21 -0
  524. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  525. package/dist/types/store/dimension/index.d.ts +2 -0
  526. package/dist/types/store/index.d.ts +8 -0
  527. package/dist/types/store/selection/index.d.ts +2 -0
  528. package/dist/types/store/selection/selection.helpers.d.ts +6 -0
  529. package/dist/types/store/selection/selection.store.d.ts +22 -0
  530. package/dist/types/store/vp/index.d.ts +7 -0
  531. package/dist/types/store/vp/viewport.helpers.d.ts +54 -0
  532. package/dist/types/store/vp/viewport.store.d.ts +26 -0
  533. package/dist/types/themeManager/theme.compact.d.ts +4 -0
  534. package/dist/types/themeManager/theme.default.d.ts +4 -0
  535. package/dist/types/themeManager/theme.material.d.ts +4 -0
  536. package/dist/types/themeManager/theme.service.d.ts +13 -0
  537. package/dist/types/types/dimension.d.ts +8 -0
  538. package/dist/types/types/events.d.ts +2 -0
  539. package/dist/types/types/index.d.ts +8 -0
  540. package/dist/types/types/interfaces.d.ts +768 -0
  541. package/dist/types/types/plugin.d.ts +9 -0
  542. package/dist/types/types/plugin.types.d.ts +48 -0
  543. package/dist/types/types/selection.d.ts +178 -0
  544. package/dist/types/types/theme.d.ts +7 -0
  545. package/dist/types/types/viewport.interfaces.d.ts +45 -0
  546. package/dist/types/utils/browser.d.ts +1 -0
  547. package/dist/types/utils/closest.polifill.d.ts +0 -0
  548. package/dist/types/utils/column.utils.d.ts +52 -0
  549. package/dist/types/utils/consts.d.ts +22 -0
  550. package/dist/types/utils/events.d.ts +5 -0
  551. package/dist/types/utils/header.utils.d.ts +2 -0
  552. package/dist/types/utils/index.d.ts +32 -0
  553. package/dist/types/utils/key.codes.d.ts +73 -0
  554. package/dist/types/utils/key.utils.d.ts +13 -0
  555. package/dist/types/utils/mobile.d.ts +1 -0
  556. package/dist/types/utils/platform.d.ts +4 -0
  557. package/dist/types/utils/row-header-utils.d.ts +2 -0
  558. package/dist/types/utils/store.types.d.ts +97 -0
  559. package/dist/types/utils/store.utils.d.ts +10 -0
  560. package/hydrate/index.d.ts +273 -0
  561. package/hydrate/index.js +33890 -0
  562. package/hydrate/index.mjs +33882 -0
  563. package/hydrate/package.json +12 -0
  564. package/loader/cdn.js +4 -0
  565. package/loader/index.cjs.js +4 -0
  566. package/loader/index.d.ts +24 -0
  567. package/loader/index.es2017.js +4 -0
  568. package/loader/index.js +5 -0
  569. package/package.json +101 -0
  570. package/react/dist/index.d.ts +6191 -0
  571. package/react/dist/react-datagrid.js +260 -0
  572. package/react/dist/react-datagrid.umd.cjs +272 -0
  573. package/standalone/column.service.js +1345 -0
  574. package/standalone/column.service.js.map +1 -0
  575. package/standalone/consts.js +30 -0
  576. package/standalone/consts.js.map +1 -0
  577. package/standalone/data.store.js +3099 -0
  578. package/standalone/data.store.js.map +1 -0
  579. package/standalone/debounce.js +215 -0
  580. package/standalone/debounce.js.map +1 -0
  581. package/standalone/dimension.helpers.js +229 -0
  582. package/standalone/dimension.helpers.js.map +1 -0
  583. package/standalone/filter.button.js +39 -0
  584. package/standalone/filter.button.js.map +1 -0
  585. package/standalone/index.d.ts +68 -0
  586. package/standalone/index.js +217 -0
  587. package/standalone/index.js.map +1 -0
  588. package/standalone/index2.js +140 -0
  589. package/standalone/index2.js.map +1 -0
  590. package/standalone/local.scroll.timer.js +207 -0
  591. package/standalone/local.scroll.timer.js.map +1 -0
  592. package/standalone/platform.js +90 -0
  593. package/standalone/platform.js.map +1 -0
  594. package/standalone/revo-grid.d.ts +11 -0
  595. package/standalone/revo-grid.js +4884 -0
  596. package/standalone/revo-grid.js.map +1 -0
  597. package/standalone/revogr-attribution.d.ts +11 -0
  598. package/standalone/revogr-attribution.js +12 -0
  599. package/standalone/revogr-attribution.js.map +1 -0
  600. package/standalone/revogr-attribution2.js +32 -0
  601. package/standalone/revogr-attribution2.js.map +1 -0
  602. package/standalone/revogr-clipboard.d.ts +11 -0
  603. package/standalone/revogr-clipboard.js +12 -0
  604. package/standalone/revogr-clipboard.js.map +1 -0
  605. package/standalone/revogr-clipboard2.js +164 -0
  606. package/standalone/revogr-clipboard2.js.map +1 -0
  607. package/standalone/revogr-data.d.ts +11 -0
  608. package/standalone/revogr-data.js +12 -0
  609. package/standalone/revogr-data.js.map +1 -0
  610. package/standalone/revogr-data2.js +378 -0
  611. package/standalone/revogr-data2.js.map +1 -0
  612. package/standalone/revogr-edit.d.ts +11 -0
  613. package/standalone/revogr-edit.js +12 -0
  614. package/standalone/revogr-edit.js.map +1 -0
  615. package/standalone/revogr-edit2.js +334 -0
  616. package/standalone/revogr-edit2.js.map +1 -0
  617. package/standalone/revogr-extra.d.ts +11 -0
  618. package/standalone/revogr-extra.js +12 -0
  619. package/standalone/revogr-extra.js.map +1 -0
  620. package/standalone/revogr-extra2.js +73 -0
  621. package/standalone/revogr-extra2.js.map +1 -0
  622. package/standalone/revogr-filter-panel.d.ts +11 -0
  623. package/standalone/revogr-filter-panel.js +411 -0
  624. package/standalone/revogr-filter-panel.js.map +1 -0
  625. package/standalone/revogr-focus.d.ts +11 -0
  626. package/standalone/revogr-focus.js +12 -0
  627. package/standalone/revogr-focus.js.map +1 -0
  628. package/standalone/revogr-focus2.js +112 -0
  629. package/standalone/revogr-focus2.js.map +1 -0
  630. package/standalone/revogr-header.d.ts +11 -0
  631. package/standalone/revogr-header.js +12 -0
  632. package/standalone/revogr-header.js.map +1 -0
  633. package/standalone/revogr-header2.js +707 -0
  634. package/standalone/revogr-header2.js.map +1 -0
  635. package/standalone/revogr-order-editor.d.ts +11 -0
  636. package/standalone/revogr-order-editor.js +12 -0
  637. package/standalone/revogr-order-editor.js.map +1 -0
  638. package/standalone/revogr-order-editor2.js +201 -0
  639. package/standalone/revogr-order-editor2.js.map +1 -0
  640. package/standalone/revogr-overlay-selection.d.ts +11 -0
  641. package/standalone/revogr-overlay-selection.js +12 -0
  642. package/standalone/revogr-overlay-selection.js.map +1 -0
  643. package/standalone/revogr-overlay-selection2.js +972 -0
  644. package/standalone/revogr-overlay-selection2.js.map +1 -0
  645. package/standalone/revogr-row-headers.d.ts +11 -0
  646. package/standalone/revogr-row-headers.js +12 -0
  647. package/standalone/revogr-row-headers.js.map +1 -0
  648. package/standalone/revogr-row-headers2.js +520 -0
  649. package/standalone/revogr-row-headers2.js.map +1 -0
  650. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  651. package/standalone/revogr-scroll-virtual.js +12 -0
  652. package/standalone/revogr-scroll-virtual.js.map +1 -0
  653. package/standalone/revogr-scroll-virtual2.js +184 -0
  654. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  655. package/standalone/revogr-temp-range.d.ts +11 -0
  656. package/standalone/revogr-temp-range.js +12 -0
  657. package/standalone/revogr-temp-range.js.map +1 -0
  658. package/standalone/revogr-temp-range2.js +93 -0
  659. package/standalone/revogr-temp-range2.js.map +1 -0
  660. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  661. package/standalone/revogr-viewport-scroll.js +12 -0
  662. package/standalone/revogr-viewport-scroll.js.map +1 -0
  663. package/standalone/revogr-viewport-scroll2.js +421 -0
  664. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  665. package/standalone/selection.utils.js +179 -0
  666. package/standalone/selection.utils.js.map +1 -0
  667. package/standalone/throttle.js +75 -0
  668. package/standalone/throttle.js.map +1 -0
  669. package/standalone/toNumber.js +282 -0
  670. package/standalone/toNumber.js.map +1 -0
  671. package/standalone/vnode-converter.js +46 -0
  672. package/standalone/vnode-converter.js.map +1 -0
  673. package/standalone/vnode-html.d.ts +11 -0
  674. package/standalone/vnode-html.js +12 -0
  675. package/standalone/vnode-html.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.row.types.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.row.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { VNode } from '@stencil/core';\r\nimport type {\r\n HyperFunc,\r\n ColumnProp,\r\n DimensionRows,\r\n DataType,\r\n Providers,\r\n VirtualPositionItem,\r\n PositionItem,\r\n DimensionCols,\r\n} from '@type';\r\nimport type { RowProps } from '../../components/data/row-renderer';\r\nimport { GROUP_EXPAND_EVENT } from './grouping.const';\r\n\r\n/**\r\n * Properties for the grouping row template\r\n */\r\ninterface GroupTemplateProp {\r\n /**\r\n * Name of the grouping row\r\n */\r\n name: string;\r\n /**\r\n * Index of the grouping row\r\n */\r\n itemIndex: number;\r\n /**\r\n * Expanded state of the grouping row\r\n */\r\n expanded: boolean;\r\n /**\r\n * Depth of the grouping row\r\n */\r\n depth: number;\r\n /**\r\n * Providers for the grid\r\n */\r\n providers: Providers;\r\n /**\r\n * Dimension type (e.g. rgCol, colPinStart, colPinEnd, rowHeaders)\r\n */\r\n colType: DimensionCols | 'rowHeaders';\r\n /**\r\n * Model of the grouping row\r\n */\r\n model?: DataType;\r\n}\r\n\r\nexport type RowGroupingProps = GroupRowPros & PositionItem & {\r\n /**\r\n * Visible columns in the grid, can be used to get the width of the column and position of the column\r\n * to calculate the position of the cells in the grouping row\r\n */\r\n columnItems: VirtualPositionItem[];\r\n};\r\nexport interface GroupRowPros extends RowProps {\r\n model: DataType;\r\n hasExpand: boolean;\r\n providers: Providers;\r\n groupingCustomRenderer?: GroupLabelTemplateFunc | null;\r\n}\r\n\r\nexport type GroupLabelTemplateFunc = (\r\n createElement: HyperFunc<VNode>,\r\n props: GroupTemplateProp & RowGroupingProps,\r\n ...args: any[]\r\n) => any;\r\n\r\nexport type GroupingOptions = {\r\n /**\r\n * Column props to which grouping will be applied\r\n */\r\n props?: ColumnProp[];\r\n\r\n /**\r\n * Should grouping be preserved on source update.\r\n * default: true\r\n */\r\n preserveGroupingOnUpdate?: boolean;\r\n /**\r\n * Custom group label template\r\n */\r\n groupLabelTemplate?: GroupLabelTemplateFunc;\r\n} & ExpandedOptions;\r\n\r\nexport type BeforeSourceSetEvent = {\r\n type: DimensionRows;\r\n source: DataType[];\r\n};\r\n\r\nexport type OnExpandEvent = {\r\n model: DataType;\r\n virtualIndex: number;\r\n};\r\n\r\nexport type ExpandedOptions = {\r\n /**\r\n * Currently expanded items. to set expanded: '{ 'a': true, 'a,b': true, 'a,b,c': true }'\r\n */\r\n prevExpanded?: Record<string, boolean>;\r\n\r\n /**\r\n * Is expanded by default\r\n */\r\n expandedAll?: boolean;\r\n\r\n /**\r\n * Custom group label value parser\r\n */\r\n getGroupValue?(item: DataType, prop: string | number): any;\r\n /**\r\n * Custom group label template\r\n */\r\n groupLabelTemplate?: GroupLabelTemplateFunc;\r\n};\r\n\r\ndeclare global {\r\n /**\r\n * grid.addEventListener(GROUP_EXPAND_EVENT, (e: OnExpandEvent) => {\r\n * console.log(e)\r\n * })\r\n */\r\n interface HTMLRevoGridElementEventMap {\r\n [GROUP_EXPAND_EVENT]: OnExpandEvent;\r\n }\r\n}"]}
@@ -0,0 +1,178 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { GROUP_DEPTH, GROUP_EXPANDED, PSEUDO_GROUP_COLUMN, PSEUDO_GROUP_ITEM, PSEUDO_GROUP_ITEM_ID, PSEUDO_GROUP_ITEM_VALUE, GROUP_ORIGINAL_INDEX, GROUP_COLUMN_PROP, } from "./grouping.const";
5
+ function getGroupValueDefault(item, prop) {
6
+ return item[prop] || null;
7
+ }
8
+ // get source based on proxy item collection to preserve rgRow order
9
+ export function getSource(source, items, withoutGrouping = false) {
10
+ let index = 0;
11
+ const result = {
12
+ source: [],
13
+ prevExpanded: {},
14
+ oldNewIndexes: {},
15
+ };
16
+ // order important here, expected parent is first, then others
17
+ items.forEach(i => {
18
+ const model = source[i];
19
+ if (!withoutGrouping) {
20
+ result.source.push(model);
21
+ return;
22
+ }
23
+ // grouping filter
24
+ if (isGrouping(model)) {
25
+ if (getExpanded(model)) {
26
+ result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;
27
+ }
28
+ }
29
+ else {
30
+ result.source.push(model);
31
+ result.oldNewIndexes[i] = index;
32
+ index++;
33
+ }
34
+ });
35
+ return result;
36
+ }
37
+ export function getExpanded(model = {}) {
38
+ return model[GROUP_EXPANDED];
39
+ }
40
+ function flattenGroupMaps({ groupedValues, parentIds, isExpanded, itemIndex, expandedAll, prevExpanded, columnProps, }) {
41
+ const depth = parentIds.length;
42
+ const sourceWithGroups = [];
43
+ // collapse all groups in the beginning
44
+ let trimmed = {};
45
+ // index mapping
46
+ let oldNewIndexMap = {};
47
+ groupedValues.forEach((innerGroupedValues, groupId) => {
48
+ const levelIds = [...parentIds, groupId];
49
+ const mergedIds = levelIds.join(',');
50
+ const isGroupExpanded = isExpanded && (!!expandedAll || !!prevExpanded[mergedIds]);
51
+ sourceWithGroups.push({
52
+ [PSEUDO_GROUP_ITEM]: groupId,
53
+ [GROUP_DEPTH]: depth,
54
+ [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),
55
+ [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,
56
+ [GROUP_EXPANDED]: isGroupExpanded,
57
+ [GROUP_COLUMN_PROP]: columnProps[depth],
58
+ [columnProps[depth]]: groupId,
59
+ });
60
+ itemIndex += 1;
61
+ // If parent group is collapsed, mark all items as hidden
62
+ if (!isExpanded && depth) {
63
+ trimmed[itemIndex] = true;
64
+ }
65
+ if (Array.isArray(innerGroupedValues)) {
66
+ // This branch handles leaf nodes (actual data items)
67
+ innerGroupedValues.forEach(value => {
68
+ itemIndex += 1;
69
+ if (!isGroupExpanded) {
70
+ trimmed[itemIndex] = true; // Mark items as hidden if group is collapsed
71
+ }
72
+ oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex; // Keep track of new positions
73
+ });
74
+ sourceWithGroups.push(...innerGroupedValues);
75
+ }
76
+ else {
77
+ // This branch handles nested groups (further subgroups)
78
+ const children = flattenGroupMaps({
79
+ groupedValues: innerGroupedValues,
80
+ parentIds: levelIds,
81
+ isExpanded: isGroupExpanded,
82
+ itemIndex,
83
+ expandedAll,
84
+ prevExpanded,
85
+ columnProps,
86
+ }); // Recursively process subgroups
87
+ sourceWithGroups.push(...children.source);
88
+ trimmed = Object.assign(Object.assign({}, children.trimmed), trimmed);
89
+ oldNewIndexMap = Object.assign(Object.assign({}, children.oldNewIndexMap), oldNewIndexMap);
90
+ itemIndex = children.itemIndex;
91
+ }
92
+ });
93
+ return {
94
+ source: sourceWithGroups,
95
+ oldNewIndexMap,
96
+ trimmed,
97
+ itemIndex,
98
+ };
99
+ }
100
+ /**
101
+ * Gather data for grouping
102
+ * @param array - flat data array
103
+ * @param columnProps - ids of groups
104
+ * @param expanded - potentially expanded items if present
105
+ */
106
+ export function gatherGrouping(array, columnProps, { prevExpanded = {}, expandedAll = false, getGroupValue = getGroupValueDefault, }) {
107
+ const groupedItems = new Map();
108
+ array.forEach((item, originalIndex) => {
109
+ const groupLevelValues = columnProps.map(groupId => getGroupValue(item, groupId));
110
+ const lastLevelValue = groupLevelValues.pop();
111
+ let currentGroupLevel = groupedItems;
112
+ groupLevelValues.forEach(value => {
113
+ if (!currentGroupLevel.has(value)) {
114
+ currentGroupLevel.set(value, new Map());
115
+ }
116
+ currentGroupLevel = currentGroupLevel.get(value);
117
+ });
118
+ if (!currentGroupLevel.has(lastLevelValue)) {
119
+ const groupItems = [];
120
+ currentGroupLevel.set(lastLevelValue, groupItems);
121
+ }
122
+ const lastLevelItems = currentGroupLevel.get(lastLevelValue);
123
+ lastLevelItems.push(Object.assign(Object.assign({}, item), { [GROUP_ORIGINAL_INDEX]: originalIndex }));
124
+ });
125
+ const groupingDepth = columnProps.length;
126
+ const { source: sourceWithGroups, trimmed, oldNewIndexMap } = flattenGroupMaps({
127
+ groupedValues: groupedItems,
128
+ parentIds: [],
129
+ isExpanded: true,
130
+ itemIndex: -1,
131
+ expandedAll,
132
+ prevExpanded,
133
+ columnProps
134
+ });
135
+ return {
136
+ sourceWithGroups, // updates source mirror
137
+ depth: groupingDepth, // largest depth for grouping
138
+ trimmed, // used for expand/collapse grouping values
139
+ oldNewIndexMap, // used for mapping old values to new
140
+ };
141
+ }
142
+ export function getGroupingName(rgRow) {
143
+ return rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM];
144
+ }
145
+ export function isGrouping(rgRow) {
146
+ return typeof (rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM]) !== 'undefined';
147
+ }
148
+ export function isGroupingColumn(column) {
149
+ return typeof (column === null || column === void 0 ? void 0 : column[PSEUDO_GROUP_COLUMN]) !== 'undefined';
150
+ }
151
+ export function measureEqualDepth(groupA, groupB) {
152
+ const ln = groupA.length;
153
+ let i = 0;
154
+ for (; i < ln; i++) {
155
+ if (groupA[i] !== groupB[i]) {
156
+ return i;
157
+ }
158
+ }
159
+ return i;
160
+ }
161
+ export function getParsedGroup(id) {
162
+ const parseGroup = JSON.parse(id);
163
+ // extra precaution and type safeguard
164
+ if (!Array.isArray(parseGroup)) {
165
+ return null;
166
+ }
167
+ return parseGroup;
168
+ }
169
+ // check if items is child of current clicked group
170
+ export function isSameGroup(currentGroup, currentModel, nextModel) {
171
+ const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);
172
+ if (!nextGroup) {
173
+ return false;
174
+ }
175
+ const depth = measureEqualDepth(currentGroup, nextGroup);
176
+ return currentModel[GROUP_DEPTH] < depth;
177
+ }
178
+ //# sourceMappingURL=grouping.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.service.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataType, ColumnProp, ColumnRegular } from '@type';\r\nimport {\r\n GROUP_DEPTH,\r\n GROUP_EXPANDED,\r\n PSEUDO_GROUP_COLUMN,\r\n PSEUDO_GROUP_ITEM,\r\n PSEUDO_GROUP_ITEM_ID,\r\n PSEUDO_GROUP_ITEM_VALUE,\r\n GROUP_ORIGINAL_INDEX,\r\n GROUP_COLUMN_PROP,\r\n} from './grouping.const';\r\nimport type { ExpandedOptions } from './grouping.row.types';\r\n\r\ntype GroupedData = Map<string, GroupedData | DataType[]>;\r\ntype SourceGather = {\r\n source: DataType[];\r\n prevExpanded: Record<string, boolean>;\r\n oldNewIndexes?: Record<number, number>;\r\n};\r\n\r\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\r\n return item[prop] || null;\r\n}\r\n\r\n// get source based on proxy item collection to preserve rgRow order\r\nexport function getSource(\r\n source: DataType[],\r\n items: number[],\r\n withoutGrouping = false,\r\n) {\r\n let index = 0;\r\n const result: Required<SourceGather> = {\r\n source: [],\r\n prevExpanded: {},\r\n oldNewIndexes: {},\r\n };\r\n // order important here, expected parent is first, then others\r\n items.forEach(i => {\r\n const model = source[i];\r\n if (!withoutGrouping) {\r\n result.source.push(model);\r\n return;\r\n }\r\n\r\n // grouping filter\r\n if (isGrouping(model)) {\r\n if (getExpanded(model)) {\r\n result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;\r\n }\r\n } else {\r\n result.source.push(model);\r\n result.oldNewIndexes[i] = index;\r\n index++;\r\n }\r\n });\r\n return result;\r\n}\r\n\r\nexport function getExpanded(model: DataType = {}) {\r\n return model[GROUP_EXPANDED];\r\n}\r\n\r\nfunction flattenGroupMaps({\r\n groupedValues,\r\n parentIds,\r\n isExpanded,\r\n itemIndex,\r\n expandedAll,\r\n prevExpanded,\r\n columnProps,\r\n}: {\r\n groupedValues: GroupedData;\r\n parentIds: string[];\r\n isExpanded: boolean;\r\n itemIndex: number;\r\n expandedAll: boolean;\r\n prevExpanded: Record<string, boolean>;\r\n columnProps: ColumnProp[];\r\n}) {\r\n const depth = parentIds.length;\r\n const sourceWithGroups: DataType[] = [];\r\n // collapse all groups in the beginning\r\n let trimmed: Record<number, boolean> = {};\r\n\r\n // index mapping\r\n let oldNewIndexMap: Record<number, number> = {};\r\n\r\n groupedValues.forEach((innerGroupedValues, groupId) => {\r\n const levelIds = [...parentIds, groupId];\r\n const mergedIds = levelIds.join(',');\r\n const isGroupExpanded =\r\n isExpanded && (!!expandedAll || !!prevExpanded[mergedIds]);\r\n sourceWithGroups.push({\r\n [PSEUDO_GROUP_ITEM]: groupId,\r\n [GROUP_DEPTH]: depth,\r\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\r\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\r\n [GROUP_EXPANDED]: isGroupExpanded,\r\n [GROUP_COLUMN_PROP]: columnProps[depth],\r\n [columnProps[depth]]: groupId,\r\n });\r\n itemIndex += 1;\r\n // If parent group is collapsed, mark all items as hidden\r\n if (!isExpanded && depth) {\r\n trimmed[itemIndex] = true;\r\n }\r\n if (Array.isArray(innerGroupedValues)) {\r\n // This branch handles leaf nodes (actual data items)\r\n innerGroupedValues.forEach(value => {\r\n itemIndex += 1;\r\n if (!isGroupExpanded) {\r\n trimmed[itemIndex] = true; // Mark items as hidden if group is collapsed\r\n }\r\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex; // Keep track of new positions\r\n });\r\n sourceWithGroups.push(...innerGroupedValues);\r\n } else {\r\n // This branch handles nested groups (further subgroups)\r\n const children = flattenGroupMaps({\r\n groupedValues: innerGroupedValues,\r\n parentIds: levelIds,\r\n isExpanded: isGroupExpanded,\r\n itemIndex,\r\n expandedAll,\r\n prevExpanded,\r\n columnProps,\r\n }); // Recursively process subgroups\r\n sourceWithGroups.push(...children.source);\r\n trimmed = { ...children.trimmed, ...trimmed };\r\n oldNewIndexMap = { ...children.oldNewIndexMap, ...oldNewIndexMap };\r\n itemIndex = children.itemIndex;\r\n }\r\n });\r\n return {\r\n source: sourceWithGroups,\r\n oldNewIndexMap,\r\n trimmed,\r\n itemIndex,\r\n };\r\n}\r\n\r\n/**\r\n * Gather data for grouping\r\n * @param array - flat data array\r\n * @param columnProps - ids of groups\r\n * @param expanded - potentially expanded items if present\r\n */\r\nexport function gatherGrouping(\r\n array: DataType[],\r\n columnProps: ColumnProp[],\r\n {\r\n prevExpanded = {},\r\n expandedAll = false,\r\n getGroupValue = getGroupValueDefault,\r\n }: ExpandedOptions,\r\n) {\r\n const groupedItems: GroupedData = new Map();\r\n \r\n array.forEach((item, originalIndex) => {\r\n const groupLevelValues = columnProps.map(groupId => getGroupValue(item, groupId));\r\n const lastLevelValue = groupLevelValues.pop();\r\n let currentGroupLevel = groupedItems;\r\n groupLevelValues.forEach(value => {\r\n if (!currentGroupLevel.has(value)) {\r\n currentGroupLevel.set(value, new Map());\r\n }\r\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\r\n });\r\n if (!currentGroupLevel.has(lastLevelValue)) {\r\n const groupItems: DataType[] = [];\r\n currentGroupLevel.set(lastLevelValue, groupItems);\r\n }\r\n const lastLevelItems = currentGroupLevel.get(lastLevelValue) as DataType[];\r\n lastLevelItems.push({\r\n ...item,\r\n [GROUP_ORIGINAL_INDEX]: originalIndex,\r\n });\r\n });\r\n\r\n const groupingDepth = columnProps.length;\r\n\r\n const { source: sourceWithGroups, trimmed, oldNewIndexMap } = flattenGroupMaps({\r\n groupedValues: groupedItems,\r\n parentIds: [],\r\n isExpanded: true,\r\n itemIndex: -1,\r\n expandedAll,\r\n prevExpanded,\r\n columnProps\r\n });\r\n\r\n return {\r\n sourceWithGroups, // updates source mirror\r\n depth: groupingDepth, // largest depth for grouping\r\n trimmed, // used for expand/collapse grouping values\r\n oldNewIndexMap, // used for mapping old values to new\r\n };\r\n}\r\n\r\nexport function getGroupingName(rgRow?: DataType) {\r\n return rgRow?.[PSEUDO_GROUP_ITEM];\r\n}\r\n\r\ntype GroupingItem = {\r\n [PSEUDO_GROUP_ITEM]: string;\r\n [GROUP_EXPANDED]: boolean;\r\n [PSEUDO_GROUP_ITEM_VALUE]: string;\r\n [GROUP_DEPTH]: number;\r\n [GROUP_COLUMN_PROP]: ColumnProp;\r\n};\r\n\r\nexport function isGrouping(rgRow?: DataType): rgRow is GroupingItem {\r\n return typeof rgRow?.[PSEUDO_GROUP_ITEM] !== 'undefined';\r\n}\r\n\r\nexport function isGroupingColumn(column?: ColumnRegular) {\r\n return typeof column?.[PSEUDO_GROUP_COLUMN] !== 'undefined';\r\n}\r\n\r\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\r\n const ln = groupA.length;\r\n let i = 0;\r\n for (; i < ln; i++) {\r\n if (groupA[i] !== groupB[i]) {\r\n return i;\r\n }\r\n }\r\n return i;\r\n}\r\n\r\nexport function getParsedGroup(id: string) {\r\n const parseGroup = JSON.parse(id);\r\n // extra precaution and type safeguard\r\n if (!Array.isArray(parseGroup)) {\r\n return null;\r\n }\r\n return parseGroup;\r\n}\r\n\r\n// check if items is child of current clicked group\r\nexport function isSameGroup(\r\n currentGroup: any[],\r\n currentModel: DataType,\r\n nextModel: DataType,\r\n) {\r\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\r\n if (!nextGroup) {\r\n return false;\r\n }\r\n\r\n const depth = measureEqualDepth(currentGroup, nextGroup);\r\n return currentModel[GROUP_DEPTH] < depth;\r\n}\r\n"]}
@@ -0,0 +1,61 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { gatherTrimmedItems } from "../../store/index";
5
+ export const TRIMMED_GROUPING = 'grouping';
6
+ /**
7
+ * Prepare trimming updated indexes for grouping
8
+ * @param initiallyTrimed
9
+ * @param firstLevelMap
10
+ * @param secondLevelMap
11
+ */
12
+ export function processDoubleConversionTrimmed(initiallyTrimed, firstLevelMap, secondLevelMap) {
13
+ const trimemedOptionsToUpgrade = {};
14
+ /**
15
+ * go through all groups except grouping
16
+ */
17
+ for (let type in initiallyTrimed) {
18
+ if (type === TRIMMED_GROUPING) {
19
+ continue;
20
+ }
21
+ const items = initiallyTrimed[type];
22
+ const newItems = {};
23
+ for (let initialIndex in items) {
24
+ /**
25
+ * if item exists we find it in collection
26
+ * we support 2 level of conversions
27
+ */
28
+ let newConversionIndex = firstLevelMap[initialIndex];
29
+ if (secondLevelMap) {
30
+ newConversionIndex = secondLevelMap[newConversionIndex];
31
+ }
32
+ /**
33
+ * if item was trimmed previously
34
+ * trimming makes sense to apply
35
+ */
36
+ if (items[initialIndex]) {
37
+ newItems[newConversionIndex] = true;
38
+ /**
39
+ * If changes present apply changes to new source
40
+ */
41
+ if (newConversionIndex !== parseInt(initialIndex, 10)) {
42
+ trimemedOptionsToUpgrade[type] = newItems;
43
+ }
44
+ }
45
+ }
46
+ }
47
+ return trimemedOptionsToUpgrade;
48
+ }
49
+ export function filterOutEmptyGroups(allTrimmedGroups, childrenByGroup = {}) {
50
+ const trimmedGroup = {};
51
+ const allTrimmed = gatherTrimmedItems(allTrimmedGroups);
52
+ // find is groups are filled
53
+ for (let groupIndex in childrenByGroup) {
54
+ const hasChidlren = childrenByGroup[groupIndex].filter(childIndex => !allTrimmed[childIndex]).length > 0;
55
+ if (!hasChidlren) {
56
+ trimmedGroup[groupIndex] = true;
57
+ }
58
+ }
59
+ return trimmedGroup;
60
+ }
61
+ //# sourceMappingURL=grouping.trimmed.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.trimmed.service.js","sourceRoot":"","sources":["../../../src/plugins/groupingRow/grouping.trimmed.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,QAAQ,CAAC;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,eAAwB,EAAE,aAAqC,EAAE,cAAuC;IACrJ,MAAM,wBAAwB,GAAY,EAAE,CAAC;IAC7C;;OAEG;IACH,KAAK,IAAI,IAAI,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;YAC/B;;;eAGG;YACH,IAAI,kBAAkB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,kBAAkB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAC1D,CAAC;YAED;;;eAGG;YACH,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;gBACpC;;mBAEG;gBACH,IAAI,kBAAkB,KAAK,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC;oBACtD,wBAAwB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,gBAAyB,EAAE,kBAA4C,EAAE;IAC5G,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACxD,4BAA4B;IAC5B,KAAK,IAAI,UAAU,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACzG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { gatherTrimmedItems, Trimmed, TrimmedEntity } from '@store';\r\n\r\nexport const TRIMMED_GROUPING = 'grouping';\r\n\r\n/**\r\n * Prepare trimming updated indexes for grouping\r\n * @param initiallyTrimed\r\n * @param firstLevelMap\r\n * @param secondLevelMap\r\n */\r\nexport function processDoubleConversionTrimmed(initiallyTrimed: Trimmed, firstLevelMap: Record<number, number>, secondLevelMap?: Record<number, number>) {\r\n const trimemedOptionsToUpgrade: Trimmed = {};\r\n /**\r\n * go through all groups except grouping\r\n */\r\n for (let type in initiallyTrimed) {\r\n if (type === TRIMMED_GROUPING) {\r\n continue;\r\n }\r\n const items = initiallyTrimed[type];\r\n const newItems: TrimmedEntity = {};\r\n\r\n for (let initialIndex in items) {\r\n /**\r\n * if item exists we find it in collection\r\n * we support 2 level of conversions\r\n */\r\n let newConversionIndex = firstLevelMap[initialIndex];\r\n if (secondLevelMap) {\r\n newConversionIndex = secondLevelMap[newConversionIndex];\r\n }\r\n\r\n /**\r\n * if item was trimmed previously\r\n * trimming makes sense to apply\r\n */\r\n if (items[initialIndex]) {\r\n newItems[newConversionIndex] = true;\r\n /**\r\n * If changes present apply changes to new source\r\n */\r\n if (newConversionIndex !== parseInt(initialIndex, 10)) {\r\n trimemedOptionsToUpgrade[type] = newItems;\r\n }\r\n }\r\n }\r\n }\r\n return trimemedOptionsToUpgrade;\r\n}\r\n\r\nexport function filterOutEmptyGroups(allTrimmedGroups: Trimmed, childrenByGroup: Record<number, number[]> = {}) {\r\n const trimmedGroup: TrimmedEntity = {};\r\n const allTrimmed = gatherTrimmedItems(allTrimmedGroups);\r\n // find is groups are filled\r\n for (let groupIndex in childrenByGroup) {\r\n const hasChidlren = childrenByGroup[groupIndex].filter(childIndex => !allTrimmed[childIndex]).length > 0;\r\n if (!hasChidlren) {\r\n trimmedGroup[groupIndex] = true;\r\n }\r\n }\r\n return trimmedGroup;\r\n}\r\n"]}
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ export * from './base.plugin';
5
+ export * from './column.auto-size.plugin';
6
+ export * from './column.stretch.plugin';
7
+ export * from './dispatcher';
8
+ export * from './export/export.plugin';
9
+ export * from './filter/filter.plugin';
10
+ export * from './groupingRow/grouping.row.plugin';
11
+ export * from './moveColumn/column.drag.plugin';
12
+ export * from './sorting/sorting.plugin';
13
+ export * from './sorting/sorting.sign';
14
+ export * from './add-rows-on-paste.plugin';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './base.plugin';\r\nexport * from './column.auto-size.plugin';\r\nexport * from './column.stretch.plugin';\r\nexport * from './dispatcher';\r\nexport * from './export/export.plugin';\r\nexport * from './filter/filter.plugin';\r\nexport * from './groupingRow/grouping.row.plugin';\r\nexport * from './moveColumn/column.drag.plugin';\r\nexport * from './sorting/sorting.plugin';\r\nexport * from './sorting/sorting.sign';\r\nexport * from './add-rows-on-paste.plugin';\r\n"]}
@@ -0,0 +1,175 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ /**
5
+ * Plugin for column manual move
6
+ */
7
+ import debounce from "lodash/debounce";
8
+ import each from "lodash/each";
9
+ import { getItemByPosition } from "../../store/index";
10
+ import { BasePlugin } from "../base.plugin";
11
+ import { ColumnOrderHandler } from "./order-column.handler";
12
+ import { dispatch } from "../dispatcher";
13
+ import { ON_COLUMN_CLICK } from "../../components/header/header-cell-renderer";
14
+ import { isColGrouping } from "../../utils/column.utils";
15
+ const COLUMN_CLICK = ON_COLUMN_CLICK;
16
+ const MOVE = 'columndragmousemove';
17
+ const DRAG_END = 'columndragend';
18
+ const BEFORE_DRAG_END = 'beforecolumndragend';
19
+ // use this event subscription to drop D&D for particular columns
20
+ const DRAG_START = 'columndragstart';
21
+ export class ColumnMovePlugin extends BasePlugin {
22
+ constructor(revogrid, providers) {
23
+ super(revogrid, providers);
24
+ this.revogrid = revogrid;
25
+ this.providers = providers;
26
+ this.moveFunc = debounce((e) => this.doMove(e), 5);
27
+ this.staticDragData = null;
28
+ this.dragData = null;
29
+ this.localSubscriptions = {};
30
+ this.orderUi = new ColumnOrderHandler();
31
+ revogrid.appendChild(this.orderUi.render());
32
+ revogrid.classList.add('column-draggable');
33
+ // Register events
34
+ this.localSubscriptions['mouseleave'] = {
35
+ target: document,
36
+ callback: (e) => this.onMouseOut(e),
37
+ };
38
+ this.localSubscriptions['mouseup'] = {
39
+ target: document,
40
+ callback: (e) => this.onMouseUp(e),
41
+ };
42
+ this.localSubscriptions['mousemove'] = {
43
+ target: document,
44
+ callback: (e) => this.move(e),
45
+ };
46
+ this.addEventListener(COLUMN_CLICK, ({ detail }) => this.dragStart(detail));
47
+ }
48
+ dragStart({ event, data }) {
49
+ if (event.defaultPrevented) {
50
+ return;
51
+ }
52
+ const { defaultPrevented } = dispatch(this.revogrid, DRAG_START, data);
53
+ // check if allowed to drag particulat column
54
+ if (defaultPrevented) {
55
+ return;
56
+ }
57
+ this.clearOrder();
58
+ const { mouseleave, mouseup, mousemove } = this.localSubscriptions;
59
+ mouseleave.target.addEventListener('mouseleave', mouseleave.callback);
60
+ mouseup.target.addEventListener('mouseup', mouseup.callback);
61
+ const dataEl = event.target.closest('revogr-header');
62
+ const scrollEl = event.target.closest('revogr-viewport-scroll');
63
+ if (!dataEl || !scrollEl) {
64
+ return;
65
+ }
66
+ // no grouping drag and no row header column drag
67
+ if (isColGrouping(data) || data.providers.type === 'rowHeaders') {
68
+ return;
69
+ }
70
+ const cols = this.getDimension(data.pin || 'rgCol');
71
+ const gridRect = this.revogrid.getBoundingClientRect();
72
+ const elRect = dataEl.getBoundingClientRect();
73
+ const startItem = getItemByPosition(cols, getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left));
74
+ this.staticDragData = {
75
+ startPos: event.x,
76
+ startItem,
77
+ data,
78
+ dataEl,
79
+ scrollEl,
80
+ gridEl: this.revogrid,
81
+ cols,
82
+ };
83
+ this.dragData = this.getData(this.staticDragData);
84
+ mousemove.target.addEventListener('mousemove', mousemove.callback);
85
+ this.orderUi.start(event, Object.assign(Object.assign({}, this.dragData), this.staticDragData));
86
+ }
87
+ doMove(e) {
88
+ if (!this.staticDragData) {
89
+ return;
90
+ }
91
+ const dragData = (this.dragData = this.getData(this.staticDragData));
92
+ if (!dragData) {
93
+ return;
94
+ }
95
+ const start = this.staticDragData.startPos;
96
+ if (Math.abs(start - e.x) > 10) {
97
+ const x = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);
98
+ const rgCol = getItemByPosition(this.staticDragData.cols, x);
99
+ this.orderUi.autoscroll(x, dragData.elRect.width);
100
+ // prevent position change if out of bounds
101
+ if (rgCol.itemIndex >= this.staticDragData.cols.count) {
102
+ return;
103
+ }
104
+ this.orderUi.showHandler(rgCol.start + dragData.scrollOffset, dragData.gridRect.width, Math.abs(rgCol.end - rgCol.start));
105
+ }
106
+ }
107
+ move(e) {
108
+ dispatch(this.revogrid, MOVE, e);
109
+ // then do move
110
+ this.moveFunc(e);
111
+ }
112
+ onMouseOut(_) {
113
+ this.clearOrder();
114
+ }
115
+ onMouseUp(e) {
116
+ // apply new positions
117
+ if (this.dragData && this.staticDragData) {
118
+ let relativePos = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);
119
+ if (relativePos < 0) {
120
+ relativePos = 0;
121
+ }
122
+ const newPosition = getItemByPosition(this.staticDragData.cols, relativePos);
123
+ const store = this.providers.column.stores[this.dragData.type].store;
124
+ const newItems = [...store.get('items')];
125
+ const allColumns = store.get('source');
126
+ const onDropColumn = allColumns[newPosition.itemIndex];
127
+ // prevent position change if needed
128
+ const { defaultPrevented: stopDrag } = dispatch(this.revogrid, BEFORE_DRAG_END, Object.assign(Object.assign({}, this.staticDragData), { startPosition: this.staticDragData.startItem, newPosition, newItem: store.get('source')[newItems[this.staticDragData.startItem.itemIndex]] }));
129
+ if (!stopDrag && onDropColumn && onDropColumn.draggable !== false) {
130
+ const prevItems = [...newItems];
131
+ // todo: if move item out of group remove item from group
132
+ const toMove = newItems.splice(this.staticDragData.startItem.itemIndex, 1);
133
+ newItems.splice(newPosition.itemIndex, 0, ...toMove);
134
+ store.set('items', newItems);
135
+ this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type, newItems, prevItems);
136
+ }
137
+ dispatch(this.revogrid, DRAG_END, this.dragData);
138
+ }
139
+ this.clearOrder();
140
+ }
141
+ clearLocalSubscriptions() {
142
+ each(this.localSubscriptions, ({ target, callback }, key) => target.removeEventListener(key, callback));
143
+ }
144
+ clearOrder() {
145
+ this.staticDragData = null;
146
+ this.dragData = null;
147
+ this.clearLocalSubscriptions();
148
+ this.orderUi.stop(this.revogrid);
149
+ }
150
+ /**
151
+ * Clearing subscription
152
+ */
153
+ clearSubscriptions() {
154
+ super.clearSubscriptions();
155
+ this.clearLocalSubscriptions();
156
+ }
157
+ getData({ gridEl, dataEl, data }) {
158
+ const gridRect = gridEl.getBoundingClientRect();
159
+ const elRect = dataEl.getBoundingClientRect();
160
+ const scrollOffset = elRect.left - gridRect.left;
161
+ return {
162
+ elRect,
163
+ gridRect,
164
+ type: data.pin || 'rgCol',
165
+ scrollOffset,
166
+ };
167
+ }
168
+ getDimension(type) {
169
+ return this.providers.dimension.stores[type].getCurrentState();
170
+ }
171
+ }
172
+ export function getLeftRelative(absoluteX, gridPos, offset) {
173
+ return absoluteX - gridPos - offset;
174
+ }
175
+ //# sourceMappingURL=column.drag.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.drag.plugin.js","sourceRoot":"","sources":["../../../src/plugins/moveColumn/column.drag.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Plugin for column manual move\r\n */\r\nimport debounce from 'lodash/debounce';\r\nimport each from 'lodash/each';\r\nimport { getItemByPosition } from '@store';\r\nimport { BasePlugin } from '../base.plugin';\r\nimport { ColumnOrderHandler } from './order-column.handler';\r\nimport { dispatch } from '../dispatcher';\r\nimport type {\r\n ColumnPropProp,\r\n ColumnTemplateProp,\r\n DimensionSettingsState,\r\n PositionItem,\r\n DimensionCols,\r\n MultiDimensionType,\r\n PluginProviders,\r\n} from '@type';\r\nimport { ON_COLUMN_CLICK } from '../../components/header/header-cell-renderer';\r\nimport { isColGrouping } from '../../utils/column.utils';\r\n\r\nconst COLUMN_CLICK = ON_COLUMN_CLICK;\r\nconst MOVE = 'columndragmousemove';\r\nconst DRAG_END = 'columndragend';\r\nconst BEFORE_DRAG_END = 'beforecolumndragend';\r\n\r\n// use this event subscription to drop D&D for particular columns\r\nconst DRAG_START = 'columndragstart';\r\n\r\nexport type DragStartEventDetails = {\r\n event: MouseEvent;\r\n data: ColumnPropProp;\r\n};\r\n\r\ntype StaticData = {\r\n startPos: number;\r\n startItem: PositionItem;\r\n data: ColumnTemplateProp;\r\n dataEl: HTMLElement;\r\n scrollEl: Element;\r\n gridEl: HTMLElement;\r\n cols: DimensionSettingsState;\r\n};\r\n\r\ntype LocalSubscriptions = Record<string, LocalSubscription>;\r\ntype LocalSubscription = {\r\n target: Element | Document;\r\n callback(...params: any[]): void;\r\n};\r\nexport type ColumnDragEventData = {\r\n elRect: DOMRect;\r\n gridRect: DOMRect;\r\n scrollOffset: number;\r\n type: DimensionCols;\r\n};\r\nexport class ColumnMovePlugin extends BasePlugin {\r\n private moveFunc = debounce((e: MouseEvent) => this.doMove(e), 5);\r\n private staticDragData: StaticData | null = null;\r\n private dragData: ColumnDragEventData | null = null;\r\n private readonly orderUi: ColumnOrderHandler;\r\n protected readonly localSubscriptions: LocalSubscriptions = {};\r\n constructor(\r\n public revogrid: HTMLRevoGridElement,\r\n public providers: PluginProviders,\r\n ) {\r\n super(revogrid, providers);\r\n this.orderUi = new ColumnOrderHandler();\r\n revogrid.appendChild(this.orderUi.render());\r\n revogrid.classList.add('column-draggable');\r\n\r\n // Register events\r\n this.localSubscriptions['mouseleave'] = {\r\n target: document,\r\n callback: (e: MouseEvent) => this.onMouseOut(e),\r\n };\r\n this.localSubscriptions['mouseup'] = {\r\n target: document,\r\n callback: (e: MouseEvent) => this.onMouseUp(e),\r\n };\r\n\r\n this.localSubscriptions['mousemove'] = {\r\n target: document,\r\n callback: (e: MouseEvent) => this.move(e),\r\n };\r\n\r\n this.addEventListener(COLUMN_CLICK, ({ detail }) => this.dragStart(detail));\r\n }\r\n\r\n dragStart({ event, data }: DragStartEventDetails) {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n const { defaultPrevented } = dispatch(this.revogrid, DRAG_START, data);\r\n // check if allowed to drag particulat column\r\n if (defaultPrevented) {\r\n return;\r\n }\r\n this.clearOrder();\r\n const { mouseleave, mouseup, mousemove } = this.localSubscriptions;\r\n mouseleave.target.addEventListener('mouseleave', mouseleave.callback);\r\n mouseup.target.addEventListener('mouseup', mouseup.callback);\r\n\r\n const dataEl = (event.target as HTMLElement).closest('revogr-header');\r\n const scrollEl = (event.target as HTMLElement).closest(\r\n 'revogr-viewport-scroll',\r\n );\r\n if (!dataEl || !scrollEl) {\r\n return;\r\n }\r\n\r\n // no grouping drag and no row header column drag\r\n if (isColGrouping(data) || data.providers.type === 'rowHeaders') {\r\n return;\r\n }\r\n\r\n const cols = this.getDimension(data.pin || 'rgCol');\r\n const gridRect = this.revogrid.getBoundingClientRect();\r\n const elRect = dataEl.getBoundingClientRect();\r\n const startItem = getItemByPosition(\r\n cols,\r\n getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left),\r\n );\r\n\r\n this.staticDragData = {\r\n startPos: event.x,\r\n startItem,\r\n data,\r\n dataEl,\r\n scrollEl,\r\n gridEl: this.revogrid,\r\n cols,\r\n };\r\n this.dragData = this.getData(this.staticDragData);\r\n mousemove.target.addEventListener('mousemove', mousemove.callback);\r\n this.orderUi.start(event, {\r\n ...this.dragData,\r\n ...this.staticDragData,\r\n });\r\n }\r\n\r\n doMove(e: MouseEvent) {\r\n if (!this.staticDragData) {\r\n return;\r\n }\r\n\r\n const dragData = (this.dragData = this.getData(this.staticDragData));\r\n if (!dragData) {\r\n return;\r\n }\r\n const start = this.staticDragData.startPos;\r\n if (Math.abs(start - e.x) > 10) {\r\n const x = getLeftRelative(\r\n e.x,\r\n this.dragData.gridRect.left,\r\n this.dragData.scrollOffset,\r\n );\r\n const rgCol = getItemByPosition(this.staticDragData.cols, x);\r\n this.orderUi.autoscroll(x, dragData.elRect.width);\r\n\r\n // prevent position change if out of bounds\r\n if (rgCol.itemIndex >= this.staticDragData.cols.count) {\r\n return;\r\n }\r\n this.orderUi.showHandler(\r\n rgCol.start + dragData.scrollOffset,\r\n dragData.gridRect.width,\r\n Math.abs(rgCol.end - rgCol.start),\r\n );\r\n }\r\n }\r\n\r\n move(e: MouseEvent) {\r\n dispatch(this.revogrid, MOVE, e);\r\n // then do move\r\n this.moveFunc(e);\r\n }\r\n onMouseOut(_: MouseEvent) {\r\n this.clearOrder();\r\n }\r\n onMouseUp(e: MouseEvent) {\r\n // apply new positions\r\n if (this.dragData && this.staticDragData) {\r\n let relativePos = getLeftRelative(\r\n e.x,\r\n this.dragData.gridRect.left,\r\n this.dragData.scrollOffset,\r\n );\r\n if (relativePos < 0) {\r\n relativePos = 0;\r\n }\r\n const newPosition = getItemByPosition(\r\n this.staticDragData.cols,\r\n relativePos,\r\n );\r\n\r\n const store = this.providers.column.stores[this.dragData.type].store;\r\n const newItems = [...store.get('items')];\r\n const allColumns = store.get('source');\r\n const onDropColumn = allColumns[newPosition.itemIndex];\r\n\r\n // prevent position change if needed\r\n const { defaultPrevented: stopDrag } = dispatch(\r\n this.revogrid,\r\n BEFORE_DRAG_END,\r\n {\r\n ...this.staticDragData,\r\n startPosition: this.staticDragData.startItem,\r\n newPosition,\r\n newItem:\r\n store.get('source')[\r\n newItems[this.staticDragData.startItem.itemIndex]\r\n ],\r\n },\r\n );\r\n if (!stopDrag && onDropColumn && onDropColumn.draggable !== false) {\r\n const prevItems = [...newItems];\r\n // todo: if move item out of group remove item from group\r\n const toMove = newItems.splice(\r\n this.staticDragData.startItem.itemIndex,\r\n 1,\r\n );\r\n newItems.splice(newPosition.itemIndex, 0, ...toMove);\r\n store.set('items', newItems);\r\n this.providers.dimension.updateSizesPositionByNewDataIndexes(\r\n this.dragData.type,\r\n newItems,\r\n prevItems,\r\n );\r\n }\r\n dispatch(this.revogrid, DRAG_END, this.dragData);\r\n }\r\n this.clearOrder();\r\n }\r\n\r\n private clearLocalSubscriptions() {\r\n each(this.localSubscriptions, ({ target, callback }, key) =>\r\n target.removeEventListener(key, callback),\r\n );\r\n }\r\n\r\n clearOrder() {\r\n this.staticDragData = null;\r\n this.dragData = null;\r\n this.clearLocalSubscriptions();\r\n this.orderUi.stop(this.revogrid);\r\n }\r\n /**\r\n * Clearing subscription\r\n */\r\n clearSubscriptions() {\r\n super.clearSubscriptions();\r\n this.clearLocalSubscriptions();\r\n }\r\n\r\n private getData({ gridEl, dataEl, data }: StaticData): ColumnDragEventData {\r\n const gridRect = gridEl.getBoundingClientRect();\r\n const elRect = dataEl.getBoundingClientRect();\r\n const scrollOffset = elRect.left - gridRect.left;\r\n return {\r\n elRect,\r\n gridRect,\r\n type: data.pin || 'rgCol',\r\n scrollOffset,\r\n };\r\n }\r\n private getDimension(type: MultiDimensionType) {\r\n return this.providers.dimension.stores[type].getCurrentState();\r\n }\r\n}\r\n\r\nexport function getLeftRelative(\r\n absoluteX: number,\r\n gridPos: number,\r\n offset: number,\r\n): number {\r\n return absoluteX - gridPos - offset;\r\n}\r\n"]}
@@ -0,0 +1,71 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ const COLUMN_DRAG_CLASS = 'column-drag-start';
5
+ export class ColumnOrderHandler {
6
+ constructor() {
7
+ this.offset = 0;
8
+ }
9
+ renderAutoscroll(_, parent) {
10
+ if (!parent) {
11
+ return;
12
+ }
13
+ this.autoscrollEl = document.createElement('div');
14
+ this.autoscrollEl.classList.add('drag-auto-scroll-y');
15
+ parent.appendChild(this.autoscrollEl);
16
+ }
17
+ autoscroll(pos, dataContainerSize, direction = 'translateX') {
18
+ if (!this.autoscrollEl) {
19
+ return;
20
+ }
21
+ const helperOffset = 10;
22
+ // calculate current y position inside of the grid active holder
23
+ // 3 - size of element + border
24
+ const maxScroll = Math.min(pos + helperOffset, dataContainerSize - 3);
25
+ this.autoscrollEl.style.transform = `${direction}(${maxScroll}px)`;
26
+ this.autoscrollEl.scrollIntoView({
27
+ block: 'nearest',
28
+ inline: 'nearest',
29
+ });
30
+ }
31
+ start(e, { dataEl, gridRect, scrollEl, gridEl, }, dir = 'left') {
32
+ gridEl.classList.add(COLUMN_DRAG_CLASS);
33
+ const scrollContainerRect = scrollEl.getBoundingClientRect();
34
+ if (scrollContainerRect) {
35
+ this.offset = scrollContainerRect[dir] - gridRect[dir];
36
+ }
37
+ this.renderAutoscroll(e, dataEl);
38
+ }
39
+ stop(gridEl) {
40
+ var _a;
41
+ gridEl.classList.remove(COLUMN_DRAG_CLASS);
42
+ if (this.element) {
43
+ this.element.hidden = true;
44
+ }
45
+ this.offset = 0;
46
+ (_a = this.autoscrollEl) === null || _a === void 0 ? void 0 : _a.remove();
47
+ this.autoscrollEl = undefined;
48
+ }
49
+ showHandler(pos, size, columnWidth, direction = 'translateX') {
50
+ if (!this.element) {
51
+ return;
52
+ }
53
+ // do not allow overcross top of the scrollable area, header excluded
54
+ if (this.offset) {
55
+ pos = Math.max(pos, this.offset);
56
+ }
57
+ // can not be bigger then grid end
58
+ pos = Math.min(pos, size);
59
+ this.element.style.transform = `${direction}(${pos}px)`;
60
+ this.element.style.width = `${columnWidth}px`;
61
+ this.element.style.opacity = `10%`;
62
+ this.element.hidden = false;
63
+ }
64
+ render() {
65
+ const el = (this.element = document.createElement('div'));
66
+ el.classList.add('drag-position-y');
67
+ el.hidden = true;
68
+ return el;
69
+ }
70
+ }
71
+ //# sourceMappingURL=order-column.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-column.handler.js","sourceRoot":"","sources":["../../../src/plugins/moveColumn/order-column.handler.tsx"],"names":[],"mappings":"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","sourcesContent":["const COLUMN_DRAG_CLASS = 'column-drag-start';\r\n\r\nexport class ColumnOrderHandler {\r\n private element?: HTMLDivElement;\r\n private autoscrollEl?: HTMLElement;\r\n private offset = 0;\r\n\r\n renderAutoscroll(_: MouseEvent, parent: HTMLElement | null) {\r\n if (!parent) {\r\n return;\r\n }\r\n this.autoscrollEl = document.createElement('div');\r\n this.autoscrollEl.classList.add('drag-auto-scroll-y');\r\n parent.appendChild(this.autoscrollEl);\r\n }\r\n\r\n autoscroll(pos: number, dataContainerSize: number, direction = 'translateX') {\r\n if (!this.autoscrollEl) {\r\n return;\r\n }\r\n const helperOffset = 10;\r\n // calculate current y position inside of the grid active holder\r\n // 3 - size of element + border\r\n const maxScroll = Math.min(pos + helperOffset, dataContainerSize - 3);\r\n\r\n this.autoscrollEl.style.transform = `${direction}(${maxScroll}px)`;\r\n this.autoscrollEl.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n\r\n start(\r\n e: MouseEvent,\r\n {\r\n dataEl,\r\n gridRect,\r\n scrollEl,\r\n gridEl,\r\n }: {\r\n dataEl: HTMLElement;\r\n gridRect: DOMRect;\r\n scrollEl: Element;\r\n gridEl: Element;\r\n },\r\n dir: 'top' | 'left' = 'left',\r\n ) {\r\n gridEl.classList.add(COLUMN_DRAG_CLASS);\r\n const scrollContainerRect = scrollEl.getBoundingClientRect();\r\n if (scrollContainerRect) {\r\n this.offset = scrollContainerRect[dir] - gridRect[dir];\r\n }\r\n this.renderAutoscroll(e, dataEl);\r\n }\r\n\r\n stop(gridEl: Element) {\r\n gridEl.classList.remove(COLUMN_DRAG_CLASS);\r\n if (this.element) {\r\n this.element.hidden = true;\r\n }\r\n this.offset = 0;\r\n this.autoscrollEl?.remove();\r\n this.autoscrollEl = undefined;\r\n }\r\n\r\n showHandler(\r\n pos: number,\r\n size: number,\r\n columnWidth: number,\r\n direction = 'translateX',\r\n ) {\r\n if (!this.element) {\r\n return;\r\n }\r\n // do not allow overcross top of the scrollable area, header excluded\r\n if (this.offset) {\r\n pos = Math.max(pos, this.offset);\r\n }\r\n // can not be bigger then grid end\r\n pos = Math.min(pos, size);\r\n this.element.style.transform = `${direction}(${pos}px)`;\r\n this.element.style.width = `${columnWidth}px`;\r\n this.element.style.opacity = `10%`;\r\n this.element.hidden = false;\r\n }\r\n\r\n render() {\r\n const el = (this.element = document.createElement('div'));\r\n el.classList.add('drag-position-y');\r\n el.hidden = true;\r\n return el;\r\n }\r\n}\r\n"]}