balala-revogrid 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 (760) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/app-globals-D67EXhgK.js +16 -0
  3. package/dist/cjs/app-globals-D67EXhgK.js.map +1 -0
  4. package/dist/cjs/cell-renderer-B87qecTb.js +57 -0
  5. package/dist/cjs/cell-renderer-B87qecTb.js.map +1 -0
  6. package/dist/cjs/debounce-CcpHiH2p.js +498 -0
  7. package/dist/cjs/debounce-CcpHiH2p.js.map +1 -0
  8. package/dist/cjs/dimension.helpers-DA9-xqPT.js +3606 -0
  9. package/dist/cjs/dimension.helpers-DA9-xqPT.js.map +1 -0
  10. package/dist/cjs/edit.utils-CKsIiHlD.js +113 -0
  11. package/dist/cjs/edit.utils-CKsIiHlD.js.map +1 -0
  12. package/dist/cjs/events-DeLDyZlb.js +46 -0
  13. package/dist/cjs/events-DeLDyZlb.js.map +1 -0
  14. package/dist/cjs/filter.button-DSsWNs23.js +49 -0
  15. package/dist/cjs/filter.button-DSsWNs23.js.map +1 -0
  16. package/dist/cjs/grouping.row.renderer-BqR0ytMi.js +64 -0
  17. package/dist/cjs/grouping.row.renderer-BqR0ytMi.js.map +1 -0
  18. package/dist/cjs/header-cell-renderer-D-RjAVfe.js +1766 -0
  19. package/dist/cjs/header-cell-renderer-D-RjAVfe.js.map +1 -0
  20. package/dist/cjs/index-BF1c1pO3.js +2549 -0
  21. package/dist/cjs/index-BF1c1pO3.js.map +1 -0
  22. package/dist/cjs/index.cjs.js +6426 -0
  23. package/dist/cjs/index.cjs.js.map +1 -0
  24. package/dist/cjs/loader.cjs.js +19 -0
  25. package/dist/cjs/loader.cjs.js.map +1 -0
  26. package/dist/cjs/revo-grid.cjs.entry.js +3215 -0
  27. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  28. package/dist/cjs/revo-grid.cjs.js +31 -0
  29. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  30. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
  31. package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
  32. package/dist/cjs/revogr-attribution_9.cjs.entry.js +2629 -0
  33. package/dist/cjs/revogr-attribution_9.cjs.entry.js.map +1 -0
  34. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
  35. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +471 -0
  36. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  37. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
  38. package/dist/cjs/revogr-data_4.cjs.entry.js +1420 -0
  39. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  40. package/dist/cjs/revogr-filter-panel.cjs.entry.js +382 -0
  41. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  42. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
  43. package/dist/cjs/row-renderer-BTE7VKD9.js +49 -0
  44. package/dist/cjs/row-renderer-BTE7VKD9.js.map +1 -0
  45. package/dist/cjs/text-editor-BdhmcrkS.js +81 -0
  46. package/dist/cjs/text-editor-BdhmcrkS.js.map +1 -0
  47. package/dist/cjs/throttle-2ZxfGjEI.js +533 -0
  48. package/dist/cjs/throttle-2ZxfGjEI.js.map +1 -0
  49. package/dist/cjs/tree-data.plugin-BRjwZtxI.js +5350 -0
  50. package/dist/cjs/tree-data.plugin-BRjwZtxI.js.map +1 -0
  51. package/dist/cjs/viewport.helpers-BAovztDd.js +61 -0
  52. package/dist/cjs/viewport.helpers-BAovztDd.js.map +1 -0
  53. package/dist/cjs/viewport.store-BTbPlyF-.js +525 -0
  54. package/dist/cjs/viewport.store-BTbPlyF-.js.map +1 -0
  55. package/dist/collection/collection-manifest.json +30 -0
  56. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  57. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  58. package/dist/collection/components/clipboard/revogr-clipboard.js +411 -0
  59. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  60. package/dist/collection/components/data/cell-renderer.js +44 -0
  61. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  62. package/dist/collection/components/data/column.service.js +333 -0
  63. package/dist/collection/components/data/column.service.js.map +1 -0
  64. package/dist/collection/components/data/revogr-data-style.css +95 -0
  65. package/dist/collection/components/data/revogr-data.js +939 -0
  66. package/dist/collection/components/data/revogr-data.js.map +1 -0
  67. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  68. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  69. package/dist/collection/components/data/row-renderer.js +37 -0
  70. package/dist/collection/components/data/row-renderer.js.map +1 -0
  71. package/dist/collection/components/editors/edit.utils.js +13 -0
  72. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  73. package/dist/collection/components/editors/revogr-edit-style.css +16 -0
  74. package/dist/collection/components/editors/revogr-edit.js +346 -0
  75. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  76. package/dist/collection/components/editors/text-editor.js +74 -0
  77. package/dist/collection/components/editors/text-editor.js.map +1 -0
  78. package/dist/collection/components/extra/revogr-extra.js +125 -0
  79. package/dist/collection/components/extra/revogr-extra.js.map +1 -0
  80. package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.css +62 -0
  81. package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.js +644 -0
  82. package/dist/collection/components/grouping-overlay/revogr-grouping-overlay.js.map +1 -0
  83. package/dist/collection/components/header/header-cell-renderer.js +49 -0
  84. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  85. package/dist/collection/components/header/header-group-renderer.js +29 -0
  86. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  87. package/dist/collection/components/header/header-renderer.js +100 -0
  88. package/dist/collection/components/header/header-renderer.js.map +1 -0
  89. package/dist/collection/components/header/resizable.directive.js +274 -0
  90. package/dist/collection/components/header/resizable.directive.js.map +1 -0
  91. package/dist/collection/components/header/resizable.element.js +36 -0
  92. package/dist/collection/components/header/resizable.element.js.map +1 -0
  93. package/dist/collection/components/header/revogr-header-style.css +164 -0
  94. package/dist/collection/components/header/revogr-header-unified-style.css +205 -0
  95. package/dist/collection/components/header/revogr-header-unified.js +1013 -0
  96. package/dist/collection/components/header/revogr-header-unified.js.map +1 -0
  97. package/dist/collection/components/header/revogr-header.js +852 -0
  98. package/dist/collection/components/header/revogr-header.js.map +1 -0
  99. package/dist/collection/components/order/order-renderer.js +50 -0
  100. package/dist/collection/components/order/order-renderer.js.map +1 -0
  101. package/dist/collection/components/order/order-row.service.js +72 -0
  102. package/dist/collection/components/order/order-row.service.js.map +1 -0
  103. package/dist/collection/components/order/revogr-order-editor.js +461 -0
  104. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  105. package/dist/collection/components/overlay/autofill.service.js +221 -0
  106. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  107. package/dist/collection/components/overlay/keyboard.service.js +178 -0
  108. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  109. package/dist/collection/components/overlay/revogr-overlay-selection.js +1606 -0
  110. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  111. package/dist/collection/components/overlay/revogr-overlay-style.css +95 -0
  112. package/dist/collection/components/overlay/selection.utils.js +136 -0
  113. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  114. package/dist/collection/components/revoGrid/grid.helpers.js +33 -0
  115. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  116. package/dist/collection/components/revoGrid/plugin.service.js +81 -0
  117. package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
  118. package/dist/collection/components/revoGrid/revo-grid-style.css +897 -0
  119. package/dist/collection/components/revoGrid/revo-grid.js +4717 -0
  120. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  121. package/dist/collection/components/revoGrid/viewport.helpers.js +51 -0
  122. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  123. package/dist/collection/components/revoGrid/viewport.resize.service.js +55 -0
  124. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  125. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +139 -0
  126. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  127. package/dist/collection/components/revoGrid/viewport.service.js +253 -0
  128. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  129. package/dist/collection/components/rowHeaders/revogr-row-headers.js +291 -0
  130. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  131. package/dist/collection/components/rowHeaders/row-header-render.js +5 -0
  132. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  133. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +70 -0
  134. package/dist/collection/components/scroll/revogr-viewport-scroll.js +938 -0
  135. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  136. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  137. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  138. package/dist/collection/components/scrollable/revogr-scroll-style.css +34 -0
  139. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +346 -0
  140. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  141. package/dist/collection/components/selectionFocus/revogr-focus-style.css +7 -0
  142. package/dist/collection/components/selectionFocus/revogr-focus.js +429 -0
  143. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  144. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +28 -0
  145. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +171 -0
  146. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  147. package/dist/collection/components/vnode/vnode-converter.js +84 -0
  148. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  149. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  150. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  151. package/dist/collection/global/global.js +19 -0
  152. package/dist/collection/global/global.js.map +1 -0
  153. package/dist/collection/index.js +13 -0
  154. package/dist/collection/index.js.map +1 -0
  155. package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
  156. package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
  157. package/dist/collection/plugins/base.plugin.js +90 -0
  158. package/dist/collection/plugins/base.plugin.js.map +1 -0
  159. package/dist/collection/plugins/column-hide.plugin.js +532 -0
  160. package/dist/collection/plugins/column-hide.plugin.js.map +1 -0
  161. package/dist/collection/plugins/column-manage.plugin.js +1218 -0
  162. package/dist/collection/plugins/column-manage.plugin.js.map +1 -0
  163. package/dist/collection/plugins/column-stretch.plugin.js +921 -0
  164. package/dist/collection/plugins/column-stretch.plugin.js.map +1 -0
  165. package/dist/collection/plugins/column.auto-size.plugin.js +308 -0
  166. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  167. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  168. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  169. package/dist/collection/plugins/customColumnDrag/column-move.helper.js +361 -0
  170. package/dist/collection/plugins/customColumnDrag/column-move.helper.js.map +1 -0
  171. package/dist/collection/plugins/customColumnDrag/custom-column-drag.plugin.js +145 -0
  172. package/dist/collection/plugins/customColumnDrag/custom-column-drag.plugin.js.map +1 -0
  173. package/dist/collection/plugins/customColumnDrag/drag.handler.js +726 -0
  174. package/dist/collection/plugins/customColumnDrag/drag.handler.js.map +1 -0
  175. package/dist/collection/plugins/customColumnDrag/example.js +282 -0
  176. package/dist/collection/plugins/customColumnDrag/example.js.map +1 -0
  177. package/dist/collection/plugins/customColumnDrag/index.js +8 -0
  178. package/dist/collection/plugins/customColumnDrag/index.js.map +1 -0
  179. package/dist/collection/plugins/customColumnDrag/types.js +2 -0
  180. package/dist/collection/plugins/customColumnDrag/types.js.map +1 -0
  181. package/dist/collection/plugins/dispatcher.js +40 -0
  182. package/dist/collection/plugins/dispatcher.js.map +1 -0
  183. package/dist/collection/plugins/enhanced-scrollbar.plugin.js +493 -0
  184. package/dist/collection/plugins/enhanced-scrollbar.plugin.js.map +1 -0
  185. package/dist/collection/plugins/export/csv.js +72 -0
  186. package/dist/collection/plugins/export/csv.js.map +1 -0
  187. package/dist/collection/plugins/export/export.plugin.js +157 -0
  188. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  189. package/dist/collection/plugins/export/types.js +2 -0
  190. package/dist/collection/plugins/export/types.js.map +1 -0
  191. package/dist/collection/plugins/filter/conditions/equal.js +21 -0
  192. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  193. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +14 -0
  194. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  195. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +11 -0
  196. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  197. package/dist/collection/plugins/filter/conditions/number/lessThan.js +16 -0
  198. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  199. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +11 -0
  200. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  201. package/dist/collection/plugins/filter/conditions/set.js +7 -0
  202. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  203. package/dist/collection/plugins/filter/conditions/string/beginswith.js +21 -0
  204. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  205. package/dist/collection/plugins/filter/conditions/string/contains.js +25 -0
  206. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  207. package/dist/collection/plugins/filter/filter.button.js +28 -0
  208. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  209. package/dist/collection/plugins/filter/filter.indexed.js +49 -0
  210. package/dist/collection/plugins/filter/filter.indexed.js.map +1 -0
  211. package/dist/collection/plugins/filter/filter.panel.js +610 -0
  212. package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
  213. package/dist/collection/plugins/filter/filter.plugin.js +388 -0
  214. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  215. package/dist/collection/plugins/filter/filter.style.css +165 -0
  216. package/dist/collection/plugins/filter/filter.types.js +9 -0
  217. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  218. package/dist/collection/plugins/grid-setup.js +131 -0
  219. package/dist/collection/plugins/grid-setup.js.map +1 -0
  220. package/dist/collection/plugins/groupingRow/grouping.const.js +18 -0
  221. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  222. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +122 -0
  223. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  224. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +252 -0
  225. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  226. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +49 -0
  227. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  228. package/dist/collection/plugins/groupingRow/grouping.row.types.js +2 -0
  229. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  230. package/dist/collection/plugins/groupingRow/grouping.service.js +215 -0
  231. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  232. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +61 -0
  233. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  234. package/dist/collection/plugins/index.js +26 -0
  235. package/dist/collection/plugins/index.js.map +1 -0
  236. package/dist/collection/plugins/manual-focus.plugin.js +353 -0
  237. package/dist/collection/plugins/manual-focus.plugin.js.map +1 -0
  238. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +171 -0
  239. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  240. package/dist/collection/plugins/moveColumn/order-column.handler.js +69 -0
  241. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  242. package/dist/collection/plugins/pin-shadow.plugin.js +487 -0
  243. package/dist/collection/plugins/pin-shadow.plugin.js.map +1 -0
  244. package/dist/collection/plugins/resize-indicator.plugin.js +430 -0
  245. package/dist/collection/plugins/resize-indicator.plugin.js.map +1 -0
  246. package/dist/collection/plugins/row-select-plugin-2026228.js +1803 -0
  247. package/dist/collection/plugins/row-select-plugin-2026228.js.map +1 -0
  248. package/dist/collection/plugins/row-select.plugin.js +2096 -0
  249. package/dist/collection/plugins/row-select.plugin.js.map +1 -0
  250. package/dist/collection/plugins/rtl/rtl.plugin.js +110 -0
  251. package/dist/collection/plugins/rtl/rtl.plugin.js.map +1 -0
  252. package/dist/collection/plugins/sorting/sorting.func.js +82 -0
  253. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
  254. package/dist/collection/plugins/sorting/sorting.plugin.js +224 -0
  255. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  256. package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
  257. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  258. package/dist/collection/plugins/sorting/sorting.types.js +2 -0
  259. package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
  260. package/dist/collection/plugins/tree-data.plugin.js +447 -0
  261. package/dist/collection/plugins/tree-data.plugin.js.map +1 -0
  262. package/dist/collection/plugins/wcag/index.js +84 -0
  263. package/dist/collection/plugins/wcag/index.js.map +1 -0
  264. package/dist/collection/serve/controller.js +344 -0
  265. package/dist/collection/serve/data.js +201 -0
  266. package/dist/collection/serve/realData.js +4148 -0
  267. package/dist/collection/services/cell.helpers.js +12 -0
  268. package/dist/collection/services/cell.helpers.js.map +1 -0
  269. package/dist/collection/services/column.data.provider.js +122 -0
  270. package/dist/collection/services/column.data.provider.js.map +1 -0
  271. package/dist/collection/services/data.provider.js +89 -0
  272. package/dist/collection/services/data.provider.js.map +1 -0
  273. package/dist/collection/services/dimension.provider.js +257 -0
  274. package/dist/collection/services/dimension.provider.js.map +1 -0
  275. package/dist/collection/services/local.scroll.service.js +136 -0
  276. package/dist/collection/services/local.scroll.service.js.map +1 -0
  277. package/dist/collection/services/local.scroll.timer.js +84 -0
  278. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  279. package/dist/collection/services/selection.store.connector.js +274 -0
  280. package/dist/collection/services/selection.store.connector.js.map +1 -0
  281. package/dist/collection/services/viewport.provider.js +17 -0
  282. package/dist/collection/services/viewport.provider.js.map +1 -0
  283. package/dist/collection/store/dataSource/data.proxy.js +45 -0
  284. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  285. package/dist/collection/store/dataSource/data.store.js +146 -0
  286. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  287. package/dist/collection/store/dataSource/index.js +7 -0
  288. package/dist/collection/store/dataSource/index.js.map +1 -0
  289. package/dist/collection/store/dataSource/trimmed.plugin.js +34 -0
  290. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  291. package/dist/collection/store/dimension/dimension.helpers.js +101 -0
  292. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  293. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +29 -0
  294. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  295. package/dist/collection/store/dimension/dimension.store.js +124 -0
  296. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  297. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  298. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  299. package/dist/collection/store/dimension/index.js +6 -0
  300. package/dist/collection/store/dimension/index.js.map +1 -0
  301. package/dist/collection/store/index.js +17 -0
  302. package/dist/collection/store/index.js.map +1 -0
  303. package/dist/collection/store/selection/index.js +6 -0
  304. package/dist/collection/store/selection/index.js.map +1 -0
  305. package/dist/collection/store/selection/selection.helpers.js +49 -0
  306. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  307. package/dist/collection/store/selection/selection.store.js +85 -0
  308. package/dist/collection/store/selection/selection.store.js.map +1 -0
  309. package/dist/collection/store/vp/index.js +6 -0
  310. package/dist/collection/store/vp/index.js.map +1 -0
  311. package/dist/collection/store/vp/viewport.helpers.js +251 -0
  312. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  313. package/dist/collection/store/vp/viewport.store.js +256 -0
  314. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  315. package/dist/collection/themeManager/theme.compact.js +9 -0
  316. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  317. package/dist/collection/themeManager/theme.default.js +9 -0
  318. package/dist/collection/themeManager/theme.default.js.map +1 -0
  319. package/dist/collection/themeManager/theme.material.js +9 -0
  320. package/dist/collection/themeManager/theme.material.js.map +1 -0
  321. package/dist/collection/themeManager/theme.service.js +53 -0
  322. package/dist/collection/themeManager/theme.service.js.map +1 -0
  323. package/dist/collection/types/dimension.js +2 -0
  324. package/dist/collection/types/dimension.js.map +1 -0
  325. package/dist/collection/types/events.js +124 -0
  326. package/dist/collection/types/events.js.map +1 -0
  327. package/dist/collection/types/index.js +12 -0
  328. package/dist/collection/types/index.js.map +1 -0
  329. package/dist/collection/types/interfaces.js +6 -0
  330. package/dist/collection/types/interfaces.js.map +1 -0
  331. package/dist/collection/types/plugin.js +2 -0
  332. package/dist/collection/types/plugin.js.map +1 -0
  333. package/dist/collection/types/plugin.types.js +2 -0
  334. package/dist/collection/types/plugin.types.js.map +1 -0
  335. package/dist/collection/types/selection.js +2 -0
  336. package/dist/collection/types/selection.js.map +1 -0
  337. package/dist/collection/types/theme.js +2 -0
  338. package/dist/collection/types/theme.js.map +1 -0
  339. package/dist/collection/types/viewport.interfaces.js +2 -0
  340. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  341. package/dist/collection/utils/batchGroupCollapse.js +190 -0
  342. package/dist/collection/utils/batchGroupCollapse.js.map +1 -0
  343. package/dist/collection/utils/browser.js +7 -0
  344. package/dist/collection/utils/browser.js.map +1 -0
  345. package/dist/collection/utils/cell-template-helper.js +181 -0
  346. package/dist/collection/utils/cell-template-helper.js.map +1 -0
  347. package/dist/collection/utils/closest.polifill.js +22 -0
  348. package/dist/collection/utils/closest.polifill.js.map +1 -0
  349. package/dist/collection/utils/column.utils.js +448 -0
  350. package/dist/collection/utils/column.utils.js.map +1 -0
  351. package/dist/collection/utils/consts.js +26 -0
  352. package/dist/collection/utils/consts.js.map +1 -0
  353. package/dist/collection/utils/events.js +39 -0
  354. package/dist/collection/utils/events.js.map +1 -0
  355. package/dist/collection/utils/header.utils.js +24 -0
  356. package/dist/collection/utils/header.utils.js.map +1 -0
  357. package/dist/collection/utils/index.js +133 -0
  358. package/dist/collection/utils/index.js.map +1 -0
  359. package/dist/collection/utils/key.codes.js +80 -0
  360. package/dist/collection/utils/key.codes.js.map +1 -0
  361. package/dist/collection/utils/key.utils.js +86 -0
  362. package/dist/collection/utils/key.utils.js.map +1 -0
  363. package/dist/collection/utils/mobile.js +7 -0
  364. package/dist/collection/utils/mobile.js.map +1 -0
  365. package/dist/collection/utils/platform.js +9 -0
  366. package/dist/collection/utils/platform.js.map +1 -0
  367. package/dist/collection/utils/row-header-utils.js +9 -0
  368. package/dist/collection/utils/row-header-utils.js.map +1 -0
  369. package/dist/collection/utils/store.types.js +2 -0
  370. package/dist/collection/utils/store.types.js.map +1 -0
  371. package/dist/collection/utils/store.utils.js +15 -0
  372. package/dist/collection/utils/store.utils.js.map +1 -0
  373. package/dist/esm/app-globals-C3ZHKjnB.js +14 -0
  374. package/dist/esm/app-globals-C3ZHKjnB.js.map +1 -0
  375. package/dist/esm/cell-renderer-C2Td6LKY.js +54 -0
  376. package/dist/esm/cell-renderer-C2Td6LKY.js.map +1 -0
  377. package/dist/esm/debounce-BfO9dz9v.js +488 -0
  378. package/dist/esm/debounce-BfO9dz9v.js.map +1 -0
  379. package/dist/esm/dimension.helpers-DDil7Dg0.js +3546 -0
  380. package/dist/esm/dimension.helpers-DDil7Dg0.js.map +1 -0
  381. package/dist/esm/edit.utils-ClxXX_x9.js +99 -0
  382. package/dist/esm/edit.utils-ClxXX_x9.js.map +1 -0
  383. package/dist/esm/events-BvSmBueA.js +43 -0
  384. package/dist/esm/events-BvSmBueA.js.map +1 -0
  385. package/dist/esm/filter.button-DmOE7VCJ.js +39 -0
  386. package/dist/esm/filter.button-DmOE7VCJ.js.map +1 -0
  387. package/dist/esm/grouping.row.renderer-6NYszUJA.js +60 -0
  388. package/dist/esm/grouping.row.renderer-6NYszUJA.js.map +1 -0
  389. package/dist/esm/header-cell-renderer-BVHTuFGE.js +1715 -0
  390. package/dist/esm/header-cell-renderer-BVHTuFGE.js.map +1 -0
  391. package/dist/esm/index-Dyptvvxf.js +2519 -0
  392. package/dist/esm/index-Dyptvvxf.js.map +1 -0
  393. package/dist/esm/index.js +6232 -0
  394. package/dist/esm/index.js.map +1 -0
  395. package/dist/esm/loader.js +17 -0
  396. package/dist/esm/loader.js.map +1 -0
  397. package/dist/esm/revo-grid.entry.js +3213 -0
  398. package/dist/esm/revo-grid.entry.js.map +1 -0
  399. package/dist/esm/revo-grid.js +27 -0
  400. package/dist/esm/revo-grid.js.map +1 -0
  401. package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
  402. package/dist/esm/revogr-attribution_9.entry.js +2619 -0
  403. package/dist/esm/revogr-attribution_9.entry.js.map +1 -0
  404. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
  405. package/dist/esm/revogr-clipboard_3.entry.js +467 -0
  406. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  407. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
  408. package/dist/esm/revogr-data_4.entry.js +1415 -0
  409. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  410. package/dist/esm/revogr-filter-panel.entry.js +380 -0
  411. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  412. package/dist/esm/row-renderer-sb6QTqH-.js +46 -0
  413. package/dist/esm/row-renderer-sb6QTqH-.js.map +1 -0
  414. package/dist/esm/text-editor-CxXqoicM.js +79 -0
  415. package/dist/esm/text-editor-CxXqoicM.js.map +1 -0
  416. package/dist/esm/throttle-DXYrmEeb.js +525 -0
  417. package/dist/esm/throttle-DXYrmEeb.js.map +1 -0
  418. package/dist/esm/tree-data.plugin-C2eXkf9_.js +5319 -0
  419. package/dist/esm/tree-data.plugin-C2eXkf9_.js.map +1 -0
  420. package/dist/esm/viewport.helpers-VXhsJZtn.js +55 -0
  421. package/dist/esm/viewport.helpers-VXhsJZtn.js.map +1 -0
  422. package/dist/esm/viewport.store-C-GnV31k.js +512 -0
  423. package/dist/esm/viewport.store-C-GnV31k.js.map +1 -0
  424. package/dist/index.cjs.js +1 -0
  425. package/dist/index.js +1 -0
  426. package/dist/revo-grid/app-globals-C3ZHKjnB.js +14 -0
  427. package/dist/revo-grid/app-globals-C3ZHKjnB.js.map +1 -0
  428. package/dist/revo-grid/cell-renderer-C2Td6LKY.js +54 -0
  429. package/dist/revo-grid/cell-renderer-C2Td6LKY.js.map +1 -0
  430. package/dist/revo-grid/debounce-BfO9dz9v.js +488 -0
  431. package/dist/revo-grid/debounce-BfO9dz9v.js.map +1 -0
  432. package/dist/revo-grid/dimension.helpers-DDil7Dg0.js +3546 -0
  433. package/dist/revo-grid/dimension.helpers-DDil7Dg0.js.map +1 -0
  434. package/dist/revo-grid/edit.utils-ClxXX_x9.js +99 -0
  435. package/dist/revo-grid/edit.utils-ClxXX_x9.js.map +1 -0
  436. package/dist/revo-grid/events-BvSmBueA.js +43 -0
  437. package/dist/revo-grid/events-BvSmBueA.js.map +1 -0
  438. package/dist/revo-grid/filter.button-DmOE7VCJ.js +39 -0
  439. package/dist/revo-grid/filter.button-DmOE7VCJ.js.map +1 -0
  440. package/dist/revo-grid/grouping.row.renderer-6NYszUJA.js +60 -0
  441. package/dist/revo-grid/grouping.row.renderer-6NYszUJA.js.map +1 -0
  442. package/dist/revo-grid/header-cell-renderer-BVHTuFGE.js +1715 -0
  443. package/dist/revo-grid/header-cell-renderer-BVHTuFGE.js.map +1 -0
  444. package/dist/revo-grid/index-Dyptvvxf.js +2490 -0
  445. package/dist/revo-grid/index-Dyptvvxf.js.map +1 -0
  446. package/dist/revo-grid/index.esm.js +6232 -0
  447. package/dist/revo-grid/index.esm.js.map +1 -0
  448. package/dist/revo-grid/loader.esm.js.map +1 -0
  449. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
  450. package/dist/revo-grid/revo-grid.entry.js +3213 -0
  451. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  452. package/dist/revo-grid/revo-grid.esm.js +27 -0
  453. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  454. package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-grouping-overlay.revogr-header-unified.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
  455. package/dist/revo-grid/revogr-attribution_9.entry.js +2619 -0
  456. package/dist/revo-grid/revogr-attribution_9.entry.js.map +1 -0
  457. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
  458. package/dist/revo-grid/revogr-clipboard_3.entry.js +467 -0
  459. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  460. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
  461. package/dist/revo-grid/revogr-data_4.entry.js +1415 -0
  462. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  463. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
  464. package/dist/revo-grid/revogr-filter-panel.entry.js +380 -0
  465. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  466. package/dist/revo-grid/row-renderer-sb6QTqH-.js +46 -0
  467. package/dist/revo-grid/row-renderer-sb6QTqH-.js.map +1 -0
  468. package/dist/revo-grid/text-editor-CxXqoicM.js +79 -0
  469. package/dist/revo-grid/text-editor-CxXqoicM.js.map +1 -0
  470. package/dist/revo-grid/throttle-DXYrmEeb.js +525 -0
  471. package/dist/revo-grid/throttle-DXYrmEeb.js.map +1 -0
  472. package/dist/revo-grid/tree-data.plugin-C2eXkf9_.js +5319 -0
  473. package/dist/revo-grid/tree-data.plugin-C2eXkf9_.js.map +1 -0
  474. package/dist/revo-grid/viewport.helpers-VXhsJZtn.js +55 -0
  475. package/dist/revo-grid/viewport.helpers-VXhsJZtn.js.map +1 -0
  476. package/dist/revo-grid/viewport.store-C-GnV31k.js +512 -0
  477. package/dist/revo-grid/viewport.store-C-GnV31k.js.map +1 -0
  478. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  479. package/dist/types/components/clipboard/revogr-clipboard.d.ts +89 -0
  480. package/dist/types/components/data/cell-renderer.d.ts +12 -0
  481. package/dist/types/components/data/column.service.d.ts +65 -0
  482. package/dist/types/components/data/revogr-data.d.ts +132 -0
  483. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  484. package/dist/types/components/data/row-renderer.d.ts +13 -0
  485. package/dist/types/components/editors/edit.utils.d.ts +3 -0
  486. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  487. package/dist/types/components/editors/text-editor.d.ts +43 -0
  488. package/dist/types/components/extra/revogr-extra.d.ts +38 -0
  489. package/dist/types/components/grouping-overlay/revogr-grouping-overlay.d.ts +71 -0
  490. package/dist/types/components/header/header-cell-renderer.d.ts +10 -0
  491. package/dist/types/components/header/header-group-renderer.d.ts +17 -0
  492. package/dist/types/components/header/header-renderer.d.ts +24 -0
  493. package/dist/types/components/header/resizable.directive.d.ts +60 -0
  494. package/dist/types/components/header/resizable.element.d.ts +5 -0
  495. package/dist/types/components/header/revogr-header-unified.d.ts +168 -0
  496. package/dist/types/components/header/revogr-header.d.ts +131 -0
  497. package/dist/types/components/order/order-renderer.d.ts +29 -0
  498. package/dist/types/components/order/order-row.service.d.ts +27 -0
  499. package/dist/types/components/order/revogr-order-editor.d.ts +56 -0
  500. package/dist/types/components/overlay/autofill.service.d.ts +80 -0
  501. package/dist/types/components/overlay/keyboard.service.d.ts +29 -0
  502. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +295 -0
  503. package/dist/types/components/overlay/selection.utils.d.ts +47 -0
  504. package/dist/types/components/revoGrid/grid.helpers.d.ts +17 -0
  505. package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
  506. package/dist/types/components/revoGrid/revo-grid.d.ts +801 -0
  507. package/dist/types/components/revoGrid/viewport.helpers.d.ts +42 -0
  508. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
  509. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +24 -0
  510. package/dist/types/components/revoGrid/viewport.service.d.ts +59 -0
  511. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +51 -0
  512. package/dist/types/components/rowHeaders/row-header-render.d.ts +9 -0
  513. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +159 -0
  514. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  515. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +49 -0
  516. package/dist/types/components/selectionFocus/revogr-focus.d.ts +63 -0
  517. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +28 -0
  518. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  519. package/dist/types/components/vnode/vnode.utils.d.ts +9 -0
  520. package/dist/types/components.d.ts +2928 -0
  521. package/dist/types/global/global.d.ts +1 -0
  522. package/dist/types/index.d.ts +9 -0
  523. package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
  524. package/dist/types/plugins/base.plugin.d.ts +51 -0
  525. package/dist/types/plugins/column-hide.plugin.d.ts +110 -0
  526. package/dist/types/plugins/column-manage.plugin.d.ts +225 -0
  527. package/dist/types/plugins/column-stretch.plugin.d.ts +159 -0
  528. package/dist/types/plugins/column.auto-size.plugin.d.ts +69 -0
  529. package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
  530. package/dist/types/plugins/customColumnDrag/column-move.helper.d.ts +71 -0
  531. package/dist/types/plugins/customColumnDrag/custom-column-drag.plugin.d.ts +35 -0
  532. package/dist/types/plugins/customColumnDrag/drag.handler.d.ts +112 -0
  533. package/dist/types/plugins/customColumnDrag/example.d.ts +31 -0
  534. package/dist/types/plugins/customColumnDrag/index.d.ts +5 -0
  535. package/dist/types/plugins/customColumnDrag/types.d.ts +46 -0
  536. package/dist/types/plugins/dispatcher.d.ts +20 -0
  537. package/dist/types/plugins/enhanced-scrollbar.plugin.d.ts +76 -0
  538. package/dist/types/plugins/export/csv.d.ts +9 -0
  539. package/dist/types/plugins/export/export.plugin.d.ts +24 -0
  540. package/dist/types/plugins/export/types.d.ts +23 -0
  541. package/dist/types/plugins/filter/conditions/equal.d.ts +4 -0
  542. package/dist/types/plugins/filter/conditions/number/greaterThan.d.ts +3 -0
  543. package/dist/types/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +3 -0
  544. package/dist/types/plugins/filter/conditions/number/lessThan.d.ts +3 -0
  545. package/dist/types/plugins/filter/conditions/number/lessThanOrEqual.d.ts +3 -0
  546. package/dist/types/plugins/filter/conditions/set.d.ts +4 -0
  547. package/dist/types/plugins/filter/conditions/string/beginswith.d.ts +3 -0
  548. package/dist/types/plugins/filter/conditions/string/contains.d.ts +4 -0
  549. package/dist/types/plugins/filter/filter.button.d.ts +14 -0
  550. package/dist/types/plugins/filter/filter.indexed.d.ts +20 -0
  551. package/dist/types/plugins/filter/filter.panel.d.ts +53 -0
  552. package/dist/types/plugins/filter/filter.plugin.d.ts +73 -0
  553. package/dist/types/plugins/filter/filter.types.d.ts +129 -0
  554. package/dist/types/plugins/grid-setup.d.ts +65 -0
  555. package/dist/types/plugins/groupingRow/grouping.const.d.ts +14 -0
  556. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +15 -0
  557. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +39 -0
  558. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -0
  559. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +144 -0
  560. package/dist/types/plugins/groupingRow/grouping.service.d.ts +36 -0
  561. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +10 -0
  562. package/dist/types/plugins/index.d.ts +22 -0
  563. package/dist/types/plugins/manual-focus.plugin.d.ts +113 -0
  564. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +50 -0
  565. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  566. package/dist/types/plugins/pin-shadow.plugin.d.ts +73 -0
  567. package/dist/types/plugins/resize-indicator.plugin.d.ts +71 -0
  568. package/dist/types/plugins/row-select-plugin-2026228.d.ts +367 -0
  569. package/dist/types/plugins/row-select.plugin.d.ts +378 -0
  570. package/dist/types/plugins/rtl/rtl.plugin.d.ts +37 -0
  571. package/dist/types/plugins/sorting/sorting.func.d.ts +9 -0
  572. package/dist/types/plugins/sorting/sorting.plugin.d.ts +48 -0
  573. package/dist/types/plugins/sorting/sorting.sign.d.ts +6 -0
  574. package/dist/types/plugins/sorting/sorting.types.d.ts +14 -0
  575. package/dist/types/plugins/tree-data.plugin.d.ts +56 -0
  576. package/dist/types/plugins/wcag/index.d.ts +26 -0
  577. package/dist/types/services/cell.helpers.d.ts +2 -0
  578. package/dist/types/services/column.data.provider.d.ts +27 -0
  579. package/dist/types/services/data.provider.d.ts +36 -0
  580. package/dist/types/services/dimension.provider.d.ts +71 -0
  581. package/dist/types/services/local.scroll.service.d.ts +36 -0
  582. package/dist/types/services/local.scroll.timer.d.ts +32 -0
  583. package/dist/types/services/selection.store.connector.d.ts +74 -0
  584. package/dist/types/services/viewport.provider.d.ts +9 -0
  585. package/dist/types/stencil-public-runtime.d.ts +1709 -0
  586. package/dist/types/store/dataSource/data.proxy.d.ts +14 -0
  587. package/dist/types/store/dataSource/data.store.d.ts +77 -0
  588. package/dist/types/store/dataSource/index.d.ts +3 -0
  589. package/dist/types/store/dataSource/trimmed.plugin.d.ts +12 -0
  590. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -0
  591. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +15 -0
  592. package/dist/types/store/dimension/dimension.store.d.ts +34 -0
  593. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  594. package/dist/types/store/dimension/index.d.ts +2 -0
  595. package/dist/types/store/index.d.ts +8 -0
  596. package/dist/types/store/selection/index.d.ts +2 -0
  597. package/dist/types/store/selection/selection.helpers.d.ts +5 -0
  598. package/dist/types/store/selection/selection.store.d.ts +22 -0
  599. package/dist/types/store/vp/index.d.ts +7 -0
  600. package/dist/types/store/vp/viewport.helpers.d.ts +54 -0
  601. package/dist/types/store/vp/viewport.store.d.ts +38 -0
  602. package/dist/types/themeManager/theme.compact.d.ts +4 -0
  603. package/dist/types/themeManager/theme.default.d.ts +4 -0
  604. package/dist/types/themeManager/theme.material.d.ts +4 -0
  605. package/dist/types/themeManager/theme.service.d.ts +13 -0
  606. package/dist/types/types/dimension.d.ts +8 -0
  607. package/dist/types/types/events.d.ts +2 -0
  608. package/dist/types/types/index.d.ts +8 -0
  609. package/dist/types/types/interfaces.d.ts +795 -0
  610. package/dist/types/types/plugin.d.ts +9 -0
  611. package/dist/types/types/plugin.types.d.ts +48 -0
  612. package/dist/types/types/selection.d.ts +178 -0
  613. package/dist/types/types/theme.d.ts +7 -0
  614. package/dist/types/types/viewport.interfaces.d.ts +45 -0
  615. package/dist/types/utils/batchGroupCollapse.d.ts +77 -0
  616. package/dist/types/utils/browser.d.ts +1 -0
  617. package/dist/types/utils/cell-template-helper.d.ts +74 -0
  618. package/dist/types/utils/closest.polifill.d.ts +0 -0
  619. package/dist/types/utils/column.utils.d.ts +110 -0
  620. package/dist/types/utils/consts.d.ts +22 -0
  621. package/dist/types/utils/events.d.ts +5 -0
  622. package/dist/types/utils/header.utils.d.ts +2 -0
  623. package/dist/types/utils/index.d.ts +32 -0
  624. package/dist/types/utils/key.codes.d.ts +73 -0
  625. package/dist/types/utils/key.utils.d.ts +12 -0
  626. package/dist/types/utils/mobile.d.ts +1 -0
  627. package/dist/types/utils/platform.d.ts +4 -0
  628. package/dist/types/utils/row-header-utils.d.ts +2 -0
  629. package/dist/types/utils/store.types.d.ts +97 -0
  630. package/dist/types/utils/store.utils.d.ts +10 -0
  631. package/hydrate/index.d.ts +273 -0
  632. package/hydrate/index.js +39851 -0
  633. package/hydrate/index.mjs +39843 -0
  634. package/hydrate/package.json +12 -0
  635. package/loader/cdn.js +4 -0
  636. package/loader/index.cjs.js +4 -0
  637. package/loader/index.d.ts +24 -0
  638. package/loader/index.es2017.js +4 -0
  639. package/loader/index.js +5 -0
  640. package/package.json +149 -0
  641. package/readme.md +303 -0
  642. package/standalone/column.service.js +1110 -0
  643. package/standalone/column.service.js.map +1 -0
  644. package/standalone/consts.js +30 -0
  645. package/standalone/consts.js.map +1 -0
  646. package/standalone/data.store.js +3101 -0
  647. package/standalone/data.store.js.map +1 -0
  648. package/standalone/debounce.js +215 -0
  649. package/standalone/debounce.js.map +1 -0
  650. package/standalone/dimension.helpers.js +229 -0
  651. package/standalone/dimension.helpers.js.map +1 -0
  652. package/standalone/filter.button.js +39 -0
  653. package/standalone/filter.button.js.map +1 -0
  654. package/standalone/grouping.service.js +234 -0
  655. package/standalone/grouping.service.js.map +1 -0
  656. package/standalone/header-group-renderer.js +634 -0
  657. package/standalone/header-group-renderer.js.map +1 -0
  658. package/standalone/index.d.ts +72 -0
  659. package/standalone/index.js +6272 -0
  660. package/standalone/index.js.map +1 -0
  661. package/standalone/index2.js +131 -0
  662. package/standalone/index2.js.map +1 -0
  663. package/standalone/local.scroll.timer.js +222 -0
  664. package/standalone/local.scroll.timer.js.map +1 -0
  665. package/standalone/platform.js +90 -0
  666. package/standalone/platform.js.map +1 -0
  667. package/standalone/revo-grid.d.ts +11 -0
  668. package/standalone/revo-grid.js +8734 -0
  669. package/standalone/revo-grid.js.map +1 -0
  670. package/standalone/revogr-attribution.d.ts +11 -0
  671. package/standalone/revogr-attribution.js +12 -0
  672. package/standalone/revogr-attribution.js.map +1 -0
  673. package/standalone/revogr-attribution2.js +32 -0
  674. package/standalone/revogr-attribution2.js.map +1 -0
  675. package/standalone/revogr-clipboard.d.ts +11 -0
  676. package/standalone/revogr-clipboard.js +12 -0
  677. package/standalone/revogr-clipboard.js.map +1 -0
  678. package/standalone/revogr-clipboard2.js +179 -0
  679. package/standalone/revogr-clipboard2.js.map +1 -0
  680. package/standalone/revogr-data.d.ts +11 -0
  681. package/standalone/revogr-data.js +12 -0
  682. package/standalone/revogr-data.js.map +1 -0
  683. package/standalone/revogr-data2.js +503 -0
  684. package/standalone/revogr-data2.js.map +1 -0
  685. package/standalone/revogr-edit.d.ts +11 -0
  686. package/standalone/revogr-edit.js +12 -0
  687. package/standalone/revogr-edit.js.map +1 -0
  688. package/standalone/revogr-edit2.js +330 -0
  689. package/standalone/revogr-edit2.js.map +1 -0
  690. package/standalone/revogr-extra.d.ts +11 -0
  691. package/standalone/revogr-extra.js +12 -0
  692. package/standalone/revogr-extra.js.map +1 -0
  693. package/standalone/revogr-extra2.js +73 -0
  694. package/standalone/revogr-extra2.js.map +1 -0
  695. package/standalone/revogr-filter-panel.d.ts +11 -0
  696. package/standalone/revogr-filter-panel.js +411 -0
  697. package/standalone/revogr-filter-panel.js.map +1 -0
  698. package/standalone/revogr-focus.d.ts +11 -0
  699. package/standalone/revogr-focus.js +12 -0
  700. package/standalone/revogr-focus.js.map +1 -0
  701. package/standalone/revogr-focus2.js +119 -0
  702. package/standalone/revogr-focus2.js.map +1 -0
  703. package/standalone/revogr-grouping-overlay.d.ts +11 -0
  704. package/standalone/revogr-grouping-overlay.js +12 -0
  705. package/standalone/revogr-grouping-overlay.js.map +1 -0
  706. package/standalone/revogr-grouping-overlay2.js +356 -0
  707. package/standalone/revogr-grouping-overlay2.js.map +1 -0
  708. package/standalone/revogr-header-unified.d.ts +11 -0
  709. package/standalone/revogr-header-unified.js +12 -0
  710. package/standalone/revogr-header-unified.js.map +1 -0
  711. package/standalone/revogr-header-unified2.js +781 -0
  712. package/standalone/revogr-header-unified2.js.map +1 -0
  713. package/standalone/revogr-header.d.ts +11 -0
  714. package/standalone/revogr-header.js +12 -0
  715. package/standalone/revogr-header.js.map +1 -0
  716. package/standalone/revogr-header2.js +343 -0
  717. package/standalone/revogr-header2.js.map +1 -0
  718. package/standalone/revogr-order-editor.d.ts +11 -0
  719. package/standalone/revogr-order-editor.js +12 -0
  720. package/standalone/revogr-order-editor.js.map +1 -0
  721. package/standalone/revogr-order-editor2.js +201 -0
  722. package/standalone/revogr-order-editor2.js.map +1 -0
  723. package/standalone/revogr-overlay-selection.d.ts +11 -0
  724. package/standalone/revogr-overlay-selection.js +12 -0
  725. package/standalone/revogr-overlay-selection.js.map +1 -0
  726. package/standalone/revogr-overlay-selection2.js +1068 -0
  727. package/standalone/revogr-overlay-selection2.js.map +1 -0
  728. package/standalone/revogr-row-headers.d.ts +11 -0
  729. package/standalone/revogr-row-headers.js +12 -0
  730. package/standalone/revogr-row-headers.js.map +1 -0
  731. package/standalone/revogr-row-headers2.js +625 -0
  732. package/standalone/revogr-row-headers2.js.map +1 -0
  733. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  734. package/standalone/revogr-scroll-virtual.js +12 -0
  735. package/standalone/revogr-scroll-virtual.js.map +1 -0
  736. package/standalone/revogr-scroll-virtual2.js +235 -0
  737. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  738. package/standalone/revogr-temp-range.d.ts +11 -0
  739. package/standalone/revogr-temp-range.js +12 -0
  740. package/standalone/revogr-temp-range.js.map +1 -0
  741. package/standalone/revogr-temp-range2.js +93 -0
  742. package/standalone/revogr-temp-range2.js.map +1 -0
  743. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  744. package/standalone/revogr-viewport-scroll.js +12 -0
  745. package/standalone/revogr-viewport-scroll.js.map +1 -0
  746. package/standalone/revogr-viewport-scroll2.js +761 -0
  747. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  748. package/standalone/row-renderer.js +41 -0
  749. package/standalone/row-renderer.js.map +1 -0
  750. package/standalone/selection.utils.js +179 -0
  751. package/standalone/selection.utils.js.map +1 -0
  752. package/standalone/throttle.js +75 -0
  753. package/standalone/throttle.js.map +1 -0
  754. package/standalone/toNumber.js +282 -0
  755. package/standalone/toNumber.js.map +1 -0
  756. package/standalone/vnode-converter.js +46 -0
  757. package/standalone/vnode-converter.js.map +1 -0
  758. package/standalone/vnode-html.d.ts +11 -0
  759. package/standalone/vnode-html.js +12 -0
  760. package/standalone/vnode-html.js.map +1 -0
@@ -0,0 +1,1766 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-BF1c1pO3.js');
7
+ var dimension_helpers = require('./dimension.helpers-DA9-xqPT.js');
8
+
9
+ /**
10
+ * Converts `value` to an integer.
11
+ *
12
+ * **Note:** This method is loosely based on
13
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
14
+ *
15
+ * @static
16
+ * @memberOf _
17
+ * @since 4.0.0
18
+ * @category Lang
19
+ * @param {*} value The value to convert.
20
+ * @returns {number} Returns the converted integer.
21
+ * @example
22
+ *
23
+ * _.toInteger(3.2);
24
+ * // => 3
25
+ *
26
+ * _.toInteger(Number.MIN_VALUE);
27
+ * // => 0
28
+ *
29
+ * _.toInteger(Infinity);
30
+ * // => 1.7976931348623157e+308
31
+ *
32
+ * _.toInteger('3.2');
33
+ * // => 3
34
+ */
35
+ function toInteger(value) {
36
+ var result = dimension_helpers.toFinite(value),
37
+ remainder = result % 1;
38
+
39
+ return result === result ? (remainder ? result - remainder : result) : 0;
40
+ }
41
+
42
+ /**
43
+ * A specialized version of `_.reduce` for arrays without support for
44
+ * iteratee shorthands.
45
+ *
46
+ * @private
47
+ * @param {Array} [array] The array to iterate over.
48
+ * @param {Function} iteratee The function invoked per iteration.
49
+ * @param {*} [accumulator] The initial value.
50
+ * @param {boolean} [initAccum] Specify using the first element of `array` as
51
+ * the initial value.
52
+ * @returns {*} Returns the accumulated value.
53
+ */
54
+ function arrayReduce(array, iteratee, accumulator, initAccum) {
55
+ var index = -1,
56
+ length = array == null ? 0 : array.length;
57
+
58
+ if (initAccum && length) {
59
+ accumulator = array[++index];
60
+ }
61
+ while (++index < length) {
62
+ accumulator = iteratee(accumulator, array[index], index, array);
63
+ }
64
+ return accumulator;
65
+ }
66
+
67
+ /**
68
+ * Creates a base function for methods like `_.forIn` and `_.forOwn`.
69
+ *
70
+ * @private
71
+ * @param {boolean} [fromRight] Specify iterating from right to left.
72
+ * @returns {Function} Returns the new base function.
73
+ */
74
+ function createBaseFor(fromRight) {
75
+ return function(object, iteratee, keysFunc) {
76
+ var index = -1,
77
+ iterable = Object(object),
78
+ props = keysFunc(object),
79
+ length = props.length;
80
+
81
+ while (length--) {
82
+ var key = props[++index];
83
+ if (iteratee(iterable[key], key, iterable) === false) {
84
+ break;
85
+ }
86
+ }
87
+ return object;
88
+ };
89
+ }
90
+
91
+ /**
92
+ * The base implementation of `baseForOwn` which iterates over `object`
93
+ * properties returned by `keysFunc` and invokes `iteratee` for each property.
94
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
95
+ *
96
+ * @private
97
+ * @param {Object} object The object to iterate over.
98
+ * @param {Function} iteratee The function invoked per iteration.
99
+ * @param {Function} keysFunc The function to get the keys of `object`.
100
+ * @returns {Object} Returns `object`.
101
+ */
102
+ var baseFor = createBaseFor();
103
+
104
+ /**
105
+ * The base implementation of `_.forOwn` without support for iteratee shorthands.
106
+ *
107
+ * @private
108
+ * @param {Object} object The object to iterate over.
109
+ * @param {Function} iteratee The function invoked per iteration.
110
+ * @returns {Object} Returns `object`.
111
+ */
112
+ function baseForOwn(object, iteratee) {
113
+ return object && baseFor(object, iteratee, dimension_helpers.keys);
114
+ }
115
+
116
+ /**
117
+ * Creates a `baseEach` or `baseEachRight` function.
118
+ *
119
+ * @private
120
+ * @param {Function} eachFunc The function to iterate over a collection.
121
+ * @param {boolean} [fromRight] Specify iterating from right to left.
122
+ * @returns {Function} Returns the new base function.
123
+ */
124
+ function createBaseEach(eachFunc, fromRight) {
125
+ return function(collection, iteratee) {
126
+ if (collection == null) {
127
+ return collection;
128
+ }
129
+ if (!dimension_helpers.isArrayLike(collection)) {
130
+ return eachFunc(collection, iteratee);
131
+ }
132
+ var length = collection.length,
133
+ index = -1,
134
+ iterable = Object(collection);
135
+
136
+ while ((++index < length)) {
137
+ if (iteratee(iterable[index], index, iterable) === false) {
138
+ break;
139
+ }
140
+ }
141
+ return collection;
142
+ };
143
+ }
144
+
145
+ /**
146
+ * The base implementation of `_.forEach` without support for iteratee shorthands.
147
+ *
148
+ * @private
149
+ * @param {Array|Object} collection The collection to iterate over.
150
+ * @param {Function} iteratee The function invoked per iteration.
151
+ * @returns {Array|Object} Returns `collection`.
152
+ */
153
+ var baseEach = createBaseEach(baseForOwn);
154
+
155
+ /**
156
+ * The base implementation of `_.reduce` and `_.reduceRight`, without support
157
+ * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
158
+ *
159
+ * @private
160
+ * @param {Array|Object} collection The collection to iterate over.
161
+ * @param {Function} iteratee The function invoked per iteration.
162
+ * @param {*} accumulator The initial value.
163
+ * @param {boolean} initAccum Specify using the first or last element of
164
+ * `collection` as the initial value.
165
+ * @param {Function} eachFunc The function to iterate over `collection`.
166
+ * @returns {*} Returns the accumulated value.
167
+ */
168
+ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
169
+ eachFunc(collection, function(value, index, collection) {
170
+ accumulator = initAccum
171
+ ? (initAccum = false, value)
172
+ : iteratee(accumulator, value, index, collection);
173
+ });
174
+ return accumulator;
175
+ }
176
+
177
+ /**
178
+ * Reduces `collection` to a value which is the accumulated result of running
179
+ * each element in `collection` thru `iteratee`, where each successive
180
+ * invocation is supplied the return value of the previous. If `accumulator`
181
+ * is not given, the first element of `collection` is used as the initial
182
+ * value. The iteratee is invoked with four arguments:
183
+ * (accumulator, value, index|key, collection).
184
+ *
185
+ * Many lodash methods are guarded to work as iteratees for methods like
186
+ * `_.reduce`, `_.reduceRight`, and `_.transform`.
187
+ *
188
+ * The guarded methods are:
189
+ * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
190
+ * and `sortBy`
191
+ *
192
+ * @static
193
+ * @memberOf _
194
+ * @since 0.1.0
195
+ * @category Collection
196
+ * @param {Array|Object} collection The collection to iterate over.
197
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
198
+ * @param {*} [accumulator] The initial value.
199
+ * @returns {*} Returns the accumulated value.
200
+ * @see _.reduceRight
201
+ * @example
202
+ *
203
+ * _.reduce([1, 2], function(sum, n) {
204
+ * return sum + n;
205
+ * }, 0);
206
+ * // => 3
207
+ *
208
+ * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
209
+ * (result[value] || (result[value] = [])).push(key);
210
+ * return result;
211
+ * }, {});
212
+ * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
213
+ */
214
+ function reduce(collection, iteratee, accumulator) {
215
+ var func = dimension_helpers.isArray(collection) ? arrayReduce : baseReduce,
216
+ initAccum = arguments.length < 3;
217
+
218
+ return func(collection, dimension_helpers.baseIteratee(iteratee), accumulator, initAccum, baseEach);
219
+ }
220
+
221
+ function getCellData(val) {
222
+ if (typeof val === 'undefined' || val === null) {
223
+ return '';
224
+ }
225
+ return val;
226
+ }
227
+ function getCellRaw(model = {}, column) {
228
+ if (!column) {
229
+ return;
230
+ }
231
+ if (column.cellParser) {
232
+ return column.cellParser(model, column);
233
+ }
234
+ return model[column.prop];
235
+ }
236
+ function getCellDataParsed(model, column) {
237
+ return getCellData(getCellRaw(model, column));
238
+ }
239
+ /**
240
+ * Get column type from column data
241
+ */
242
+ function getColumnType(rgCol) {
243
+ if (rgCol.pin) {
244
+ return rgCol.pin;
245
+ }
246
+ return 'rgCol';
247
+ }
248
+ function getColumnSizes(cols) {
249
+ const res = {};
250
+ for (const [i, c] of cols.entries()) {
251
+ if (c.size) {
252
+ res[i] = c.size;
253
+ }
254
+ }
255
+ return res;
256
+ }
257
+ /**
258
+ * Check if column is grouping column
259
+ */
260
+ function isColGrouping(colData) {
261
+ return !!colData.children;
262
+ }
263
+ /**
264
+ * This function is used to create a collection of columns.
265
+ */
266
+ function getColumns(columns, level = 0, types, resFromRoot) {
267
+ const collection = {
268
+ // columns as they are in stores per type
269
+ columns: {
270
+ rgCol: [],
271
+ colPinStart: [],
272
+ colPinEnd: [],
273
+ },
274
+ // columns indexed by prop for quick access
275
+ columnByProp: {},
276
+ // column grouping
277
+ columnGrouping: {
278
+ rgCol: [],
279
+ colPinStart: [],
280
+ colPinEnd: [],
281
+ },
282
+ // sorting
283
+ sort: {},
284
+ // max depth level for column grouping
285
+ maxLevel: level,
286
+ };
287
+ return reduce(columns, (res, colData) => {
288
+ var _a;
289
+ // Grouped column
290
+ if (isColGrouping(colData)) {
291
+ res = gatherGroup(res, colData, getColumns(colData.children, level + 1, types, res), resFromRoot === null || resFromRoot === void 0 ? void 0 : resFromRoot.columns, level);
292
+ return res;
293
+ }
294
+ // Column type
295
+ const columnDefinitionFromType = colData.columnType && (types === null || types === void 0 ? void 0 : types[colData.columnType]);
296
+ // Regular column
297
+ const regularColumn = Object.assign(Object.assign({}, columnDefinitionFromType), colData);
298
+ // Regular column, no Pin
299
+ if (!regularColumn.pin) {
300
+ res.columns.rgCol.push(regularColumn);
301
+ // Pin
302
+ }
303
+ else {
304
+ res.columns[regularColumn.pin].push(regularColumn);
305
+ }
306
+ if (regularColumn.order) {
307
+ res.sort[regularColumn.prop] = regularColumn;
308
+ }
309
+ // it's possible that some columns have same prop, but better to avoid it
310
+ if (!res.columnByProp[regularColumn.prop]) {
311
+ res.columnByProp[regularColumn.prop] = [];
312
+ }
313
+ res.columnByProp[regularColumn.prop].push(regularColumn);
314
+ // trigger setup hook if present
315
+ (_a = regularColumn.beforeSetup) === null || _a === void 0 ? void 0 : _a.call(regularColumn, regularColumn);
316
+ return res;
317
+ }, collection);
318
+ }
319
+ function gatherGroup(res, colData, collection, existingColumnsByType, level = 0) {
320
+ // group template - 使用展开运算符保留所有属性
321
+ const group = Object.assign(Object.assign({}, colData), { level, indexes: [] });
322
+ // check columns for update
323
+ columnTypes.forEach(type => {
324
+ const resultItem = res.columns[type];
325
+ const collectionItem = collection.columns[type];
326
+ // if column data
327
+ if (dimension_helpers.isArray(resultItem) && dimension_helpers.isArray(collectionItem)) {
328
+ // fill grouping
329
+ const itemLength = collectionItem.length;
330
+ if (itemLength) {
331
+ const columnLength = [...((existingColumnsByType === null || existingColumnsByType === void 0 ? void 0 : existingColumnsByType[type]) || []), ...resultItem].length;
332
+ // fill columns
333
+ resultItem.push(...collectionItem);
334
+ // fill indexes per each viewport
335
+ res.columnGrouping[type].push(Object.assign(Object.assign({}, group), { indexes: Array(itemLength).fill(columnLength).map((v, i) => v + i) }));
336
+ }
337
+ }
338
+ });
339
+ // merge column groupings
340
+ for (let k in collection.columnGrouping) {
341
+ const key = k;
342
+ const collectionItem = collection.columnGrouping[key];
343
+ res.columnGrouping[key].push(...collectionItem);
344
+ }
345
+ res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
346
+ res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
347
+ res.columnByProp = Object.assign(Object.assign({}, res.columnByProp), collection.columnByProp);
348
+ return res;
349
+ }
350
+ function findColumn(columns, prop) {
351
+ for (const c of columns) {
352
+ if (isColGrouping(c)) {
353
+ const found = findColumn(c.children, prop);
354
+ if (found) {
355
+ return found;
356
+ }
357
+ }
358
+ else if (c.prop === prop) {
359
+ return c;
360
+ }
361
+ }
362
+ return undefined;
363
+ }
364
+ function getColumnByProp(columns, prop) {
365
+ return findColumn(columns, prop);
366
+ }
367
+ /**
368
+ * 获取自动宽度列的配置选项
369
+ * 用于 convertCollectionToColumns 的第二个参数
370
+ *
371
+ * @param providers - PluginProviders 对象
372
+ * @param stretchPlugin - ColumnStretchPlugin 实例
373
+ * @returns 自动宽度列配置选项
374
+ *
375
+ * @example
376
+ * ```typescript
377
+ * const stretchPlugin = providers.plugins.getByClass(ColumnStretchPlugin);
378
+ * const options = getStretchColumnOptions(providers, stretchPlugin);
379
+ * const columns = convertCollectionToColumns(providers, options);
380
+ * ```
381
+ */
382
+ function getStretchColumnOptions(providers, stretchPlugin // ColumnStretchPlugin 实例
383
+ ) {
384
+ var _a, _b;
385
+ if (!stretchPlugin) {
386
+ return undefined;
387
+ }
388
+ const columnCollection = (_a = providers === null || providers === void 0 ? void 0 : providers.column) === null || _a === void 0 ? void 0 : _a.collection;
389
+ if (!columnCollection) {
390
+ return undefined;
391
+ }
392
+ // 收集自动宽度列的 prop
393
+ const stretchColumnProps = new Set();
394
+ const manuallyResizedProps = new Set();
395
+ const stretchConfig = (_b = stretchPlugin.getStretchColumnConfig) === null || _b === void 0 ? void 0 : _b.call(stretchPlugin);
396
+ if (stretchConfig) {
397
+ // 根据配置类型确定自动宽度列
398
+ if (stretchConfig === 'last') {
399
+ // 最后一列
400
+ const rgColColumns = columnCollection.columns.rgCol;
401
+ if (rgColColumns && rgColColumns.length > 0) {
402
+ const lastCol = rgColColumns[rgColColumns.length - 1];
403
+ if (lastCol.prop) {
404
+ stretchColumnProps.add(lastCol.prop);
405
+ }
406
+ }
407
+ }
408
+ else if (stretchConfig === 'all') {
409
+ // 所有列
410
+ const dimensionTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
411
+ dimensionTypes.forEach(type => {
412
+ const cols = columnCollection.columns[type];
413
+ if (cols) {
414
+ cols.forEach((col) => {
415
+ if (col.prop) {
416
+ stretchColumnProps.add(col.prop);
417
+ }
418
+ });
419
+ }
420
+ });
421
+ }
422
+ else if (typeof stretchConfig === 'number') {
423
+ // 指定索引的列(从 columnCollection 中按顺序获取)
424
+ const allColumns = [];
425
+ const dimensionTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
426
+ dimensionTypes.forEach(type => {
427
+ const cols = columnCollection.columns[type];
428
+ if (cols) {
429
+ allColumns.push(...cols);
430
+ }
431
+ });
432
+ if (stretchConfig >= 0 && stretchConfig < allColumns.length) {
433
+ const col = allColumns[stretchConfig];
434
+ if (col === null || col === void 0 ? void 0 : col.prop) {
435
+ stretchColumnProps.add(col.prop);
436
+ }
437
+ }
438
+ }
439
+ else if (typeof stretchConfig === 'string') {
440
+ // 指定 prop 的列
441
+ stretchColumnProps.add(stretchConfig);
442
+ }
443
+ }
444
+ // 获取手动调整过的列
445
+ if (stretchPlugin.isManuallyResized) {
446
+ stretchColumnProps.forEach(prop => {
447
+ if (stretchPlugin.isManuallyResized(prop)) {
448
+ manuallyResizedProps.add(prop);
449
+ }
450
+ });
451
+ }
452
+ return {
453
+ stretchColumnProps,
454
+ manuallyResizedProps,
455
+ };
456
+ }
457
+ /**
458
+ * 将 ColumnCollection 转换为 revogrid.columns 格式
459
+ * 按照冻结顺序合并:左冻结列 -> 普通列 -> 右冻结列
460
+ * 并根据 columnGrouping 信息重建分组结构
461
+ *
462
+ * @param providers - PluginProviders 对象
463
+ * @param options - 可选配置
464
+ * @param options.stretchColumnProps - 自动宽度列的 prop 集合
465
+ * @param options.manuallyResizedProps - 被手动调整过的列的 prop 集合
466
+ * @returns 适用于 revogrid.columns 的列数组(包含分组)
467
+ *
468
+ * @example
469
+ * ```typescript
470
+ * const columns = convertCollectionToColumns(this.providers, {
471
+ * stretchColumnProps: new Set(['displayName']),
472
+ * manuallyResizedProps: new Set(['priority'])
473
+ * });
474
+ * this.revogrid.columns = columns;
475
+ * ```
476
+ */
477
+ function convertCollectionToColumns(providers, options) {
478
+ var _a;
479
+ const result = [];
480
+ const columnCollection = (_a = providers === null || providers === void 0 ? void 0 : providers.column) === null || _a === void 0 ? void 0 : _a.collection;
481
+ if (!columnCollection) {
482
+ return result;
483
+ }
484
+ const collectionColumns = columnCollection.columns;
485
+ const columnGrouping = columnCollection.columnGrouping;
486
+ const stretchColumnProps = (options === null || options === void 0 ? void 0 : options.stretchColumnProps) || new Set();
487
+ const manuallyResizedProps = (options === null || options === void 0 ? void 0 : options.manuallyResizedProps) || new Set();
488
+ // 按顺序处理:左冻结 -> 普通 -> 右冻结
489
+ const orderedTypes = ['colPinStart', 'rgCol', 'colPinEnd'];
490
+ orderedTypes.forEach(type => {
491
+ var _a, _b, _c;
492
+ const columns = collectionColumns[type];
493
+ if (!columns || columns.length === 0) {
494
+ return;
495
+ }
496
+ // 从 dimension store 获取实时的列宽
497
+ const dimensionSizes = ((_c = (_b = (_a = providers === null || providers === void 0 ? void 0 : providers.dimension) === null || _a === void 0 ? void 0 : _a.stores[type]) === null || _b === void 0 ? void 0 : _b.store) === null || _c === void 0 ? void 0 : _c.get('sizes')) || {};
498
+ // 获取该类型的分组信息
499
+ const groups = (columnGrouping === null || columnGrouping === void 0 ? void 0 : columnGrouping[type]) || [];
500
+ // 如果没有分组,直接添加所有列
501
+ if (groups.length === 0) {
502
+ columns.forEach((col, index) => {
503
+ const colAny = Object.assign({}, col);
504
+ // 设置 pin 属性
505
+ if (type === 'colPinStart') {
506
+ colAny.pin = 'colPinStart';
507
+ }
508
+ else if (type === 'colPinEnd') {
509
+ colAny.pin = 'colPinEnd';
510
+ }
511
+ else {
512
+ delete colAny.pin;
513
+ }
514
+ // 从 dimension store 获取实时宽度
515
+ if (dimensionSizes[index] !== undefined) {
516
+ colAny.size = dimensionSizes[index];
517
+ }
518
+ // 处理自动宽度列:如果是自动宽度列且未被手动调整,移除 size 属性
519
+ if (col.prop && stretchColumnProps.has(col.prop) && !manuallyResizedProps.has(col.prop)) {
520
+ delete colAny.size;
521
+ }
522
+ result.push(colAny);
523
+ });
524
+ return;
525
+ }
526
+ // 构建索引到分组的映射
527
+ const indexToGroup = new Map();
528
+ groups.forEach((group) => {
529
+ group.indexes.forEach((index) => {
530
+ indexToGroup.set(index, group);
531
+ });
532
+ });
533
+ // 按原始顺序遍历列,遇到分组的第一个列时创建分组
534
+ const processedGroups = new Set();
535
+ columns.forEach((col, index) => {
536
+ const group = indexToGroup.get(index);
537
+ if (group && !processedGroups.has(group)) {
538
+ // 这是分组的第一个列,创建分组
539
+ processedGroups.add(group);
540
+ const children = [];
541
+ group.indexes.forEach((idx) => {
542
+ if (idx < columns.length) {
543
+ const childCol = columns[idx];
544
+ const colCopy = Object.assign({}, childCol);
545
+ // 设置子列的 pin 属性
546
+ if (type === 'colPinStart') {
547
+ colCopy.pin = 'colPinStart';
548
+ }
549
+ else if (type === 'colPinEnd') {
550
+ colCopy.pin = 'colPinEnd';
551
+ }
552
+ else {
553
+ delete colCopy.pin;
554
+ }
555
+ // 从 dimension store 获取实时宽度
556
+ if (dimensionSizes[idx] !== undefined) {
557
+ colCopy.size = dimensionSizes[idx];
558
+ }
559
+ // 处理自动宽度列
560
+ if (childCol.prop && stretchColumnProps.has(childCol.prop) && !manuallyResizedProps.has(childCol.prop)) {
561
+ delete colCopy.size;
562
+ }
563
+ children.push(colCopy);
564
+ }
565
+ });
566
+ // 创建分组列
567
+ if (children.length > 0) {
568
+ const groupCol = {
569
+ name: group.name,
570
+ children: children,
571
+ };
572
+ // 设置分组的 pin 属性
573
+ if (type === 'colPinStart') {
574
+ groupCol.pin = 'colPinStart';
575
+ }
576
+ else if (type === 'colPinEnd') {
577
+ groupCol.pin = 'colPinEnd';
578
+ }
579
+ result.push(groupCol);
580
+ }
581
+ }
582
+ else if (!group) {
583
+ // 不在任何分组中的列,直接添加
584
+ const colAny = Object.assign({}, col);
585
+ // 设置 pin 属性
586
+ if (type === 'colPinStart') {
587
+ colAny.pin = 'colPinStart';
588
+ }
589
+ else if (type === 'colPinEnd') {
590
+ colAny.pin = 'colPinEnd';
591
+ }
592
+ else {
593
+ delete colAny.pin;
594
+ }
595
+ // 从 dimension store 获取实时宽度
596
+ if (dimensionSizes[index] !== undefined) {
597
+ colAny.size = dimensionSizes[index];
598
+ }
599
+ // 处理自动宽度列
600
+ if (col.prop && stretchColumnProps.has(col.prop) && !manuallyResizedProps.has(col.prop)) {
601
+ delete colAny.size;
602
+ }
603
+ result.push(colAny);
604
+ }
605
+ // 如果是分组中的非第一个列,跳过(已在分组中处理)
606
+ });
607
+ });
608
+ return result;
609
+ }
610
+ /**
611
+ * 合并相邻的同名编组
612
+ * @param columns 列数组
613
+ * @returns 是否发生了合并
614
+ *
615
+ * @example
616
+ * ```typescript
617
+ * const columns = [...];
618
+ * const hasMerged = mergeAdjacentGroups(columns);
619
+ * if (hasMerged) {
620
+ * // 列结构已更新
621
+ * }
622
+ * ```
623
+ */
624
+ function mergeAdjacentGroups(columns) {
625
+ if (!columns || columns.length === 0)
626
+ return false;
627
+ // 获取列或编组的实际 pin 值(编组可能在子列上有 pin)
628
+ const getEffectivePin = (col) => {
629
+ if (col.pin)
630
+ return col.pin;
631
+ if (col.children && col.children.length > 0) {
632
+ // 从第一个子列获取 pin
633
+ return col.children[0].pin;
634
+ }
635
+ return undefined;
636
+ };
637
+ let hasMerged = false;
638
+ let i = 0;
639
+ while (i < columns.length - 1) {
640
+ const current = columns[i];
641
+ const next = columns[i + 1];
642
+ const currentPin = getEffectivePin(current);
643
+ const nextPin = getEffectivePin(next);
644
+ // 检查是否可以合并:都是编组、名称相同、实际 pin 值相同
645
+ if (current.children &&
646
+ next.children &&
647
+ current.name === next.name &&
648
+ currentPin === nextPin) {
649
+ // 合并:将 next 的子列添加到 current
650
+ current.children.push(...next.children);
651
+ // 删除 next
652
+ columns.splice(i + 1, 1);
653
+ hasMerged = true;
654
+ // 不增加 i,继续检查当前位置
655
+ }
656
+ else {
657
+ i++;
658
+ }
659
+ }
660
+ return hasMerged;
661
+ }
662
+
663
+ function nextCell(cell, lastCell) {
664
+ const nextItem = {};
665
+ let types = ['x', 'y'];
666
+ // previous item check
667
+ for (let t of types) {
668
+ if (cell[t] < 0) {
669
+ nextItem[t] = cell[t];
670
+ return nextItem;
671
+ }
672
+ }
673
+ // next item check
674
+ for (let t of types) {
675
+ if (cell[t] >= lastCell[t]) {
676
+ nextItem[t] = cell[t] - lastCell[t];
677
+ return nextItem;
678
+ }
679
+ }
680
+ return null;
681
+ }
682
+ function cropCellToMax(cell, lastCell) {
683
+ const croppedCell = Object.assign({}, cell);
684
+ const cellCoordinates = ['x', 'y'];
685
+ for (const coordinate of cellCoordinates) {
686
+ if (cell[coordinate] < 0) {
687
+ croppedCell[coordinate] = 0;
688
+ }
689
+ else if (cell[coordinate] >= lastCell[coordinate]) {
690
+ croppedCell[coordinate] = lastCell[coordinate] - 1;
691
+ }
692
+ }
693
+ return croppedCell;
694
+ }
695
+ function getRange(start, end) {
696
+ return start && end
697
+ ? {
698
+ x: Math.min(start.x, end.x),
699
+ y: Math.min(start.y, end.y),
700
+ x1: Math.max(start.x, end.x),
701
+ y1: Math.max(start.y, end.y),
702
+ }
703
+ : null;
704
+ }
705
+ function isRangeSingleCell(a) {
706
+ return a.x === a.x1 && a.y === a.y1;
707
+ }
708
+
709
+ const rowTypes = ['rowPinStart', 'rgRow', 'rowPinEnd'];
710
+ const columnTypes = [
711
+ 'colPinStart',
712
+ 'rgCol',
713
+ 'colPinEnd',
714
+ ];
715
+ function isRowType(type) {
716
+ return rowTypes.indexOf(type) > -1;
717
+ }
718
+
719
+ /**
720
+ * Dispatches a custom event to a specified target element.
721
+ *
722
+ * @param target - The target element to dispatch the event to.
723
+ * @param eventName - The name of the custom event.
724
+ * @param detail - Optional. The detail of the custom event.
725
+ * @returns The custom event that was dispatched.
726
+ */
727
+ function dispatch(target, eventName, detail) {
728
+ // Create a new CustomEvent with the specified event name and detail.
729
+ const event = new CustomEvent(eventName, {
730
+ detail,
731
+ cancelable: true, // Indicates whether the event can be canceled.
732
+ bubbles: true, // Indicates whether the event bubbles up through the DOM.
733
+ });
734
+ // Dispatch the event on the target element.
735
+ target === null || target === void 0 ? void 0 : target.dispatchEvent(event);
736
+ // Return the custom event that was dispatched.
737
+ return event;
738
+ }
739
+ /**
740
+ * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.
741
+ *
742
+ * @param e - The original event object containing the target and preventDefault method.
743
+ * @param eventName - The name of the custom event.
744
+ * @param detail - Optional. The detail of the custom event.
745
+ * @returns The custom event that was dispatched.
746
+ */
747
+ function dispatchByEvent(e, // The original event object containing the target and preventDefault method.
748
+ eventName, // The name of the custom event.
749
+ detail) {
750
+ // Prevent the default behavior of the original event.
751
+ e.preventDefault();
752
+ // Dispatch the custom event to the target element specified in the original event object.
753
+ return dispatch(e.target, eventName, detail);
754
+ }
755
+
756
+ const GROUP_DEPTH = `${dimension_helpers.GRID_INTERNALS}-depth`;
757
+ const PSEUDO_GROUP_ITEM = `${dimension_helpers.GRID_INTERNALS}-name`;
758
+ const PSEUDO_GROUP_ITEM_ID = `${dimension_helpers.GRID_INTERNALS}-id`;
759
+ const PSEUDO_GROUP_ITEM_VALUE = `${dimension_helpers.GRID_INTERNALS}-value`;
760
+ const PSEUDO_GROUP_COLUMN = `${dimension_helpers.GRID_INTERNALS}-column`;
761
+ const GROUP_EXPANDED = `${dimension_helpers.GRID_INTERNALS}-expanded`;
762
+ const GROUP_COLUMN_PROP = `${dimension_helpers.GRID_INTERNALS}-prop`;
763
+ const GROUP_ORIGINAL_INDEX = `${dimension_helpers.GRID_INTERNALS}-original-index`;
764
+ /** 分组行包含的子行物理索引数组 */
765
+ const GROUP_CHILDREN_INDICES = `${dimension_helpers.GRID_INTERNALS}-children`;
766
+ const GROUP_EXPAND_BTN = `group-expand`;
767
+ const GROUP_EXPAND_EVENT = `groupexpandclick`;
768
+ const GROUPING_ROW_TYPE = 'rgRow';
769
+
770
+ function getGroupValueDefault(item, prop) {
771
+ return item[prop] || null;
772
+ }
773
+ // get source based on proxy item collection to preserve rgRow order
774
+ function getSource(source, items, withoutGrouping = false) {
775
+ let index = 0;
776
+ const result = {
777
+ source: [],
778
+ prevExpanded: {},
779
+ oldNewIndexes: {},
780
+ };
781
+ // order important here, expected parent is first, then others
782
+ items.forEach(i => {
783
+ const model = source[i];
784
+ if (!withoutGrouping) {
785
+ result.source.push(model);
786
+ return;
787
+ }
788
+ // grouping filter
789
+ if (isGrouping(model)) {
790
+ if (getExpanded(model)) {
791
+ result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;
792
+ }
793
+ }
794
+ else {
795
+ result.source.push(model);
796
+ result.oldNewIndexes[i] = index;
797
+ index++;
798
+ }
799
+ });
800
+ return result;
801
+ }
802
+ function getExpanded(model = {}) {
803
+ return model[GROUP_EXPANDED];
804
+ }
805
+ function flattenGroupMaps({ groupedValues, parentIds, isExpanded, itemIndex, expandedAll, prevExpanded, columnProps, }) {
806
+ const depth = parentIds.length;
807
+ const sourceWithGroups = [];
808
+ // collapse all groups in the beginning
809
+ let trimmed = {};
810
+ // index mapping
811
+ let oldNewIndexMap = {};
812
+ groupedValues.forEach((innerGroupedValues, groupId) => {
813
+ const levelIds = [...parentIds, groupId];
814
+ const mergedIds = levelIds.join(',');
815
+ // 计算分组的展开状态
816
+ // 关键修改:如果 prevExpanded 中有明确的状态,优先使用它
817
+ // 这样即使父分组折叠,子分组的展开状态也会被保留
818
+ let isGroupExpanded;
819
+ if (prevExpanded.hasOwnProperty(mergedIds)) {
820
+ // 如果 prevExpanded 中有明确的状态,使用它(但仍需要父分组展开)
821
+ isGroupExpanded = isExpanded && !!prevExpanded[mergedIds];
822
+ }
823
+ else {
824
+ // 否则使用 expandedAll
825
+ isGroupExpanded = isExpanded && !!expandedAll;
826
+ }
827
+ // 子分组的 __rvgr-expanded 属性:始终从 prevExpanded 读取,不受父分组影响
828
+ // 这样当父分组重新展开时,doExpand 会读取到正确的子分组状态
829
+ const groupExpandedProp = prevExpanded.hasOwnProperty(mergedIds)
830
+ ? !!prevExpanded[mergedIds]
831
+ : (!!expandedAll || isGroupExpanded);
832
+ // 记录当前分组行在 sourceWithGroups 中的索引,用于后续更新子行索引
833
+ const groupRowIndex = sourceWithGroups.length;
834
+ sourceWithGroups.push({
835
+ [PSEUDO_GROUP_ITEM]: groupId,
836
+ [GROUP_DEPTH]: depth,
837
+ [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),
838
+ [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,
839
+ [GROUP_EXPANDED]: groupExpandedProp, // 使用新的逻辑
840
+ [GROUP_COLUMN_PROP]: columnProps[depth],
841
+ [columnProps[depth]]: groupId,
842
+ [GROUP_CHILDREN_INDICES]: [], // 初始化子行索引数组
843
+ });
844
+ itemIndex += 1;
845
+ // If parent group is collapsed, mark all items as hidden
846
+ if (!isExpanded && depth) {
847
+ trimmed[itemIndex] = true;
848
+ }
849
+ if (Array.isArray(innerGroupedValues)) {
850
+ // This branch handles leaf nodes (actual data items)
851
+ // 收集当前分组的子行物理索引
852
+ const childIndices = [];
853
+ innerGroupedValues.forEach(value => {
854
+ itemIndex += 1;
855
+ if (!isGroupExpanded) {
856
+ trimmed[itemIndex] = true; // Mark items as hidden if group is collapsed
857
+ }
858
+ oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex; // Keep track of new positions
859
+ childIndices.push(itemIndex); // 记录子行的新索引
860
+ });
861
+ // 更新分组行的子行索引
862
+ sourceWithGroups[groupRowIndex][GROUP_CHILDREN_INDICES] = childIndices;
863
+ sourceWithGroups.push(...innerGroupedValues);
864
+ }
865
+ else {
866
+ // This branch handles nested groups (further subgroups)
867
+ const children = flattenGroupMaps({
868
+ groupedValues: innerGroupedValues,
869
+ parentIds: levelIds,
870
+ isExpanded: isGroupExpanded,
871
+ itemIndex,
872
+ expandedAll,
873
+ prevExpanded,
874
+ columnProps,
875
+ }); // Recursively process subgroups
876
+ // 收集所有嵌套子分组中的数据行索引
877
+ const nestedChildIndices = [];
878
+ children.source.forEach(item => {
879
+ // 如果是数据行(非分组行),收集其索引
880
+ if (typeof item[PSEUDO_GROUP_ITEM] === 'undefined') {
881
+ const newIndex = children.oldNewIndexMap[item[GROUP_ORIGINAL_INDEX]];
882
+ if (newIndex !== undefined) {
883
+ nestedChildIndices.push(newIndex);
884
+ }
885
+ }
886
+ });
887
+ // 更新分组行的子行索引
888
+ sourceWithGroups[groupRowIndex][GROUP_CHILDREN_INDICES] = nestedChildIndices;
889
+ sourceWithGroups.push(...children.source);
890
+ trimmed = Object.assign(Object.assign({}, children.trimmed), trimmed);
891
+ oldNewIndexMap = Object.assign(Object.assign({}, children.oldNewIndexMap), oldNewIndexMap);
892
+ itemIndex = children.itemIndex;
893
+ }
894
+ });
895
+ return {
896
+ source: sourceWithGroups,
897
+ oldNewIndexMap,
898
+ trimmed,
899
+ itemIndex,
900
+ };
901
+ }
902
+ /**
903
+ * Gather data for grouping
904
+ * @param array - flat data array
905
+ * @param columnProps - ids of groups
906
+ * @param expanded - potentially expanded items if present
907
+ */
908
+ function gatherGrouping(array, columnProps, { prevExpanded = {}, expandedAll = false, getGroupValue = getGroupValueDefault, }) {
909
+ const groupedItems = new Map();
910
+ array.forEach((item, originalIndex) => {
911
+ const groupLevelValues = columnProps.map(groupId => getGroupValue(item, groupId));
912
+ const lastLevelValue = groupLevelValues.pop();
913
+ let currentGroupLevel = groupedItems;
914
+ groupLevelValues.forEach(value => {
915
+ if (!currentGroupLevel.has(value)) {
916
+ currentGroupLevel.set(value, new Map());
917
+ }
918
+ currentGroupLevel = currentGroupLevel.get(value);
919
+ });
920
+ if (!currentGroupLevel.has(lastLevelValue)) {
921
+ const groupItems = [];
922
+ currentGroupLevel.set(lastLevelValue, groupItems);
923
+ }
924
+ const lastLevelItems = currentGroupLevel.get(lastLevelValue);
925
+ lastLevelItems.push(Object.assign(Object.assign({}, item), { [GROUP_ORIGINAL_INDEX]: originalIndex }));
926
+ });
927
+ const groupingDepth = columnProps.length;
928
+ const { source: sourceWithGroups, trimmed, oldNewIndexMap } = flattenGroupMaps({
929
+ groupedValues: groupedItems,
930
+ parentIds: [],
931
+ isExpanded: true,
932
+ itemIndex: -1,
933
+ expandedAll,
934
+ prevExpanded,
935
+ columnProps
936
+ });
937
+ return {
938
+ sourceWithGroups, // updates source mirror
939
+ depth: groupingDepth, // largest depth for grouping
940
+ trimmed, // used for expand/collapse grouping values
941
+ oldNewIndexMap, // used for mapping old values to new
942
+ };
943
+ }
944
+ function getGroupingName(rgRow) {
945
+ return rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM];
946
+ }
947
+ function isGrouping(rgRow) {
948
+ return typeof (rgRow === null || rgRow === void 0 ? void 0 : rgRow[PSEUDO_GROUP_ITEM]) !== 'undefined';
949
+ }
950
+ function isGroupingColumn(column) {
951
+ return typeof (column === null || column === void 0 ? void 0 : column[PSEUDO_GROUP_COLUMN]) !== 'undefined';
952
+ }
953
+ function measureEqualDepth(groupA, groupB) {
954
+ const ln = groupA.length;
955
+ let i = 0;
956
+ for (; i < ln; i++) {
957
+ if (groupA[i] !== groupB[i]) {
958
+ return i;
959
+ }
960
+ }
961
+ return i;
962
+ }
963
+ function getParsedGroup(id) {
964
+ const parseGroup = JSON.parse(id);
965
+ // extra precaution and type safeguard
966
+ if (!Array.isArray(parseGroup)) {
967
+ return null;
968
+ }
969
+ return parseGroup;
970
+ }
971
+ // check if items is child of current clicked group
972
+ function isSameGroup(currentGroup, currentModel, nextModel) {
973
+ const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);
974
+ if (!nextGroup) {
975
+ return false;
976
+ }
977
+ const depth = measureEqualDepth(currentGroup, nextGroup);
978
+ return currentModel[GROUP_DEPTH] < depth;
979
+ }
980
+
981
+ /**
982
+ * The base implementation of `_.slice` without an iteratee call guard.
983
+ *
984
+ * @private
985
+ * @param {Array} array The array to slice.
986
+ * @param {number} [start=0] The start position.
987
+ * @param {number} [end=array.length] The end position.
988
+ * @returns {Array} Returns the slice of `array`.
989
+ */
990
+ function baseSlice(array, start, end) {
991
+ var index = -1,
992
+ length = array.length;
993
+
994
+ if (start < 0) {
995
+ start = -start > length ? 0 : (length + start);
996
+ }
997
+ end = end > length ? length : end;
998
+ if (end < 0) {
999
+ end += length;
1000
+ }
1001
+ length = start > end ? 0 : ((end - start) >>> 0);
1002
+ start >>>= 0;
1003
+
1004
+ var result = Array(length);
1005
+ while (++index < length) {
1006
+ result[index] = array[index + start];
1007
+ }
1008
+ return result;
1009
+ }
1010
+
1011
+ /**
1012
+ * Creates a slice of `array` from `start` up to, but not including, `end`.
1013
+ *
1014
+ * **Note:** This method is used instead of
1015
+ * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are
1016
+ * returned.
1017
+ *
1018
+ * @static
1019
+ * @memberOf _
1020
+ * @since 3.0.0
1021
+ * @category Array
1022
+ * @param {Array} array The array to slice.
1023
+ * @param {number} [start=0] The start position.
1024
+ * @param {number} [end=array.length] The end position.
1025
+ * @returns {Array} Returns the slice of `array`.
1026
+ */
1027
+ function slice(array, start, end) {
1028
+ var length = array == null ? 0 : array.length;
1029
+ if (!length) {
1030
+ return [];
1031
+ }
1032
+ if (end && typeof end != 'number' && dimension_helpers.isIterateeCall(array, start, end)) {
1033
+ start = 0;
1034
+ end = length;
1035
+ }
1036
+ else {
1037
+ start = start == null ? 0 : toInteger(start);
1038
+ end = end === undefined ? length : toInteger(end);
1039
+ }
1040
+ return baseSlice(array, start, end);
1041
+ }
1042
+
1043
+ function getCellEditor(column, editors = {}) {
1044
+ const editor = column === null || column === void 0 ? void 0 : column.editor;
1045
+ if (!editor) {
1046
+ return undefined;
1047
+ }
1048
+ // reference
1049
+ if (typeof editor === 'string') {
1050
+ return editors[editor];
1051
+ }
1052
+ return editor;
1053
+ }
1054
+ class ColumnService {
1055
+ get columns() {
1056
+ if (this.overrideColumns) {
1057
+ return this.overrideColumns;
1058
+ }
1059
+ const source = this.source.get('source');
1060
+ const items = this.source.get('items');
1061
+ if (!items.length) {
1062
+ return [];
1063
+ }
1064
+ return items.map(v => source[v]);
1065
+ }
1066
+ setOverrideColumns(columns) {
1067
+ this.overrideColumns = columns;
1068
+ }
1069
+ constructor(dataStore, source) {
1070
+ this.dataStore = dataStore;
1071
+ this.source = source;
1072
+ this.unsubscribe = [];
1073
+ this.loggedMissingCols = new Set();
1074
+ this.overrideColumns = null;
1075
+ this.hasGrouping = false;
1076
+ this.unsubscribe.push(source.onChange('source', s => this.checkGrouping(s)));
1077
+ this.checkGrouping(source.get('source'));
1078
+ this.type = source.get('type');
1079
+ }
1080
+ getColumnByIndex(colIndex) {
1081
+ if (this.overrideColumns) {
1082
+ return this.overrideColumns[colIndex];
1083
+ }
1084
+ const direct = dimension_helpers.getSourceItem(this.source, colIndex);
1085
+ if (direct) {
1086
+ return direct;
1087
+ }
1088
+ const key = `${this.type}:${colIndex}`;
1089
+ if (!this.loggedMissingCols.has(key)) {
1090
+ this.loggedMissingCols.add(key);
1091
+ const items = this.source.get('items');
1092
+ const source = this.source.get('source');
1093
+ console.warn('[column] missing column by index', {
1094
+ colType: this.type,
1095
+ colIndex,
1096
+ itemsLength: items.length,
1097
+ sourceLength: source.length,
1098
+ itemsHead: items.slice(0, 10),
1099
+ });
1100
+ }
1101
+ const columns = this.columns;
1102
+ if (columns.length) {
1103
+ return columns[0];
1104
+ }
1105
+ return this.source.get('source')[0];
1106
+ }
1107
+ checkGrouping(cols) {
1108
+ for (let rgCol of cols) {
1109
+ if (isGroupingColumn(rgCol)) {
1110
+ this.hasGrouping = true;
1111
+ return;
1112
+ }
1113
+ this.hasGrouping = false;
1114
+ }
1115
+ }
1116
+ isReadOnly(r, c) {
1117
+ var _a;
1118
+ const readOnly = (_a = this.getColumnByIndex(c)) === null || _a === void 0 ? void 0 : _a.readonly;
1119
+ if (typeof readOnly === 'function') {
1120
+ const data = this.rowDataModel(r, c);
1121
+ return readOnly(data);
1122
+ }
1123
+ return !!readOnly;
1124
+ }
1125
+ mergeProperties(r, c, defaultProps, schemaModel) {
1126
+ var _a, _b;
1127
+ const props = Object.assign({}, defaultProps);
1128
+ props.class = Object.assign(Object.assign({}, (typeof props.class === 'string'
1129
+ ? { [props.class]: true }
1130
+ : props.class)), { [dimension_helpers.CELL_CLASS]: true, [dimension_helpers.DISABLED_CLASS]: this.isReadOnly(r, c) });
1131
+ const extra = (_b = (_a = schemaModel.column) === null || _a === void 0 ? void 0 : _a.cellProperties) === null || _b === void 0 ? void 0 : _b.call(_a, schemaModel);
1132
+ if (!extra) {
1133
+ return props;
1134
+ }
1135
+ return doPropMerge(props, extra);
1136
+ }
1137
+ getRowClass(r, prop) {
1138
+ const model = dimension_helpers.getSourceItem(this.dataStore, r) || {};
1139
+ return model[prop] || '';
1140
+ }
1141
+ getSaveData(rowIndex, colIndex, val) {
1142
+ const data = this.rowDataModel(rowIndex, colIndex);
1143
+ if (typeof val === 'undefined') {
1144
+ val = getCellData(data.value);
1145
+ }
1146
+ return Object.assign(Object.assign({}, data), { val });
1147
+ }
1148
+ /**
1149
+ * Get cell data model for given rowIndex and colIndex
1150
+ * Used to pass data to editor/renderer
1151
+ */
1152
+ rowDataModel(rowIndex, colIndex) {
1153
+ const column = this.getColumnByIndex(colIndex);
1154
+ const prop = column.prop;
1155
+ const model = dimension_helpers.getSourceItem(this.dataStore, rowIndex) || {};
1156
+ const type = this.dataStore.get('type');
1157
+ return {
1158
+ prop,
1159
+ model,
1160
+ data: this.dataStore.get('source'),
1161
+ column,
1162
+ rowIndex,
1163
+ colIndex,
1164
+ colType: this.type,
1165
+ type,
1166
+ value: getCellRaw(model, column),
1167
+ };
1168
+ }
1169
+ getRangeData(d, columns) {
1170
+ var _a;
1171
+ const changed = {};
1172
+ // get original length sizes
1173
+ const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;
1174
+ const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;
1175
+ const mapping = {};
1176
+ // rows
1177
+ for (let rowIndex = d.newRange.y, i = 0; rowIndex < d.newRange.y1 + 1; rowIndex++, i++) {
1178
+ // copy original data link
1179
+ const oldRowIndex = d.oldRange.y + (i % copyRowLength);
1180
+ const copyRow = dimension_helpers.getSourceItem(this.dataStore, oldRowIndex) || {};
1181
+ // columns
1182
+ for (let colIndex = d.newRange.x, j = 0; colIndex < d.newRange.x1 + 1; colIndex++, j++) {
1183
+ // check if old range area
1184
+ if (rowIndex >= d.oldRange.y &&
1185
+ rowIndex <= d.oldRange.y1 &&
1186
+ colIndex >= d.oldRange.x &&
1187
+ colIndex <= d.oldRange.x1) {
1188
+ continue;
1189
+ }
1190
+ // requested column beyond range
1191
+ if (!this.columns[colIndex]) {
1192
+ continue;
1193
+ }
1194
+ const prop = (_a = this.columns[colIndex]) === null || _a === void 0 ? void 0 : _a.prop;
1195
+ const copyColIndex = d.oldRange.x + (j % copyColLength);
1196
+ const copyColumnProp = columns[copyColIndex].prop;
1197
+ /** if can write */
1198
+ if (!this.isReadOnly(rowIndex, colIndex)) {
1199
+ /** to show before save */
1200
+ if (!changed[rowIndex]) {
1201
+ changed[rowIndex] = {};
1202
+ }
1203
+ changed[rowIndex][prop] = copyRow[copyColumnProp];
1204
+ /** Generate mapping object */
1205
+ if (!mapping[rowIndex]) {
1206
+ mapping[rowIndex] = {};
1207
+ }
1208
+ mapping[rowIndex][prop] = {
1209
+ colIndex: copyColIndex,
1210
+ colProp: copyColumnProp,
1211
+ rowIndex: oldRowIndex,
1212
+ };
1213
+ }
1214
+ }
1215
+ }
1216
+ return {
1217
+ changed,
1218
+ mapping,
1219
+ };
1220
+ }
1221
+ getTransformedDataToApply(start, data) {
1222
+ const changed = {};
1223
+ const copyRowLength = data.length;
1224
+ const colLength = this.columns.length;
1225
+ const rowLength = this.dataStore.get('items').length;
1226
+ // rows
1227
+ let rowIndex = start.y;
1228
+ let maxCol = 0;
1229
+ for (let i = 0; rowIndex < rowLength && i < copyRowLength; rowIndex++, i++) {
1230
+ // copy original data link
1231
+ const copyRow = data[i % copyRowLength];
1232
+ const copyColLength = (copyRow === null || copyRow === void 0 ? void 0 : copyRow.length) || 0;
1233
+ // columns
1234
+ let colIndex = start.x;
1235
+ for (let j = 0; colIndex < colLength && j < copyColLength; colIndex++, j++) {
1236
+ const p = this.columns[colIndex].prop;
1237
+ const currentCol = j % colLength;
1238
+ /** if can write */
1239
+ if (!this.isReadOnly(rowIndex, colIndex)) {
1240
+ /** to show before save */
1241
+ if (!changed[rowIndex]) {
1242
+ changed[rowIndex] = {};
1243
+ }
1244
+ changed[rowIndex][p] = copyRow[currentCol];
1245
+ }
1246
+ }
1247
+ maxCol = Math.max(maxCol, colIndex - 1);
1248
+ }
1249
+ const range = getRange(start, {
1250
+ y: rowIndex - 1,
1251
+ x: maxCol,
1252
+ });
1253
+ return {
1254
+ changed,
1255
+ range,
1256
+ };
1257
+ }
1258
+ getRangeStaticData(d, value) {
1259
+ const changed = {};
1260
+ // rows
1261
+ for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {
1262
+ // columns
1263
+ for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {
1264
+ // requested column beyond range
1265
+ if (!this.columns[colIndex]) {
1266
+ continue;
1267
+ }
1268
+ const p = this.columns[colIndex].prop;
1269
+ /** if can write */
1270
+ if (!this.isReadOnly(rowIndex, colIndex)) {
1271
+ /** to show before save */
1272
+ if (!changed[rowIndex]) {
1273
+ changed[rowIndex] = {};
1274
+ }
1275
+ changed[rowIndex][p] = value;
1276
+ }
1277
+ }
1278
+ }
1279
+ return changed;
1280
+ }
1281
+ getRangeTransformedToProps(d, store) {
1282
+ var _a;
1283
+ const area = [];
1284
+ const type = this.dataStore.get('type');
1285
+ // rows
1286
+ for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {
1287
+ // columns
1288
+ for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {
1289
+ const prop = (_a = this.columns[colIndex]) === null || _a === void 0 ? void 0 : _a.prop;
1290
+ area.push({
1291
+ prop,
1292
+ rowIndex,
1293
+ colIndex,
1294
+ model: dimension_helpers.getSourceItem(store, rowIndex),
1295
+ type,
1296
+ colType: this.type,
1297
+ });
1298
+ }
1299
+ }
1300
+ return area;
1301
+ }
1302
+ copyRangeArray(range, store) {
1303
+ const cols = [...this.columns];
1304
+ const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);
1305
+ const toCopy = [];
1306
+ const mapping = {};
1307
+ // rows indexes
1308
+ for (let i = range.y; i <= range.y1; i++) {
1309
+ const rgRow = [];
1310
+ mapping[i] = {};
1311
+ // columns indexes
1312
+ for (let prop of props) {
1313
+ const item = dimension_helpers.getSourceItem(store, i);
1314
+ // if no item - skip
1315
+ if (!item) {
1316
+ continue;
1317
+ }
1318
+ const val = item[prop];
1319
+ rgRow.push(val);
1320
+ mapping[i][prop] = val;
1321
+ }
1322
+ toCopy.push(rgRow);
1323
+ }
1324
+ return {
1325
+ data: toCopy,
1326
+ mapping,
1327
+ };
1328
+ }
1329
+ destroy() {
1330
+ this.unsubscribe.forEach(f => f());
1331
+ }
1332
+ }
1333
+ /**
1334
+ * Checks if the given rowDrag is a service for dragging rows.
1335
+ */
1336
+ function isRowDragService(rowDrag, model) {
1337
+ if (typeof rowDrag === 'function') {
1338
+ return rowDrag(model);
1339
+ }
1340
+ return !!rowDrag;
1341
+ }
1342
+ function mergeClasses(class1 = {}, class2 = {}) {
1343
+ if (typeof class1 === 'string') {
1344
+ class1 = { [class1]: true };
1345
+ }
1346
+ if (typeof class2 === 'string') {
1347
+ class2 = { [class2]: true };
1348
+ }
1349
+ return Object.assign(Object.assign({}, class1), class2);
1350
+ }
1351
+ function doPropMerge(existing, extra) {
1352
+ // if className is provided - remove it from props it messing with stencil
1353
+ if (extra.className) {
1354
+ extra.class = mergeClasses(extra.class, extra.className);
1355
+ delete extra.className;
1356
+ }
1357
+ let props = Object.assign(Object.assign({}, extra), existing);
1358
+ // extend existing props
1359
+ if (extra.class) {
1360
+ props.class = mergeClasses(props.class, extra.class);
1361
+ }
1362
+ if (extra.style) {
1363
+ props.style = Object.assign(Object.assign({}, extra.style), props.style);
1364
+ }
1365
+ return props;
1366
+ }
1367
+
1368
+ var ResizeEvents;
1369
+ (function (ResizeEvents) {
1370
+ ResizeEvents["start"] = "resize:start";
1371
+ ResizeEvents["move"] = "resize:move";
1372
+ ResizeEvents["end"] = "resize:end";
1373
+ })(ResizeEvents || (ResizeEvents = {}));
1374
+ const RESIZE_MASK = {
1375
+ 'resizable-r': { bit: 0b0001, cursor: 'col-resize' },
1376
+ 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },
1377
+ 'resizable-b': { bit: 0b0010, cursor: 's-resize' },
1378
+ 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },
1379
+ 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },
1380
+ 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },
1381
+ 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },
1382
+ 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },
1383
+ };
1384
+ const DISABLE_MASK = {
1385
+ w: 0b0100,
1386
+ h: 0b1000,
1387
+ };
1388
+ const defaultProps = (props) => {
1389
+ return Object.assign(Object.assign({}, props), { fitParent: props.fitParent || false, active: props.active || [], disableAttributes: props.disableAttributes || [], minWidth: props.minWidth || 0, minHeight: props.minHeight || 0 });
1390
+ };
1391
+ class ResizeDirective {
1392
+ constructor(initialProps, $event) {
1393
+ var _a, _b;
1394
+ this.initialProps = initialProps;
1395
+ this.$event = $event;
1396
+ this.startMouseX = 0; // 记录拖拽开始时的鼠标位置
1397
+ this.startMouseY = 0;
1398
+ this.width = 0;
1399
+ this.height = 0;
1400
+ this.changeX = 0;
1401
+ this.changeY = 0;
1402
+ this.disableCalcMap = 0b1111;
1403
+ this.props = defaultProps(initialProps);
1404
+ this.mouseMoveFunc = this.handleMove.bind(this);
1405
+ this.mouseUpFunc = this.handleUp.bind(this);
1406
+ this.handleRightClickFunc = this.handleRightClick.bind(this);
1407
+ this.handleContextMenuFunc = this.handleContextMenu.bind(this);
1408
+ this.minW = this.props.minWidth;
1409
+ this.minH = this.props.minHeight;
1410
+ this.maxW = (_a = this.props.maxWidth) !== null && _a !== void 0 ? _a : 0;
1411
+ this.maxH = (_b = this.props.maxHeight) !== null && _b !== void 0 ? _b : 0;
1412
+ this.parent = { width: 0, height: 0 };
1413
+ this.resizeState = 0;
1414
+ }
1415
+ set($el) {
1416
+ this.$el = $el;
1417
+ this.props.disableAttributes.forEach(attr => {
1418
+ switch (attr) {
1419
+ case 'l':
1420
+ this.disableCalcMap &= -2;
1421
+ break;
1422
+ case 't':
1423
+ this.disableCalcMap &= -3;
1424
+ break;
1425
+ case 'w':
1426
+ this.disableCalcMap &= -5;
1427
+ break;
1428
+ case 'h':
1429
+ this.disableCalcMap &= -9;
1430
+ }
1431
+ });
1432
+ }
1433
+ emitEvent(eventName, additionalOptions) {
1434
+ var _a;
1435
+ if (!this.$event) {
1436
+ return;
1437
+ }
1438
+ const isLeft = (_a = this.activeResizer) === null || _a === void 0 ? void 0 : _a.classList.contains('resizable-l');
1439
+ this.$event(Object.assign({ eventName, width: this.width + this.changeX * (isLeft ? -1 : 1), height: this.height + this.changeY, changedX: this.changeX, changedY: this.changeY }, additionalOptions));
1440
+ }
1441
+ static isTouchEvent(e) {
1442
+ var _a;
1443
+ const event = e;
1444
+ return ((_a = event.touches) === null || _a === void 0 ? void 0 : _a.length) >= 0;
1445
+ }
1446
+ handleMove(event) {
1447
+ var _a;
1448
+ if (!this.resizeState) {
1449
+ return;
1450
+ }
1451
+ let eventY, eventX;
1452
+ if (ResizeDirective.isTouchEvent(event)) {
1453
+ eventY = event.touches[0].clientY;
1454
+ eventX = event.touches[0].clientX;
1455
+ }
1456
+ else {
1457
+ eventY = event.clientY;
1458
+ eventX = event.clientX;
1459
+ }
1460
+ let isX = this.resizeState & RESIZE_MASK['resizable-r'].bit ||
1461
+ this.resizeState & RESIZE_MASK['resizable-l'].bit;
1462
+ let isY = this.resizeState & RESIZE_MASK['resizable-t'].bit ||
1463
+ this.resizeState & RESIZE_MASK['resizable-b'].bit;
1464
+ if (isY && this.disableCalcMap & DISABLE_MASK.h) {
1465
+ // 使用绝对位置计算,避免累加误差
1466
+ const totalDiffY = eventY - this.startMouseY;
1467
+ let changedY = totalDiffY;
1468
+ const newHeight = this.height + changedY;
1469
+ // if overcrossed min height
1470
+ if (newHeight < this.minH) {
1471
+ changedY = -(this.height - this.minH);
1472
+ }
1473
+ // if overcrossed max heiht
1474
+ if (this.maxH && newHeight > this.maxH) {
1475
+ changedY = this.maxH - this.height;
1476
+ }
1477
+ this.changeY = changedY;
1478
+ if (this.activeResizer) {
1479
+ this.activeResizer.style.bottom = `${-this.changeY}px`;
1480
+ }
1481
+ }
1482
+ if (isX && this.disableCalcMap & DISABLE_MASK.w) {
1483
+ const isLeft = (_a = this.activeResizer) === null || _a === void 0 ? void 0 : _a.classList.contains('resizable-l');
1484
+ // 使用绝对位置计算,避免累加误差
1485
+ const totalDiffX = eventX - this.startMouseX;
1486
+ let changedX = totalDiffX;
1487
+ const newWidth = this.width + changedX * (isLeft ? -1 : 1);
1488
+ // if overcrossed min width
1489
+ if (newWidth < this.minW) {
1490
+ changedX = -(this.width - this.minW) * (isLeft ? -1 : 1);
1491
+ }
1492
+ // if overcrossed max width
1493
+ if (this.maxW && newWidth > this.maxW) {
1494
+ changedX = (this.maxW - this.width) * (isLeft ? 1 : 1);
1495
+ }
1496
+ this.changeX = changedX;
1497
+ if (this.activeResizer) {
1498
+ if (!isLeft) {
1499
+ this.activeResizer.style.right = `${-this.changeX}px`;
1500
+ }
1501
+ else {
1502
+ this.activeResizer.style.left = `${this.changeX}px`;
1503
+ }
1504
+ }
1505
+ }
1506
+ this.emitEvent(ResizeEvents.move);
1507
+ }
1508
+ handleDown(event) {
1509
+ if (event.defaultPrevented) {
1510
+ return;
1511
+ }
1512
+ // 右键不触发拖拽
1513
+ if (!ResizeDirective.isTouchEvent(event) && event.button !== 0) {
1514
+ return;
1515
+ }
1516
+ // stop other events if resize in progress
1517
+ event.preventDefault();
1518
+ this.dropInitial();
1519
+ for (let elClass in RESIZE_MASK) {
1520
+ const target = event.target;
1521
+ if (this.$el.contains(target) && (target === null || target === void 0 ? void 0 : target.classList.contains(elClass))) {
1522
+ document.body.style.cursor = RESIZE_MASK[elClass].cursor;
1523
+ if (ResizeDirective.isTouchEvent(event)) {
1524
+ this.setInitials(event.touches[0], target);
1525
+ }
1526
+ else {
1527
+ event.preventDefault && event.preventDefault();
1528
+ this.setInitials(event, target);
1529
+ }
1530
+ this.resizeState = RESIZE_MASK[elClass].bit;
1531
+ const eventName = ResizeEvents.start;
1532
+ this.emitEvent(eventName);
1533
+ break;
1534
+ }
1535
+ }
1536
+ this.bindMove();
1537
+ }
1538
+ handleUp(e) {
1539
+ e.preventDefault();
1540
+ if (this.resizeState !== 0) {
1541
+ this.resizeState = 0;
1542
+ document.body.style.cursor = '';
1543
+ // 只有当宽度实际发生变化时才触发 resize:end 事件
1544
+ // 允许 1px 的误差,避免微小的抖动触发调整
1545
+ if (Math.abs(this.changeX) > 1 || Math.abs(this.changeY) > 1) {
1546
+ const eventName = ResizeEvents.end;
1547
+ this.emitEvent(eventName);
1548
+ }
1549
+ }
1550
+ this.dropInitial();
1551
+ this.unbindMove();
1552
+ }
1553
+ setInitials({ clientX, clientY }, target) {
1554
+ var _a, _b, _c, _d;
1555
+ const computedStyle = getComputedStyle(this.$el);
1556
+ this.$el.classList.add('active');
1557
+ this.activeResizer = target;
1558
+ if (this.disableCalcMap & DISABLE_MASK.w) {
1559
+ this.startMouseX = clientX; // 记录初始鼠标位置
1560
+ this.width = this.$el.clientWidth;
1561
+ this.parent.width = (_b = (_a = this.$el.parentElement) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : 0;
1562
+ // min width: 需要考虑 padding 和 border
1563
+ const minPaddingX = parseFloat(computedStyle.paddingLeft) +
1564
+ parseFloat(computedStyle.paddingRight);
1565
+ const minBorderX = parseFloat(computedStyle.borderLeftWidth) +
1566
+ parseFloat(computedStyle.borderRightWidth);
1567
+ this.minW = Math.max(minPaddingX + minBorderX, this.initialProps.minWidth || 0);
1568
+ // max width
1569
+ if (this.initialProps.maxWidth) {
1570
+ this.maxW = Math.max(this.width, this.initialProps.maxWidth);
1571
+ }
1572
+ }
1573
+ if (this.disableCalcMap & DISABLE_MASK.h) {
1574
+ this.startMouseY = clientY; // 记录初始鼠标位置
1575
+ this.height = this.$el.clientHeight;
1576
+ this.parent.height = (_d = (_c = this.$el.parentElement) === null || _c === void 0 ? void 0 : _c.clientHeight) !== null && _d !== void 0 ? _d : 0;
1577
+ // min height
1578
+ const minPaddingY = parseFloat(computedStyle.paddingTop) +
1579
+ parseFloat(computedStyle.paddingBottom);
1580
+ this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);
1581
+ // max height
1582
+ if (this.initialProps.maxHeight) {
1583
+ this.maxH = Math.max(this.height, this.initialProps.maxHeight);
1584
+ }
1585
+ }
1586
+ }
1587
+ dropInitial() {
1588
+ this.changeX = this.changeY = this.minW = this.minH;
1589
+ this.width = this.height = 0;
1590
+ if (this.activeResizer) {
1591
+ this.activeResizer.removeAttribute('style');
1592
+ }
1593
+ this.$el.classList.remove('active');
1594
+ this.activeResizer = undefined;
1595
+ }
1596
+ bindMove() {
1597
+ document.documentElement.addEventListener('mouseup', this.mouseUpFunc, true);
1598
+ document.documentElement.addEventListener('touchend', this.mouseUpFunc, true);
1599
+ document.documentElement.addEventListener('mousemove', this.mouseMoveFunc, true);
1600
+ document.documentElement.addEventListener('touchmove', this.mouseMoveFunc, true);
1601
+ document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);
1602
+ // 右键按下时取消拖拽
1603
+ document.documentElement.addEventListener('mousedown', this.handleRightClickFunc, true);
1604
+ document.documentElement.addEventListener('contextmenu', this.handleContextMenuFunc, true);
1605
+ }
1606
+ unbindMove() {
1607
+ document.documentElement.removeEventListener('mouseup', this.mouseUpFunc, true);
1608
+ document.documentElement.removeEventListener('touchend', this.mouseUpFunc, true);
1609
+ document.documentElement.removeEventListener('mousemove', this.mouseMoveFunc, true);
1610
+ document.documentElement.removeEventListener('touchmove', this.mouseMoveFunc, true);
1611
+ document.documentElement.removeEventListener('mouseleave', this.mouseUpFunc);
1612
+ document.documentElement.removeEventListener('mousedown', this.handleRightClickFunc, true);
1613
+ document.documentElement.removeEventListener('contextmenu', this.handleContextMenuFunc, true);
1614
+ }
1615
+ // 右键按下时取消拖拽
1616
+ handleRightClick(e) {
1617
+ if (e.button === 2 && this.resizeState !== 0) {
1618
+ e.preventDefault();
1619
+ this.cancelResize();
1620
+ }
1621
+ }
1622
+ // 阻止右键菜单
1623
+ handleContextMenu(e) {
1624
+ if (this.resizeState !== 0) {
1625
+ e.preventDefault();
1626
+ }
1627
+ }
1628
+ // 取消拖拽(不触发 resize:end 事件)
1629
+ cancelResize() {
1630
+ this.resizeState = 0;
1631
+ document.body.style.cursor = '';
1632
+ this.dropInitial();
1633
+ this.unbindMove();
1634
+ }
1635
+ }
1636
+
1637
+ const ResizableElement = (props, children) => {
1638
+ const resizeEls = [];
1639
+ const directive = (props.canResize &&
1640
+ new ResizeDirective(props, e => {
1641
+ var _a;
1642
+ if (e.eventName === ResizeEvents.end) {
1643
+ (_a = props.onResize) === null || _a === void 0 ? void 0 : _a.call(props, e);
1644
+ }
1645
+ })) ||
1646
+ null;
1647
+ if (props.active) {
1648
+ if (props.canResize) {
1649
+ for (let p in props.active) {
1650
+ resizeEls.push(index.h("div", { onClick: e => e.preventDefault(), onDblClick: e => {
1651
+ e.preventDefault();
1652
+ e.stopPropagation();
1653
+ }, onMouseDown: (e) => directive === null || directive === void 0 ? void 0 : directive.handleDown(e), onTouchStart: (e) => directive === null || directive === void 0 ? void 0 : directive.handleDown(e), class: `resizable resizable-${props.active[p]}` }));
1654
+ }
1655
+ }
1656
+ else {
1657
+ for (let _p in props.active) {
1658
+ resizeEls.push(index.h("div", { onClick: e => e.preventDefault(), onTouchStart: (e) => e.preventDefault(), onDblClick: e => {
1659
+ e.preventDefault();
1660
+ e.stopPropagation();
1661
+ }, class: `no-resize` }));
1662
+ }
1663
+ }
1664
+ }
1665
+ return (index.h("div", Object.assign({}, props, { ref: e => e && (directive === null || directive === void 0 ? void 0 : directive.set(e)) }),
1666
+ children,
1667
+ resizeEls));
1668
+ };
1669
+
1670
+ const ON_COLUMN_CLICK = 'columnclick';
1671
+ const HEADER_NOT_DRAGGABLE_CLASS = 'rgHeaderCell-not-draggable';
1672
+ const HeaderCellRenderer = ({ data, props, additionalData }, children) => {
1673
+ let colTemplate = (data === null || data === void 0 ? void 0 : data.name) || '';
1674
+ let cellProps = props;
1675
+ if (data === null || data === void 0 ? void 0 : data.columnTemplate) {
1676
+ colTemplate = data.columnTemplate(index.h, data, additionalData);
1677
+ }
1678
+ if (data === null || data === void 0 ? void 0 : data.columnProperties) {
1679
+ const extra = data.columnProperties(data);
1680
+ if (extra) {
1681
+ cellProps = doPropMerge(props, extra);
1682
+ }
1683
+ }
1684
+ // 添加 data-draggable 属性
1685
+ const dataAny = data;
1686
+ const isDraggable = (dataAny === null || dataAny === void 0 ? void 0 : dataAny.draggable) !== false;
1687
+ const mergedClass = typeof cellProps.class === 'string'
1688
+ ? { [cellProps.class]: true }
1689
+ : (cellProps.class || {});
1690
+ const draggableClass = Object.assign(Object.assign({}, mergedClass), { [HEADER_NOT_DRAGGABLE_CLASS]: !isDraggable });
1691
+ const resizeProps = Object.assign(Object.assign({}, cellProps), { class: draggableClass, 'data-draggable': isDraggable ? 'true' : 'false', onMouseDown(e) {
1692
+ dispatch(e.currentTarget, ON_COLUMN_CLICK, {
1693
+ data,
1694
+ event: e,
1695
+ });
1696
+ } });
1697
+ // 为 header-content 准备属性
1698
+ const headerContentProps = {};
1699
+ // 如果配置了 tooltip,添加 data-tooltip 属性
1700
+ if (dataAny === null || dataAny === void 0 ? void 0 : dataAny.tooltip) {
1701
+ headerContentProps['data-tooltip'] = dataAny.tooltip;
1702
+ }
1703
+ // 如果没有配置 tooltip 但有 name,默认使用 name 作为 tooltip
1704
+ else if ((data === null || data === void 0 ? void 0 : data.name) && typeof data.name === 'string') {
1705
+ headerContentProps['data-tooltip'] = data.name;
1706
+ }
1707
+ if (data === null || data === void 0 ? void 0 : data.uniqueId)
1708
+ headerContentProps['revo-grid-uid'] = data.uniqueId;
1709
+ return (index.h(ResizableElement, Object.assign({}, resizeProps),
1710
+ index.h("div", Object.assign({ class: "header-content" }, headerContentProps), colTemplate),
1711
+ children));
1712
+ };
1713
+
1714
+ exports.ColumnService = ColumnService;
1715
+ exports.GROUPING_ROW_TYPE = GROUPING_ROW_TYPE;
1716
+ exports.GROUP_CHILDREN_INDICES = GROUP_CHILDREN_INDICES;
1717
+ exports.GROUP_COLUMN_PROP = GROUP_COLUMN_PROP;
1718
+ exports.GROUP_DEPTH = GROUP_DEPTH;
1719
+ exports.GROUP_EXPANDED = GROUP_EXPANDED;
1720
+ exports.GROUP_EXPAND_BTN = GROUP_EXPAND_BTN;
1721
+ exports.GROUP_EXPAND_EVENT = GROUP_EXPAND_EVENT;
1722
+ exports.GROUP_ORIGINAL_INDEX = GROUP_ORIGINAL_INDEX;
1723
+ exports.HeaderCellRenderer = HeaderCellRenderer;
1724
+ exports.ON_COLUMN_CLICK = ON_COLUMN_CLICK;
1725
+ exports.PSEUDO_GROUP_COLUMN = PSEUDO_GROUP_COLUMN;
1726
+ exports.PSEUDO_GROUP_ITEM = PSEUDO_GROUP_ITEM;
1727
+ exports.PSEUDO_GROUP_ITEM_ID = PSEUDO_GROUP_ITEM_ID;
1728
+ exports.PSEUDO_GROUP_ITEM_VALUE = PSEUDO_GROUP_ITEM_VALUE;
1729
+ exports.baseEach = baseEach;
1730
+ exports.columnTypes = columnTypes;
1731
+ exports.convertCollectionToColumns = convertCollectionToColumns;
1732
+ exports.cropCellToMax = cropCellToMax;
1733
+ exports.dispatch = dispatch;
1734
+ exports.dispatchByEvent = dispatchByEvent;
1735
+ exports.gatherGroup = gatherGroup;
1736
+ exports.gatherGrouping = gatherGrouping;
1737
+ exports.getCellData = getCellData;
1738
+ exports.getCellDataParsed = getCellDataParsed;
1739
+ exports.getCellEditor = getCellEditor;
1740
+ exports.getCellRaw = getCellRaw;
1741
+ exports.getColumnByProp = getColumnByProp;
1742
+ exports.getColumnSizes = getColumnSizes;
1743
+ exports.getColumnType = getColumnType;
1744
+ exports.getColumns = getColumns;
1745
+ exports.getExpanded = getExpanded;
1746
+ exports.getGroupingName = getGroupingName;
1747
+ exports.getParsedGroup = getParsedGroup;
1748
+ exports.getRange = getRange;
1749
+ exports.getSource = getSource;
1750
+ exports.getStretchColumnOptions = getStretchColumnOptions;
1751
+ exports.isColGrouping = isColGrouping;
1752
+ exports.isGrouping = isGrouping;
1753
+ exports.isGroupingColumn = isGroupingColumn;
1754
+ exports.isRangeSingleCell = isRangeSingleCell;
1755
+ exports.isRowDragService = isRowDragService;
1756
+ exports.isRowType = isRowType;
1757
+ exports.isSameGroup = isSameGroup;
1758
+ exports.measureEqualDepth = measureEqualDepth;
1759
+ exports.mergeAdjacentGroups = mergeAdjacentGroups;
1760
+ exports.nextCell = nextCell;
1761
+ exports.reduce = reduce;
1762
+ exports.rowTypes = rowTypes;
1763
+ exports.toInteger = toInteger;
1764
+ //# sourceMappingURL=header-cell-renderer-D-RjAVfe.js.map
1765
+
1766
+ //# sourceMappingURL=header-cell-renderer-D-RjAVfe.js.map