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":"column-stretch.plugin.js","sourceRoot":"","sources":["../../src/plugins/column-stretch.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ColumnStretchPlugin - 列自动撑满插件\n * 让指定列自动撑满表格剩余空间\n * \n * 参考自 src/components/readable/ColumnStretchPlugin.js\n */\nimport { BasePlugin } from './base.plugin';\nimport type { PluginProviders, ColumnRegular, DimensionCols, ViewSettingSizeProp } from '@type';\n\nexport interface ColumnStretchConfig {\n /** \n * 撑满模式:\n * - 'last': 拉伸最后一列\n * - 'all': 拉伸所有列\n * - number: 拉伸指定索引的列\n * - string: 拉伸指定 prop 的列\n */\n stretchColumn?: 'last' | 'all' | number | string;\n /** 最小宽度,默认 50 */\n minWidth?: number;\n /** 是否显示右侧空白区域的表头边框,默认 true */\n showHeaderBorder?: boolean;\n /** 是否显示右侧空白区域的行边框,默认 true */\n showRowBorder?: boolean;\n /** 右侧空白区域表头边框颜色,默认使用 --revo-grid-header-border */\n headerBorderColor?: string;\n /** 右侧空白区域行边框颜色,默认使用 --revo-grid-cell-border */\n rowBorderColor?: string;\n /** 分组行边框颜色,默认使用 --rg-cell-border-color */\n groupRowBorderColor?: string;\n}\n\nconst DEFAULT_CONFIG: ColumnStretchConfig = {\n stretchColumn: 'last',\n minWidth: 50,\n showHeaderBorder: true,\n showRowBorder: true,\n};\n\n\n\n/**\n * 获取滚动条宽度\n */\nlet cachedScrollbarWidth: number | null = null;\nfunction getScrollbarWidth(): number {\n if (cachedScrollbarWidth !== null) {\n return cachedScrollbarWidth;\n }\n \n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll';\n (outer.style as any).msOverflowStyle = 'scrollbar';\n document.body.appendChild(outer);\n \n const inner = document.createElement('div');\n outer.appendChild(inner);\n \n cachedScrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n outer.parentNode?.removeChild(outer);\n \n return cachedScrollbarWidth;\n}\n\n/**\n * 查找 DOM 元素\n */\nfunction findElementBySelector(element: Element, selector: string): Element | null {\n const selectors = selector.split(' > ').map(s => s.trim());\n let currentElement: Element | null = element;\n \n for (const sel of selectors) {\n if (!currentElement) return null;\n const isClassSelector = sel.startsWith('.');\n const selectorName = isClassSelector ? sel.slice(1) : sel;\n \n currentElement = Array.from(currentElement.children).find(child =>\n isClassSelector \n ? child.classList.contains(selectorName) \n : child.tagName.toLowerCase() === selectorName.toLowerCase()\n ) || null;\n }\n \n return currentElement;\n}\n\n// 列数据类型\ntype ColumnsData = {\n rgCol: ColumnRegular[];\n colPinStart: ColumnRegular[];\n colPinEnd: ColumnRegular[];\n};\n\nexport class ColumnStretchPlugin extends BasePlugin {\n private config: ColumnStretchConfig;\n private containerWidth = 0;\n private columnsData: ColumnsData | null = null;\n private manuallyResizedColumns = new Set<string>(); // 记录被手动调整过的列(不记录宽度)\n private resizeEndTimeout: ReturnType<typeof setTimeout> | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private virtualGridContainer: HTMLDivElement | null = null; // 外层容器\n private virtualGridOverlay: HTMLDivElement | null = null; // 内层网格线\n private virtualHeaderOverlay: HTMLDivElement | null = null; // 表头覆盖层\n private wheelHandler: ((e: WheelEvent) => void) | null = null; // 滚轮事件处理器\n private isInitialRecorded = false; // 标记是否已记录初始状态\n private userResizedColumns = new Set<number>(); // 记录用户主动拖拽的列索引(临时标记)\n private isApplyingStretch = false; // 标记是否正在应用拉伸,防止递归调用\n\n\n constructor(\n revogrid: HTMLRevoGridElement,\n providers: PluginProviders | null,\n config?: ColumnStretchConfig,\n ) {\n super(revogrid, providers as PluginProviders);\n this.config = { ...DEFAULT_CONFIG, ...config };\n \n // 将插件实例保存到 revogrid 元素上,供其他插件访问\n (this.revogrid as any).__columnStretchPlugin = this;\n \n // 设置 CSS 变量控制边框显示和颜色\n if (this.config.showRowBorder === false) {\n this.revogrid.style.setProperty('--revo-grid-wheel-capture-row-border', 'none');\n } else if (this.config.rowBorderColor) {\n this.revogrid.style.setProperty('--revo-grid-wheel-capture-row-border-color', this.config.rowBorderColor);\n }\n \n if (this.config.headerBorderColor) {\n this.revogrid.style.setProperty('--revo-grid-wheel-capture-header-border-color', this.config.headerBorderColor);\n }\n \n if (this.config.groupRowBorderColor) {\n this.revogrid.style.setProperty('--revo-grid-group-row-border-color', this.config.groupRowBorderColor);\n }\n \n // 如果 providers 为 null,异步获取\n if (!providers) {\n this.revogrid.getProviders().then(p => {\n if (p) {\n (this as any).providers = p;\n this.init();\n }\n });\n } else {\n this.init();\n }\n }\n\n private init() {\n // 监听列设置前事件(在 applyNewColumns 之前)\n const onBeforeColumnsSet = (e: CustomEvent) => {\n const columns = e.detail?.columns;\n if (columns) {\n // 提前为自动宽度列设置初始宽度\n this.setInitialStretchColumnWidth(columns);\n }\n };\n this.revogrid.addEventListener('beforecolumnsset', onBeforeColumnsSet as EventListener);\n this.addEventListener('beforecolumnsset', onBeforeColumnsSet as any);\n\n // 监听列应用前事件\n const onBeforeColumnApplied = (e: CustomEvent) => {\n const columns = e.detail?.columns;\n if (columns) {\n this.columnsData = columns;\n \n // 只在第一次触发时记录初始状态\n if (!this.isInitialRecorded) {\n this.recordInitialSizedColumns();\n this.isInitialRecorded = true;\n }\n \n this.applyStretchImpl();\n }\n };\n this.revogrid.addEventListener('beforecolumnapplied', onBeforeColumnApplied as EventListener);\n this.addEventListener('beforecolumnapplied', onBeforeColumnApplied as any);\n\n // 监听 headerresize 事件,记录用户主动拖拽的列\n const onHeaderResize = (e: CustomEvent<ViewSettingSizeProp>) => {\n const detail = e.detail;\n if (!detail) return;\n \n // 记录用户主动拖拽的列索引\n for (const indexStr in detail) {\n this.userResizedColumns.add(parseInt(indexStr, 10));\n }\n };\n this.revogrid.addEventListener('headerresize', onHeaderResize as EventListener);\n this.addEventListener('headerresize', onHeaderResize as any);\n\n // 监听 aftercolumnresize 事件(包含完整的列信息,包括 pin 属性)\n // 在这里执行拉伸计算,确保 dimension store 已经更新\n const onAfterColumnResize = (e: CustomEvent<{ [index: number]: ColumnRegular }>) => {\n // 防止递归调用\n if (this.isApplyingStretch) {\n return;\n }\n \n const detail = e.detail;\n if (!detail || !this.columnsData) return;\n \n // 获取被拉伸列的 prop\n const stretchColumnProp = this.getStretchColumnProp();\n if (!stretchColumnProp) {\n this.userResizedColumns.clear();\n this.applyStretchImpl();\n return;\n }\n \n // 检查是否在调整被拉伸的列本身\n // 注意:detail 中的 column 包含 pin 属性,可以判断列类型\n let isResizingStretchColumn = false;\n for (const indexStr in detail) {\n const index = parseInt(indexStr, 10);\n const column = detail[index];\n \n if (column?.prop === stretchColumnProp && this.userResizedColumns.has(index)) {\n // 用户主动拖拽自动列宽列 → 转换为固定宽度\n this.manuallyResizedColumns.add(column.prop as string);\n isResizingStretchColumn = true;\n }\n // 否则是被动调整(其他列变化导致的) → 保持自动宽度,不标记\n }\n \n // 清空临时标记\n this.userResizedColumns.clear();\n \n // 立即同步执行拉伸计算,此时 dimension store 已经更新\n // 如果不是调整自适应列本身,则需要重新分配宽度\n if (!isResizingStretchColumn) {\n this.applyStretchImpl();\n }\n };\n this.revogrid.addEventListener('aftercolumnresize', onAfterColumnResize as EventListener);\n this.addEventListener('aftercolumnresize', onAfterColumnResize as any);\n\n // 监听滚动变化事件(不触发拉伸计算,只更新滚动条宽度)\n const onScrollChange = () => {\n this.containerWidth = getScrollbarWidth();\n };\n this.revogrid.addEventListener('scrollchange', onScrollChange as EventListener);\n this.addEventListener('scrollchange', onScrollChange as any);\n\n // 监听窗口大小变化\n const onResize = () => {\n this.containerWidth = getScrollbarWidth();\n if (this.columnsData) {\n this.applyStretchImpl();\n }\n };\n \n this.resizeObserver = new ResizeObserver(onResize);\n this.resizeObserver.observe(this.revogrid);\n\n // 初始化\n this.containerWidth = getScrollbarWidth();\n \n // 如果已有列数据,立即应用拉伸\n if (this.providers?.column) {\n const columnCollection = (this.providers.column as any).collection;\n if (this.revogrid.columns?.length && columnCollection) {\n this.columnsData = columnCollection.columns;\n // 延迟执行,确保 DOM 已渲染\n setTimeout(() => {\n this.applyStretchImpl();\n }, 100);\n }\n }\n }\n\n /**\n * 记录初始化时已设置 size 的列\n * 如果自动宽度列配置了 size,将其标记为手动调整过的列(固定宽度)\n */\n private recordInitialSizedColumns() {\n const columns = this.revogrid.columns as ColumnRegular[];\n if (!columns || columns.length === 0) return;\n \n const { stretchColumn } = this.config;\n if (!stretchColumn) return;\n \n let stretchColumnProp: string | null = null;\n \n // 根据配置类型获取 prop\n if (stretchColumn === 'last') {\n // 最后一列\n const lastCol = columns[columns.length - 1];\n stretchColumnProp = lastCol?.prop as string || null;\n } else if (typeof stretchColumn === 'string') {\n // 指定 prop\n stretchColumnProp = stretchColumn;\n } else if (typeof stretchColumn === 'number') {\n // 指定索引\n const col = columns[stretchColumn];\n stretchColumnProp = col?.prop as string || null;\n }\n \n if (!stretchColumnProp) return;\n \n // 递归查找列(支持分组列)\n const findColumn = (cols: any[]): ColumnRegular | null => {\n for (const col of cols) {\n if (col.children) {\n // 分组列,递归查找\n const found = findColumn(col.children);\n if (found) return found;\n } else if (col.prop === stretchColumnProp) {\n // 找到目标列\n return col;\n }\n }\n return null;\n };\n \n // 检查自动宽度列是否配置了 size\n const targetColumn = findColumn(columns);\n if (targetColumn && targetColumn.size) {\n // 如果配置了 size,标记为手动调整过的列(固定宽度)\n this.manuallyResizedColumns.add(stretchColumnProp);\n }\n }\n\n /**\n * 同步自动宽度列的 size 到 dimension store\n * 解决拖拽后 col.size 有值但 sizes[index] 为 undefined 的问题\n */\n private syncStretchColumnSize() {\n if (!this.columnsData) return;\n \n const { stretchColumn } = this.config;\n if (!stretchColumn) return;\n \n // 获取自动宽度列的 prop\n let stretchColumnProp: string | null = null;\n \n if (stretchColumn === 'last') {\n const columns = this.columnsData.rgCol;\n if (columns && columns.length > 0) {\n stretchColumnProp = columns[columns.length - 1]?.prop as string || null;\n }\n } else if (typeof stretchColumn === 'string') {\n stretchColumnProp = stretchColumn;\n } else if (typeof stretchColumn === 'number') {\n const allColumns = this.revogrid.columns as ColumnRegular[];\n if (allColumns && stretchColumn >= 0 && stretchColumn < allColumns.length) {\n stretchColumnProp = allColumns[stretchColumn]?.prop as string || null;\n }\n }\n \n if (!stretchColumnProp) return;\n \n // 在所有列类型中查找\n const dimensionTypes: DimensionCols[] = ['rgCol', 'colPinStart', 'colPinEnd'];\n for (const dimensionType of dimensionTypes) {\n const columns = this.columnsData[dimensionType];\n if (!columns) continue;\n \n const columnIndex = columns.findIndex(col => col.prop === stretchColumnProp);\n if (columnIndex === -1) continue;\n \n const targetColumn = columns[columnIndex];\n if (!targetColumn || !targetColumn.size) continue;\n \n // 检查 dimension store 中是否已有该列的宽度\n const dimensionStore = this.providers?.dimension?.stores[dimensionType]?.store;\n if (!dimensionStore) continue;\n \n const sizes = dimensionStore.get('sizes') || {};\n if (sizes[columnIndex] === undefined) {\n // 如果 dimension store 中没有该列的宽度,同步 col.size\n this.providers?.dimension?.setCustomSizes(\n dimensionType,\n { [columnIndex]: targetColumn.size },\n true\n );\n }\n \n break;\n }\n }\n\n /**\n * 在列应用前为自动宽度列设置初始宽度\n */\n private setInitialStretchColumnWidth(columnsData: ColumnsData) {\n const { stretchColumn } = this.config;\n if (!stretchColumn) return;\n\n // 查找自动宽度列\n const result = this.findStretchColumn(columnsData, stretchColumn);\n if (!result) return;\n\n const { column, dimensionType, index } = result;\n\n // 如果该列已经有 size,说明是手动设置的或已经计算过,不处理\n if (column.size) return;\n\n // 计算初始宽度\n const initialWidth = this.calculateInitialStretchWidth(columnsData, dimensionType, index);\n if (initialWidth <= 0) return;\n\n // 直接修改列对象的 size 属性\n column.size = initialWidth;\n }\n\n /**\n * 查找自动宽度列\n */\n private findStretchColumn(\n columnsData: ColumnsData,\n stretchColumn: 'last' | 'all' | number | string\n ): { column: ColumnRegular; dimensionType: DimensionCols; index: number } | null {\n // 获取自动宽度列的 prop\n let stretchColumnProp: string | null = null;\n \n if (stretchColumn === 'last') {\n const columns = columnsData.rgCol;\n if (columns && columns.length > 0) {\n stretchColumnProp = columns[columns.length - 1]?.prop as string || null;\n }\n } else if (typeof stretchColumn === 'string') {\n stretchColumnProp = stretchColumn;\n } else if (typeof stretchColumn === 'number') {\n const allColumns = this.revogrid.columns as ColumnRegular[];\n if (allColumns && stretchColumn >= 0 && stretchColumn < allColumns.length) {\n stretchColumnProp = allColumns[stretchColumn]?.prop as string || null;\n }\n }\n\n if (!stretchColumnProp) return null;\n\n // 在所有列类型中查找\n const dimensionTypes: DimensionCols[] = ['rgCol', 'colPinStart', 'colPinEnd'];\n for (const dimensionType of dimensionTypes) {\n const columns = columnsData[dimensionType];\n if (!columns) continue;\n \n const index = columns.findIndex(col => col.prop === stretchColumnProp);\n if (index !== -1) {\n return {\n column: columns[index],\n dimensionType,\n index,\n };\n }\n }\n\n return null;\n }\n\n /**\n * 计算自动宽度列的初始宽度\n */\n private calculateInitialStretchWidth(\n columnsData: ColumnsData,\n stretchColumnType: DimensionCols,\n stretchColumnIndex: number\n ): number {\n // 计算可用宽度\n const rowHeaderEl = findElementBySelector(this.revogrid, '.main-viewport > .viewports > .rowHeaders');\n const rowHeaderWidth = rowHeaderEl?.clientWidth || 0;\n const viewportEl = this.revogrid.querySelector('.main-viewport');\n const hasVerticalScroll = viewportEl ? viewportEl.scrollHeight > viewportEl.clientHeight : false;\n const scrollbarWidth = hasVerticalScroll ? this.containerWidth : 0;\n const availableWidth = this.revogrid.clientWidth - scrollbarWidth - rowHeaderWidth;\n\n // 计算其他列的总宽度(排除自动宽度列)\n let totalOtherColumnsWidth = 0;\n const dimensionTypes: DimensionCols[] = ['rgCol', 'colPinStart', 'colPinEnd'];\n \n dimensionTypes.forEach(dimensionType => {\n const columns = columnsData[dimensionType];\n if (!columns) return;\n \n columns.forEach((col, index) => {\n // 跳过自动宽度列\n if (dimensionType === stretchColumnType && index === stretchColumnIndex) {\n return;\n }\n \n // 计算其他列的宽度\n const colWidth = col.size || (col as any).minSize || 100;\n totalOtherColumnsWidth += colWidth;\n });\n });\n\n // 计算剩余宽度\n const remainingWidth = availableWidth - totalOtherColumnsWidth;\n const stretchColumn = columnsData[stretchColumnType][stretchColumnIndex];\n const minWidth = this.getColumnMinWidth(stretchColumn);\n \n return Math.max(minWidth, remainingWidth);\n }\n\n /**\n * 获取列的最小宽度\n */\n private getColumnMinWidth(column: ColumnRegular): number {\n return (column as any).minSize || column.size || this.config.minWidth || 50;\n }\n\n /**\n * 获取被拉伸列的 prop\n */\n private getStretchColumnProp(): string | null {\n if (!this.columnsData) return null;\n \n const { stretchColumn } = this.config;\n \n if (stretchColumn === 'last') {\n const columns = this.columnsData.rgCol;\n if (columns && columns.length > 0) {\n return columns[columns.length - 1]?.prop as string || null;\n }\n } else if (typeof stretchColumn === 'string') {\n return stretchColumn;\n } else if (typeof stretchColumn === 'number') {\n const columns = this.revogrid.columns as ColumnRegular[];\n if (columns && stretchColumn >= 0 && stretchColumn < columns.length) {\n return columns[stretchColumn]?.prop as string || null;\n }\n }\n \n return null;\n }\n\n /**\n * 应用列拉伸(实际实现)\n */\n private applyStretchImpl() {\n if (!this.columnsData) return;\n \n // 防止递归调用\n if (this.isApplyingStretch) {\n return;\n }\n \n this.isApplyingStretch = true;\n\n // 先同步自动宽度列的 size 到 dimension store\n this.syncStretchColumnSize();\n\n // 获取行头宽度\n const rowHeaderEl = findElementBySelector(this.revogrid, '.main-viewport > .viewports > .rowHeaders');\n const rowHeaderWidth = rowHeaderEl?.clientWidth || 0;\n\n // 计算可用宽度\n const availableWidth = this.revogrid.clientWidth - rowHeaderWidth;\n\n // 计算所有列的总宽度\n let totalColumnsWidth = 0;\n const dimensionTypes: DimensionCols[] = ['colPinStart', 'rgCol', 'colPinEnd'];\n \n dimensionTypes.forEach(dimensionType => {\n if (this.providers?.dimension?.stores[dimensionType]) {\n const dimensionStore = this.providers.dimension.stores[dimensionType].store;\n const realSize = dimensionStore.get('realSize') || 0;\n totalColumnsWidth += realSize;\n }\n });\n \n // 计算剩余空间\n const occupiedWidth = availableWidth - totalColumnsWidth;\n\n // 只有当有足够空间需要分配时才进行自动调整\n if (Math.abs(occupiedWidth) < 1) {\n this.isApplyingStretch = false;\n return;\n }\n\n const { stretchColumn } = this.config;\n\n if (stretchColumn === 'all') {\n this.stretchAllColumns(occupiedWidth);\n } else if (stretchColumn === 'last') {\n this.stretchLastColumn(occupiedWidth);\n } else if (typeof stretchColumn === 'number') {\n this.stretchColumnByIndex(stretchColumn, occupiedWidth);\n } else if (typeof stretchColumn === 'string') {\n this.stretchColumnByProp(stretchColumn, occupiedWidth);\n }\n \n this.isApplyingStretch = false;\n }\n\n\n \n /**\n * 创建模拟网格覆盖层\n */\n private createvirtualGridOverlay() {\n if (this.virtualGridContainer) return;\n \n // 查找 viewports 容器\n const viewportsContainer = this.revogrid.querySelector('.viewports') as HTMLElement;\n if (!viewportsContainer) return;\n \n // 查找 rgCol 视口\n const rgColViewport = this.revogrid.querySelector('revogr-viewport-scroll.rgCol') as HTMLElement;\n if (!rgColViewport) return;\n \n // 查找滚动元素\n const verticalInner = rgColViewport.querySelector('.vertical-inner') as HTMLElement;\n if (!verticalInner) return;\n \n // 获取表头高度\n const headerWrapper = rgColViewport.querySelector('.header-wrapper') as HTMLElement;\n const headerHeight = headerWrapper?.offsetHeight || 0;\n \n // 创建外层容器(覆盖整个表格区域)\n this.virtualGridContainer = document.createElement('div');\n this.virtualGridContainer.className = 'virtual-grid-container';\n this.virtualGridContainer.style.cssText = `\n position: absolute;\n top: ${headerHeight}px;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 10;\n display: none;\n overflow: hidden;\n `;\n \n // 创建内层网格线(覆盖整个宽度,但线通过 background-position 定位到右侧)\n this.virtualGridOverlay = document.createElement('div');\n this.virtualGridOverlay.className = 'virtual-grid-overlay';\n this.virtualGridOverlay.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n will-change: transform;\n pointer-events: none;\n `;\n \n this.virtualGridContainer.appendChild(this.virtualGridOverlay);\n viewportsContainer.appendChild(this.virtualGridContainer);\n \n // 创建表头覆盖层(白色背景 + 底边线)\n this.virtualHeaderOverlay = document.createElement('div');\n this.virtualHeaderOverlay.className = 'virtual-header-overlay';\n this.virtualHeaderOverlay.style.cssText = `\n position: absolute;\n top: 0;\n right: 0;\n height: ${headerHeight}px;\n pointer-events: none;\n z-index: 11;\n display: none;\n box-sizing: border-box;\n `;\n viewportsContainer.appendChild(this.virtualHeaderOverlay);\n \n // 监听滚动事件,同步内层位置\n const onScroll = () => {\n if (this.virtualGridOverlay) {\n const scrollTop = verticalInner.scrollTop;\n this.virtualGridOverlay.style.transform = `translateY(-${scrollTop}px)`;\n }\n };\n verticalInner.addEventListener('scroll', onScroll, { passive: true });\n \n // 只监听滚轮事件,其他事件穿透到表格\n this.wheelHandler = (e: WheelEvent) => {\n // 如果按下 shift 键,不拦截事件,让它传递给水平滚动处理器\n if (e.shiftKey) return;\n \n e.preventDefault();\n e.stopPropagation();\n verticalInner.scrollTop += e.deltaY;\n };\n this.virtualGridContainer.addEventListener('wheel', this.wheelHandler, { passive: false });\n \n // 其他事件穿透到下层\n const passThrough = (e: Event) => {\n // 获取鼠标位置下的元素(排除当前覆盖层)\n this.virtualGridContainer!.style.pointerEvents = 'none';\n const target = document.elementFromPoint(\n (e as MouseEvent).clientX,\n (e as MouseEvent).clientY\n );\n this.virtualGridContainer!.style.pointerEvents = 'auto';\n \n if (target && target !== this.virtualGridContainer) {\n // 创建并派发相同的事件到目标元素\n const newEvent = new (e.constructor as any)(e.type, e);\n target.dispatchEvent(newEvent);\n }\n };\n \n // 穿透点击、双击、右键等事件\n ['click', 'dblclick', 'mousedown', 'mouseup', 'contextmenu'].forEach(eventType => {\n this.virtualGridContainer!.addEventListener(eventType, passThrough);\n });\n }\n \n /**\n * 更新模拟网格覆盖层\n */\n // @ts-ignore 暂时禁用,保留代码\n private updatevirtualGridOverlay(gapWidth: number) {\n if (gapWidth <= 0) {\n // 隐藏覆盖层\n if (this.virtualGridContainer) {\n this.virtualGridContainer.style.display = 'none';\n }\n if (this.virtualHeaderOverlay) {\n this.virtualHeaderOverlay.style.display = 'none';\n }\n return;\n }\n \n // 确保覆盖层存在\n this.createvirtualGridOverlay();\n if (!this.virtualGridContainer || !this.virtualGridOverlay) return;\n \n // 获取行高\n const rowHeight = this.getRowHeight();\n \n // 获取内容高度\n const contentHeight = this.providers?.dimension?.stores?.rgRow?.store.get('realSize') || 0;\n \n // 获取表头高度\n const rgColViewport = this.revogrid.querySelector('revogr-viewport-scroll.rgCol') as HTMLElement;\n const headerWrapper = rgColViewport?.querySelector('.header-wrapper') as HTMLElement;\n const headerHeight = headerWrapper?.offsetHeight || 0;\n \n // 更新外层容器样式(覆盖整个表格区域)\n this.virtualGridContainer.style.display = 'block';\n this.virtualGridContainer.style.top = `${headerHeight}px`;\n this.virtualGridContainer.style.left = '0';\n this.virtualGridContainer.style.right = '0';\n \n // 更新内层网格线样式(宽度为整个容器,但线通过 background-position 定位到右侧)\n this.virtualGridOverlay.style.width = '100%';\n this.virtualGridOverlay.style.height = `${contentHeight}px`;\n this.virtualGridOverlay.style.backgroundImage = `linear-gradient(to bottom, transparent ${rowHeight - 1}px, #e0e0e0 ${rowHeight - 1}px, #e0e0e0 ${rowHeight}px)`;\n this.virtualGridOverlay.style.backgroundSize = `${gapWidth}px ${rowHeight}px`;\n this.virtualGridOverlay.style.backgroundRepeat = 'repeat-y';\n this.virtualGridOverlay.style.backgroundPosition = 'right top';\n \n // 同步当前滚动位置\n const verticalInner = rgColViewport?.querySelector('.vertical-inner') as HTMLElement;\n if (verticalInner) {\n const scrollTop = verticalInner.scrollTop;\n this.virtualGridOverlay.style.transform = `translateY(-${scrollTop}px)`;\n }\n \n // 更新表头覆盖层样式\n if (this.virtualHeaderOverlay) {\n this.virtualHeaderOverlay.style.display = 'block';\n this.virtualHeaderOverlay.style.width = `${gapWidth}px`;\n this.virtualHeaderOverlay.style.height = `${headerHeight}px`;\n }\n }\n \n /**\n * 获取行高\n */\n private getRowHeight(): number {\n // 优先从实际DOM获取行高\n const existingRow = this.revogrid.querySelector('.rgRow');\n if (existingRow) {\n const height = existingRow.clientHeight;\n return height || 32;\n }\n return 32; // 默认行高\n }\n \n /**\n * 移除模拟网格覆盖层\n */\n private removevirtualGridOverlay() {\n // 移除滚轮事件监听\n if (this.wheelHandler && this.virtualGridContainer) {\n this.virtualGridContainer.removeEventListener('wheel', this.wheelHandler);\n this.wheelHandler = null;\n }\n \n if (this.virtualGridContainer) {\n this.virtualGridContainer.remove();\n this.virtualGridContainer = null;\n this.virtualGridOverlay = null;\n }\n \n if (this.virtualHeaderOverlay) {\n this.virtualHeaderOverlay.remove();\n this.virtualHeaderOverlay = null;\n }\n }\n\n\n\n /**\n * 拉伸最后一列\n * @returns 剩余未分配的宽度\n */\n private stretchLastColumn(extraWidth: number): number {\n if (!this.columnsData) return extraWidth;\n \n const columnType: DimensionCols = 'rgCol';\n const columns = this.columnsData[columnType];\n if (!columns || columns.length === 0) return extraWidth;\n \n const columnIndex = columns.length - 1;\n const targetColumn = columns[columnIndex];\n \n if (!targetColumn || !this.isValidColumn(targetColumn)) return extraWidth;\n if ((targetColumn as any).autoSize) return extraWidth;\n \n // 如果拉伸列被手动调整过,不再自动拉伸\n if (targetColumn.prop && this.manuallyResizedColumns.has(targetColumn.prop as string)) {\n return extraWidth;\n }\n\n return this.applyColumnStretch(columnType, columnIndex, targetColumn, extraWidth);\n }\n\n /**\n * 按索引拉伸列\n * @returns 剩余未分配的宽度\n */\n private stretchColumnByIndex(index: number, extraWidth: number): number {\n const columns = this.revogrid.columns as ColumnRegular[];\n if (!columns || index < 0 || index >= columns.length) return extraWidth;\n \n const column = columns[index];\n if (!column || !this.isValidColumn(column)) return extraWidth;\n \n const columnType: DimensionCols = (column as any).pin || 'rgCol';\n const colsOfType = this.columnsData?.[columnType];\n if (!colsOfType) return extraWidth;\n \n const columnIndex = colsOfType.findIndex(col => col.prop === column.prop);\n if (columnIndex === -1) return extraWidth;\n \n const targetColumn = colsOfType[columnIndex];\n if ((targetColumn as any).autoSize) return extraWidth;\n if (targetColumn.prop && this.manuallyResizedColumns.has(targetColumn.prop as string)) return extraWidth;\n\n return this.applyColumnStretch(columnType, columnIndex, targetColumn, extraWidth);\n }\n\n /**\n * 按 prop 拉伸列\n * @returns 剩余未分配的宽度\n */\n private stretchColumnByProp(prop: string, extraWidth: number): number {\n if (!this.columnsData) return extraWidth;\n \n // 如果拉伸列被手动调整过,不再自动拉伸\n if (this.manuallyResizedColumns.has(prop)) {\n return extraWidth;\n }\n \n // 在所有列类型中查找\n const dimensionTypes: DimensionCols[] = ['rgCol', 'colPinStart', 'colPinEnd'];\n for (const columnType of dimensionTypes) {\n const columns = this.columnsData[columnType];\n if (!columns) continue;\n \n const columnIndex = columns.findIndex(col => col.prop === prop);\n if (columnIndex === -1) continue;\n \n const targetColumn = columns[columnIndex];\n if (!targetColumn || !this.isValidColumn(targetColumn)) continue;\n if ((targetColumn as any).autoSize) continue;\n\n return this.applyColumnStretch(columnType, columnIndex, targetColumn, extraWidth);\n }\n return extraWidth;\n }\n\n /**\n * 应用列拉伸\n * @returns 剩余未分配的宽度(当列达到最小宽度限制时)\n */\n private applyColumnStretch(\n columnType: DimensionCols,\n columnIndex: number,\n column: ColumnRegular,\n extraWidth: number\n ): number {\n // 获取当前列宽\n const currentColumnWidth = \n this.providers?.dimension?.stores[columnType]?.store.get('sizes')?.[columnIndex] || \n column.size || \n 100;\n\n // 获取列的最小宽度\n const minColumnWidth = this.getColumnMinWidth(column);\n\n // 计算新的列宽\n const targetWidth = currentColumnWidth + extraWidth;\n const newColumnWidth = Math.max(minColumnWidth, targetWidth);\n \n // 计算剩余宽度(如果达到最小宽度限制,剩余的空间需要分配给其他列)\n const actualChange = newColumnWidth - currentColumnWidth;\n const remainingWidth = extraWidth - actualChange;\n\n // 只有当宽度发生变化时才应用更改\n if (Math.abs(newColumnWidth - currentColumnWidth) > 1) {\n // 1. 更新 dimension store\n this.providers?.dimension?.setCustomSizes(\n columnType,\n { [columnIndex]: newColumnWidth },\n true\n );\n \n // 2. 更新列数据的 size 属性\n const columnData = this.columnsData?.[columnType]?.[columnIndex];\n if (columnData && this.columnsData) {\n columnData.size = newColumnWidth;\n \n // 3. 检查当前调整的列是否是自适应列\n const stretchColumnProp = this.getStretchColumnProp();\n const isStretchColumn = column.prop === stretchColumnProp;\n \n // 如果当前调整的是自适应列本身,需要检查它是否在 rgCol 区域\n // 如果在 rgCol 区域,说明可能是被冻结列调整触发的,需要强制刷新\n if (isStretchColumn && columnType === 'rgCol') {\n // 使用微任务延迟执行,确保 dimension store 更新完成\n Promise.resolve().then(() => {\n const headerUnified = this.revogrid.querySelector('revogr-header-unified') as any;\n if (headerUnified && typeof headerUnified.forceRefresh === 'function') {\n headerUnified.forceRefresh();\n }\n });\n }\n }\n }\n \n return Math.max(0, remainingWidth);\n }\n\n /**\n * 拉伸所有列\n */\n private stretchAllColumns(extraWidth: number) {\n if (!this.columnsData) return;\n \n const sizeMap = new Map<DimensionCols, number[]>();\n let columnCount = 0;\n\n // 遍历所有列类型\n const dimensionTypes: DimensionCols[] = ['rgCol', 'colPinStart', 'colPinEnd'];\n for (const columnType of dimensionTypes) {\n const columns = this.columnsData[columnType];\n if (!columns) continue;\n \n const columnIndices: number[] = [];\n \n columns.forEach((column, index) => {\n // 跳过已设置自动大小、固定大小或已被手动调整过的列\n if ((column as any).autoSize || column.size) return;\n if (column.prop && this.manuallyResizedColumns.has(column.prop as string)) return;\n \n columnCount++;\n columnIndices.push(index);\n });\n \n if (columnIndices.length > 0) {\n sizeMap.set(columnType, columnIndices);\n }\n }\n\n // 如果没有可拉伸的列,直接返回\n if (!columnCount) return;\n\n // 计算平均宽度变化量\n const avgChange = extraWidth / columnCount;\n\n // 应用新宽度到所有可拉伸列\n sizeMap.forEach((indices, columnType) => {\n const newSizes: { [key: number]: number } = {};\n const columns = this.columnsData![columnType];\n \n indices.forEach(index => {\n const column = columns[index];\n \n const currentWidth = \n this.providers?.dimension?.stores[columnType]?.store.get('sizes')?.[index] || \n column.size || \n 100;\n\n const minColumnWidth = this.getColumnMinWidth(column);\n const newWidth = Math.max(minColumnWidth, currentWidth + avgChange);\n\n if (Math.abs(newWidth - currentWidth) > 1) {\n newSizes[index] = newWidth;\n }\n });\n\n if (Object.keys(newSizes).length > 0) {\n this.providers?.dimension?.setCustomSizes(columnType, newSizes, true);\n }\n });\n }\n\n /**\n * 检查列是否有效\n */\n private isValidColumn(column: ColumnRegular): boolean {\n return !!column.prop || !(column as any).children;\n }\n\n /**\n * 公开的 applyStretch 方法\n */\n applyStretch() {\n this.applyStretchImpl();\n }\n\n /**\n * 立即同步执行拉伸计算(不使用防抖)\n * 用于需要立即响应的场景,如拖拽结束\n */\n applyStretchImmediate() {\n this.applyStretchImpl();\n }\n\n /**\n * 重置手动调整记录\n */\n resetManualResize() {\n this.manuallyResizedColumns.clear();\n this.applyStretchImpl();\n }\n\n /**\n * 检查列是否被手动调整过宽度\n */\n isManuallyResized(prop: string): boolean {\n return this.manuallyResizedColumns.has(prop);\n }\n\n /**\n * 标记列为手动调整过\n */\n markAsManuallyResized(prop: string) {\n this.manuallyResizedColumns.add(prop);\n }\n\n /**\n * 取消列的手动调整标记\n */\n unmarkAsManuallyResized(prop: string) {\n this.manuallyResizedColumns.delete(prop);\n }\n\n /**\n * 获取拉伸列配置\n */\n getStretchColumnConfig(): 'last' | 'all' | number | string | undefined {\n return this.config.stretchColumn;\n }\n\n /**\n * 更新配置\n */\n updateConfig(config: Partial<ColumnStretchConfig>) {\n this.config = { ...this.config, ...config };\n this.applyStretchImpl();\n }\n\n destroy() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n if (this.resizeEndTimeout) {\n clearTimeout(this.resizeEndTimeout);\n }\n // 移除覆盖层\n this.removevirtualGridOverlay();\n super.destroy();\n }\n}\n"]}
@@ -0,0 +1,308 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ /**
5
+ * Plugin module for revo-grid grid system
6
+ * Add support for automatic column resize
7
+ */
8
+ import each from "lodash/each";
9
+ import reduce from "lodash/reduce";
10
+ import { BasePlugin } from "./base.plugin";
11
+ import { getSourceItem, columnTypes } from "../store/index";
12
+ import { getColumnType } from "../utils/column.utils";
13
+ import { ColumnStretchPlugin } from "./column-stretch.plugin";
14
+ const LETTER_BLOCK_SIZE = 7;
15
+ export class AutoSizeColumnPlugin extends BasePlugin {
16
+ constructor(revogrid, providers, config) {
17
+ super(revogrid, providers);
18
+ this.providers = providers;
19
+ this.config = config;
20
+ this.autoSizeColumns = null;
21
+ /** for edge case when no columns defined before data */
22
+ this.dataResolve = null;
23
+ this.dataReject = null;
24
+ this.letterBlockSize = (config === null || config === void 0 ? void 0 : config.letterBlockSize) || LETTER_BLOCK_SIZE;
25
+ // create test container to check text width
26
+ if (config === null || config === void 0 ? void 0 : config.preciseSize) {
27
+ this.precsizeCalculationArea = this.initiatePresizeElement();
28
+ revogrid.appendChild(this.precsizeCalculationArea);
29
+ }
30
+ const aftersourceset = ({ detail: { source }, }) => {
31
+ this.setSource(source);
32
+ };
33
+ const beforecolumnsset = ({ detail: { columns }, }) => {
34
+ this.columnSet(columns);
35
+ };
36
+ this.addEventListener('beforecolumnsset', beforecolumnsset);
37
+ switch (config === null || config === void 0 ? void 0 : config.mode) {
38
+ case "autoSizeOnTextOverlap" /* ColumnAutoSizeMode.autoSizeOnTextOverlap */:
39
+ this.addEventListener('aftersourceset', aftersourceset);
40
+ this.addEventListener('afteredit', ({ detail }) => {
41
+ this.afteredit(detail);
42
+ });
43
+ break;
44
+ case "autoSizeAll" /* ColumnAutoSizeMode.autoSizeAll */:
45
+ this.addEventListener('aftersourceset', aftersourceset);
46
+ this.addEventListener('afteredit', ({ detail }) => {
47
+ this.afterEditAll(detail);
48
+ });
49
+ break;
50
+ case "resetToInitialSize" /* ColumnAutoSizeMode.resetToInitialSize */:
51
+ this.addEventListener('headerdblclick', ({ detail }) => {
52
+ this.resetColumnToInitialSize(detail);
53
+ });
54
+ break;
55
+ default:
56
+ this.addEventListener('headerdblclick', ({ detail }) => {
57
+ var _a, _b;
58
+ const type = getColumnType(detail.column);
59
+ const size = this.getColumnSize(detail.index, type);
60
+ if (size) {
61
+ // 获取 column-stretch 插件实例
62
+ const stretchPlugin = (_b = (_a = this.providers.plugins) === null || _a === void 0 ? void 0 : _a.getByClass) === null || _b === void 0 ? void 0 : _b.call(_a, ColumnStretchPlugin);
63
+ // 启用防跳动机制
64
+ this.triggerAutoSizeWithAntiJitter(type, detail.index, detail.column, stretchPlugin);
65
+ // 在防跳动期间设置列宽
66
+ this.providers.dimension.setCustomSizes(type, {
67
+ [detail.index]: size,
68
+ }, true);
69
+ }
70
+ });
71
+ break;
72
+ }
73
+ }
74
+ async setSource(source) {
75
+ let autoSize = this.autoSizeColumns;
76
+ if (this.dataReject) {
77
+ this.dataReject();
78
+ this.clearPromise();
79
+ }
80
+ /** If data set first and no column provided await until get one */
81
+ if (!autoSize) {
82
+ const request = new Promise((resolve, reject) => {
83
+ this.dataResolve = resolve;
84
+ this.dataReject = reject;
85
+ });
86
+ try {
87
+ autoSize = await request;
88
+ }
89
+ catch (_a) {
90
+ return;
91
+ }
92
+ }
93
+ // calculate sizes
94
+ if (autoSize) {
95
+ each(autoSize, (_v, type) => {
96
+ const sizes = {};
97
+ each(autoSize[type], rgCol => {
98
+ // calculate size
99
+ rgCol.size = sizes[rgCol.index] = source.reduce((prev, rgRow) => Math.max(prev, this.getLength(rgRow[rgCol.prop])), this.getLength(rgCol.name || ''));
100
+ });
101
+ this.providers.dimension.setCustomSizes(type, sizes, true);
102
+ });
103
+ }
104
+ }
105
+ getLength(len) {
106
+ var _a;
107
+ const padding = 15;
108
+ if (!len) {
109
+ return 0;
110
+ }
111
+ try {
112
+ const str = len.toString();
113
+ /**if exact calculation required proxy with html element, slow operation */
114
+ if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.preciseSize) {
115
+ this.precsizeCalculationArea.innerText = str;
116
+ return this.precsizeCalculationArea.scrollWidth + padding * 2;
117
+ }
118
+ return str.length * this.letterBlockSize + padding * 2;
119
+ }
120
+ catch (_b) {
121
+ return 0;
122
+ }
123
+ }
124
+ afteredit(e) {
125
+ let data;
126
+ if (this.isRangeEdit(e)) {
127
+ data = e.data;
128
+ }
129
+ else {
130
+ data = { 0: { [e.prop]: e.val } };
131
+ }
132
+ each(this.autoSizeColumns, (columns, type) => {
133
+ const sizes = {};
134
+ each(columns, rgCol => {
135
+ var _a;
136
+ // calculate size
137
+ const size = reduce(data, (prev, rgRow) => {
138
+ if (typeof rgRow[rgCol.prop] === 'undefined') {
139
+ return prev;
140
+ }
141
+ return Math.max(prev || 0, this.getLength(rgRow[rgCol.prop]));
142
+ }, undefined);
143
+ if (size && ((_a = rgCol.size) !== null && _a !== void 0 ? _a : 0) < size) {
144
+ rgCol.size = sizes[rgCol.index] = size;
145
+ }
146
+ });
147
+ this.providers.dimension.setCustomSizes(type, sizes, true);
148
+ });
149
+ }
150
+ afterEditAll(e) {
151
+ const props = {};
152
+ if (this.isRangeEdit(e)) {
153
+ each(e.data, r => each(r, (_v, p) => (props[p] = true)));
154
+ }
155
+ else {
156
+ props[e.prop] = true;
157
+ }
158
+ each(this.autoSizeColumns, (columns, type) => {
159
+ const sizes = {};
160
+ each(columns, rgCol => {
161
+ if (props[rgCol.prop]) {
162
+ const size = this.getColumnSize(rgCol.index, type);
163
+ if (size) {
164
+ sizes[rgCol.index] = size;
165
+ }
166
+ }
167
+ });
168
+ this.providers.dimension.setCustomSizes(type, sizes, true);
169
+ });
170
+ }
171
+ getColumnSize(index, type) {
172
+ var _a, _b;
173
+ const rgCol = (_b = (_a = this.autoSizeColumns) === null || _a === void 0 ? void 0 : _a[type]) === null || _b === void 0 ? void 0 : _b[index];
174
+ if (!rgCol) {
175
+ return 0;
176
+ }
177
+ return reduce(this.providers.data.stores, (r, s) => {
178
+ const perStore = reduce(s.store.get('items'), (prev, _row, i) => {
179
+ const item = getSourceItem(s.store, i);
180
+ return Math.max(prev || 0, this.getLength(item === null || item === void 0 ? void 0 : item[rgCol.prop]));
181
+ }, 0);
182
+ return Math.max(r, perStore);
183
+ }, rgCol.size || 0);
184
+ }
185
+ columnSet(columns) {
186
+ var _a;
187
+ for (let t of columnTypes) {
188
+ const type = t;
189
+ const cols = columns[type];
190
+ for (let i in cols) {
191
+ if (cols[i].autoSize || ((_a = this.config) === null || _a === void 0 ? void 0 : _a.allColumns)) {
192
+ if (!this.autoSizeColumns) {
193
+ this.autoSizeColumns = {};
194
+ }
195
+ if (!this.autoSizeColumns[type]) {
196
+ this.autoSizeColumns[type] = {};
197
+ }
198
+ this.autoSizeColumns[type][i] = Object.assign(Object.assign({}, cols[i]), { index: parseInt(i, 10) });
199
+ }
200
+ }
201
+ }
202
+ if (this.dataResolve) {
203
+ this.dataResolve(this.autoSizeColumns || {});
204
+ this.clearPromise();
205
+ }
206
+ }
207
+ /**
208
+ * Reset column width to initial size
209
+ */
210
+ resetColumnToInitialSize(detail) {
211
+ var _a, _b, _c;
212
+ const { column, index } = detail;
213
+ const type = getColumnType(column);
214
+ // Get initial size from additionalData.allColumns
215
+ const allColumns = (_a = this.revogrid.additionalData) === null || _a === void 0 ? void 0 : _a.allColumns;
216
+ if (!allColumns || !Array.isArray(allColumns)) {
217
+ return;
218
+ }
219
+ const initialColumn = allColumns.find((col) => col.prop === column.prop);
220
+ // 获取 column-stretch 插件实例
221
+ const stretchPlugin = (_c = (_b = this.providers.plugins) === null || _b === void 0 ? void 0 : _b.getByClass) === null || _c === void 0 ? void 0 : _c.call(_b, ColumnStretchPlugin);
222
+ // 如果列没有固定size(自动宽度列)
223
+ if (!(initialColumn === null || initialColumn === void 0 ? void 0 : initialColumn.size)) {
224
+ // 检查列是否被手动调整过
225
+ const isManuallyResized = stretchPlugin &&
226
+ typeof stretchPlugin.isManuallyResized === 'function' &&
227
+ column.prop &&
228
+ stretchPlugin.isManuallyResized(column.prop);
229
+ if (isManuallyResized) {
230
+ // 触发防跳动机制
231
+ this.triggerAutoSizeWithAntiJitter(type, index, column, stretchPlugin);
232
+ }
233
+ // 如果没有被手动调整过,说明已经是自动宽度状态,不做任何操作
234
+ return;
235
+ }
236
+ // 如果有初始size,恢复到初始size
237
+ const initialSize = initialColumn.size;
238
+ if (initialSize) {
239
+ this.providers.dimension.setCustomSizes(type, {
240
+ [index]: initialSize,
241
+ }, true);
242
+ // 立即同步触发 column-stretch 插件重新计算覆盖层,避免抖动
243
+ if (stretchPlugin && typeof stretchPlugin.applyStretchImmediate === 'function') {
244
+ stretchPlugin.applyStretchImmediate();
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * 触发自动列宽并应用防跳动机制
250
+ */
251
+ triggerAutoSizeWithAntiJitter(type, _index, column, stretchPlugin) {
252
+ // 直接调用 header 组件的防跳动方法(同步)
253
+ const headers = this.revogrid.querySelectorAll('revogr-header-unified');
254
+ headers.forEach((header) => {
255
+ if (header && typeof header.startResizingForAutoSize === 'function') {
256
+ header.startResizingForAutoSize(type);
257
+ }
258
+ });
259
+ // 取消手动调整标记,恢复为自动宽度
260
+ if (stretchPlugin && typeof stretchPlugin.unmarkAsManuallyResized === 'function' && column.prop) {
261
+ stretchPlugin.unmarkAsManuallyResized(column.prop);
262
+ }
263
+ // 立即同步触发 column-stretch 插件重新计算
264
+ if (stretchPlugin && typeof stretchPlugin.applyStretchImmediate === 'function') {
265
+ stretchPlugin.applyStretchImmediate();
266
+ }
267
+ // 延迟结束调整大小状态(与拖动列宽的延迟时间一致)
268
+ setTimeout(() => {
269
+ headers.forEach((header) => {
270
+ if (header && typeof header.endResizingForAutoSize === 'function') {
271
+ header.endResizingForAutoSize();
272
+ }
273
+ });
274
+ }, 300);
275
+ }
276
+ clearPromise() {
277
+ this.dataResolve = null;
278
+ this.dataReject = null;
279
+ }
280
+ isRangeEdit(e) {
281
+ return !!e.data;
282
+ }
283
+ initiatePresizeElement() {
284
+ var _a;
285
+ const styleForFontTest = {
286
+ position: 'absolute',
287
+ fontSize: '14px',
288
+ height: '0',
289
+ width: '0',
290
+ whiteSpace: 'nowrap',
291
+ top: '0',
292
+ overflowX: 'scroll',
293
+ display: 'block',
294
+ };
295
+ const el = document.createElement('div');
296
+ for (let s in styleForFontTest) {
297
+ el.style[s] = (_a = styleForFontTest[s]) !== null && _a !== void 0 ? _a : '';
298
+ }
299
+ el.classList.add('revo-test-container');
300
+ return el;
301
+ }
302
+ destroy() {
303
+ var _a;
304
+ super.destroy();
305
+ (_a = this.precsizeCalculationArea) === null || _a === void 0 ? void 0 : _a.remove();
306
+ }
307
+ }
308
+ //# sourceMappingURL=column.auto-size.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.auto-size.plugin.js","sourceRoot":"","sources":["../../src/plugins/column.auto-size.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plugin module for revo-grid grid system\n * Add support for automatic column resize\n */\nimport each from 'lodash/each';\nimport reduce from 'lodash/reduce';\n\nimport { BasePlugin } from './base.plugin';\nimport { getSourceItem, columnTypes } from '@store';\nimport type {\n DimensionCols,\n DimensionRows,\n ColumnRegular,\n DataType,\n InitialHeaderClick,\n ViewSettingSizeProp,\n BeforeSaveDataDetails,\n BeforeRangeSaveDataDetails,\n PluginProviders,\n} from '@type';\nimport { ColumnCollection, getColumnType } from '../utils/column.utils';\nimport { ColumnStretchPlugin } from './column-stretch.plugin';\n\ninterface Column extends ColumnRegular {\n index: number;\n}\n\ntype AutoSizeColumns = Record<DimensionCols, ColumnRecords>;\ntype ColumnRecords = Record<any, Column>;\ntype SourceSetEvent = { type: DimensionRows; source: DataType[] };\ntype EditEvent = BeforeSaveDataDetails | BeforeRangeSaveDataDetails;\ntype Resolve = (cols: Partial<AutoSizeColumns>) => void;\ntype Reject = () => void;\n\nexport type AutoSizeColumnConfig = {\n // ui behavior mode\n mode?: ColumnAutoSizeMode;\n /**\n * autoSize for all columns\n * if allColumnes true all columns treated as autoSize, worse for performance\n * false by default\n */\n allColumns?: boolean;\n /**\n * assumption per characted size\n * by default defined as 8, can be changed in this config\n */\n letterBlockSize?: number;\n /** make size calculation exact\n * by default it based on assumption each character takes some space defined in letterBlockSize */\n preciseSize?: boolean;\n /**\n * reset column width to initial size on header double click\n * requires mode to be 'resetToInitialSize'\n */\n resetToInitialSize?: boolean;\n};\n\nconst LETTER_BLOCK_SIZE = 7;\n\nexport const enum ColumnAutoSizeMode {\n // increases column width on header click according the largest text value\n headerClickAutosize = 'headerClickAutoSize',\n // increases column width on data set and text edit, decreases performance\n autoSizeOnTextOverlap = 'autoSizeOnTextOverlap',\n // increases and decreases column width based on all items sizes, worst for performance\n autoSizeAll = 'autoSizeAll',\n // reset column width to initial size on header double click\n resetToInitialSize = 'resetToInitialSize',\n}\n\nexport class AutoSizeColumnPlugin extends BasePlugin {\n autoSizeColumns: Partial<AutoSizeColumns> | null = null;\n readonly letterBlockSize: number;\n\n /** for config option when preciseSize enabled */\n readonly precsizeCalculationArea: HTMLElement;\n\n /** for edge case when no columns defined before data */\n dataResolve: Resolve | null = null;\n dataReject: Reject | null = null;\n\n constructor(\n revogrid: HTMLRevoGridElement,\n public providers: PluginProviders,\n public config?: AutoSizeColumnConfig,\n ) {\n super(revogrid, providers);\n this.letterBlockSize = config?.letterBlockSize || LETTER_BLOCK_SIZE;\n\n // create test container to check text width\n if (config?.preciseSize) {\n this.precsizeCalculationArea = this.initiatePresizeElement();\n revogrid.appendChild(this.precsizeCalculationArea);\n }\n\n const aftersourceset = ({\n detail: { source },\n }: CustomEvent<SourceSetEvent>) => {\n this.setSource(source);\n };\n const beforecolumnsset = ({\n detail: { columns },\n }: CustomEvent<ColumnCollection>) => {\n this.columnSet(columns);\n };\n this.addEventListener('beforecolumnsset', beforecolumnsset);\n switch (config?.mode) {\n case ColumnAutoSizeMode.autoSizeOnTextOverlap:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', ({ detail }: CustomEvent<EditEvent>) => {\n this.afteredit(detail);\n });\n break;\n case ColumnAutoSizeMode.autoSizeAll:\n this.addEventListener('aftersourceset', aftersourceset);\n this.addEventListener('afteredit', ({ detail }) => {\n this.afterEditAll(detail);\n });\n break;\n case ColumnAutoSizeMode.resetToInitialSize:\n this.addEventListener('headerdblclick', ({ detail }: CustomEvent<InitialHeaderClick>) => {\n this.resetColumnToInitialSize(detail);\n });\n break;\n default:\n this.addEventListener('headerdblclick', ({ detail }: CustomEvent<InitialHeaderClick>) => {\n const type = getColumnType(detail.column);\n const size = this.getColumnSize(detail.index, type);\n if (size) {\n // 获取 column-stretch 插件实例\n const stretchPlugin = this.providers.plugins?.getByClass?.(ColumnStretchPlugin);\n \n // 启用防跳动机制\n this.triggerAutoSizeWithAntiJitter(type, detail.index, detail.column, stretchPlugin);\n \n // 在防跳动期间设置列宽\n this.providers.dimension.setCustomSizes(\n type,\n {\n [detail.index]: size,\n },\n true,\n );\n }\n });\n break;\n }\n }\n\n async setSource(source: DataType[]): Promise<void> {\n let autoSize = this.autoSizeColumns;\n if (this.dataReject) {\n this.dataReject();\n this.clearPromise();\n }\n\n /** If data set first and no column provided await until get one */\n if (!autoSize) {\n const request = new Promise((resolve: Resolve, reject: Reject) => {\n this.dataResolve = resolve;\n this.dataReject = reject;\n });\n try {\n autoSize = await request;\n } catch {\n return;\n }\n }\n\n // calculate sizes\n if (autoSize) {\n each(autoSize, (_v, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n each(autoSize![type], rgCol => {\n // calculate size\n rgCol.size = sizes[rgCol.index] = source.reduce(\n (prev, rgRow) => Math.max(prev, this.getLength(rgRow[rgCol.prop])),\n this.getLength(rgCol.name || ''),\n );\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n }\n\n getLength(len?: any): number {\n const padding = 15;\n if (!len) {\n return 0;\n }\n try {\n const str = len.toString();\n\n /**if exact calculation required proxy with html element, slow operation */\n if (this.config?.preciseSize) {\n this.precsizeCalculationArea.innerText = str;\n return this.precsizeCalculationArea.scrollWidth + padding * 2;\n }\n return str.length * this.letterBlockSize + padding * 2;\n } catch {\n return 0;\n }\n }\n\n afteredit(e: EditEvent) {\n let data: Record<string, DataType>;\n if (this.isRangeEdit(e)) {\n data = e.data;\n } else {\n data = { 0: { [e.prop]: e.val } };\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n // calculate size\n const size = reduce(\n data,\n (prev: number | undefined, rgRow) => {\n if (typeof rgRow[rgCol.prop] === 'undefined') {\n return prev;\n }\n return Math.max(prev || 0, this.getLength(rgRow[rgCol.prop]));\n },\n undefined,\n );\n\n if (size && (rgCol.size ?? 0) < size) {\n rgCol.size = sizes[rgCol.index] = size;\n }\n });\n\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n afterEditAll(e: EditEvent) {\n const props: Record<any, true> = {};\n if (this.isRangeEdit(e)) {\n each(e.data, r => each(r, (_v, p) => (props[p] = true)));\n } else {\n props[e.prop] = true;\n }\n each(this.autoSizeColumns, (columns, type: DimensionCols) => {\n const sizes: ViewSettingSizeProp = {};\n\n each(columns, rgCol => {\n if (props[rgCol.prop]) {\n const size = this.getColumnSize(rgCol.index, type);\n if (size) {\n sizes[rgCol.index] = size;\n }\n }\n });\n this.providers.dimension.setCustomSizes(type, sizes, true);\n });\n }\n\n getColumnSize(index: number, type: DimensionCols): number {\n const rgCol = this.autoSizeColumns?.[type]?.[index];\n if (!rgCol) {\n return 0;\n }\n return reduce(\n this.providers.data.stores,\n (r, s) => {\n const perStore = reduce(\n s.store.get('items'),\n (prev, _row, i) => {\n const item = getSourceItem(s.store, i);\n return Math.max(prev || 0, this.getLength(item?.[rgCol.prop]));\n },\n 0,\n );\n return Math.max(r, perStore);\n },\n rgCol.size || 0,\n );\n }\n\n columnSet(columns: Record<DimensionCols, ColumnRegular[]>) {\n for (let t of columnTypes) {\n const type = t as DimensionCols;\n const cols = columns[type];\n\n for (let i in cols) {\n if (cols[i].autoSize || this.config?.allColumns) {\n if (!this.autoSizeColumns) {\n this.autoSizeColumns = {};\n }\n if (!this.autoSizeColumns[type]) {\n this.autoSizeColumns[type] = {};\n }\n this.autoSizeColumns[type]![i] = {\n ...cols[i],\n index: parseInt(i, 10),\n };\n }\n }\n }\n\n if (this.dataResolve) {\n this.dataResolve(this.autoSizeColumns || {});\n this.clearPromise();\n }\n }\n\n /**\n * Reset column width to initial size\n */\n resetColumnToInitialSize(detail: InitialHeaderClick) {\n const { column, index } = detail;\n const type = getColumnType(column);\n \n // Get initial size from additionalData.allColumns\n const allColumns = this.revogrid.additionalData?.allColumns;\n \n if (!allColumns || !Array.isArray(allColumns)) {\n return;\n }\n \n const initialColumn = allColumns.find((col: any) => col.prop === column.prop);\n \n // 获取 column-stretch 插件实例\n const stretchPlugin = this.providers.plugins?.getByClass?.(ColumnStretchPlugin);\n \n // 如果列没有固定size(自动宽度列)\n if (!initialColumn?.size) {\n // 检查列是否被手动调整过\n const isManuallyResized = stretchPlugin && \n typeof stretchPlugin.isManuallyResized === 'function' && \n column.prop && \n stretchPlugin.isManuallyResized(column.prop as string);\n \n if (isManuallyResized) {\n // 触发防跳动机制\n this.triggerAutoSizeWithAntiJitter(type, index, column, stretchPlugin);\n }\n // 如果没有被手动调整过,说明已经是自动宽度状态,不做任何操作\n return;\n }\n \n // 如果有初始size,恢复到初始size\n const initialSize = initialColumn.size;\n if (initialSize) {\n this.providers.dimension.setCustomSizes(\n type,\n {\n [index]: initialSize,\n },\n true,\n );\n \n // 立即同步触发 column-stretch 插件重新计算覆盖层,避免抖动\n if (stretchPlugin && typeof stretchPlugin.applyStretchImmediate === 'function') {\n stretchPlugin.applyStretchImmediate();\n }\n }\n }\n\n /**\n * 触发自动列宽并应用防跳动机制\n */\n private triggerAutoSizeWithAntiJitter(\n type: DimensionCols,\n _index: number,\n column: ColumnRegular,\n stretchPlugin: any\n ) {\n // 直接调用 header 组件的防跳动方法(同步)\n const headers = this.revogrid.querySelectorAll('revogr-header-unified');\n headers.forEach((header: any) => {\n if (header && typeof header.startResizingForAutoSize === 'function') {\n header.startResizingForAutoSize(type);\n }\n });\n \n // 取消手动调整标记,恢复为自动宽度\n if (stretchPlugin && typeof stretchPlugin.unmarkAsManuallyResized === 'function' && column.prop) {\n stretchPlugin.unmarkAsManuallyResized(column.prop as string);\n }\n \n // 立即同步触发 column-stretch 插件重新计算\n if (stretchPlugin && typeof stretchPlugin.applyStretchImmediate === 'function') {\n stretchPlugin.applyStretchImmediate();\n }\n \n // 延迟结束调整大小状态(与拖动列宽的延迟时间一致)\n setTimeout(() => {\n headers.forEach((header: any) => {\n if (header && typeof header.endResizingForAutoSize === 'function') {\n header.endResizingForAutoSize();\n }\n });\n }, 300);\n }\n\n clearPromise() {\n this.dataResolve = null;\n this.dataReject = null;\n }\n\n isRangeEdit(e: EditEvent): e is BeforeRangeSaveDataDetails {\n return !!(e as BeforeRangeSaveDataDetails).data;\n }\n\n initiatePresizeElement(): HTMLElement {\n const styleForFontTest: Partial<CSSStyleDeclaration> = {\n position: 'absolute',\n fontSize: '14px',\n height: '0',\n width: '0',\n whiteSpace: 'nowrap',\n top: '0',\n overflowX: 'scroll',\n display: 'block',\n };\n\n const el = document.createElement('div');\n for (let s in styleForFontTest) {\n el.style[s] = styleForFontTest[s] ?? '';\n }\n el.classList.add('revo-test-container');\n return el;\n }\n\n destroy() {\n super.destroy();\n this.precsizeCalculationArea?.remove();\n }\n}\n"]}
@@ -0,0 +1,96 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import each from "lodash/each";
5
+ import { calculateRowHeaderSize } from "../utils/row-header-utils";
6
+ import { getScrollbarSize } from "../utils";
7
+ import { BasePlugin } from "./base.plugin";
8
+ export class StretchColumn extends BasePlugin {
9
+ constructor(revogrid, providers) {
10
+ super(revogrid, providers);
11
+ this.providers = providers;
12
+ this.stretchedColumn = null;
13
+ // calculate scroll bar size for current user session
14
+ this.scrollSize = getScrollbarSize(document);
15
+ // subscribe to column changes
16
+ const beforecolumnapplied = ({ detail: { columns }, }) => this.applyStretch(columns);
17
+ this.addEventListener('beforecolumnapplied', beforecolumnapplied);
18
+ }
19
+ setScroll({ type, hasScroll }) {
20
+ var _a;
21
+ if (type === 'rgRow' &&
22
+ this.stretchedColumn &&
23
+ ((_a = this.stretchedColumn) === null || _a === void 0 ? void 0 : _a.initialSize) === this.stretchedColumn.size) {
24
+ if (hasScroll) {
25
+ this.stretchedColumn.size -= this.scrollSize;
26
+ this.apply();
27
+ this.dropChanges();
28
+ }
29
+ }
30
+ }
31
+ activateChanges() {
32
+ const setScroll = ({ detail }) => this.setScroll(detail);
33
+ this.addEventListener('scrollchange', setScroll);
34
+ }
35
+ dropChanges() {
36
+ this.stretchedColumn = null;
37
+ this.removeEventListener('scrollchange');
38
+ }
39
+ apply() {
40
+ if (!this.stretchedColumn) {
41
+ return;
42
+ }
43
+ const type = 'rgCol';
44
+ const sizes = this.providers.dimension.stores[type].store.get('sizes');
45
+ this.providers.dimension.setCustomSizes(type, Object.assign(Object.assign({}, sizes), { [this.stretchedColumn.index]: this.stretchedColumn.size }), true);
46
+ }
47
+ /**
48
+ * Apply stretch changes
49
+ */
50
+ applyStretch(columns) {
51
+ // unsubscribe from all events
52
+ this.dropChanges();
53
+ // calculate grid size
54
+ let sizeDifference = this.revogrid.clientWidth - 1;
55
+ each(columns, (_, type) => {
56
+ const realSize = this.providers.dimension.stores[type].store.get('realSize');
57
+ sizeDifference -= realSize;
58
+ });
59
+ if (this.revogrid.rowHeaders) {
60
+ const itemsLength = this.providers.data.stores.rgRow.store.get('source').length;
61
+ const header = this.revogrid.rowHeaders;
62
+ const rowHeaderSize = calculateRowHeaderSize(itemsLength, typeof header === 'object' ? header : undefined);
63
+ if (rowHeaderSize) {
64
+ sizeDifference -= rowHeaderSize;
65
+ }
66
+ }
67
+ if (sizeDifference > 0) {
68
+ // currently plugin accepts last column only
69
+ const index = columns.rgCol.length - 1;
70
+ const last = columns.rgCol[index];
71
+ /**
72
+ * has column
73
+ * no auto size applied
74
+ * size for column shouldn't be defined
75
+ */
76
+ const colSize = (last === null || last === void 0 ? void 0 : last.size) || this.revogrid.colSize || 0;
77
+ const size = sizeDifference + colSize - 1;
78
+ if (last && !last.autoSize && colSize < size) {
79
+ this.stretchedColumn = {
80
+ initialSize: size,
81
+ index,
82
+ size,
83
+ };
84
+ this.apply();
85
+ this.activateChanges();
86
+ }
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Check plugin type is Stretch
92
+ */
93
+ export function isStretchPlugin(plugin) {
94
+ return !!plugin.applyStretch;
95
+ }
96
+ //# sourceMappingURL=column.stretch.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.stretch.plugin.js","sourceRoot":"","sources":["../../src/plugins/column.stretch.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import each from 'lodash/each';\nimport { calculateRowHeaderSize } from '../utils/row-header-utils';\nimport { getScrollbarSize } from '../utils';\nimport { BasePlugin } from './base.plugin';\nimport { DimensionCols, DimensionType, PluginBaseComponent, PluginProviders, ColumnRegular } from '@type';\nimport { ColumnCollection } from '../utils/column.utils';\n\n/**\n * This plugin serves to recalculate columns initially\n * Base on empty space if there is any\n * Currently plugin supports only increasing last column\n */\ntype ScrollChange = {\n type: DimensionType;\n hasScroll: boolean;\n};\ntype StretchedData = {\n initialSize: number;\n size: number;\n index: number;\n};\n\nexport class StretchColumn extends BasePlugin {\n private stretchedColumn: StretchedData | null = null;\n private readonly scrollSize;\n constructor(\n revogrid: HTMLRevoGridElement,\n public providers: PluginProviders,\n ) {\n super(revogrid, providers);\n\n // calculate scroll bar size for current user session\n this.scrollSize = getScrollbarSize(document);\n\n // subscribe to column changes\n const beforecolumnapplied = ({\n detail: { columns },\n }: CustomEvent<ColumnCollection>) => this.applyStretch(columns);\n this.addEventListener('beforecolumnapplied', beforecolumnapplied);\n }\n\n private setScroll({ type, hasScroll }: ScrollChange) {\n if (\n type === 'rgRow' &&\n this.stretchedColumn &&\n this.stretchedColumn?.initialSize === this.stretchedColumn.size\n ) {\n if (hasScroll) {\n this.stretchedColumn.size -= this.scrollSize;\n this.apply();\n this.dropChanges();\n }\n }\n }\n\n private activateChanges() {\n const setScroll = ({ detail }: CustomEvent<ScrollChange>) =>\n this.setScroll(detail);\n this.addEventListener('scrollchange', setScroll);\n }\n\n private dropChanges() {\n this.stretchedColumn = null;\n this.removeEventListener('scrollchange');\n }\n\n private apply() {\n if (!this.stretchedColumn) {\n return;\n }\n const type: DimensionCols = 'rgCol';\n const sizes = this.providers.dimension.stores[type].store.get('sizes');\n this.providers.dimension.setCustomSizes(\n type,\n {\n ...sizes,\n [this.stretchedColumn.index]: this.stretchedColumn.size,\n },\n true,\n );\n }\n\n /**\n * Apply stretch changes\n */\n applyStretch(columns: Record<DimensionCols, ColumnRegular[]>) {\n // unsubscribe from all events\n this.dropChanges();\n // calculate grid size\n let sizeDifference = this.revogrid.clientWidth - 1;\n each(columns, (_, type: DimensionCols) => {\n const realSize =\n this.providers.dimension.stores[type].store.get('realSize');\n sizeDifference -= realSize;\n });\n if (this.revogrid.rowHeaders) {\n const itemsLength =\n this.providers.data.stores.rgRow.store.get('source').length;\n const header = this.revogrid.rowHeaders;\n const rowHeaderSize = calculateRowHeaderSize(\n itemsLength,\n typeof header === 'object' ? header : undefined,\n );\n if (rowHeaderSize) {\n sizeDifference -= rowHeaderSize;\n }\n }\n if (sizeDifference > 0) {\n // currently plugin accepts last column only\n const index = columns.rgCol.length - 1;\n const last = columns.rgCol[index];\n /**\n * has column\n * no auto size applied\n * size for column shouldn't be defined\n */\n const colSize = last?.size || this.revogrid.colSize || 0;\n const size = sizeDifference + colSize - 1;\n\n if (last && !last.autoSize && colSize < size) {\n this.stretchedColumn = {\n initialSize: size,\n index,\n size,\n };\n this.apply();\n this.activateChanges();\n }\n }\n }\n}\n\n/**\n * Check plugin type is Stretch\n */\nexport function isStretchPlugin(\n plugin: PluginBaseComponent | StretchColumn,\n): plugin is StretchColumn {\n return !!(plugin as StretchColumn).applyStretch;\n}\n"]}