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
+ {"file":"revogr-viewport-scroll2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/utils/browser.ts","src/components/revoGrid/viewport.helpers.ts","src/components/revoGrid/viewport.resize.service.ts","src/components/scroll/revogr-viewport-scroll-style.scss?tag=revogr-viewport-scroll","src/components/scroll/revogr-viewport-scroll.tsx"],"sourcesContent":["export function isSafariDesktop() {\n return /Safari/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent) && !navigator.userAgent.match(/(iPad|iPhone|iPod)/g);\n}\n","/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport type {\n DimensionRows,\n MultiDimensionType,\n SlotType,\n Cell,\n ViewportColumn,\n ColumnRegular,\n DimensionCols,\n ViewportState,\n DimensionSettingsState,\n DataType,\n} from '@type';\nimport type { Observable } from '../../utils';\nimport type { DSourceState } from '../../store';\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n/**\n * Represents the partition of viewport data.\n */\nexport type VPPartition = {\n colData: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n viewportCol: Observable<ViewportState>;\n viewportRow: Observable<ViewportState>;\n /**\n * lastCell is the last real coordinate + 1, saved to selection store\n */\n lastCell: Cell;\n slot: SlotType;\n type: DimensionRows;\n canDrag: boolean;\n position: Cell;\n dataStore: Observable<DSourceState<DataType, DimensionRows>>;\n dimensionCol: Observable<DimensionSettingsState>;\n dimensionRow: Observable<DimensionSettingsState>;\n style?: { height: string };\n};\n\nexport function viewportDataPartition(\n data: ViewportColumn,\n type: DimensionRows,\n slot: SlotType,\n fixed?: boolean,\n): VPPartition {\n return {\n colData: data.colStore,\n viewportCol: data.viewports[data.colType].store,\n viewportRow: data.viewports[type].store,\n /**\n * lastCell is the last real coordinate + 1, saved to selection store\n */\n lastCell: getLastCell(data, type),\n slot,\n type,\n canDrag: !fixed,\n position: data.position,\n dataStore: data.rowStores[type].store,\n dimensionCol: data.dimensions[data.colType].store,\n dimensionRow: data.dimensions[type].store,\n style: fixed\n ? { height: `${data.dimensions[type].store.get('realSize')}px` }\n : undefined,\n };\n}\n","import throttle from 'lodash/throttle';\ntype ResizeEntry = {\n width: number;\n height: number;\n};\nexport default class GridResizeService {\n private resizeObserver: ResizeObserver | null = null;\n private previousSize: ResizeEntry = {\n width: 0,\n height: 0,\n };\n readonly apply = throttle(\n (e: { width: number, height: number }) => {\n const entry = {\n width: e.width,\n height: e.height,\n };\n this.resize?.(entry, this.previousSize);\n this.previousSize = entry;\n },\n 40,\n {\n leading: false,\n trailing: true,\n }\n );\n constructor(\n el: HTMLElement,\n private readonly resize: (\n entry: ResizeEntry,\n previousSize: ResizeEntry,\n ) => void,\n elements: (HTMLElement | undefined)[],\n ) {\n const extras: HTMLElement[] = [];\n elements.forEach((element) => {\n if (element) {\n extras.push(element);\n }\n });\n this.init(el, extras);\n }\n\n init(el: HTMLElement, extras: HTMLElement[] = []) {\n const observer = this.resizeObserver = new ResizeObserver((e) => {\n if (e.length) {\n if (e[0].target === el) {\n this.apply(e[0].contentRect);\n } else {\n this.apply(el.getBoundingClientRect());\n }\n }\n });\n observer.observe(el);\n extras.forEach((extra) => {\n observer.observe(extra);\n });\n }\n\n destroy() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n}\n","@mixin noScroll {\n /* Hide scrollbar for IE and Edge */\n -ms-overflow-style: none;\n scrollbar-width: none; /* Firefox */\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n -webkit-appearance: none;\n }\n}\n\n.rowHeaders {\n z-index: 2;\n font-size: 10px;\n display: flex;\n height: 100%;\n\n revogr-data .rgCell {\n text-align: center;\n }\n\n .rgCell {\n padding: 0 1em !important;\n min-width: 100%;\n }\n}\n\nrevogr-viewport-scroll {\n @include noScroll;\n\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n z-index: 1;\n height: 100%;\n\n &.colPinStart,\n &.colPinEnd {\n z-index: 2;\n overflow: visible; // 允许阴影超出显示\n }\n\n // hover 到 resizable 时提升冻结列容器的 z-index\n &.colPinStart:has(.resizable-r:hover),\n &.colPinStart:has(.resizable-l:hover),\n &.colPinEnd:has(.resizable-r:hover),\n &.colPinEnd:has(.resizable-l:hover) {\n z-index: 93;\n }\n\n // make sure it would work\n &.colPinEnd:has(.active) {\n overflow: visible;\n }\n\n &.rgCol {\n // flex-grow: 1;\n }\n\n .content-wrapper {\n overflow: hidden;\n }\n\n .inner-content-table {\n display: flex;\n flex-direction: column;\n max-height: 100%;\n width: 100%;\n min-width: 100%;\n position: relative;\n z-index: 0;\n }\n\n .vertical-inner {\n overflow-y: auto;\n position: relative;\n width: 100%;\n flex-grow: 1;\n outline: none; // avoid accessibility focus issue\n @include noScroll;\n\n revogr-data,\n revogr-overlay-selection {\n height: 100%;\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Method,\n Element,\n Prop,\n Host,\n Listen,\n Watch,\n} from '@stencil/core';\n\nimport GridResizeService from '../revoGrid/viewport.resize.service';\nimport LocalScrollService from '../../services/local.scroll.service';\nimport { LocalScrollTimer } from '../../services/local.scroll.timer';\nimport {\n CONTENT_SLOT,\n FOOTER_SLOT,\n HEADER_SLOT,\n} from '../revoGrid/viewport.helpers';\nimport type {\n DimensionCols,\n DimensionType,\n ElementScroll,\n ScrollCoordinateEvent,\n ViewPortResizeEvent,\n ViewPortScrollEvent,\n} from '@type';\nimport { isSafariDesktop } from '../../utils/browser';\n\ntype Delta = 'deltaX' | 'deltaY';\ntype LocalScrollEvent = {\n preventDefault(): void;\n shiftKey?: boolean;\n} & { [x in Delta]: number };\n\n/**\n * Viewport scroll component for RevoGrid\n * @slot - content\n * @slot header - header\n * @slot footer - footer\n */\n@Component({\n tag: 'revogr-viewport-scroll',\n styleUrl: 'revogr-viewport-scroll-style.scss',\n})\nexport class RevogrViewportScroll implements ElementScroll {\n private static readonly SCROLL_WRITE_EPSILON = 0.5;\n private static readonly UNKNOWN_SCROLL_COORDINATE = Number.NaN;\n\n /**\n * Enable row header\n */\n @Prop() readonly rowHeader: boolean;\n\n /**\n * Width of inner content\n */\n @Prop() contentWidth = 0;\n\n private isLayoutUpdating() {\n const grid = this.horizontalScroll?.closest('revo-grid');\n return !!grid?.hasAttribute('data-columns-updating');\n }\n\n private lastHorizontalScrollLeft = RevogrViewportScroll.UNKNOWN_SCROLL_COORDINATE;\n private lastVerticalScrollTop = RevogrViewportScroll.UNKNOWN_SCROLL_COORDINATE;\n\n private syncHorizontalScrollCacheFromDom(): number {\n const value = this.horizontalScroll?.scrollLeft ?? 0;\n this.lastHorizontalScrollLeft = value;\n return value;\n }\n\n private syncVerticalScrollCacheFromDom(): number {\n const value = this.verticalScroll?.scrollTop ?? 0;\n this.lastVerticalScrollTop = value;\n return value;\n }\n\n private getKnownHorizontalScrollLeft(): number {\n return Number.isNaN(this.lastHorizontalScrollLeft)\n ? this.syncHorizontalScrollCacheFromDom()\n : this.lastHorizontalScrollLeft;\n }\n\n private getKnownVerticalScrollTop(): number {\n return Number.isNaN(this.lastVerticalScrollTop)\n ? this.syncVerticalScrollCacheFromDom()\n : this.lastVerticalScrollTop;\n }\n\n private setHorizontalScrollIfNeeded(next: number): boolean {\n if (!this.horizontalScroll) {\n return false;\n }\n const current = this.getKnownHorizontalScrollLeft();\n if (Math.abs(current - next) < RevogrViewportScroll.SCROLL_WRITE_EPSILON) {\n return false;\n }\n this.horizontalScroll.scrollLeft = next;\n this.lastHorizontalScrollLeft = next;\n return true;\n }\n\n private setVerticalScrollIfNeeded(next: number): boolean {\n if (!this.verticalScroll) {\n return false;\n }\n const current = this.getKnownVerticalScrollTop();\n if (Math.abs(current - next) < RevogrViewportScroll.SCROLL_WRITE_EPSILON) {\n return false;\n }\n this.verticalScroll.scrollTop = next;\n this.lastVerticalScrollTop = next;\n return true;\n }\n \n /**\n * 监听 contentWidth 变化,在渲染前调整滚动位置\n * 这样可以避免空白闪烁\n */\n @Watch('contentWidth')\n contentWidthChanged(newValue: number, oldValue: number) {\n // 宽度变化时都需要检查和调整滚动位置\n if (this.horizontalScroll && newValue !== oldValue) {\n // 使用 requestAnimationFrame 确保在 DOM 更新后执行\n requestAnimationFrame(() => {\n if (!this.horizontalScroll) return;\n\n if (this.isLayoutUpdating()) {\n return;\n }\n \n const clientWidth = this.horizontalScroll.clientWidth;\n const maxScrollLeft = Math.max(0, newValue - clientWidth);\n const currentScrollLeft = this.syncHorizontalScrollCacheFromDom();\n \n // 如果当前滚动位置超过最大可滚动位置,调整到最大位置\n if (currentScrollLeft > maxScrollLeft && maxScrollLeft >= 0) {\n this.setHorizontalScrollIfNeeded(maxScrollLeft);\n if (this.colType === 'rgCol') {\n this.localScrollService?.scroll(maxScrollLeft, 'rgCol', true);\n }\n }\n });\n }\n }\n\n /**\n * 监听内容高度变化,处理折叠后滚动条超出导致的空白闪烁\n */\n @Watch('contentHeight')\n contentHeightChanged(newValue: number, oldValue: number) {\n if (!this.verticalScroll || newValue === oldValue) {\n return;\n }\n\n if (newValue >= oldValue) {\n return;\n }\n\n // 在高度变小时,当前 scrollTop 可能超过最大值,需回退到可滚范围\n const previousScrollTop = this.syncVerticalScrollCacheFromDom();\n const clientHeight = this.verticalScroll.clientHeight;\n const maxScrollTop = Math.max(0, newValue - clientHeight);\n const nextScrollTop = Math.min(previousScrollTop, maxScrollTop);\n const didAdjust = nextScrollTop !== previousScrollTop;\n\n if (didAdjust) {\n this.setVerticalScrollIfNeeded(nextScrollTop);\n }\n\n // 仅主视口在实际发生校正时广播垂直坐标,避免固定列/空视口把 scrollTop 错误回写为 0\n if (didAdjust && this.colType === 'rgCol') {\n this.localScrollService?.scroll(nextScrollTop, 'rgRow', true);\n }\n }\n\n /**\n * 保证当前垂直滚动位置不超过内容高度\n * 用于内容高度变化后的一致性校正(例如树形折叠导致行数骤减)\n */\n private normalizeVerticalScrollPosition() {\n if (!this.verticalScroll) return;\n\n const clientHeight = this.verticalScroll.clientHeight;\n const maxScrollTop = Math.max(0, this.contentHeight - clientHeight);\n const currentScrollTop = this.syncVerticalScrollCacheFromDom();\n\n if (currentScrollTop > maxScrollTop) {\n this.setVerticalScrollIfNeeded(maxScrollTop);\n // 仅主视口广播,避免非主视口坐标污染\n if (this.colType === 'rgCol') {\n this.localScrollService?.scroll(maxScrollTop, 'rgRow', true);\n }\n }\n }\n \n /**\n * Height of inner content\n */\n @Prop() contentHeight = 0;\n\n @Prop() colType!: DimensionCols | 'rowHeaders';\n\n /**\n * Before scroll event\n */\n @Event({ eventName: 'scrollviewport', bubbles: true })\n scrollViewport: EventEmitter<ViewPortScrollEvent>;\n /**\n * Viewport resize\n */\n @Event({ eventName: 'resizeviewport' })\n resizeViewport: EventEmitter<ViewPortResizeEvent>;\n\n /**\n * Triggered on scroll change, can be used to get information about scroll visibility\n */\n @Event() scrollchange: EventEmitter<{\n type: DimensionType;\n hasScroll: boolean;\n }>;\n\n /**\n * Silently scroll to coordinate\n * Made to align negative coordinates for mobile devices\n */\n @Event({ eventName: 'scrollviewportsilent' })\n silentScroll: EventEmitter<ViewPortScrollEvent>;\n\n @Element() horizontalScroll: HTMLElement;\n\n private verticalScroll?: HTMLElement;\n private header?: HTMLElement;\n private footer?: HTMLElement;\n\n private setVerticalScrollRef = (el?: HTMLElement) => {\n if (this.verticalScroll !== el) {\n this.verticalScroll = el;\n this.lastVerticalScrollTop = RevogrViewportScroll.UNKNOWN_SCROLL_COORDINATE;\n }\n };\n\n /**\n * Static functions to bind wheel change\n */\n private horizontalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n private verticalMouseWheel: (e: Partial<LocalScrollEvent>) => void;\n\n private resizeService?: GridResizeService;\n private localScrollService: LocalScrollService;\n private localScrollTimer: LocalScrollTimer;\n \n // 用于防抖的定时器\n private scrollVisibilityTimer: ReturnType<typeof setTimeout> | null = null;\n // 待处理的滚动可见性更新\n private pendingScrollVisibility: Map<DimensionType, { size: number; contentSize: number }> = new Map();\n // 防抖延迟时间\n private static readonly SCROLL_VISIBILITY_DELAY = 200;\n\n @Method() async setScroll(e: ViewPortScrollEvent) {\n this.localScrollTimer.latestScrollUpdate(e.dimension);\n const coordinate = e.coordinate;\n\n // 目标坐标已一致时,跳过本地滚动服务,避免进入无效的 RAF + scrollTop 回写链路\n if (typeof coordinate === 'number') {\n if (e.dimension === 'rgCol') {\n if (\n Math.abs(this.getKnownHorizontalScrollLeft() - coordinate) <\n RevogrViewportScroll.SCROLL_WRITE_EPSILON\n ) {\n return;\n }\n } else if (e.dimension === 'rgRow') {\n const shouldKeepTransformReset = !!this.verticalScroll?.style.transform;\n if (\n !shouldKeepTransformReset &&\n Math.abs(this.getKnownVerticalScrollTop() - coordinate) <\n RevogrViewportScroll.SCROLL_WRITE_EPSILON\n ) {\n return;\n }\n }\n }\n this.localScrollService?.setScroll(e);\n }\n\n /**\n * update on delta in case we don't know existing position or external change\n * @param e\n */\n @Method() async changeScroll(e: ViewPortScrollEvent, silent = false) {\n if (silent) {\n if (e.coordinate && this.verticalScroll) {\n switch (e.dimension) {\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n case 'rgRow':\n this.verticalScroll.style.transform = `translateY(${-1 * e.coordinate}px)`;\n break;\n }\n }\n return;\n }\n if (e.delta) {\n // 滚动阈值:小于此值认为没有实际滚动空间\n const SCROLL_THRESHOLD = 10;\n \n // 检查是否有滚动空间\n if (e.dimension === 'rgCol') {\n const maxScrollLeft = Math.max(0, this.contentWidth - this.horizontalScroll.clientWidth);\n // 如果没有滚动空间,不处理滚动\n if (maxScrollLeft <= SCROLL_THRESHOLD) {\n e.coordinate = 0;\n return e;\n }\n e.coordinate = this.horizontalScroll.scrollLeft + e.delta;\n } else if (e.dimension === 'rgRow') {\n const maxScrollTop = Math.max(0, this.contentHeight - (this.verticalScroll?.clientHeight ?? 0));\n // 如果没有滚动空间,不处理滚动\n if (maxScrollTop <= SCROLL_THRESHOLD) {\n e.coordinate = 0;\n return e;\n }\n e.coordinate = (this.verticalScroll?.scrollTop ?? 0) + e.delta;\n }\n this.setScroll(e);\n }\n return e;\n }\n\n /**\n * Dispatch this event to trigger vertical mouse wheel from plugins\n */\n @Listen('mousewheel-vertical') mousewheelVertical({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.verticalMouseWheel(e);\n }\n /**\n * Dispatch this event to trigger horizontal mouse wheel from plugins\n */\n @Listen('mousewheel-horizontal') mousewheelHorizontal({\n detail: e,\n }: CustomEvent<LocalScrollEvent>) {\n this.horizontalMouseWheel(e);\n }\n /**\n * Allows to use outside listener\n */\n @Listen('scroll-coordinate') scrollApply({\n detail: { type, coordinate },\n }: CustomEvent<ScrollCoordinateEvent>) {\n this.applyOnScroll(type, coordinate, true);\n }\n\n connectedCallback() {\n /**\n * Bind scroll functions for farther usage\n */\n // allow mousewheel for all devices including mobile\n this.verticalMouseWheel = this.onVerticalMouseWheel.bind(\n this,\n 'rgRow',\n 'deltaY',\n );\n this.horizontalMouseWheel = this.onHorizontalMouseWheel.bind(\n this,\n 'rgCol',\n );\n this.localScrollTimer = new LocalScrollTimer(\n 'ontouchstart' in document.documentElement ? 0 : 10,\n );\n /**\n * Create local scroll service\n */\n this.localScrollService = new LocalScrollService({\n // to improve safari smoothnes on scroll\n skipAnimationFrame: isSafariDesktop(),\n runScroll: e => this.scrollViewport.emit(e),\n applyScroll: e => {\n this.localScrollTimer.setCoordinate(e);\n switch (e.dimension) {\n case 'rgCol':\n // this will trigger on scroll event\n this.setHorizontalScrollIfNeeded(e.coordinate);\n break;\n case 'rgRow':\n if (this.verticalScroll) {\n // this will trigger on scroll event\n this.setVerticalScrollIfNeeded(e.coordinate);\n // for mobile devices to skip negative scroll loop. only on vertical scroll\n if (this.verticalScroll.style.transform) {\n this.verticalScroll.style.transform = '';\n }\n }\n break;\n }\n },\n });\n }\n\n componentDidLoad() {\n // track viewport resize\n this.resizeService = new GridResizeService(\n this.horizontalScroll,\n (entry) => {\n const els: Partial<\n Record<\n DimensionType,\n {\n size: number;\n contentSize: number;\n scroll: number;\n noScroll: boolean;\n }\n >\n > = {};\n\n let calculatedHeight = entry.height || 0;\n if (calculatedHeight) {\n calculatedHeight -=\n (this.header?.clientHeight ?? 0) +\n (this.footer?.clientHeight ?? 0);\n }\n els.rgRow = {\n size: calculatedHeight,\n contentSize: this.contentHeight,\n scroll: this.verticalScroll?.scrollTop ?? 0,\n noScroll: false,\n };\n const calculatedWidth = entry.width || 0;\n els.rgCol = {\n size: calculatedWidth,\n contentSize: this.contentWidth,\n scroll: this.horizontalScroll.scrollLeft,\n noScroll: this.colType !== 'rgCol',\n };\n // Process changes in order: width first, then height\n const dimensions: DimensionType[] = ['rgCol', 'rgRow'];\n for (const dimension of dimensions) {\n const item = els[dimension];\n if (!item) continue;\n this.resizeViewport.emit({\n dimension,\n size: item.size,\n rowHeader: this.rowHeader,\n });\n if (item.noScroll) {\n continue;\n }\n\n if (dimension === 'rgCol' || this.colType === 'rgCol') {\n this.localScrollService?.scroll(item.scroll ?? 0, dimension, true);\n }\n\n // track scroll visibility on outer element change\n this.setScrollVisibility(dimension, item.size, item.contentSize);\n }\n },\n [this.footer, this.header],\n );\n }\n\n /**\n * Check if scroll present or not per type\n * Trigger this method on inner content size change or on outer element size change\n * If inner content bigger then outer size then scroll is present and mousewheel binding required\n * @param type - dimension type 'rgRow/y' or 'rgCol/x'\n * @param size - outer content size\n * @param innerContentSize - inner content size\n */\n setScrollVisibility(\n type: DimensionType,\n size: number,\n innerContentSize: number,\n ) {\n // 保存待处理的更新\n this.pendingScrollVisibility.set(type, { size, contentSize: innerContentSize });\n \n // 清除之前的定时器\n if (this.scrollVisibilityTimer) {\n clearTimeout(this.scrollVisibilityTimer);\n }\n \n // 延迟执行,等待所有更新稳定\n this.scrollVisibilityTimer = setTimeout(() => {\n this.scrollVisibilityTimer = null;\n this.applyScrollVisibility();\n }, RevogrViewportScroll.SCROLL_VISIBILITY_DELAY);\n }\n \n /**\n * 实际应用滚动可见性更新\n */\n private applyScrollVisibility() {\n // 滚动阈值:小于此值认为没有实际滚动空间\n const SCROLL_THRESHOLD = 10;\n \n // 重新获取最新的尺寸值,而不是使用之前保存的值\n const rgColData = {\n size: this.horizontalScroll.clientWidth,\n contentSize: this.contentWidth,\n };\n const rgRowData = {\n size: this.verticalScroll?.clientHeight ?? 0,\n contentSize: this.contentHeight,\n };\n \n // 处理水平滚动\n const rgColDiff = rgColData.contentSize - rgColData.size;\n const hasHorizontalScroll = rgColDiff > SCROLL_THRESHOLD;\n \n if (hasHorizontalScroll) {\n this.horizontalScroll?.classList.add('scroll-rgCol');\n } else {\n this.horizontalScroll?.classList.remove('scroll-rgCol');\n }\n this.scrollchange.emit({ type: 'rgCol', hasScroll: hasHorizontalScroll });\n \n // 处理垂直滚动\n const rgRowDiff = rgRowData.contentSize - rgRowData.size;\n const hasVerticalScroll = rgRowDiff > SCROLL_THRESHOLD;\n if (hasVerticalScroll) {\n this.verticalScroll?.classList.add('scroll-rgRow');\n } else {\n this.verticalScroll?.classList.remove('scroll-rgRow');\n }\n this.scrollchange.emit({ type: 'rgRow', hasScroll: hasVerticalScroll });\n \n this.pendingScrollVisibility.clear();\n }\n\n disconnectedCallback() {\n this.resizeService?.destroy();\n if (this.scrollVisibilityTimer) {\n clearTimeout(this.scrollVisibilityTimer);\n }\n }\n\n async componentDidRender() {\n this.localScrollService.setParams(\n {\n contentSize: this.contentHeight,\n clientSize: this.verticalScroll?.clientHeight ?? 0,\n virtualSize: 0,\n },\n 'rgRow',\n );\n\n this.localScrollService.setParams(\n {\n contentSize: this.contentWidth,\n clientSize: this.horizontalScroll.clientWidth,\n virtualSize: 0,\n },\n 'rgCol',\n );\n \n // 检查并调整水平滚动位置,避免内容宽度变化后出现空白\n this.adjustScrollPosition();\n \n // 使用防抖的 setScrollVisibility,避免 resize 过程中的闪烁\n this.setScrollVisibility(\n 'rgRow',\n this.verticalScroll?.clientHeight ?? 0,\n this.contentHeight,\n );\n this.setScrollVisibility(\n 'rgCol',\n this.horizontalScroll.clientWidth,\n this.contentWidth,\n );\n\n // 统一在渲染后再校正一次垂直滚动位置,避免高度骤降时的空白闪烁\n this.normalizeVerticalScrollPosition();\n }\n \n /**\n * 调整滚动位置,确保不会超出内容边界\n * 当内容宽度变化(如列宽调整)后,如果当前滚动位置超过最大可滚动位置,需要调整\n */\n private adjustScrollPosition() {\n if (!this.horizontalScroll) return;\n\n if (this.isLayoutUpdating()) {\n return;\n }\n \n const clientWidth = this.horizontalScroll.clientWidth;\n const maxScrollLeft = Math.max(0, this.contentWidth - clientWidth);\n const currentScrollLeft = this.syncHorizontalScrollCacheFromDom();\n \n // 滚动阈值:小于此值认为没有实际滚动空间\n const SCROLL_THRESHOLD = 10;\n \n // 如果没有滚动空间,确保滚动位置为0\n if (maxScrollLeft <= SCROLL_THRESHOLD) {\n if (currentScrollLeft > 0) {\n this.setHorizontalScrollIfNeeded(0);\n if (this.colType === 'rgCol') {\n this.localScrollService?.scroll(0, 'rgCol', true);\n }\n }\n return;\n }\n \n // 如果当前滚动位置超过最大可滚动位置,调整到最大位置\n if (currentScrollLeft > maxScrollLeft) {\n this.setHorizontalScrollIfNeeded(maxScrollLeft);\n if (this.colType === 'rgCol') {\n this.localScrollService?.scroll(maxScrollLeft, 'rgCol', true);\n }\n }\n }\n\n /**\n * Prevent space key from scrolling the viewport\n */\n private onKeyDown(e: KeyboardEvent) {\n if (e.code === 'Space') {\n e.preventDefault();\n }\n }\n\n render() {\n return (\n <Host\n onWheel={this.horizontalMouseWheel}\n onScroll={(e: UIEvent) => this.applyScroll('rgCol', e)}\n onKeyDown={(e: KeyboardEvent) => this.onKeyDown(e)}\n >\n <div\n class=\"inner-content-table\"\n style={{ width: `${this.contentWidth}px` }}\n >\n <div class=\"header-wrapper\" ref={e => (this.header = e)}>\n <slot name={HEADER_SLOT} />\n </div>\n <div\n class=\"vertical-inner\"\n ref={this.setVerticalScrollRef}\n onWheel={this.verticalMouseWheel}\n onScroll={(e: MouseEvent) => this.applyScroll('rgRow', e)}\n onKeyDown={(e: KeyboardEvent) => this.onKeyDown(e)}\n >\n <div\n class=\"content-wrapper\"\n style={{ height: `${this.contentHeight}px` }}\n >\n <slot name={CONTENT_SLOT} />\n </div>\n </div>\n <div class=\"footer-wrapper\" ref={e => (this.footer = e)}>\n <slot name={FOOTER_SLOT} />\n </div>\n </div>\n </Host>\n );\n }\n /**\n * Extra layer for scroll event monitoring, where MouseWheel event is not passing\n * We need to trigger scroll event in case there is no mousewheel event\n */\n @Method() async applyScroll(type: DimensionType, e: UIEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n let scroll = 0;\n switch (type) {\n case 'rgCol':\n scroll = e.target.scrollLeft;\n this.lastHorizontalScrollLeft = scroll;\n break;\n case 'rgRow':\n scroll = e.target.scrollTop;\n this.lastVerticalScrollTop = scroll;\n break;\n }\n\n // for mobile devices to skip negative scroll loop\n if (scroll < 0) {\n this.silentScroll.emit({ dimension: type, coordinate: scroll });\n return;\n }\n\n if (type === 'rgCol' && this.colType !== 'rgCol') {\n return;\n }\n\n if (type === 'rgRow' && this.colType !== 'rgCol') {\n return;\n }\n\n if (this.isLayoutUpdating()) {\n return;\n }\n \n // 滚动阈值:小于此值认为没有实际滚动空间\n const SCROLL_THRESHOLD = 10;\n \n // 检查是否有滚动空间\n if (type === 'rgCol') {\n const maxScrollLeft = Math.max(0, this.contentWidth - this.horizontalScroll.clientWidth);\n // 如果没有滚动空间,重置滚动位置并返回\n if (maxScrollLeft <= SCROLL_THRESHOLD) {\n if (scroll > 0) {\n if (Math.abs(e.target.scrollLeft) >= RevogrViewportScroll.SCROLL_WRITE_EPSILON) {\n e.target.scrollLeft = 0;\n this.lastHorizontalScrollLeft = 0;\n }\n }\n return;\n }\n \n // 限制滚动位置不超过最大值(防止过度滚动导致空白)\n if (scroll > maxScrollLeft) {\n if (Math.abs(e.target.scrollLeft - maxScrollLeft) >= RevogrViewportScroll.SCROLL_WRITE_EPSILON) {\n e.target.scrollLeft = maxScrollLeft;\n this.lastHorizontalScrollLeft = maxScrollLeft;\n }\n scroll = maxScrollLeft;\n }\n } else if (type === 'rgRow') {\n const maxScrollTop = Math.max(0, this.contentHeight - (this.verticalScroll?.clientHeight ?? 0));\n // 如果没有滚动空间,重置滚动位置并返回\n if (maxScrollTop <= SCROLL_THRESHOLD) {\n if (scroll > 0 && this.verticalScroll) {\n this.setVerticalScrollIfNeeded(0);\n }\n return;\n }\n \n // 限制滚动位置不超过最大值(防止过度滚动导致空白)\n if (scroll > maxScrollTop) {\n this.setVerticalScrollIfNeeded(maxScrollTop);\n scroll = maxScrollTop;\n }\n }\n \n // 水平滚动在 Shift + 滚轮快速往返场景下更容易出现节流导致的坐标滞后,\n // 这里直接同步一次,避免 viewport 坐标与 DOM scrollLeft 不一致造成空白。\n if (type === 'rgCol') {\n this.localScrollService?.scroll(scroll, type);\n return;\n }\n\n this.applyOnScroll(type, scroll);\n }\n\n /**\n * Applies change on scroll event only if mousewheel event happened some time ago\n */\n private applyOnScroll(\n type: DimensionType,\n coordinate: number,\n outside = false,\n ) {\n const lastScrollUpdate = () => {\n this.localScrollService?.scroll(\n coordinate,\n type,\n undefined,\n undefined,\n outside,\n );\n };\n // apply after throttling\n if (this.localScrollTimer.isReady(type, coordinate)) {\n lastScrollUpdate();\n } else {\n this.localScrollTimer.throttleLastScrollUpdate(type, coordinate, () => lastScrollUpdate());\n }\n }\n\n /**\n * On vertical mousewheel event\n * @param type\n * @param delta\n * @param e\n */\n private onVerticalMouseWheel(\n type: DimensionType,\n delta: Delta,\n e: LocalScrollEvent,\n ) {\n // Shift + 滚轮用于水平滚动,不应触发垂直滚动链路\n if (e.shiftKey) {\n return;\n }\n\n const scrollTop = this.verticalScroll?.scrollTop ?? 0;\n const clientHeight = this.verticalScroll?.clientHeight ?? 0;\n const scrollHeight = this.verticalScroll?.scrollHeight ?? 0;\n\n // Detect if the user has reached the bottom\n const atBottom = scrollTop + clientHeight >= scrollHeight && e.deltaY > 0;\n const atTop = scrollTop === 0 && e.deltaY < 0;\n if (!atBottom && !atTop) {\n e.preventDefault?.();\n }\n const pos = scrollTop + e[delta];\n this.localScrollService?.scroll(pos, type, undefined, e[delta]);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n\n /**\n * On horizontal mousewheel event\n * @param type\n * @param e\n */\n private onHorizontalMouseWheel(\n type: DimensionType,\n e: LocalScrollEvent,\n ) {\n const deltaX = e.deltaX || 0;\n const deltaY = e.deltaY || 0;\n\n // 只有当水平滚动是主要意图时才处理\n // 触摸板垂直滚动时可能会有微小的 deltaX,需要过滤掉\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n\n // Shift + 滚轮(常见于鼠标)通常只有 deltaY,需要映射为水平滚动\n const normalizedDelta = deltaX || (e.shiftKey ? deltaY : 0);\n const isShiftHorizontalScroll = !!e.shiftKey && !deltaX && !!deltaY;\n \n // 如果没有水平滚动,或者垂直滚动更明显,不处理\n if (!normalizedDelta || (!isShiftHorizontalScroll && absY > absX)) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = this.horizontalScroll;\n \n // 滚动阈值:小于此值认为没有实际滚动空间\n const SCROLL_THRESHOLD = 10;\n const maxScrollLeft = Math.max(0, scrollWidth - clientWidth);\n \n // 如果没有滚动空间(内容宽度小于等于可见宽度),阻止默认行为并直接返回\n if (maxScrollLeft <= SCROLL_THRESHOLD) {\n e.preventDefault?.();\n return;\n }\n\n // 统一阻止默认横向滚动,避免浏览器原生滚动与组件逻辑叠加\n e.preventDefault?.();\n\n const pos = Math.max(0, Math.min(maxScrollLeft, scrollLeft + normalizedDelta));\n if (pos === scrollLeft) {\n return;\n }\n\n this.localScrollService?.scroll(pos, type, true, normalizedDelta);\n this.localScrollTimer.latestScrollUpdate(type);\n }\n}\n"],"version":3}
@@ -0,0 +1,41 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import { h } from '@stencil/core/internal/client';
5
+ import { a as DATA_ROW } from './consts.js';
6
+
7
+ const PADDING_DEPTH = 10;
8
+ /**
9
+ * 根据深度自动计算缩进值
10
+ * 规律:
11
+ * - depth=0: paddingDepth (16px)
12
+ * - depth=1: paddingDepth × 2 (32px)
13
+ * - depth=2: 32 + (paddingDepth + 24) = 72px
14
+ * - depth=3: 72 + (paddingDepth + 24) = 112px
15
+ */
16
+ const getPaddingForDepth = (depth, paddingDepth) => {
17
+ if (depth === 0) {
18
+ return paddingDepth;
19
+ }
20
+ if (depth === 1) {
21
+ return paddingDepth * 2;
22
+ }
23
+ // depth >= 2
24
+ const level1Padding = paddingDepth * 2;
25
+ const incrementPerLevel = paddingDepth + 24;
26
+ return level1Padding + incrementPerLevel * (depth - 1);
27
+ };
28
+ const RowRenderer = ({ rowClass, index, size, start, depth, paddingDepth = PADDING_DEPTH }, cells) => {
29
+ const props = Object.assign({ [DATA_ROW]: index });
30
+ const leftPadding = depth ? getPaddingForDepth(depth, paddingDepth) : undefined;
31
+ return (h("div", Object.assign({}, props, { class: `rgRow ${rowClass || ''}`, style: {
32
+ height: `${size}px`,
33
+ transform: `translateY(${start}px)`,
34
+ paddingLeft: leftPadding ? `${leftPadding}px` : undefined,
35
+ } }), cells));
36
+ };
37
+
38
+ export { RowRenderer as R };
39
+ //# sourceMappingURL=row-renderer.js.map
40
+
41
+ //# sourceMappingURL=row-renderer.js.map
@@ -0,0 +1 @@
1
+ {"file":"row-renderer.js","mappings":";;;;;;AAaO,MAAM,aAAa,GAAG,EAAE;AAE/B;;;;;;;AAOG;AACH,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,YAAoB,KAAY;AACzE,IAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,QAAA,OAAO,YAAY;;AAErB,IAAA,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,YAAY,GAAG,CAAC;;;AAGzB,IAAA,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC;AACtC,IAAA,MAAM,iBAAiB,GAAG,YAAY,GAAG,EAAE;IAC3C,OAAO,aAAa,GAAG,iBAAiB,IAAI,KAAK,GAAG,CAAC,CAAC;AACxD,CAAC;AAEK,MAAA,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,GAAG,aAAa,EAAY,EAAE,KAAc,KAAI;IACtH,MAAM,KAAK,GACN,MAAA,CAAA,MAAA,CAAA,EAAE,CAAC,QAAQ,GAAG,KAAK,EAAE,CACzB;AACD,IAAA,MAAM,WAAW,GAAG,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,SAAS;AAC/E,IAAA,QACE,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACM,KAAK,EAAA,EACT,KAAK,EAAE,CAAS,MAAA,EAAA,QAAQ,IAAI,EAAE,CAAE,CAAA,EAChC,KAAK,EAAE;YACL,MAAM,EAAE,CAAG,EAAA,IAAI,CAAI,EAAA,CAAA;YACnB,SAAS,EAAE,CAAc,WAAA,EAAA,KAAK,CAAK,GAAA,CAAA;YACnC,WAAW,EAAE,WAAW,GAAG,CAAG,EAAA,WAAW,CAAI,EAAA,CAAA,GAAG,SAAS;SAC1D,EAEA,CAAA,EAAA,KAAK,CACF;AAEV;;;;","names":[],"sources":["src/components/data/row-renderer.tsx"],"sourcesContent":["import { h, type VNode } from '@stencil/core';\nimport { JSXBase } from '@stencil/core/internal';\nimport { DATA_ROW } from '../../utils/consts';\n\nexport interface RowProps extends JSXBase.HTMLAttributes {\n size: number;\n start: number;\n index: number;\n rowClass?: string;\n depth?: number;\n paddingDepth?: number;\n}\n\nexport const PADDING_DEPTH = 10;\n\n/**\n * 根据深度自动计算缩进值\n * 规律:\n * - depth=0: paddingDepth (16px)\n * - depth=1: paddingDepth × 2 (32px)\n * - depth=2: 32 + (paddingDepth + 24) = 72px\n * - depth=3: 72 + (paddingDepth + 24) = 112px\n */\nconst getPaddingForDepth = (depth: number, paddingDepth: number): number => {\n if (depth === 0) {\n return paddingDepth;\n }\n if (depth === 1) {\n return paddingDepth * 2;\n }\n // depth >= 2\n const level1Padding = paddingDepth * 2;\n const incrementPerLevel = paddingDepth + 24;\n return level1Padding + incrementPerLevel * (depth - 1);\n};\n\nconst RowRenderer = ({ rowClass, index, size, start, depth, paddingDepth = PADDING_DEPTH }: RowProps, cells: VNode[]) => {\n const props = {\n ...{ [DATA_ROW]: index },\n };\n const leftPadding = depth ? getPaddingForDepth(depth, paddingDepth) : undefined;\n return (\n <div\n {...props}\n class={`rgRow ${rowClass || ''}`}\n style={{\n height: `${size}px`,\n transform: `translateY(${start}px)`,\n paddingLeft: leftPadding ? `${leftPadding}px` : undefined,\n }}\n >\n {cells}\n </div>\n );\n};\n\nexport default RowRenderer;\n"],"version":3}
@@ -0,0 +1,179 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import { b as getSourceItem } from './data.store.js';
5
+ import '@stencil/core/internal/client';
6
+ import './platform.js';
7
+ import { a as getItemByIndex, g as getItemByPosition } from './dimension.helpers.js';
8
+
9
+ function isTouch(e) {
10
+ return !!e.touches;
11
+ }
12
+ function verifyTouchTarget(touchEvent, focusClass) {
13
+ if (focusClass && touchEvent) {
14
+ if (!(touchEvent.target instanceof Element && touchEvent.target.classList.contains(focusClass))) {
15
+ return false;
16
+ }
17
+ }
18
+ return true;
19
+ }
20
+ /**
21
+ * Function to get the value of a specific property from a MouseEvent or TouchEvent object.
22
+ */
23
+ function getPropertyFromEvent(e, prop, focusClass // for touch events
24
+ ) {
25
+ // Check if the event is a touch event
26
+ if (isTouch(e)) {
27
+ // If the event has touches, get the first touch
28
+ if (e.touches.length > 0) {
29
+ const touchEvent = e.touches[0];
30
+ // Check if the target of the touch event is the specified element
31
+ if (!verifyTouchTarget(touchEvent, focusClass)) {
32
+ // If not, return null
33
+ return null;
34
+ }
35
+ // Get the value of the specified property from the touch event and return it
36
+ return touchEvent[prop] || 0;
37
+ }
38
+ // If there are no touches, return null
39
+ return null;
40
+ }
41
+ // If the event is not a touch event, get the value of the specified property from the event and return it
42
+ return e[prop] || 0;
43
+ }
44
+
45
+ function collectModelsOfRange(data, store) {
46
+ const models = {};
47
+ for (let i in data) {
48
+ const rowIndex = parseInt(i, 10);
49
+ models[rowIndex] = getSourceItem(store, rowIndex);
50
+ }
51
+ return models;
52
+ }
53
+ function getFocusCellBasedOnEvent(e, data) {
54
+ // If event default is prevented, return
55
+ if (e.defaultPrevented) {
56
+ return null;
57
+ }
58
+ // Get coordinates from event object
59
+ const x = getPropertyFromEvent(e, 'clientX');
60
+ const y = getPropertyFromEvent(e, 'clientY');
61
+ // If coordinates are not available, return
62
+ if (x === null || y === null) {
63
+ return null;
64
+ }
65
+ // Get current cell based on coordinates and data
66
+ const focusCell = getCurrentCell({ x, y }, data);
67
+ // If current cell is not available, return
68
+ if (isAfterLast(focusCell, data.lastCell)) {
69
+ return null;
70
+ }
71
+ return focusCell;
72
+ }
73
+ /**
74
+ * Calculate cell based on x, y position
75
+ */
76
+ function getCurrentCell({ x, y }, { el, rows, cols }) {
77
+ // Get the bounding rectangle of the element
78
+ const { top, left, height, width } = el.getBoundingClientRect();
79
+ // Calculate the cell position relative to the element
80
+ let cellY = y - top;
81
+ let cellX = x - left;
82
+ // Limit the cell position to the element height
83
+ if (cellY >= height) {
84
+ cellY = height - 1;
85
+ }
86
+ // Limit the cell position to the element width
87
+ if (cellX >= width) {
88
+ cellX = width - 1;
89
+ }
90
+ // Get the row and column items based on the cell position
91
+ const rgRow = getItemByPosition(rows, cellY);
92
+ const rgCol = getItemByPosition(cols, cellX);
93
+ // Set the row and column index to 0 if they are before the first item
94
+ if (rgCol.itemIndex < 0) {
95
+ rgCol.itemIndex = 0;
96
+ }
97
+ if (rgRow.itemIndex < 0) {
98
+ rgRow.itemIndex = 0;
99
+ }
100
+ return { x: rgCol.itemIndex, y: rgRow.itemIndex };
101
+ }
102
+ function getCoordinate(range, focus, changes, isMulti = false) {
103
+ const updateCoordinate = (c, pos = 0) => {
104
+ const start = { x: range.x, y: range.y };
105
+ const end = isMulti ? { x: range.x1, y: range.y1 } : start;
106
+ const point = end[c] > focus[c] ? end : start;
107
+ point[c] += pos;
108
+ return { start, end };
109
+ };
110
+ if (changes.x) {
111
+ return updateCoordinate('x', changes['x']);
112
+ }
113
+ if (changes.y) {
114
+ return updateCoordinate('y', changes['y']);
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Check if the x coordinate of the cell position is after or equal to the x coordinate of the last cell position
120
+ * or if the y coordinate of the cell position is after or equal to the y coordinate of the last cell position
121
+ */
122
+ function isAfterLast({ x, y }, lastCell) {
123
+ return x >= lastCell.x || y >= lastCell.y;
124
+ }
125
+ /** check if out of range */
126
+ function isBeforeFirst({ x, y }) {
127
+ return x < 0 || y < 0;
128
+ }
129
+ /** Compare cells, only 1 coordinate difference is possible */
130
+ // export function getDirectionCoordinate(initial: Cell, last: Cell): Partial<Cell> | null {
131
+ // const c: (keyof Cell)[] = ['x', 'y'];
132
+ // for (let k of c) {
133
+ // if (initial[k] !== last[k]) {
134
+ // return { [k]: 1 };
135
+ // }
136
+ // }
137
+ // return null;
138
+ // }
139
+ // export function getLargestAxis(initial: Cell, last: Cell): Partial<Cell> | null {
140
+ // const cell: Partial<Cell> = {};
141
+ // const c: (keyof Cell)[] = ['x', 'y'];
142
+ // for (let k of c) {
143
+ // cell[k] = Math.abs(initial[k] - last[k]);
144
+ // }
145
+ // if (cell.x > cell.y) {
146
+ // return { x: 1 };
147
+ // }
148
+ // if (cell.y > cell.x) {
149
+ // return { y: 1 };
150
+ // }
151
+ // return null;
152
+ // }
153
+ function styleByCellProps(styles) {
154
+ return {
155
+ left: `${styles.left}px`,
156
+ top: `${styles.top}px`,
157
+ width: `${styles.width}px`,
158
+ height: `${styles.height}px`,
159
+ };
160
+ }
161
+ function getCell({ x, y, x1, y1 }, dimensionRow, dimensionCol) {
162
+ const top = getItemByIndex(dimensionRow, y).start;
163
+ const left = getItemByIndex(dimensionCol, x).start;
164
+ const bottom = getItemByIndex(dimensionRow, y1).end;
165
+ const right = getItemByIndex(dimensionCol, x1).end;
166
+ return {
167
+ left,
168
+ right,
169
+ top,
170
+ bottom,
171
+ width: right - left,
172
+ height: bottom - top,
173
+ };
174
+ }
175
+
176
+ export { getCell as a, getCoordinate as b, isBeforeFirst as c, getCurrentCell as d, collectModelsOfRange as e, getFocusCellBasedOnEvent as f, getPropertyFromEvent as g, isAfterLast as i, styleByCellProps as s, verifyTouchTarget as v };
177
+ //# sourceMappingURL=selection.utils.js.map
178
+
179
+ //# sourceMappingURL=selection.utils.js.map
@@ -0,0 +1 @@
1
+ {"file":"selection.utils.js","mappings":"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","names":[],"sources":["src/utils/events.ts","src/components/overlay/selection.utils.ts"],"sourcesContent":["function isTouch(e: MouseEvent | TouchEvent): e is TouchEvent {\n return !!(e as TouchEvent).touches;\n}\n\nexport function verifyTouchTarget(touchEvent?: Touch, focusClass?: string) {\n if (focusClass && touchEvent) {\n if (!(touchEvent.target instanceof Element && touchEvent.target.classList.contains(focusClass))) { \n return false;\n }\n }\n return true;\n}\n\n\n/**\n * Function to get the value of a specific property from a MouseEvent or TouchEvent object.\n */\nexport function getPropertyFromEvent(\n e: MouseEvent | TouchEvent,\n prop: keyof Pick<Touch, 'clientX' | 'clientY' | 'screenX' | 'screenY'>,\n focusClass?: string // for touch events\n): number | null {\n // Check if the event is a touch event\n if (isTouch(e)) {\n // If the event has touches, get the first touch\n if (e.touches.length > 0) {\n const touchEvent = e.touches[0];\n // Check if the target of the touch event is the specified element\n if (!verifyTouchTarget(touchEvent, focusClass)) {\n // If not, return null\n return null;\n }\n // Get the value of the specified property from the touch event and return it\n return (touchEvent[prop] as number) || 0;\n }\n // If there are no touches, return null\n return null;\n }\n // If the event is not a touch event, get the value of the specified property from the event and return it\n return e[prop] || 0;\n}\n","import {\n DimensionIndexInput,\n DSourceState,\n getItemByIndex,\n getItemByPosition,\n getSourceItem,\n} from '@store';\nimport type {\n DimensionSettingsState,\n Cell,\n RangeArea,\n RangeAreaCss,\n DataLookup,\n DimensionRows,\n DataType,\n EditCellStore,\n} from '@type';\nimport { getPropertyFromEvent } from '../../utils/events';\nimport { Observable } from '../../utils';\n\nexport type EventData = {\n el: HTMLElement;\n rows: DimensionSettingsState;\n cols: DimensionSettingsState;\n lastCell: Cell;\n focus: Cell | null;\n range: RangeArea | null;\n edit: EditCellStore | null;\n};\n\nexport function collectModelsOfRange(\n data: DataLookup,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n) {\n const models: Partial<DataLookup> = {};\n for (let i in data) {\n const rowIndex = parseInt(i, 10);\n models[rowIndex] = getSourceItem(store, rowIndex);\n }\n\n return models;\n}\n\nexport function getFocusCellBasedOnEvent(\n e: MouseEvent | TouchEvent,\n data: EventData,\n): Cell | null {\n // If event default is prevented, return\n if (e.defaultPrevented) {\n return null;\n }\n\n // Get coordinates from event object\n const x = getPropertyFromEvent(e, 'clientX');\n const y = getPropertyFromEvent(e, 'clientY');\n\n // If coordinates are not available, return\n if (x === null || y === null) {\n return null;\n }\n\n // Get current cell based on coordinates and data\n const focusCell = getCurrentCell({ x, y }, data);\n // If current cell is not available, return\n if (isAfterLast(focusCell, data.lastCell)) {\n return null;\n }\n\n return focusCell;\n}\n\n/**\n * Calculate cell based on x, y position\n */\nexport function getCurrentCell(\n { x, y }: Cell,\n { el, rows, cols }: Pick<EventData, 'el' | 'rows' | 'cols'>,\n): Cell {\n // Get the bounding rectangle of the element\n const { top, left, height, width } = el.getBoundingClientRect();\n\n // Calculate the cell position relative to the element\n let cellY = y - top;\n let cellX = x - left;\n\n // Limit the cell position to the element height\n if (cellY >= height) {\n cellY = height - 1;\n }\n\n // Limit the cell position to the element width\n if (cellX >= width) {\n cellX = width - 1;\n }\n\n // Get the row and column items based on the cell position\n const rgRow = getItemByPosition(rows, cellY);\n const rgCol = getItemByPosition(cols, cellX);\n\n // Set the row and column index to 0 if they are before the first item\n if (rgCol.itemIndex < 0) {\n rgCol.itemIndex = 0;\n }\n\n if (rgRow.itemIndex < 0) {\n rgRow.itemIndex = 0;\n }\n\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\n}\n\nexport function getCoordinate(\n range: RangeArea,\n focus: Cell,\n changes: Partial<Cell>,\n isMulti = false,\n) {\n const updateCoordinate = (c: keyof Cell, pos = 0) => {\n const start = { x: range.x, y: range.y };\n const end = isMulti ? { x: range.x1, y: range.y1 } : start;\n const point = end[c] > focus[c] ? end : start;\n point[c] += pos;\n return { start, end };\n };\n\n if (changes.x) {\n return updateCoordinate('x', changes['x']);\n }\n if (changes.y) {\n return updateCoordinate('y', changes['y']);\n }\n return null;\n}\n\n/**\n * Check if the x coordinate of the cell position is after or equal to the x coordinate of the last cell position\n * or if the y coordinate of the cell position is after or equal to the y coordinate of the last cell position\n */\nexport function isAfterLast({ x, y }: Cell, lastCell: Cell) {\n return x >= lastCell.x || y >= lastCell.y;\n}\n\n/** check if out of range */\nexport function isBeforeFirst({ x, y }: Cell) {\n return x < 0 || y < 0;\n}\n\n/** Compare cells, only 1 coordinate difference is possible */\n// export function getDirectionCoordinate(initial: Cell, last: Cell): Partial<Cell> | null {\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// if (initial[k] !== last[k]) {\n// return { [k]: 1 };\n// }\n// }\n// return null;\n// }\n\n// export function getLargestAxis(initial: Cell, last: Cell): Partial<Cell> | null {\n// const cell: Partial<Cell> = {};\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// cell[k] = Math.abs(initial[k] - last[k]);\n// }\n// if (cell.x > cell.y) {\n// return { x: 1 };\n// }\n// if (cell.y > cell.x) {\n// return { y: 1 };\n// }\n// return null;\n// }\n\nexport function styleByCellProps(styles: { [key: string]: number }): RangeAreaCss {\n return {\n left: `${styles.left}px`,\n top: `${styles.top}px`,\n width: `${styles.width}px`,\n height: `${styles.height}px`,\n };\n}\n\nexport function getCell(\n { x, y, x1, y1 }: RangeArea,\n dimensionRow: Pick<\n DimensionIndexInput,\n 'indexToItem' | 'indexes' | 'originItemSize'\n >,\n dimensionCol: Pick<\n DimensionIndexInput,\n 'indexToItem' | 'indexes' | 'originItemSize'\n >,\n) {\n const top = getItemByIndex(dimensionRow, y).start;\n const left = getItemByIndex(dimensionCol, x).start;\n const bottom = getItemByIndex(dimensionRow, y1).end;\n const right = getItemByIndex(dimensionCol, x1).end;\n\n return {\n left,\n right,\n top,\n bottom,\n width: right - left,\n height: bottom - top,\n };\n}\n"],"version":3}
@@ -0,0 +1,75 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import { d as debounce } from './debounce.js';
5
+ import { c as isObject } from './toNumber.js';
6
+
7
+ /** Error message constants. */
8
+ var FUNC_ERROR_TEXT = 'Expected a function';
9
+
10
+ /**
11
+ * Creates a throttled function that only invokes `func` at most once per
12
+ * every `wait` milliseconds. The throttled function comes with a `cancel`
13
+ * method to cancel delayed `func` invocations and a `flush` method to
14
+ * immediately invoke them. Provide `options` to indicate whether `func`
15
+ * should be invoked on the leading and/or trailing edge of the `wait`
16
+ * timeout. The `func` is invoked with the last arguments provided to the
17
+ * throttled function. Subsequent calls to the throttled function return the
18
+ * result of the last `func` invocation.
19
+ *
20
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
21
+ * invoked on the trailing edge of the timeout only if the throttled function
22
+ * is invoked more than once during the `wait` timeout.
23
+ *
24
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
25
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
26
+ *
27
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
28
+ * for details over the differences between `_.throttle` and `_.debounce`.
29
+ *
30
+ * @static
31
+ * @memberOf _
32
+ * @since 0.1.0
33
+ * @category Function
34
+ * @param {Function} func The function to throttle.
35
+ * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
36
+ * @param {Object} [options={}] The options object.
37
+ * @param {boolean} [options.leading=true]
38
+ * Specify invoking on the leading edge of the timeout.
39
+ * @param {boolean} [options.trailing=true]
40
+ * Specify invoking on the trailing edge of the timeout.
41
+ * @returns {Function} Returns the new throttled function.
42
+ * @example
43
+ *
44
+ * // Avoid excessively updating the position while scrolling.
45
+ * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
46
+ *
47
+ * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
48
+ * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
49
+ * jQuery(element).on('click', throttled);
50
+ *
51
+ * // Cancel the trailing throttled invocation.
52
+ * jQuery(window).on('popstate', throttled.cancel);
53
+ */
54
+ function throttle(func, wait, options) {
55
+ var leading = true,
56
+ trailing = true;
57
+
58
+ if (typeof func != 'function') {
59
+ throw new TypeError(FUNC_ERROR_TEXT);
60
+ }
61
+ if (isObject(options)) {
62
+ leading = 'leading' in options ? !!options.leading : leading;
63
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
64
+ }
65
+ return debounce(func, wait, {
66
+ 'leading': leading,
67
+ 'maxWait': wait,
68
+ 'trailing': trailing
69
+ });
70
+ }
71
+
72
+ export { throttle as t };
73
+ //# sourceMappingURL=throttle.js.map
74
+
75
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"file":"throttle.js","mappings":";;;;;;AAGA;AACA,IAAI,eAAe,GAAG,qBAAqB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,OAAO,GAAG,IAAI;AACpB,MAAM,QAAQ,GAAG,IAAI;;AAErB,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC;AACxC;AACA,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACzB,IAAI,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO;AAChE,IAAI,QAAQ,GAAG,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AACpE;AACA,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AAC9B,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,UAAU,EAAE;AAChB,GAAG,CAAC;AACJ;;;;","names":[],"sources":["node_modules/lodash/throttle.js"],"sourcesContent":["import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n"],"version":3}