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 @@
1
+ {"version":3,"file":"drag.handler.js","sourceRoot":"","sources":["../../../src/plugins/customColumnDrag/drag.handler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 拖拽处理器\n * 支持分组列的拖拽\n */\nimport type { ColumnRegular } from '@type';\nimport type { CustomDragEventDetails, DropTargetType } from './types';\n\nconst DRAG_THRESHOLD = 5;\n\nexport class DragHandler {\n private isDragging = false;\n private isPreparing = false;\n \n private startX = 0;\n private startY = 0;\n \n // 源信息\n private sourceCell: HTMLElement | null = null;\n private sourceRowIndex = -1;\n private sourceColumnIndex = -1;\n private sourceColumn: ColumnRegular | null = null;\n private sourceIsChild = false;\n private sourceGroupName?: string;\n \n // 拖拽元素\n private dragGhost: HTMLDivElement | null = null;\n private dropIndicator: HTMLDivElement | null = null;\n \n // 目标信息\n private currentDropTarget: HTMLElement | null = null;\n private dropPosition: 'left' | 'right' = 'left';\n private targetType: DropTargetType = 'normal';\n private targetGroupName?: string;\n private targetChildIndex?: number;\n\n // 缓存列数量(避免每次 mousemove 都重新计算)\n private cachedColumnCounts: { pinStart: number; normal: number; pinEnd: number } | null = null;\n\n // 拖拽偏移量(鼠标相对于源单元格左上角的偏移)\n private dragOffsetX = 0;\n private dragOffsetY = 0;\n\n // 绑定的事件处理器引用(用于移除监听)\n private boundMouseDown: (e: MouseEvent) => void;\n private initTimeout: number | null = null;\n private isDestroyed = false;\n \n // 拖拽延迟定时器\n private dragDelayTimer?: number;\n\n // 延迟启动拖拽期间,记录最新鼠标位置(避免使用旧坐标导致 ghost 偏移)\n private pendingDragClientX = 0;\n private pendingDragClientY = 0;\n private pendingDragMoveListener?: (e: MouseEvent) => void;\n \n // 双击检测\n private lastClickTime = 0;\n private lastClickTarget: HTMLElement | null = null;\n\n constructor(\n private revogrid: HTMLRevoGridElement,\n private canDrag: (column: ColumnRegular, rowIndex: number, columnIndex: number) => boolean,\n private onDragUpdate: (details: CustomDragEventDetails) => void,\n private cannotDropBefore?: (column: ColumnRegular) => boolean,\n ) {\n this.boundMouseDown = this.onMouseDown.bind(this);\n this.init();\n }\n\n private init() {\n this.initTimeout = window.setTimeout(() => {\n if (!this.isDestroyed) {\n this.revogrid.addEventListener('mousedown', this.boundMouseDown, true);\n }\n this.initTimeout = null;\n }, 500);\n }\n\n private onMouseDown(e: MouseEvent) {\n // 只响应左键点击\n if (e.button !== 0) {\n return;\n }\n\n const target = e.target as HTMLElement;\n \n // 检查是否点击在可交互元素上(按钮、链接、输入框等)\n if (this.isInteractiveElement(target)) {\n return;\n }\n \n const headerCell = target.closest('.rgHeaderCell') as HTMLElement | null;\n if (!headerCell) return;\n\n // 双击检测:如果在300ms内点击同一个单元格两次,认为是双击,不触发拖拽\n const now = Date.now();\n const timeSinceLastClick = now - this.lastClickTime;\n const isSameTarget = this.lastClickTarget === headerCell;\n \n if (isSameTarget && timeSinceLastClick < 300) {\n // 清除之前的定时器\n if (this.dragDelayTimer) {\n clearTimeout(this.dragDelayTimer);\n this.dragDelayTimer = undefined;\n }\n this.stopPendingDragTracking();\n // 重置状态\n this.lastClickTime = 0;\n this.lastClickTarget = null;\n this.sourceCell = null;\n this.sourceColumn = null;\n return;\n }\n \n // 记录本次点击\n this.lastClickTime = now;\n this.lastClickTarget = headerCell;\n\n // 检查是否是编组头(编组头不允许拖拽)\n if (this.isGroupHeader(headerCell)) {\n return;\n }\n\n // 检查是否点击在 resize 区域(右边缘 8px 范围内)\n if (this.isInResizeZone(e, headerCell)) {\n return;\n }\n\n // 解析源列信息\n const sourceInfo = this.parseHeaderCell(headerCell);\n if (!sourceInfo) return;\n\n const { column, rowIndex, columnIndex, isChild, groupName } = sourceInfo;\n\n if (!this.canDrag(column, rowIndex, columnIndex)) {\n return;\n }\n\n // 保存拖拽信息\n this.startX = e.clientX;\n this.startY = e.clientY;\n this.sourceCell = headerCell;\n this.sourceRowIndex = rowIndex;\n this.sourceColumnIndex = columnIndex;\n this.sourceColumn = column;\n this.sourceIsChild = isChild;\n this.sourceGroupName = groupName;\n\n // 阻止默认行为,防止触发文本选中\n e.preventDefault();\n \n // 延迟100ms开始拖拽,避免双击时触发\n this.startPendingDragTracking(e);\n this.dragDelayTimer = window.setTimeout(() => {\n this.dragDelayTimer = undefined;\n const clientX = this.pendingDragClientX;\n const clientY = this.pendingDragClientY;\n this.stopPendingDragTracking();\n this.startDrag(clientX, clientY);\n }, 100);\n \n // 监听 mouseup,如果在延迟期间释放鼠标,取消拖拽\n const cancelDrag = () => {\n if (this.dragDelayTimer) {\n clearTimeout(this.dragDelayTimer);\n this.dragDelayTimer = undefined;\n this.stopPendingDragTracking();\n // 清理拖拽状态\n this.sourceCell = null;\n this.sourceColumn = null;\n }\n document.removeEventListener('mouseup', cancelDrag);\n };\n document.addEventListener('mouseup', cancelDrag);\n }\n\n /**\n * 检查是否点击在可交互元素上\n */\n private isInteractiveElement(target: HTMLElement): boolean {\n // 检查元素本身\n const tagName = target.tagName.toLowerCase();\n if (['button', 'a', 'input', 'select', 'textarea'].includes(tagName)) {\n return true;\n }\n \n // 检查是否有特定的类名(如 header-more-icon)\n if (target.classList.contains('header-more-icon')) {\n return true;\n }\n \n // 检查是否有 onclick 事件\n if (target.onclick || target.getAttribute('onclick')) {\n return true;\n }\n \n // 检查父元素是否是可交互元素\n const parent = target.parentElement;\n if (parent && parent !== target.closest('.rgHeaderCell')) {\n const parentTagName = parent.tagName.toLowerCase();\n if (['button', 'a'].includes(parentTagName)) {\n return true;\n }\n if (parent.classList.contains('header-more-icon')) {\n return true;\n }\n }\n \n return false;\n }\n\n /**\n * 检查是否点击在 resize 区域(单元格右边缘)\n */\n private isInResizeZone(e: MouseEvent, cell: HTMLElement): boolean {\n const rect = cell.getBoundingClientRect();\n const resizeZoneWidth = 8; // resize 触发区域宽度\n \n // 检查是否在右边缘\n const isNearRightEdge = e.clientX >= rect.right - resizeZoneWidth;\n \n // 也检查是否点击了 resize 相关的元素\n const target = e.target as HTMLElement;\n const isResizeElement = \n target.classList.contains('resize') ||\n target.classList.contains('resizable') ||\n target.closest('.resize') !== null ||\n target.closest('.header-resize') !== null;\n \n return isNearRightEdge || isResizeElement;\n }\n\n /**\n * 获取 viewport 类型\n */\n private getViewportType(cell: HTMLElement): 'colPinStart' | 'rgCol' | 'colPinEnd' {\n const headerArea = cell.closest('.header-area-colPinStart, .header-area-rgCol, .header-area-colPinEnd');\n if (headerArea) {\n if (headerArea.classList.contains('header-area-colPinStart')) {\n return 'colPinStart';\n }\n if (headerArea.classList.contains('header-area-colPinEnd')) {\n return 'colPinEnd';\n }\n return 'rgCol';\n }\n \n // 默认返回中间区域\n return 'rgCol';\n }\n\n /**\n * 获取列数量缓存(拖拽开始时计算一次,拖拽结束时清除)\n */\n private getColumnCounts(): { pinStart: number; normal: number; pinEnd: number } {\n if (this.cachedColumnCounts) {\n return this.cachedColumnCounts;\n }\n\n const columns = this.revogrid.columns as any[];\n if (!columns) {\n return { pinStart: 0, normal: 0, pinEnd: 0 };\n }\n\n let pinStart = 0;\n let normal = 0;\n let pinEnd = 0;\n \n for (const col of columns) {\n if (col.children) {\n for (const child of col.children) {\n if (child.pin === 'colPinStart') pinStart++;\n else if (child.pin === 'colPinEnd') pinEnd++;\n else normal++;\n }\n } else {\n if (col.pin === 'colPinStart') pinStart++;\n else if (col.pin === 'colPinEnd') pinEnd++;\n else normal++;\n }\n }\n\n this.cachedColumnCounts = { pinStart, normal, pinEnd };\n return this.cachedColumnCounts;\n }\n\n /**\n * 计算全局扁平索引\n * 需要根据 viewport 类型计算偏移量\n */\n private calculateGlobalIndex(localIndex: number, viewportType: 'colPinStart' | 'rgCol' | 'colPinEnd'): number {\n const counts = this.getColumnCounts();\n\n if (viewportType === 'colPinStart') {\n return localIndex;\n } else if (viewportType === 'rgCol') {\n return counts.pinStart + localIndex;\n } else {\n return counts.pinStart + counts.normal + localIndex;\n }\n }\n\n /**\n * 解析表头单元格信息\n */\n private parseHeaderCell(cell: HTMLElement): {\n column: ColumnRegular;\n rowIndex: number;\n columnIndex: number;\n isChild: boolean;\n groupName?: string;\n } | null {\n const colIndexAttr = cell.getAttribute('data-rgcol');\n const localIndex = colIndexAttr ? parseInt(colIndexAttr, 10) : -1;\n \n // 获取 viewport 类型并计算全局索引\n const viewportType = this.getViewportType(cell);\n const columnIndex = this.calculateGlobalIndex(localIndex, viewportType);\n \n // 判断是否是分组行(第一行)还是子列行(第二行)\n const isGroupRow = cell.closest('.group-rgRow') !== null;\n const rowIndex = isGroupRow ? 0 : 1;\n \n // 判断是否是子列(在第二行且有父分组)\n const hasParent = this.hasParentGroup(cell);\n const isChild = !isGroupRow && hasParent;\n \n // 获取分组名\n let groupName: string | undefined;\n if (isChild) {\n groupName = this.getParentGroupName(cell);\n } else if (this.isGroupHeader(cell)) {\n groupName = cell.querySelector('.header-content')?.textContent || undefined;\n }\n\n // 尝试从 revogrid 获取真实的列配置\n const column = this.getColumnByFlatIndex(columnIndex) || {\n prop: colIndexAttr || String(columnIndex),\n name: cell.querySelector('.header-content')?.textContent || '',\n } as ColumnRegular;\n\n return { column, rowIndex, columnIndex, isChild, groupName };\n }\n\n /**\n * 根据扁平索引获取真实的列配置\n */\n private getColumnByFlatIndex(flatIndex: number): ColumnRegular | null {\n const columns = this.revogrid.columns as any[];\n if (!columns) return null;\n\n let currentIndex = 0;\n for (const col of columns) {\n if (col.children) {\n for (const child of col.children) {\n if (currentIndex === flatIndex) {\n return child;\n }\n currentIndex++;\n }\n } else {\n if (currentIndex === flatIndex) {\n return col;\n }\n currentIndex++;\n }\n }\n return null;\n }\n\n /**\n * 判断单元格是否有父分组(是否是分组的子列)\n * 从 DOM 结构看:\n * - group-rgRow: 包含分组头和普通列(第一行)\n * - header-rgRow actual-rgRow: 包含子列(第二行)\n */\n private hasParentGroup(cell: HTMLElement): boolean {\n // 检查是否在第二行(actual-rgRow)且不在 group-rgRow 中\n const isInActualRow = cell.closest('.actual-rgRow') !== null;\n const isInGroupRow = cell.closest('.group-rgRow') !== null;\n return isInActualRow && !isInGroupRow;\n }\n\n /**\n * 判断单元格是否是分组头\n * 从 DOM 结构看:\n * - 分组头在 group-rgRow 中,但没有 merged-header 类\n * - 普通列在 group-rgRow 中,有 merged-header 类\n * - 或者检查是否在 header-rgRow.group 中\n * - 特殊情况:当没有分组时(groupingDepth === 0),所有列都在 group-rgRow 中且没有 merged-header 类,但它们不是分组头\n */\n private isGroupHeader(cell: HTMLElement): boolean {\n // 必须在 group-rgRow 中\n if (!cell.closest('.group-rgRow')) {\n return false;\n }\n \n // 检查是否有 grouping-depth 属性(表示有分组)\n const groupingDepth = cell.getAttribute('data-grouping-depth');\n const hasGrouping = groupingDepth && parseInt(groupingDepth, 10) > 0;\n \n // 如果没有分组,则不是分组头\n if (!hasGrouping) {\n return false;\n }\n \n // 没有 merged-header 类就是分组头\n if (!cell.classList.contains('merged-header')) {\n return true;\n }\n \n // 或者 colspan > 1\n const colspan = cell.getAttribute('colspan') || cell.getAttribute('aria-colspan');\n return colspan ? parseInt(colspan, 10) > 1 : false;\n }\n\n /**\n * 获取父分组名称\n * 从 DOM 结构看,子列在 actual-rgRow 中,分组头在 group-rgRow 中\n * 需要根据子列的位置找到对应的分组头\n */\n private getParentGroupName(cell: HTMLElement): string | undefined {\n // 获取子列的位置信息\n const cellRect = cell.getBoundingClientRect();\n const cellCenterX = cellRect.left + cellRect.width / 2;\n \n // 从当前单元格向上查找 header-wrapper,然后找 group-rgRow\n const headerWrapper = cell.closest('.header-wrapper');\n if (!headerWrapper) return undefined;\n \n const groupRow = headerWrapper.querySelector('.group-rgRow');\n if (!groupRow) return undefined;\n \n // 查找 group-rgRow 中不是 merged-header 的单元格(即分组头)\n // 或者查找 header-rgRow.group 中的单元格\n const headerGroupRow = headerWrapper.querySelector('.header-rgRow.group');\n if (headerGroupRow) {\n const groupHeaders = Array.from(headerGroupRow.querySelectorAll('.rgHeaderCell'));\n for (const header of groupHeaders) {\n const headerRect = header.getBoundingClientRect();\n // 检查子列是否在这个分组头的水平范围内\n if (cellCenterX >= headerRect.left && cellCenterX <= headerRect.right) {\n return header.querySelector('.header-content')?.textContent || undefined;\n }\n }\n }\n \n // 备用方案:在 group-rgRow 中查找覆盖当前位置的单元格\n const allHeaders = Array.from(groupRow.querySelectorAll('.rgHeaderCell'));\n for (const header of allHeaders) {\n const headerRect = header.getBoundingClientRect();\n // 检查子列是否在这个表头的水平范围内\n if (cellCenterX >= headerRect.left && cellCenterX <= headerRect.right) {\n // 检查这个表头是否是分组头(不是 merged-header 或者宽度较大)\n const headerText = header.querySelector('.header-content')?.textContent;\n if (headerText) {\n return headerText;\n }\n }\n }\n \n return undefined;\n }\n\n private startPendingDragTracking(e: MouseEvent) {\n this.pendingDragClientX = e.clientX;\n this.pendingDragClientY = e.clientY;\n this.stopPendingDragTracking();\n\n this.pendingDragMoveListener = (moveEvent: MouseEvent) => {\n this.pendingDragClientX = moveEvent.clientX;\n this.pendingDragClientY = moveEvent.clientY;\n };\n\n document.addEventListener('mousemove', this.pendingDragMoveListener, true);\n }\n\n private stopPendingDragTracking() {\n if (!this.pendingDragMoveListener) return;\n document.removeEventListener('mousemove', this.pendingDragMoveListener, true);\n this.pendingDragMoveListener = undefined;\n }\n\n private onPrepareMove = (e: MouseEvent) => {\n if (!this.isPreparing || !this.sourceCell) return;\n\n const deltaX = Math.abs(e.clientX - this.startX);\n const deltaY = Math.abs(e.clientY - this.startY);\n\n if (deltaX > DRAG_THRESHOLD || deltaY > DRAG_THRESHOLD) {\n this.startDrag(e.clientX, e.clientY);\n }\n };\n\n private onPrepareUp = () => {\n this.cancelPrepare();\n };\n\n private onContextMenu = (e: MouseEvent) => {\n // 右键点击时取消准备状态\n e.preventDefault();\n this.cancelPrepare();\n };\n\n private cancelPrepare() {\n this.isPreparing = false;\n this.sourceCell = null;\n document.removeEventListener('mousemove', this.onPrepareMove);\n document.removeEventListener('mouseup', this.onPrepareUp);\n document.removeEventListener('contextmenu', this.onContextMenu);\n }\n\n private startDrag(clientX: number, clientY: number) {\n if (!this.sourceCell || !this.sourceColumn) return;\n this.stopPendingDragTracking();\n\n // 在加拖拽 class 前先取位置,保证按下瞬间视觉位置不跳\n const sourceRect = this.sourceCell.getBoundingClientRect();\n\n this.isDragging = true;\n this.revogrid.classList.add('custom-column-drag-active');\n // 添加类名禁用单元格动画\n this.revogrid.classList.add('column-drag-start');\n // 清理 resize 插件的 hover 句柄线,避免与列拖拽定位线叠加\n this.revogrid.querySelectorAll('.resize-handle-hover').forEach(el => {\n el.classList.remove('resize-handle-hover');\n });\n\n // 禁止拖拽时选中文本\n document.body.style.userSelect = 'none';\n\n // 计算鼠标相对于源单元格的偏移量\n this.dragOffsetX = clientX - sourceRect.left;\n this.dragOffsetY = clientY - sourceRect.top;\n\n this.createDragGhost(sourceRect);\n this.createDropIndicator();\n\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('contextmenu', this.onContextMenuDrag);\n }\n\n private createDragGhost(sourceRect: DOMRect) {\n if (!this.sourceCell) return;\n\n const sourceCellStyle = window.getComputedStyle(this.sourceCell);\n const sourceContentEl = this.sourceCell.querySelector('.header-content') as HTMLElement | null;\n const sourceContentStyle = sourceContentEl ? window.getComputedStyle(sourceContentEl) : null;\n const content = sourceContentEl?.textContent || '';\n const sourceTextAlign = sourceContentStyle?.textAlign || sourceCellStyle.textAlign;\n const textAlign = sourceTextAlign === 'start' ? 'left' : sourceTextAlign === 'end' ? 'right' : sourceTextAlign;\n const justifyContent = textAlign === 'center' ? 'center' : textAlign === 'right' ? 'flex-end' : 'flex-start';\n const lineHeight =\n sourceContentStyle?.lineHeight && sourceContentStyle.lineHeight !== 'normal'\n ? sourceContentStyle.lineHeight\n : 'normal';\n \n const letterSpacing = sourceContentStyle?.letterSpacing || sourceCellStyle.letterSpacing;\n const fontFamily = sourceContentStyle?.fontFamily || sourceCellStyle.fontFamily;\n const fontWeight = sourceContentStyle?.fontWeight || sourceCellStyle.fontWeight;\n const getPaddingValues = (style: CSSStyleDeclaration) => [\n style.paddingTop,\n style.paddingRight,\n style.paddingBottom,\n style.paddingLeft,\n ];\n const hasNonZeroPadding = (values: string[]) => values.some(v => parseFloat(v) > 0);\n const contentWrapperEl =\n (sourceContentEl?.querySelector('.header-content-wrapper') as HTMLElement | null) || null;\n const contentWrapperPaddingValues = contentWrapperEl\n ? getPaddingValues(window.getComputedStyle(contentWrapperEl))\n : null;\n const contentPaddingValues = sourceContentStyle ? getPaddingValues(sourceContentStyle) : null;\n const cellPaddingValues = getPaddingValues(sourceCellStyle);\n const paddingValues =\n contentWrapperPaddingValues && hasNonZeroPadding(contentWrapperPaddingValues)\n ? contentWrapperPaddingValues\n : contentPaddingValues && hasNonZeroPadding(contentPaddingValues)\n ? contentPaddingValues\n : hasNonZeroPadding(cellPaddingValues)\n ? cellPaddingValues\n : ['0px', '9px', '0px', '9px'];\n const padding = `${paddingValues[0]} ${paddingValues[1]} ${paddingValues[2]} ${paddingValues[3]}`;\n\n this.dragGhost = document.createElement('div');\n this.dragGhost.className = 'rv-grid-heading-drag-ghost';\n this.dragGhost.style.cssText = `\n position: fixed;\n left: ${sourceRect.left + 1}px;\n top: ${sourceRect.top}px;\n width: ${sourceRect.width}px;\n height: ${sourceRect.height}px;\n margin: 0;\n transform: none;\n display: flex;\n align-items: center;\n justify-content: ${justifyContent};\n line-height: ${lineHeight};\n padding: ${padding};\n pointer-events: none;\n z-index: 1000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-sizing: border-box;\n font-size: 13px;\n font-family: ${fontFamily};\n font-weight: ${fontWeight};\n letter-spacing: ${letterSpacing};\n text-align: ${textAlign};\n text-transform: ${sourceCellStyle.textTransform};\n direction: ${sourceCellStyle.direction};\n `;\n\n const ghostText = document.createElement('span');\n ghostText.textContent = content;\n ghostText.style.cssText = `\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n this.dragGhost.appendChild(ghostText);\n\n document.body.appendChild(this.dragGhost);\n }\n\n private createDropIndicator() {\n this.dropIndicator = document.createElement('div');\n this.dropIndicator.className = 'custom-drop-indicator';\n this.dropIndicator.style.cssText = `\n position: fixed;\n width: 2px;\n background-color: #0f87ff;\n pointer-events: none;\n z-index: 999;\n display: none;\n `;\n document.body.appendChild(this.dropIndicator);\n }\n\n private onMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return;\n\n // 更新浮动副本位置(保持鼠标相对于ghost的位置不变)\n if (this.dragGhost) {\n this.dragGhost.style.left = `${e.clientX - this.dragOffsetX}px`;\n this.dragGhost.style.top = `${e.clientY - this.dragOffsetY}px`;\n }\n\n // 查找目标列\n const target = this.getTargetFromPoint(e.clientX, e.clientY);\n \n if (target && target !== this.sourceCell) {\n this.currentDropTarget = target;\n \n // 解析目标信息\n const targetInfo = this.parseHeaderCell(target);\n if (targetInfo) {\n // 判断目标类型\n if (targetInfo.isChild) {\n this.targetType = 'child';\n this.targetGroupName = targetInfo.groupName;\n } else if (this.isGroupHeader(target)) {\n this.targetType = 'group';\n this.targetGroupName = targetInfo.groupName;\n } else {\n this.targetType = 'normal';\n this.targetGroupName = undefined;\n }\n }\n \n // 计算定位线位置\n const targetRect = target.getBoundingClientRect();\n const midX = targetRect.left + targetRect.width / 2;\n let dropPosition: 'left' | 'right' = e.clientX < midX ? 'left' : 'right';\n \n // 检查是否试图拖到不可放置列之前\n if (targetInfo && dropPosition === 'left' && this.cannotDropBefore) {\n if (this.cannotDropBefore(targetInfo.column)) {\n // 不允许拖到该列左侧,隐藏指示线\n this.hideDropIndicator();\n this.currentDropTarget = null;\n return;\n }\n }\n \n this.dropPosition = dropPosition;\n \n // 更新定位线 - 高度只在目标单元格范围内\n this.updateDropIndicator(target, this.dropPosition);\n } else {\n this.hideDropIndicator();\n this.currentDropTarget = null;\n }\n };\n\n private updateDropIndicator(target: HTMLElement, position: 'left' | 'right') {\n if (!this.dropIndicator) return;\n\n const targetRect = target.getBoundingClientRect();\n \n // 定位线位置和高度只在目标单元格范围内\n const indicatorX = position === 'left' ? targetRect.left : targetRect.right;\n // 吸附到整像素,避免冻结边界出现半像素渲染导致 2px 线看起来像 1px。\n const indicatorLeft = Math.round(indicatorX - 1);\n this.dropIndicator.style.left = `${indicatorLeft}px`;\n this.dropIndicator.style.top = `${targetRect.top}px`;\n this.dropIndicator.style.height = `${targetRect.height}px`;\n this.dropIndicator.style.display = 'block';\n }\n\n private hideDropIndicator() {\n if (this.dropIndicator) {\n this.dropIndicator.style.display = 'none';\n }\n }\n\n private onMouseUp = (e: MouseEvent) => {\n if (!this.isDragging) return;\n\n // 只响应左键释放\n if (e.button === 0 && this.currentDropTarget && this.sourceColumn) {\n const targetInfo = this.parseHeaderCell(this.currentDropTarget);\n \n if (targetInfo) {\n const details: CustomDragEventDetails = {\n sourceRowIndex: this.sourceRowIndex,\n sourceColumnIndex: this.sourceColumnIndex,\n sourceColumn: this.sourceColumn,\n sourceIsChild: this.sourceIsChild,\n sourceGroupName: this.sourceGroupName,\n targetRowIndex: targetInfo.rowIndex,\n targetColumnIndex: targetInfo.columnIndex,\n targetColumn: targetInfo.column,\n targetType: this.targetType,\n targetGroupName: this.targetGroupName,\n targetChildIndex: this.targetChildIndex,\n dropPosition: this.dropPosition,\n };\n this.onDragUpdate(details);\n }\n }\n\n this.endDrag();\n };\n\n private onContextMenuDrag = (e: MouseEvent) => {\n // 拖拽过程中右键点击,取消拖拽\n if (this.isDragging) {\n e.preventDefault();\n this.endDrag();\n }\n };\n\n private endDrag() {\n this.isDragging = false;\n \n // 恢复文本选中\n document.body.style.userSelect = '';\n \n this.revogrid.classList.remove('custom-column-drag-active');\n \n // 注意:不在这里移除 column-drag-start 类\n // 该类会在 applyColumnMove 完成后移除\n // 如果没有触发 applyColumnMove(位置未改变),则在这里延迟移除\n if (!this.currentDropTarget || this.sourceColumnIndex === -1) {\n setTimeout(() => {\n this.revogrid.classList.remove('column-drag-start');\n }, 50);\n }\n\n if (this.dragGhost) {\n this.dragGhost.remove();\n this.dragGhost = null;\n }\n\n if (this.dropIndicator) {\n this.dropIndicator.remove();\n this.dropIndicator = null;\n }\n\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('contextmenu', this.onContextMenuDrag);\n\n // 重置状态\n this.sourceCell = null;\n this.currentDropTarget = null;\n this.sourceRowIndex = -1;\n this.sourceColumnIndex = -1;\n this.sourceColumn = null;\n this.sourceIsChild = false;\n this.sourceGroupName = undefined;\n this.targetType = 'normal';\n this.targetGroupName = undefined;\n this.targetChildIndex = undefined;\n \n // 清除列数量缓存(列配置可能已变化)\n this.cachedColumnCounts = null;\n\n // 重置拖拽偏移量\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n }\n\n private getTargetFromPoint(x: number, y: number): HTMLElement | null {\n const dragGhostVisibility = this.dragGhost?.style.visibility;\n const dropIndicatorVisibility = this.dropIndicator?.style.visibility;\n\n if (this.dragGhost) this.dragGhost.style.visibility = 'hidden';\n if (this.dropIndicator) this.dropIndicator.style.visibility = 'hidden';\n\n const element = document.elementFromPoint(x, y);\n const target = element?.closest('.rgHeaderCell') as HTMLElement | null;\n\n if (this.dragGhost) this.dragGhost.style.visibility = dragGhostVisibility || '';\n if (this.dropIndicator) this.dropIndicator.style.visibility = dropIndicatorVisibility || '';\n\n return target;\n }\n\n destroy() {\n this.isDestroyed = true;\n \n // 清理初始化定时器\n if (this.initTimeout !== null) {\n clearTimeout(this.initTimeout);\n this.initTimeout = null;\n }\n \n // 清理拖拽延迟定时器\n if (this.dragDelayTimer) {\n clearTimeout(this.dragDelayTimer);\n this.dragDelayTimer = undefined;\n }\n this.stopPendingDragTracking();\n \n this.endDrag();\n this.revogrid.removeEventListener('mousedown', this.boundMouseDown, true);\n }\n}\n"]}
@@ -0,0 +1,282 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ /**
5
+ * 自定义列拖拽插件使用示例
6
+ * 展示如何实现类似 useTable.ts.bak 中的复杂拖拽逻辑
7
+ */
8
+ import { CustomColumnDragPlugin } from "./custom-column-drag.plugin";
9
+ /**
10
+ * 示例 1: 基础用法
11
+ */
12
+ export function example1(grid, providers) {
13
+ const plugin = new CustomColumnDragPlugin(grid, providers, {
14
+ enabled: true,
15
+ canDrag: (column) => {
16
+ const col = column;
17
+ // 不允许拖拽分组列和禁用拖拽的列
18
+ return !col.children && !col.disabledDrag;
19
+ },
20
+ onDragEnd: (details) => {
21
+ console.log('列拖拽完成:', details);
22
+ },
23
+ });
24
+ return plugin;
25
+ }
26
+ /**
27
+ * 示例 2: 支持分组列的拖拽
28
+ */
29
+ export function example2(grid, providers) {
30
+ const plugin = new CustomColumnDragPlugin(grid, providers, {
31
+ enabled: true,
32
+ canDrag: (column, rowIndex) => {
33
+ const col = column;
34
+ // 第一行不允许拖拽分组列
35
+ if (rowIndex === 0 && col.children) {
36
+ return false;
37
+ }
38
+ return !col.disabledDrag;
39
+ },
40
+ onDragEnd: (details) => {
41
+ handleGroupDrag(details);
42
+ },
43
+ });
44
+ return plugin;
45
+ }
46
+ /**
47
+ * 处理分组拖拽逻辑
48
+ */
49
+ function handleGroupDrag(details) {
50
+ const { sourceRowIndex, targetRowIndex, sourceColumn, targetColumn } = details;
51
+ const source = sourceColumn;
52
+ const target = targetColumn;
53
+ // 分组内拖拽(第二行)
54
+ if (targetRowIndex === 1 || sourceRowIndex === 1) {
55
+ handleRow2Drag(source, target);
56
+ }
57
+ else {
58
+ // 跨分组拖拽(第一行)
59
+ handleRow1Drag(source, target);
60
+ }
61
+ }
62
+ /**
63
+ * 处理第二行(分组内)拖拽
64
+ */
65
+ function handleRow2Drag(sourceColumn, targetColumn) {
66
+ if (!targetColumn)
67
+ return;
68
+ // 分组内自己拖到自己
69
+ if (targetColumn.children && targetColumn.children.length > 1) {
70
+ if (targetColumn.children.find(item => item.field === sourceColumn.field)) {
71
+ sourceColumn.groupName = undefined;
72
+ return;
73
+ }
74
+ }
75
+ // 处理分组名称
76
+ if (targetColumn.groupName) {
77
+ sourceColumn.groupName = targetColumn.groupName;
78
+ }
79
+ else if (sourceColumn.groupName) {
80
+ // 检查是否是分组中唯一的列
81
+ const parentHasMultipleChildren = checkParentHasMultipleChildren(sourceColumn);
82
+ if (parentHasMultipleChildren) {
83
+ sourceColumn.groupName = undefined;
84
+ }
85
+ }
86
+ // 处理冻结状态
87
+ if (!sourceColumn.disabledFixed) {
88
+ sourceColumn.$fixed = targetColumn.$fixed;
89
+ }
90
+ }
91
+ /**
92
+ * 处理第一行(跨分组)拖拽
93
+ */
94
+ function handleRow1Drag(sourceColumn, targetColumn) {
95
+ if (!targetColumn)
96
+ return;
97
+ // 如果目标是分组,取分组第一个子列
98
+ let actualTarget = targetColumn;
99
+ if (targetColumn.children && targetColumn.children.length > 0) {
100
+ actualTarget = targetColumn.children[0];
101
+ }
102
+ // 处理冻结状态
103
+ if (!sourceColumn.disabledFixed) {
104
+ sourceColumn.$fixed = actualTarget.$fixed;
105
+ }
106
+ else {
107
+ sourceColumn.$fixed = undefined;
108
+ }
109
+ }
110
+ /**
111
+ * 检查父分组是否有多个子列
112
+ */
113
+ function checkParentHasMultipleChildren(_column) {
114
+ // 这里需要根据实际的列数据结构来实现
115
+ // 示例实现
116
+ return true;
117
+ }
118
+ /**
119
+ * 示例 3: 支持冻结列的拖拽
120
+ */
121
+ export function example3(grid, providers) {
122
+ const plugin = new CustomColumnDragPlugin(grid, providers, {
123
+ enabled: true,
124
+ canDrag: (column) => {
125
+ const col = column;
126
+ return !col.children && !col.disabledDrag;
127
+ },
128
+ onDragEnd: (details) => {
129
+ const { sourceColumn, targetColumn } = details;
130
+ const source = sourceColumn;
131
+ const target = targetColumn;
132
+ // 更新冻结状态
133
+ if (target && !source.disabledFixed) {
134
+ source.$fixed = target.$fixed;
135
+ }
136
+ // 触发列更新回调
137
+ // onColumnsUpdate(updatedColumns);
138
+ },
139
+ });
140
+ return plugin;
141
+ }
142
+ /**
143
+ * 示例 4: 完整的拖拽处理(类似 useTable.ts.bak)
144
+ */
145
+ export function example4(grid, providers, columns, onUpdate) {
146
+ const plugin = new CustomColumnDragPlugin(grid, providers, {
147
+ enabled: true,
148
+ canDrag: (column) => {
149
+ const col = column;
150
+ if (col.disabledDrag || col.children) {
151
+ return false;
152
+ }
153
+ return true;
154
+ },
155
+ onDragEnd: (details) => {
156
+ // 扁平化列数组
157
+ const flatColumns = flattenColumns(columns);
158
+ // 处理拖拽更新
159
+ handleDragUpdate(details, flatColumns);
160
+ // 重新处理和排序
161
+ const processedColumns = processAndSortColumns(flatColumns);
162
+ // 触发更新
163
+ onUpdate(processedColumns);
164
+ },
165
+ });
166
+ // 监听事件
167
+ grid.addEventListener('beforecolumndragend', (e) => {
168
+ const details = e.detail;
169
+ // 特殊处理:0 行 0 列无更新
170
+ if (details.targetRowIndex === 0 && details.targetColumnIndex === 0) {
171
+ e.preventDefault();
172
+ }
173
+ });
174
+ return plugin;
175
+ }
176
+ /**
177
+ * 扁平化列数组
178
+ */
179
+ function flattenColumns(columns) {
180
+ const result = [];
181
+ for (const column of columns) {
182
+ if (column.children && Array.isArray(column.children)) {
183
+ for (const child of column.children) {
184
+ child.groupName = column.title;
185
+ if (column.$fixed) {
186
+ child.$fixed = column.$fixed;
187
+ }
188
+ result.push(child);
189
+ }
190
+ }
191
+ else {
192
+ result.push(column);
193
+ }
194
+ }
195
+ return result;
196
+ }
197
+ /**
198
+ * 处理拖拽更新
199
+ */
200
+ function handleDragUpdate(details, flatColumns) {
201
+ const { targetColumnIndex, dropPosition, sourceColumn, targetColumn } = details;
202
+ const isMovedRight = dropPosition === 'right';
203
+ const source = sourceColumn;
204
+ const target = targetColumn;
205
+ // 计算插入位置
206
+ let insertIndex = targetColumnIndex;
207
+ if (isMovedRight) {
208
+ insertIndex += 1;
209
+ }
210
+ // 移除源列
211
+ const sourceIndex = flatColumns.findIndex(col => col.field === source.field);
212
+ if (sourceIndex !== -1) {
213
+ flatColumns.splice(sourceIndex, 1);
214
+ }
215
+ // 插入到新位置
216
+ if (insertIndex > sourceIndex) {
217
+ insertIndex -= 1;
218
+ }
219
+ flatColumns.splice(insertIndex, 0, source);
220
+ // 更新列属性
221
+ if (target) {
222
+ if (!source.disabledFixed) {
223
+ source.$fixed = target.$fixed;
224
+ }
225
+ if (target.groupName) {
226
+ source.groupName = target.groupName;
227
+ }
228
+ }
229
+ }
230
+ /**
231
+ * 处理和排序列数组
232
+ */
233
+ function processAndSortColumns(columns) {
234
+ const result = [];
235
+ const invisibleColumns = [];
236
+ let currentGroup = null;
237
+ // 排序
238
+ const sortedColumns = columns.sort((a, b) => {
239
+ if (a.$fixed === 'left' && b.$fixed !== 'left')
240
+ return -1;
241
+ if (b.$fixed === 'left' && a.$fixed !== 'left')
242
+ return 1;
243
+ if (!a.$fixed && b.$fixed === 'right')
244
+ return -1;
245
+ if (!b.$fixed && a.$fixed === 'right')
246
+ return 1;
247
+ if (a.$fixed === 'right' && b.$fixed !== 'right')
248
+ return 1;
249
+ if (b.$fixed === 'right' && a.$fixed !== 'right')
250
+ return -1;
251
+ return 0;
252
+ });
253
+ // 处理分组
254
+ for (const column of sortedColumns) {
255
+ if (column.visible === false) {
256
+ column.groupName = undefined;
257
+ column.$fixed = undefined;
258
+ invisibleColumns.push(column);
259
+ continue;
260
+ }
261
+ if (!column.groupName) {
262
+ result.push(column);
263
+ currentGroup = null;
264
+ continue;
265
+ }
266
+ if (!currentGroup ||
267
+ currentGroup.title !== column.groupName ||
268
+ currentGroup.$fixed !== column.$fixed) {
269
+ currentGroup = {
270
+ title: column.groupName,
271
+ $fixed: column.$fixed,
272
+ children: [],
273
+ field: `group_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
274
+ prop: `group_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
275
+ };
276
+ result.push(currentGroup);
277
+ }
278
+ currentGroup.children.push(column);
279
+ }
280
+ return result.concat(invisibleColumns);
281
+ }
282
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/plugins/customColumnDrag/example.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 自定义列拖拽插件使用示例\n * 展示如何实现类似 useTable.ts.bak 中的复杂拖拽逻辑\n */\nimport { CustomColumnDragPlugin } from './custom-column-drag.plugin';\nimport type { CustomDragEventDetails } from './types';\nimport type { PluginProviders, ColumnRegular } from '@type';\n\n// 扩展列类型以支持自定义属性\ninterface ExtendedColumn extends ColumnRegular {\n groupName?: string;\n $fixed?: 'left' | 'right';\n disabledDrag?: boolean;\n disabledFixed?: boolean;\n children?: ExtendedColumn[];\n visible?: boolean;\n}\n\n/**\n * 示例 1: 基础用法\n */\nexport function example1(grid: HTMLRevoGridElement, providers: PluginProviders) {\n const plugin = new CustomColumnDragPlugin(grid, providers, {\n enabled: true,\n canDrag: (column) => {\n const col = column as ExtendedColumn;\n // 不允许拖拽分组列和禁用拖拽的列\n return !col.children && !col.disabledDrag;\n },\n onDragEnd: (details) => {\n console.log('列拖拽完成:', details);\n },\n });\n\n return plugin;\n}\n\n/**\n * 示例 2: 支持分组列的拖拽\n */\nexport function example2(grid: HTMLRevoGridElement, providers: PluginProviders) {\n const plugin = new CustomColumnDragPlugin(grid, providers, {\n enabled: true,\n canDrag: (column, rowIndex) => {\n const col = column as ExtendedColumn;\n // 第一行不允许拖拽分组列\n if (rowIndex === 0 && col.children) {\n return false;\n }\n return !col.disabledDrag;\n },\n onDragEnd: (details) => {\n handleGroupDrag(details);\n },\n });\n\n return plugin;\n}\n\n/**\n * 处理分组拖拽逻辑\n */\nfunction handleGroupDrag(details: CustomDragEventDetails) {\n const { sourceRowIndex, targetRowIndex, sourceColumn, targetColumn } = details;\n const source = sourceColumn as ExtendedColumn;\n const target = targetColumn as ExtendedColumn;\n\n // 分组内拖拽(第二行)\n if (targetRowIndex === 1 || sourceRowIndex === 1) {\n handleRow2Drag(source, target);\n } else {\n // 跨分组拖拽(第一行)\n handleRow1Drag(source, target);\n }\n}\n\n/**\n * 处理第二行(分组内)拖拽\n */\nfunction handleRow2Drag(\n sourceColumn: ExtendedColumn,\n targetColumn: ExtendedColumn | undefined,\n) {\n if (!targetColumn) return;\n\n // 分组内自己拖到自己\n if (targetColumn.children && targetColumn.children.length > 1) {\n if (targetColumn.children.find(item => item.field === sourceColumn.field)) {\n sourceColumn.groupName = undefined;\n return;\n }\n }\n\n // 处理分组名称\n if (targetColumn.groupName) {\n sourceColumn.groupName = targetColumn.groupName;\n } else if (sourceColumn.groupName) {\n // 检查是否是分组中唯一的列\n const parentHasMultipleChildren = checkParentHasMultipleChildren(sourceColumn);\n if (parentHasMultipleChildren) {\n sourceColumn.groupName = undefined;\n }\n }\n\n // 处理冻结状态\n if (!sourceColumn.disabledFixed) {\n sourceColumn.$fixed = targetColumn.$fixed;\n }\n}\n\n/**\n * 处理第一行(跨分组)拖拽\n */\nfunction handleRow1Drag(\n sourceColumn: ExtendedColumn,\n targetColumn: ExtendedColumn | undefined,\n) {\n if (!targetColumn) return;\n\n // 如果目标是分组,取分组第一个子列\n let actualTarget = targetColumn;\n if (targetColumn.children && targetColumn.children.length > 0) {\n actualTarget = targetColumn.children[0];\n }\n\n // 处理冻结状态\n if (!sourceColumn.disabledFixed) {\n sourceColumn.$fixed = actualTarget.$fixed;\n } else {\n sourceColumn.$fixed = undefined;\n }\n}\n\n/**\n * 检查父分组是否有多个子列\n */\nfunction checkParentHasMultipleChildren(_column: ExtendedColumn): boolean {\n // 这里需要根据实际的列数据结构来实现\n // 示例实现\n return true;\n}\n\n/**\n * 示例 3: 支持冻结列的拖拽\n */\nexport function example3(\n grid: HTMLRevoGridElement,\n providers: PluginProviders,\n) {\n const plugin = new CustomColumnDragPlugin(grid, providers, {\n enabled: true,\n canDrag: (column) => {\n const col = column as ExtendedColumn;\n return !col.children && !col.disabledDrag;\n },\n onDragEnd: (details) => {\n const { sourceColumn, targetColumn } = details;\n const source = sourceColumn as ExtendedColumn;\n const target = targetColumn as ExtendedColumn;\n\n // 更新冻结状态\n if (target && !source.disabledFixed) {\n source.$fixed = target.$fixed;\n }\n\n // 触发列更新回调\n // onColumnsUpdate(updatedColumns);\n },\n });\n\n return plugin;\n}\n\n/**\n * 示例 4: 完整的拖拽处理(类似 useTable.ts.bak)\n */\nexport function example4(\n grid: HTMLRevoGridElement,\n providers: PluginProviders,\n columns: ExtendedColumn[],\n onUpdate: (columns: ExtendedColumn[]) => void,\n) {\n const plugin = new CustomColumnDragPlugin(grid, providers, {\n enabled: true,\n canDrag: (column) => {\n const col = column as ExtendedColumn;\n if (col.disabledDrag || col.children) {\n return false;\n }\n return true;\n },\n onDragEnd: (details) => {\n // 扁平化列数组\n const flatColumns = flattenColumns(columns);\n \n // 处理拖拽更新\n handleDragUpdate(details, flatColumns);\n \n // 重新处理和排序\n const processedColumns = processAndSortColumns(flatColumns);\n \n // 触发更新\n onUpdate(processedColumns);\n },\n });\n\n // 监听事件\n grid.addEventListener('beforecolumndragend', (e: any) => {\n const details = e.detail as CustomDragEventDetails;\n \n // 特殊处理:0 行 0 列无更新\n if (details.targetRowIndex === 0 && details.targetColumnIndex === 0) {\n e.preventDefault();\n }\n });\n\n return plugin;\n}\n\n/**\n * 扁平化列数组\n */\nfunction flattenColumns(columns: ExtendedColumn[]): ExtendedColumn[] {\n const result: ExtendedColumn[] = [];\n \n for (const column of columns) {\n if (column.children && Array.isArray(column.children)) {\n for (const child of column.children) {\n child.groupName = column.title as string;\n if (column.$fixed) {\n child.$fixed = column.$fixed;\n }\n result.push(child);\n }\n } else {\n result.push(column);\n }\n }\n \n return result;\n}\n\n/**\n * 处理拖拽更新\n */\nfunction handleDragUpdate(details: CustomDragEventDetails, flatColumns: ExtendedColumn[]) {\n const { targetColumnIndex, dropPosition, sourceColumn, targetColumn } = details;\n const isMovedRight = dropPosition === 'right';\n const source = sourceColumn as ExtendedColumn;\n const target = targetColumn as ExtendedColumn;\n\n // 计算插入位置\n let insertIndex = targetColumnIndex;\n if (isMovedRight) {\n insertIndex += 1;\n }\n\n // 移除源列\n const sourceIndex = flatColumns.findIndex(col => col.field === source.field);\n if (sourceIndex !== -1) {\n flatColumns.splice(sourceIndex, 1);\n }\n\n // 插入到新位置\n if (insertIndex > sourceIndex) {\n insertIndex -= 1;\n }\n flatColumns.splice(insertIndex, 0, source);\n\n // 更新列属性\n if (target) {\n if (!source.disabledFixed) {\n source.$fixed = target.$fixed;\n }\n if (target.groupName) {\n source.groupName = target.groupName;\n }\n }\n}\n\n/**\n * 处理和排序列数组\n */\nfunction processAndSortColumns(columns: ExtendedColumn[]): ExtendedColumn[] {\n const result: ExtendedColumn[] = [];\n const invisibleColumns: ExtendedColumn[] = [];\n let currentGroup: ExtendedColumn | null = null;\n\n // 排序\n const sortedColumns = columns.sort((a, b) => {\n if (a.$fixed === 'left' && b.$fixed !== 'left') return -1;\n if (b.$fixed === 'left' && a.$fixed !== 'left') return 1;\n if (!a.$fixed && b.$fixed === 'right') return -1;\n if (!b.$fixed && a.$fixed === 'right') return 1;\n if (a.$fixed === 'right' && b.$fixed !== 'right') return 1;\n if (b.$fixed === 'right' && a.$fixed !== 'right') return -1;\n return 0;\n });\n\n // 处理分组\n for (const column of sortedColumns) {\n if (column.visible === false) {\n column.groupName = undefined;\n column.$fixed = undefined;\n invisibleColumns.push(column);\n continue;\n }\n\n if (!column.groupName) {\n result.push(column);\n currentGroup = null;\n continue;\n }\n\n if (!currentGroup || \n currentGroup.title !== column.groupName || \n currentGroup.$fixed !== column.$fixed) {\n currentGroup = {\n title: column.groupName,\n $fixed: column.$fixed,\n children: [],\n field: `group_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n prop: `group_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n } as ExtendedColumn;\n result.push(currentGroup);\n }\n\n currentGroup.children!.push(column);\n }\n\n return result.concat(invisibleColumns);\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ export * from './custom-column-drag.plugin';
5
+ export * from './drag.handler';
6
+ export * from './types';
7
+ export * from './column-move.helper';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/customColumnDrag/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC","sourcesContent":["export * from './custom-column-drag.plugin';\nexport * from './drag.handler';\nexport * from './types';\nexport * from './column-move.helper';\n\n// 便捷导出类型\nexport type { DraggableColumn } from './types';\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/customColumnDrag/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * 自定义列拖拽插件类型定义\n */\nimport type { ColumnRegular } from '@type';\n\n// 目标类型\nexport type DropTargetType = 'normal' | 'group' | 'child';\n\n/**\n * 扩展列类型,支持拖拽配置\n */\nexport interface DraggableColumn extends ColumnRegular {\n /** 是否允许拖拽此列,默认 true */\n draggable?: boolean;\n}\n\nexport interface CustomDragEventDetails {\n // 源信息\n sourceRowIndex: number;\n sourceColumnIndex: number;\n sourceColumn: ColumnRegular;\n sourceIsChild: boolean; // 源是否是子列\n sourceGroupName?: string; // 源所属分组名(如果是子列)\n \n // 目标信息\n targetRowIndex: number;\n targetColumnIndex: number;\n targetColumn?: ColumnRegular;\n targetType: DropTargetType; // 目标类型:普通列/分组头/子列\n targetGroupName?: string; // 目标分组名(如果是分组头或子列)\n targetChildIndex?: number; // 在分组内的位置(如果目标是子列)\n \n // 放置位置\n dropPosition: 'left' | 'right'; // 定位线在左侧还是右侧\n}\n\nexport interface CustomColumnDragConfig {\n /** 是否启用插件 */\n enabled?: boolean;\n /** 是否自动应用列移动(默认 true)*/\n autoApply?: boolean;\n /** \n * 自定义拖拽权限检查\n * 注意:如果列配置了 draggable: false,此回调不会被调用\n */\n canDrag?: (column: ColumnRegular, rowIndex: number, columnIndex: number) => boolean;\n /** \n * 检查列是否不可放置到其左侧(例如 checkbox 列)\n * 返回 true 表示不允许其他列拖到该列左侧\n */\n cannotDropBefore?: (column: ColumnRegular) => boolean;\n /** 拖拽开始回调 */\n onDragStart?: (details: CustomDragEventDetails) => void;\n /** 拖拽结束回调(在列移动完成后调用)*/\n onDragEnd?: (details: CustomDragEventDetails) => void;\n}\n"]}
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ /**
5
+ * Dispatches a custom event to a specified target element.
6
+ *
7
+ * @param target - The target element to dispatch the event to.
8
+ * @param eventName - The name of the custom event.
9
+ * @param detail - Optional. The detail of the custom event.
10
+ * @returns The custom event that was dispatched.
11
+ */
12
+ export function dispatch(target, eventName, detail) {
13
+ // Create a new CustomEvent with the specified event name and detail.
14
+ const event = new CustomEvent(eventName, {
15
+ detail,
16
+ cancelable: true, // Indicates whether the event can be canceled.
17
+ bubbles: true, // Indicates whether the event bubbles up through the DOM.
18
+ });
19
+ // Dispatch the event on the target element.
20
+ target === null || target === void 0 ? void 0 : target.dispatchEvent(event);
21
+ // Return the custom event that was dispatched.
22
+ return event;
23
+ }
24
+ /**
25
+ * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.
26
+ *
27
+ * @param e - The original event object containing the target and preventDefault method.
28
+ * @param eventName - The name of the custom event.
29
+ * @param detail - Optional. The detail of the custom event.
30
+ * @returns The custom event that was dispatched.
31
+ */
32
+ export function dispatchByEvent(e, // The original event object containing the target and preventDefault method.
33
+ eventName, // The name of the custom event.
34
+ detail) {
35
+ // Prevent the default behavior of the original event.
36
+ e.preventDefault();
37
+ // Dispatch the custom event to the target element specified in the original event object.
38
+ return dispatch(e.target, eventName, detail);
39
+ }
40
+ //# sourceMappingURL=dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/plugins/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA4B,EAC5B,SAAiB,EACjB,MAAuB;IAEvB,qEAAqE;IACrE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAiB,SAAS,EAAE;QACvD,MAAM;QACN,UAAU,EAAE,IAAI,EAAE,+CAA+C;QACjE,OAAO,EAAE,IAAI,EAAE,0DAA0D;KAC1E,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7B,+CAA+C;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAgD,EAAE,6EAA6E;AAC/H,SAAiB,EAAE,gCAAgC;AACnD,MAAuB;IAEvB,sDAAsD;IACtD,CAAC,CAAC,cAAc,EAAE,CAAC;IAEnB,0FAA0F;IAC1F,OAAO,QAAQ,CAAiB,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["/**\n * Dispatches a custom event to a specified target element.\n *\n * @param target - The target element to dispatch the event to.\n * @param eventName - The name of the custom event.\n * @param detail - Optional. The detail of the custom event.\n * @returns The custom event that was dispatched.\n */\nexport function dispatch<DispatchDetail = any>(\n target: MouseEvent['target'],\n eventName: string,\n detail?: DispatchDetail,\n) {\n // Create a new CustomEvent with the specified event name and detail.\n const event = new CustomEvent<DispatchDetail>(eventName, {\n detail,\n cancelable: true, // Indicates whether the event can be canceled.\n bubbles: true, // Indicates whether the event bubbles up through the DOM.\n });\n\n // Dispatch the event on the target element.\n target?.dispatchEvent(event);\n\n // Return the custom event that was dispatched.\n return event;\n}\n\n/**\n * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.\n *\n * @param e - The original event object containing the target and preventDefault method.\n * @param eventName - The name of the custom event.\n * @param detail - Optional. The detail of the custom event.\n * @returns The custom event that was dispatched.\n */\nexport function dispatchByEvent<DispatchDetail = any>(\n e: Pick<MouseEvent, 'target' | 'preventDefault'>, // The original event object containing the target and preventDefault method.\n eventName: string, // The name of the custom event.\n detail?: DispatchDetail, // Optional. The detail of the custom event.\n): CustomEvent {\n // Prevent the default behavior of the original event.\n e.preventDefault();\n\n // Dispatch the custom event to the target element specified in the original event object.\n return dispatch<DispatchDetail>(e.target, eventName, detail);\n}\n"]}