lsp-grid 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/README.md +34 -0
  2. package/dist/cjs/app-globals-Bfsg1bDt.js +16 -0
  3. package/dist/cjs/app-globals-Bfsg1bDt.js.map +1 -0
  4. package/dist/cjs/cell-renderer-DtuYp7tj.js +106 -0
  5. package/dist/cjs/cell-renderer-DtuYp7tj.js.map +1 -0
  6. package/dist/cjs/column.drag.plugin-BIptTmfz.js +2554 -0
  7. package/dist/cjs/column.drag.plugin-BIptTmfz.js.map +1 -0
  8. package/dist/cjs/column.service-BnVSAfcu.js +1391 -0
  9. package/dist/cjs/column.service-BnVSAfcu.js.map +1 -0
  10. package/dist/cjs/data.store-CrF4Nf9q.js +3615 -0
  11. package/dist/cjs/data.store-CrF4Nf9q.js.map +1 -0
  12. package/dist/cjs/debounce-DgeyTQM0.js +498 -0
  13. package/dist/cjs/debounce-DgeyTQM0.js.map +1 -0
  14. package/dist/cjs/edit.utils-Bw-E3Fj6.js +118 -0
  15. package/dist/cjs/edit.utils-Bw-E3Fj6.js.map +1 -0
  16. package/dist/cjs/events-D0Syn6ut.js +46 -0
  17. package/dist/cjs/events-D0Syn6ut.js.map +1 -0
  18. package/dist/cjs/filter.button-CaAAXq-6.js +49 -0
  19. package/dist/cjs/filter.button-CaAAXq-6.js.map +1 -0
  20. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js +356 -0
  21. package/dist/cjs/header-cell-renderer-DhRJqZ-w.js.map +1 -0
  22. package/dist/cjs/index-VM40U6Gh.js +2549 -0
  23. package/dist/cjs/index-VM40U6Gh.js.map +1 -0
  24. package/dist/cjs/index.cjs.js +346 -0
  25. package/dist/cjs/index.cjs.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +19 -0
  27. package/dist/cjs/loader.cjs.js.map +1 -0
  28. package/dist/cjs/revo-grid.cjs.entry.js +2187 -0
  29. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  30. package/dist/cjs/revo-grid.cjs.js +31 -0
  31. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  32. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
  33. package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
  34. package/dist/cjs/revogr-attribution_7.cjs.entry.js +1463 -0
  35. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -0
  36. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
  37. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +456 -0
  38. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  39. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
  40. package/dist/cjs/revogr-data_4.cjs.entry.js +948 -0
  41. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  42. package/dist/cjs/revogr-filter-panel.cjs.entry.js +382 -0
  43. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  44. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
  45. package/dist/cjs/row-header-utils-DL640c7x.js +420 -0
  46. package/dist/cjs/row-header-utils-DL640c7x.js.map +1 -0
  47. package/dist/cjs/text-editor-DWChyeVV.js +81 -0
  48. package/dist/cjs/text-editor-DWChyeVV.js.map +1 -0
  49. package/dist/cjs/throttle-Bb1Bbfd1.js +278 -0
  50. package/dist/cjs/throttle-Bb1Bbfd1.js.map +1 -0
  51. package/dist/cjs/viewport.helpers-CI6uB8tu.js +59 -0
  52. package/dist/cjs/viewport.helpers-CI6uB8tu.js.map +1 -0
  53. package/dist/collection/collection-manifest.json +28 -0
  54. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  55. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  56. package/dist/collection/components/clipboard/revogr-clipboard.js +396 -0
  57. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  58. package/dist/collection/components/data/cell-renderer.js +44 -0
  59. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  60. package/dist/collection/components/data/column.service.js +293 -0
  61. package/dist/collection/components/data/column.service.js.map +1 -0
  62. package/dist/collection/components/data/revogr-data-style.css +75 -0
  63. package/dist/collection/components/data/revogr-data.js +697 -0
  64. package/dist/collection/components/data/revogr-data.js.map +1 -0
  65. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  66. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  67. package/dist/collection/components/data/row-renderer.js +16 -0
  68. package/dist/collection/components/data/row-renderer.js.map +1 -0
  69. package/dist/collection/components/editors/edit.utils.js +13 -0
  70. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  71. package/dist/collection/components/editors/revogr-edit-style.css +16 -0
  72. package/dist/collection/components/editors/revogr-edit.js +346 -0
  73. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  74. package/dist/collection/components/editors/text-editor.js +74 -0
  75. package/dist/collection/components/editors/text-editor.js.map +1 -0
  76. package/dist/collection/components/extra/revogr-extra.js +125 -0
  77. package/dist/collection/components/extra/revogr-extra.js.map +1 -0
  78. package/dist/collection/components/header/header-cell-renderer.js +34 -0
  79. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  80. package/dist/collection/components/header/header-group-renderer.js +25 -0
  81. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  82. package/dist/collection/components/header/header-renderer.js +61 -0
  83. package/dist/collection/components/header/header-renderer.js.map +1 -0
  84. package/dist/collection/components/header/resizable.directive.js +237 -0
  85. package/dist/collection/components/header/resizable.directive.js.map +1 -0
  86. package/dist/collection/components/header/resizable.element.js +38 -0
  87. package/dist/collection/components/header/resizable.element.js.map +1 -0
  88. package/dist/collection/components/header/revogr-header-style.css +144 -0
  89. package/dist/collection/components/header/revogr-header.js +573 -0
  90. package/dist/collection/components/header/revogr-header.js.map +1 -0
  91. package/dist/collection/components/order/order-renderer.js +50 -0
  92. package/dist/collection/components/order/order-renderer.js.map +1 -0
  93. package/dist/collection/components/order/order-row.service.js +72 -0
  94. package/dist/collection/components/order/order-row.service.js.map +1 -0
  95. package/dist/collection/components/order/revogr-order-editor.js +461 -0
  96. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  97. package/dist/collection/components/overlay/autofill.service.js +224 -0
  98. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  99. package/dist/collection/components/overlay/keyboard.service.js +158 -0
  100. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  101. package/dist/collection/components/overlay/revogr-overlay-selection.js +1515 -0
  102. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  103. package/dist/collection/components/overlay/revogr-overlay-style.css +95 -0
  104. package/dist/collection/components/overlay/selection.utils.js +136 -0
  105. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  106. package/dist/collection/components/revoGrid/grid.helpers.js +33 -0
  107. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  108. package/dist/collection/components/revoGrid/plugin.service.js +81 -0
  109. package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
  110. package/dist/collection/components/revoGrid/revo-grid-style.css +567 -0
  111. package/dist/collection/components/revoGrid/revo-grid.js +3671 -0
  112. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  113. package/dist/collection/components/revoGrid/viewport.helpers.js +49 -0
  114. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  115. package/dist/collection/components/revoGrid/viewport.resize.service.js +55 -0
  116. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  117. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +90 -0
  118. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  119. package/dist/collection/components/revoGrid/viewport.service.js +237 -0
  120. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  121. package/dist/collection/components/rowHeaders/revogr-row-headers.js +291 -0
  122. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  123. package/dist/collection/components/rowHeaders/row-header-render.js +5 -0
  124. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  125. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +69 -0
  126. package/dist/collection/components/scroll/revogr-viewport-scroll.js +601 -0
  127. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  128. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  129. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  130. package/dist/collection/components/scrollable/revogr-scroll-style.css +34 -0
  131. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +295 -0
  132. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  133. package/dist/collection/components/selectionFocus/revogr-focus-style.css +7 -0
  134. package/dist/collection/components/selectionFocus/revogr-focus.js +400 -0
  135. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  136. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +28 -0
  137. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +171 -0
  138. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  139. package/dist/collection/components/vnode/vnode-converter.js +84 -0
  140. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  141. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  142. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  143. package/dist/collection/global/global.js +19 -0
  144. package/dist/collection/global/global.js.map +1 -0
  145. package/dist/collection/index.js +13 -0
  146. package/dist/collection/index.js.map +1 -0
  147. package/dist/collection/plugins/add-rows-on-paste.plugin.js +40 -0
  148. package/dist/collection/plugins/add-rows-on-paste.plugin.js.map +1 -0
  149. package/dist/collection/plugins/base.plugin.js +90 -0
  150. package/dist/collection/plugins/base.plugin.js.map +1 -0
  151. package/dist/collection/plugins/column.auto-size.plugin.js +225 -0
  152. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  153. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  154. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  155. package/dist/collection/plugins/dispatcher.js +40 -0
  156. package/dist/collection/plugins/dispatcher.js.map +1 -0
  157. package/dist/collection/plugins/export/csv.js +72 -0
  158. package/dist/collection/plugins/export/csv.js.map +1 -0
  159. package/dist/collection/plugins/export/export.plugin.js +157 -0
  160. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  161. package/dist/collection/plugins/export/types.js +2 -0
  162. package/dist/collection/plugins/export/types.js.map +1 -0
  163. package/dist/collection/plugins/filter/conditions/equal.js +21 -0
  164. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  165. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +14 -0
  166. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  167. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +11 -0
  168. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  169. package/dist/collection/plugins/filter/conditions/number/lessThan.js +16 -0
  170. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  171. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +11 -0
  172. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  173. package/dist/collection/plugins/filter/conditions/set.js +7 -0
  174. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  175. package/dist/collection/plugins/filter/conditions/string/beginswith.js +21 -0
  176. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  177. package/dist/collection/plugins/filter/conditions/string/contains.js +25 -0
  178. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  179. package/dist/collection/plugins/filter/filter.button.js +28 -0
  180. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  181. package/dist/collection/plugins/filter/filter.indexed.js +49 -0
  182. package/dist/collection/plugins/filter/filter.indexed.js.map +1 -0
  183. package/dist/collection/plugins/filter/filter.panel.js +610 -0
  184. package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
  185. package/dist/collection/plugins/filter/filter.plugin.js +388 -0
  186. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  187. package/dist/collection/plugins/filter/filter.style.css +165 -0
  188. package/dist/collection/plugins/filter/filter.types.js +9 -0
  189. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  190. package/dist/collection/plugins/groupingRow/grouping.const.js +16 -0
  191. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  192. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +79 -0
  193. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  194. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +245 -0
  195. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  196. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +38 -0
  197. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  198. package/dist/collection/plugins/groupingRow/grouping.row.types.js +2 -0
  199. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  200. package/dist/collection/plugins/groupingRow/grouping.service.js +178 -0
  201. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  202. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +61 -0
  203. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  204. package/dist/collection/plugins/index.js +15 -0
  205. package/dist/collection/plugins/index.js.map +1 -0
  206. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +175 -0
  207. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  208. package/dist/collection/plugins/moveColumn/order-column.handler.js +71 -0
  209. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  210. package/dist/collection/plugins/rtl/rtl.plugin.js +110 -0
  211. package/dist/collection/plugins/rtl/rtl.plugin.js.map +1 -0
  212. package/dist/collection/plugins/sorting/sorting.func.js +82 -0
  213. package/dist/collection/plugins/sorting/sorting.func.js.map +1 -0
  214. package/dist/collection/plugins/sorting/sorting.plugin.js +224 -0
  215. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  216. package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
  217. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  218. package/dist/collection/plugins/sorting/sorting.types.js +2 -0
  219. package/dist/collection/plugins/sorting/sorting.types.js.map +1 -0
  220. package/dist/collection/plugins/wcag/index.js +84 -0
  221. package/dist/collection/plugins/wcag/index.js.map +1 -0
  222. package/dist/collection/serve/controller.js +344 -0
  223. package/dist/collection/serve/data.js +201 -0
  224. package/dist/collection/services/cell.helpers.js +12 -0
  225. package/dist/collection/services/cell.helpers.js.map +1 -0
  226. package/dist/collection/services/column.data.provider.js +119 -0
  227. package/dist/collection/services/column.data.provider.js.map +1 -0
  228. package/dist/collection/services/data.provider.js +89 -0
  229. package/dist/collection/services/data.provider.js.map +1 -0
  230. package/dist/collection/services/dimension.provider.js +176 -0
  231. package/dist/collection/services/dimension.provider.js.map +1 -0
  232. package/dist/collection/services/local.scroll.service.js +124 -0
  233. package/dist/collection/services/local.scroll.service.js.map +1 -0
  234. package/dist/collection/services/local.scroll.timer.js +81 -0
  235. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  236. package/dist/collection/services/selection.store.connector.js +307 -0
  237. package/dist/collection/services/selection.store.connector.js.map +1 -0
  238. package/dist/collection/services/viewport.provider.js +17 -0
  239. package/dist/collection/services/viewport.provider.js.map +1 -0
  240. package/dist/collection/store/dataSource/data.proxy.js +45 -0
  241. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  242. package/dist/collection/store/dataSource/data.store.js +144 -0
  243. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  244. package/dist/collection/store/dataSource/index.js +7 -0
  245. package/dist/collection/store/dataSource/index.js.map +1 -0
  246. package/dist/collection/store/dataSource/trimmed.plugin.js +34 -0
  247. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  248. package/dist/collection/store/dimension/dimension.helpers.js +101 -0
  249. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  250. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
  251. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  252. package/dist/collection/store/dimension/dimension.store.js +109 -0
  253. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  254. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  255. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  256. package/dist/collection/store/dimension/index.js +6 -0
  257. package/dist/collection/store/dimension/index.js.map +1 -0
  258. package/dist/collection/store/index.js +17 -0
  259. package/dist/collection/store/index.js.map +1 -0
  260. package/dist/collection/store/selection/index.js +6 -0
  261. package/dist/collection/store/selection/index.js.map +1 -0
  262. package/dist/collection/store/selection/selection.helpers.js +53 -0
  263. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  264. package/dist/collection/store/selection/selection.store.js +85 -0
  265. package/dist/collection/store/selection/selection.store.js.map +1 -0
  266. package/dist/collection/store/vp/index.js +6 -0
  267. package/dist/collection/store/vp/index.js.map +1 -0
  268. package/dist/collection/store/vp/viewport.helpers.js +251 -0
  269. package/dist/collection/store/vp/viewport.helpers.js.map +1 -0
  270. package/dist/collection/store/vp/viewport.store.js +151 -0
  271. package/dist/collection/store/vp/viewport.store.js.map +1 -0
  272. package/dist/collection/themeManager/theme.compact.js +9 -0
  273. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  274. package/dist/collection/themeManager/theme.default.js +9 -0
  275. package/dist/collection/themeManager/theme.default.js.map +1 -0
  276. package/dist/collection/themeManager/theme.material.js +9 -0
  277. package/dist/collection/themeManager/theme.material.js.map +1 -0
  278. package/dist/collection/themeManager/theme.service.js +53 -0
  279. package/dist/collection/themeManager/theme.service.js.map +1 -0
  280. package/dist/collection/types/dimension.js +2 -0
  281. package/dist/collection/types/dimension.js.map +1 -0
  282. package/dist/collection/types/events.js +118 -0
  283. package/dist/collection/types/events.js.map +1 -0
  284. package/dist/collection/types/index.js +12 -0
  285. package/dist/collection/types/index.js.map +1 -0
  286. package/dist/collection/types/interfaces.js +2 -0
  287. package/dist/collection/types/interfaces.js.map +1 -0
  288. package/dist/collection/types/plugin.js +2 -0
  289. package/dist/collection/types/plugin.js.map +1 -0
  290. package/dist/collection/types/plugin.types.js +2 -0
  291. package/dist/collection/types/plugin.types.js.map +1 -0
  292. package/dist/collection/types/selection.js +2 -0
  293. package/dist/collection/types/selection.js.map +1 -0
  294. package/dist/collection/types/theme.js +2 -0
  295. package/dist/collection/types/theme.js.map +1 -0
  296. package/dist/collection/types/viewport.interfaces.js +2 -0
  297. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  298. package/dist/collection/utils/browser.js +7 -0
  299. package/dist/collection/utils/browser.js.map +1 -0
  300. package/dist/collection/utils/closest.polifill.js +22 -0
  301. package/dist/collection/utils/closest.polifill.js.map +1 -0
  302. package/dist/collection/utils/column.utils.js +153 -0
  303. package/dist/collection/utils/column.utils.js.map +1 -0
  304. package/dist/collection/utils/consts.js +26 -0
  305. package/dist/collection/utils/consts.js.map +1 -0
  306. package/dist/collection/utils/events.js +39 -0
  307. package/dist/collection/utils/events.js.map +1 -0
  308. package/dist/collection/utils/header.utils.js +24 -0
  309. package/dist/collection/utils/header.utils.js.map +1 -0
  310. package/dist/collection/utils/index.js +140 -0
  311. package/dist/collection/utils/index.js.map +1 -0
  312. package/dist/collection/utils/key.codes.js +80 -0
  313. package/dist/collection/utils/key.codes.js.map +1 -0
  314. package/dist/collection/utils/key.utils.js +90 -0
  315. package/dist/collection/utils/key.utils.js.map +1 -0
  316. package/dist/collection/utils/mobile.js +7 -0
  317. package/dist/collection/utils/mobile.js.map +1 -0
  318. package/dist/collection/utils/platform.js +9 -0
  319. package/dist/collection/utils/platform.js.map +1 -0
  320. package/dist/collection/utils/row-header-utils.js +9 -0
  321. package/dist/collection/utils/row-header-utils.js.map +1 -0
  322. package/dist/collection/utils/store.types.js +2 -0
  323. package/dist/collection/utils/store.types.js.map +1 -0
  324. package/dist/collection/utils/store.utils.js +15 -0
  325. package/dist/collection/utils/store.utils.js.map +1 -0
  326. package/dist/esm/app-globals-FBz64o-g.js +14 -0
  327. package/dist/esm/app-globals-FBz64o-g.js.map +1 -0
  328. package/dist/esm/cell-renderer-Ca_PCGjJ.js +98 -0
  329. package/dist/esm/cell-renderer-Ca_PCGjJ.js.map +1 -0
  330. package/dist/esm/column.drag.plugin-BtuUyB-2.js +2528 -0
  331. package/dist/esm/column.drag.plugin-BtuUyB-2.js.map +1 -0
  332. package/dist/esm/column.service-CTqFIQUy.js +1343 -0
  333. package/dist/esm/column.service-CTqFIQUy.js.map +1 -0
  334. package/dist/esm/data.store-B-lvmoFH.js +3553 -0
  335. package/dist/esm/data.store-B-lvmoFH.js.map +1 -0
  336. package/dist/esm/debounce-DTUQ1fY7.js +488 -0
  337. package/dist/esm/debounce-DTUQ1fY7.js.map +1 -0
  338. package/dist/esm/edit.utils-CyCANCLB.js +103 -0
  339. package/dist/esm/edit.utils-CyCANCLB.js.map +1 -0
  340. package/dist/esm/events-CKtYJJSv.js +43 -0
  341. package/dist/esm/events-CKtYJJSv.js.map +1 -0
  342. package/dist/esm/filter.button-CjABZQgg.js +39 -0
  343. package/dist/esm/filter.button-CjABZQgg.js.map +1 -0
  344. package/dist/esm/header-cell-renderer-DnjpJuXq.js +351 -0
  345. package/dist/esm/header-cell-renderer-DnjpJuXq.js.map +1 -0
  346. package/dist/esm/index-BAoInZ4V.js +2519 -0
  347. package/dist/esm/index-BAoInZ4V.js.map +1 -0
  348. package/dist/esm/index.js +181 -0
  349. package/dist/esm/index.js.map +1 -0
  350. package/dist/esm/loader.js +17 -0
  351. package/dist/esm/loader.js.map +1 -0
  352. package/dist/esm/revo-grid.entry.js +2185 -0
  353. package/dist/esm/revo-grid.entry.js.map +1 -0
  354. package/dist/esm/revo-grid.js +27 -0
  355. package/dist/esm/revo-grid.js.map +1 -0
  356. package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
  357. package/dist/esm/revogr-attribution_7.entry.js +1455 -0
  358. package/dist/esm/revogr-attribution_7.entry.js.map +1 -0
  359. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
  360. package/dist/esm/revogr-clipboard_3.entry.js +452 -0
  361. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  362. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
  363. package/dist/esm/revogr-data_4.entry.js +943 -0
  364. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  365. package/dist/esm/revogr-filter-panel.entry.js +380 -0
  366. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  367. package/dist/esm/row-header-utils-vnoLGj5A.js +407 -0
  368. package/dist/esm/row-header-utils-vnoLGj5A.js.map +1 -0
  369. package/dist/esm/text-editor-Cp7lwBZi.js +79 -0
  370. package/dist/esm/text-editor-Cp7lwBZi.js.map +1 -0
  371. package/dist/esm/throttle-DiUrHjcY.js +273 -0
  372. package/dist/esm/throttle-DiUrHjcY.js.map +1 -0
  373. package/dist/esm/viewport.helpers-Ch4AQMMg.js +53 -0
  374. package/dist/esm/viewport.helpers-Ch4AQMMg.js.map +1 -0
  375. package/dist/index.cjs.js +1 -0
  376. package/dist/index.d.ts +1 -0
  377. package/dist/index.js +1 -0
  378. package/dist/revo-grid/app-globals-FBz64o-g.js +14 -0
  379. package/dist/revo-grid/app-globals-FBz64o-g.js.map +1 -0
  380. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js +98 -0
  381. package/dist/revo-grid/cell-renderer-Ca_PCGjJ.js.map +1 -0
  382. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js +2528 -0
  383. package/dist/revo-grid/column.drag.plugin-BtuUyB-2.js.map +1 -0
  384. package/dist/revo-grid/column.service-CTqFIQUy.js +1343 -0
  385. package/dist/revo-grid/column.service-CTqFIQUy.js.map +1 -0
  386. package/dist/revo-grid/data.store-B-lvmoFH.js +3553 -0
  387. package/dist/revo-grid/data.store-B-lvmoFH.js.map +1 -0
  388. package/dist/revo-grid/debounce-DTUQ1fY7.js +488 -0
  389. package/dist/revo-grid/debounce-DTUQ1fY7.js.map +1 -0
  390. package/dist/revo-grid/edit.utils-CyCANCLB.js +103 -0
  391. package/dist/revo-grid/edit.utils-CyCANCLB.js.map +1 -0
  392. package/dist/revo-grid/events-CKtYJJSv.js +43 -0
  393. package/dist/revo-grid/events-CKtYJJSv.js.map +1 -0
  394. package/dist/revo-grid/filter.button-CjABZQgg.js +39 -0
  395. package/dist/revo-grid/filter.button-CjABZQgg.js.map +1 -0
  396. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js +351 -0
  397. package/dist/revo-grid/header-cell-renderer-DnjpJuXq.js.map +1 -0
  398. package/dist/revo-grid/index-BAoInZ4V.js +2490 -0
  399. package/dist/revo-grid/index-BAoInZ4V.js.map +1 -0
  400. package/dist/revo-grid/index.esm.js +181 -0
  401. package/dist/revo-grid/index.esm.js.map +1 -0
  402. package/dist/revo-grid/loader.esm.js.map +1 -0
  403. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
  404. package/dist/revo-grid/revo-grid.entry.js +2185 -0
  405. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  406. package/dist/revo-grid/revo-grid.esm.js +27 -0
  407. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  408. package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
  409. package/dist/revo-grid/revogr-attribution_7.entry.js +1455 -0
  410. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -0
  411. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
  412. package/dist/revo-grid/revogr-clipboard_3.entry.js +452 -0
  413. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  414. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
  415. package/dist/revo-grid/revogr-data_4.entry.js +943 -0
  416. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  417. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
  418. package/dist/revo-grid/revogr-filter-panel.entry.js +380 -0
  419. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  420. package/dist/revo-grid/row-header-utils-vnoLGj5A.js +407 -0
  421. package/dist/revo-grid/row-header-utils-vnoLGj5A.js.map +1 -0
  422. package/dist/revo-grid/text-editor-Cp7lwBZi.js +79 -0
  423. package/dist/revo-grid/text-editor-Cp7lwBZi.js.map +1 -0
  424. package/dist/revo-grid/throttle-DiUrHjcY.js +273 -0
  425. package/dist/revo-grid/throttle-DiUrHjcY.js.map +1 -0
  426. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js +53 -0
  427. package/dist/revo-grid/viewport.helpers-Ch4AQMMg.js.map +1 -0
  428. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  429. package/dist/types/components/clipboard/revogr-clipboard.d.ts +89 -0
  430. package/dist/types/components/data/cell-renderer.d.ts +12 -0
  431. package/dist/types/components/data/column.service.d.ts +61 -0
  432. package/dist/types/components/data/revogr-data.d.ts +107 -0
  433. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  434. package/dist/types/components/data/row-renderer.d.ts +12 -0
  435. package/dist/types/components/editors/edit.utils.d.ts +3 -0
  436. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  437. package/dist/types/components/editors/text-editor.d.ts +43 -0
  438. package/dist/types/components/extra/revogr-extra.d.ts +38 -0
  439. package/dist/types/components/header/header-cell-renderer.d.ts +9 -0
  440. package/dist/types/components/header/header-group-renderer.d.ts +15 -0
  441. package/dist/types/components/header/header-renderer.d.ts +16 -0
  442. package/dist/types/components/header/resizable.directive.d.ts +55 -0
  443. package/dist/types/components/header/resizable.element.d.ts +5 -0
  444. package/dist/types/components/header/revogr-header.d.ts +90 -0
  445. package/dist/types/components/order/order-renderer.d.ts +29 -0
  446. package/dist/types/components/order/order-row.service.d.ts +27 -0
  447. package/dist/types/components/order/revogr-order-editor.d.ts +56 -0
  448. package/dist/types/components/overlay/autofill.service.d.ts +80 -0
  449. package/dist/types/components/overlay/keyboard.service.d.ts +28 -0
  450. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +278 -0
  451. package/dist/types/components/overlay/selection.utils.d.ts +47 -0
  452. package/dist/types/components/revoGrid/grid.helpers.d.ts +17 -0
  453. package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
  454. package/dist/types/components/revoGrid/revo-grid.d.ts +686 -0
  455. package/dist/types/components/revoGrid/viewport.helpers.d.ts +39 -0
  456. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +17 -0
  457. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -0
  458. package/dist/types/components/revoGrid/viewport.service.d.ts +59 -0
  459. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +51 -0
  460. package/dist/types/components/rowHeaders/row-header-render.d.ts +9 -0
  461. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +117 -0
  462. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  463. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +43 -0
  464. package/dist/types/components/selectionFocus/revogr-focus.d.ts +58 -0
  465. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +28 -0
  466. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  467. package/dist/types/components/vnode/vnode.utils.d.ts +9 -0
  468. package/dist/types/components.d.ts +2583 -0
  469. package/dist/types/global/global.d.ts +1 -0
  470. package/dist/types/index.d.ts +9 -0
  471. package/dist/types/plugins/add-rows-on-paste.plugin.d.ts +14 -0
  472. package/dist/types/plugins/base.plugin.d.ts +51 -0
  473. package/dist/types/plugins/column.auto-size.plugin.d.ts +55 -0
  474. package/dist/types/plugins/column.stretch.plugin.d.ts +20 -0
  475. package/dist/types/plugins/dispatcher.d.ts +20 -0
  476. package/dist/types/plugins/export/csv.d.ts +9 -0
  477. package/dist/types/plugins/export/export.plugin.d.ts +24 -0
  478. package/dist/types/plugins/export/types.d.ts +23 -0
  479. package/dist/types/plugins/filter/conditions/equal.d.ts +4 -0
  480. package/dist/types/plugins/filter/conditions/number/greaterThan.d.ts +3 -0
  481. package/dist/types/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +3 -0
  482. package/dist/types/plugins/filter/conditions/number/lessThan.d.ts +3 -0
  483. package/dist/types/plugins/filter/conditions/number/lessThanOrEqual.d.ts +3 -0
  484. package/dist/types/plugins/filter/conditions/set.d.ts +4 -0
  485. package/dist/types/plugins/filter/conditions/string/beginswith.d.ts +3 -0
  486. package/dist/types/plugins/filter/conditions/string/contains.d.ts +4 -0
  487. package/dist/types/plugins/filter/filter.button.d.ts +14 -0
  488. package/dist/types/plugins/filter/filter.indexed.d.ts +20 -0
  489. package/dist/types/plugins/filter/filter.panel.d.ts +53 -0
  490. package/dist/types/plugins/filter/filter.plugin.d.ts +73 -0
  491. package/dist/types/plugins/filter/filter.types.d.ts +129 -0
  492. package/dist/types/plugins/groupingRow/grouping.const.d.ts +12 -0
  493. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +15 -0
  494. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +39 -0
  495. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +6 -0
  496. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +103 -0
  497. package/dist/types/plugins/groupingRow/grouping.service.d.ts +36 -0
  498. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +10 -0
  499. package/dist/types/plugins/index.d.ts +11 -0
  500. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +42 -0
  501. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  502. package/dist/types/plugins/rtl/rtl.plugin.d.ts +37 -0
  503. package/dist/types/plugins/sorting/sorting.func.d.ts +9 -0
  504. package/dist/types/plugins/sorting/sorting.plugin.d.ts +48 -0
  505. package/dist/types/plugins/sorting/sorting.sign.d.ts +6 -0
  506. package/dist/types/plugins/sorting/sorting.types.d.ts +14 -0
  507. package/dist/types/plugins/wcag/index.d.ts +26 -0
  508. package/dist/types/services/cell.helpers.d.ts +2 -0
  509. package/dist/types/services/column.data.provider.d.ts +27 -0
  510. package/dist/types/services/data.provider.d.ts +36 -0
  511. package/dist/types/services/dimension.provider.d.ts +66 -0
  512. package/dist/types/services/local.scroll.service.d.ts +36 -0
  513. package/dist/types/services/local.scroll.timer.d.ts +32 -0
  514. package/dist/types/services/selection.store.connector.d.ts +79 -0
  515. package/dist/types/services/viewport.provider.d.ts +7 -0
  516. package/dist/types/stencil-public-runtime.d.ts +1709 -0
  517. package/dist/types/store/dataSource/data.proxy.d.ts +14 -0
  518. package/dist/types/store/dataSource/data.store.d.ts +74 -0
  519. package/dist/types/store/dataSource/index.d.ts +3 -0
  520. package/dist/types/store/dataSource/trimmed.plugin.d.ts +12 -0
  521. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -0
  522. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
  523. package/dist/types/store/dimension/dimension.store.d.ts +21 -0
  524. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  525. package/dist/types/store/dimension/index.d.ts +2 -0
  526. package/dist/types/store/index.d.ts +8 -0
  527. package/dist/types/store/selection/index.d.ts +2 -0
  528. package/dist/types/store/selection/selection.helpers.d.ts +6 -0
  529. package/dist/types/store/selection/selection.store.d.ts +22 -0
  530. package/dist/types/store/vp/index.d.ts +7 -0
  531. package/dist/types/store/vp/viewport.helpers.d.ts +54 -0
  532. package/dist/types/store/vp/viewport.store.d.ts +26 -0
  533. package/dist/types/themeManager/theme.compact.d.ts +4 -0
  534. package/dist/types/themeManager/theme.default.d.ts +4 -0
  535. package/dist/types/themeManager/theme.material.d.ts +4 -0
  536. package/dist/types/themeManager/theme.service.d.ts +13 -0
  537. package/dist/types/types/dimension.d.ts +8 -0
  538. package/dist/types/types/events.d.ts +2 -0
  539. package/dist/types/types/index.d.ts +8 -0
  540. package/dist/types/types/interfaces.d.ts +768 -0
  541. package/dist/types/types/plugin.d.ts +9 -0
  542. package/dist/types/types/plugin.types.d.ts +48 -0
  543. package/dist/types/types/selection.d.ts +178 -0
  544. package/dist/types/types/theme.d.ts +7 -0
  545. package/dist/types/types/viewport.interfaces.d.ts +45 -0
  546. package/dist/types/utils/browser.d.ts +1 -0
  547. package/dist/types/utils/closest.polifill.d.ts +0 -0
  548. package/dist/types/utils/column.utils.d.ts +52 -0
  549. package/dist/types/utils/consts.d.ts +22 -0
  550. package/dist/types/utils/events.d.ts +5 -0
  551. package/dist/types/utils/header.utils.d.ts +2 -0
  552. package/dist/types/utils/index.d.ts +32 -0
  553. package/dist/types/utils/key.codes.d.ts +73 -0
  554. package/dist/types/utils/key.utils.d.ts +13 -0
  555. package/dist/types/utils/mobile.d.ts +1 -0
  556. package/dist/types/utils/platform.d.ts +4 -0
  557. package/dist/types/utils/row-header-utils.d.ts +2 -0
  558. package/dist/types/utils/store.types.d.ts +97 -0
  559. package/dist/types/utils/store.utils.d.ts +10 -0
  560. package/hydrate/index.d.ts +273 -0
  561. package/hydrate/index.js +33890 -0
  562. package/hydrate/index.mjs +33882 -0
  563. package/hydrate/package.json +12 -0
  564. package/loader/cdn.js +4 -0
  565. package/loader/index.cjs.js +4 -0
  566. package/loader/index.d.ts +24 -0
  567. package/loader/index.es2017.js +4 -0
  568. package/loader/index.js +5 -0
  569. package/package.json +101 -0
  570. package/react/dist/index.d.ts +6191 -0
  571. package/react/dist/react-datagrid.js +260 -0
  572. package/react/dist/react-datagrid.umd.cjs +272 -0
  573. package/standalone/column.service.js +1345 -0
  574. package/standalone/column.service.js.map +1 -0
  575. package/standalone/consts.js +30 -0
  576. package/standalone/consts.js.map +1 -0
  577. package/standalone/data.store.js +3099 -0
  578. package/standalone/data.store.js.map +1 -0
  579. package/standalone/debounce.js +215 -0
  580. package/standalone/debounce.js.map +1 -0
  581. package/standalone/dimension.helpers.js +229 -0
  582. package/standalone/dimension.helpers.js.map +1 -0
  583. package/standalone/filter.button.js +39 -0
  584. package/standalone/filter.button.js.map +1 -0
  585. package/standalone/index.d.ts +68 -0
  586. package/standalone/index.js +217 -0
  587. package/standalone/index.js.map +1 -0
  588. package/standalone/index2.js +140 -0
  589. package/standalone/index2.js.map +1 -0
  590. package/standalone/local.scroll.timer.js +207 -0
  591. package/standalone/local.scroll.timer.js.map +1 -0
  592. package/standalone/platform.js +90 -0
  593. package/standalone/platform.js.map +1 -0
  594. package/standalone/revo-grid.d.ts +11 -0
  595. package/standalone/revo-grid.js +4884 -0
  596. package/standalone/revo-grid.js.map +1 -0
  597. package/standalone/revogr-attribution.d.ts +11 -0
  598. package/standalone/revogr-attribution.js +12 -0
  599. package/standalone/revogr-attribution.js.map +1 -0
  600. package/standalone/revogr-attribution2.js +32 -0
  601. package/standalone/revogr-attribution2.js.map +1 -0
  602. package/standalone/revogr-clipboard.d.ts +11 -0
  603. package/standalone/revogr-clipboard.js +12 -0
  604. package/standalone/revogr-clipboard.js.map +1 -0
  605. package/standalone/revogr-clipboard2.js +164 -0
  606. package/standalone/revogr-clipboard2.js.map +1 -0
  607. package/standalone/revogr-data.d.ts +11 -0
  608. package/standalone/revogr-data.js +12 -0
  609. package/standalone/revogr-data.js.map +1 -0
  610. package/standalone/revogr-data2.js +378 -0
  611. package/standalone/revogr-data2.js.map +1 -0
  612. package/standalone/revogr-edit.d.ts +11 -0
  613. package/standalone/revogr-edit.js +12 -0
  614. package/standalone/revogr-edit.js.map +1 -0
  615. package/standalone/revogr-edit2.js +334 -0
  616. package/standalone/revogr-edit2.js.map +1 -0
  617. package/standalone/revogr-extra.d.ts +11 -0
  618. package/standalone/revogr-extra.js +12 -0
  619. package/standalone/revogr-extra.js.map +1 -0
  620. package/standalone/revogr-extra2.js +73 -0
  621. package/standalone/revogr-extra2.js.map +1 -0
  622. package/standalone/revogr-filter-panel.d.ts +11 -0
  623. package/standalone/revogr-filter-panel.js +411 -0
  624. package/standalone/revogr-filter-panel.js.map +1 -0
  625. package/standalone/revogr-focus.d.ts +11 -0
  626. package/standalone/revogr-focus.js +12 -0
  627. package/standalone/revogr-focus.js.map +1 -0
  628. package/standalone/revogr-focus2.js +112 -0
  629. package/standalone/revogr-focus2.js.map +1 -0
  630. package/standalone/revogr-header.d.ts +11 -0
  631. package/standalone/revogr-header.js +12 -0
  632. package/standalone/revogr-header.js.map +1 -0
  633. package/standalone/revogr-header2.js +707 -0
  634. package/standalone/revogr-header2.js.map +1 -0
  635. package/standalone/revogr-order-editor.d.ts +11 -0
  636. package/standalone/revogr-order-editor.js +12 -0
  637. package/standalone/revogr-order-editor.js.map +1 -0
  638. package/standalone/revogr-order-editor2.js +201 -0
  639. package/standalone/revogr-order-editor2.js.map +1 -0
  640. package/standalone/revogr-overlay-selection.d.ts +11 -0
  641. package/standalone/revogr-overlay-selection.js +12 -0
  642. package/standalone/revogr-overlay-selection.js.map +1 -0
  643. package/standalone/revogr-overlay-selection2.js +972 -0
  644. package/standalone/revogr-overlay-selection2.js.map +1 -0
  645. package/standalone/revogr-row-headers.d.ts +11 -0
  646. package/standalone/revogr-row-headers.js +12 -0
  647. package/standalone/revogr-row-headers.js.map +1 -0
  648. package/standalone/revogr-row-headers2.js +520 -0
  649. package/standalone/revogr-row-headers2.js.map +1 -0
  650. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  651. package/standalone/revogr-scroll-virtual.js +12 -0
  652. package/standalone/revogr-scroll-virtual.js.map +1 -0
  653. package/standalone/revogr-scroll-virtual2.js +184 -0
  654. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  655. package/standalone/revogr-temp-range.d.ts +11 -0
  656. package/standalone/revogr-temp-range.js +12 -0
  657. package/standalone/revogr-temp-range.js.map +1 -0
  658. package/standalone/revogr-temp-range2.js +93 -0
  659. package/standalone/revogr-temp-range2.js.map +1 -0
  660. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  661. package/standalone/revogr-viewport-scroll.js +12 -0
  662. package/standalone/revogr-viewport-scroll.js.map +1 -0
  663. package/standalone/revogr-viewport-scroll2.js +421 -0
  664. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  665. package/standalone/selection.utils.js +179 -0
  666. package/standalone/selection.utils.js.map +1 -0
  667. package/standalone/throttle.js +75 -0
  668. package/standalone/throttle.js.map +1 -0
  669. package/standalone/toNumber.js +282 -0
  670. package/standalone/toNumber.js.map +1 -0
  671. package/standalone/vnode-converter.js +46 -0
  672. package/standalone/vnode-converter.js.map +1 -0
  673. package/standalone/vnode-html.d.ts +11 -0
  674. package/standalone/vnode-html.js +12 -0
  675. package/standalone/vnode-html.js.map +1 -0
@@ -0,0 +1,520 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
+ import { j as createStore, i as setStore, D as DataStore } from './data.store.js';
6
+ import { c as ROW_HEADER_TYPE } from './consts.js';
7
+ import './platform.js';
8
+ import { g as getItemByPosition } from './dimension.helpers.js';
9
+ import { H as HEADER_SLOT, d as defineCustomElement$2 } from './revogr-viewport-scroll2.js';
10
+ import { d as defineCustomElement$4 } from './revogr-data2.js';
11
+ import { b as defineCustomElement$3 } from './revogr-header2.js';
12
+ import { d as defineCustomElement$1 } from './vnode-converter.js';
13
+
14
+ /**
15
+ * Update items based on new scroll position
16
+ * If viewport wasn't changed fully simple recombination of positions
17
+ * Otherwise rebuild viewport items
18
+ */
19
+ function getUpdatedItemsByPosition(pos, // coordinate
20
+ items, realCount, virtualSize, dimension) {
21
+ const activeItem = getItemByPosition(dimension, pos);
22
+ const firstItem = getFirstItem(items);
23
+ let toUpdate;
24
+ // do simple position recombination if items already present in viewport
25
+ if (firstItem) {
26
+ let changedOffsetStart = activeItem.itemIndex - (firstItem.itemIndex || 0);
27
+ // if item changed
28
+ if (changedOffsetStart) {
29
+ // simple recombination
30
+ toUpdate = recombineByOffset(Math.abs(changedOffsetStart), Object.assign(Object.assign({ positiveDirection: changedOffsetStart > -1 }, dimension), items));
31
+ }
32
+ }
33
+ const maxSizeVirtualSize = getMaxVirtualSize(virtualSize, dimension.realSize, activeItem);
34
+ // if partial recombination add items if revo-viewport has some space left
35
+ if (toUpdate) {
36
+ const extra = addMissingItems(activeItem, realCount, maxSizeVirtualSize, toUpdate, dimension);
37
+ if (extra.length) {
38
+ updateMissingAndRange(toUpdate.items, extra, toUpdate);
39
+ }
40
+ }
41
+ // new collection if no items after replacement full replacement
42
+ if (!toUpdate) {
43
+ const items = getItems({
44
+ firstItemStart: activeItem.start,
45
+ firstItemIndex: activeItem.itemIndex,
46
+ origSize: dimension.originItemSize,
47
+ maxSize: maxSizeVirtualSize,
48
+ maxCount: realCount,
49
+ sizes: dimension.sizes,
50
+ });
51
+ // range now comes from 0 to length - 1
52
+ toUpdate = {
53
+ items,
54
+ start: 0,
55
+ end: items.length - 1,
56
+ };
57
+ }
58
+ return toUpdate;
59
+ }
60
+ // virtual size can differ based on scroll position if some big items are present
61
+ // scroll can be in the middle of item and virtual size will be larger
62
+ // so we need to exclude this part from virtual size hence it's already passed
63
+ function getMaxVirtualSize(virtualSize, realSize, activeItem) {
64
+ return Math.min(virtualSize + (activeItem.end - activeItem.start), realSize);
65
+ }
66
+ function updateMissingAndRange(items, missing, range) {
67
+ items.splice(range.end + 1, 0, ...missing);
68
+ // update range if start larger after recombination
69
+ if (range.start >= range.end &&
70
+ !(range.start === range.end && range.start === 0)) {
71
+ range.start += missing.length;
72
+ }
73
+ range.end += missing.length;
74
+ }
75
+ /**
76
+ * If partial replacement
77
+ * this function adds items if viewport has some space left
78
+ */
79
+ function addMissingItems(firstItem, realCount, virtualSize, existingCollection, dimension) {
80
+ const lastItem = getLastItem(existingCollection);
81
+ const items = getItems({
82
+ sizes: dimension.sizes,
83
+ firstItemStart: lastItem.end,
84
+ firstItemIndex: lastItem.itemIndex + 1,
85
+ origSize: dimension.originItemSize,
86
+ maxSize: virtualSize - (lastItem.end - firstItem.start),
87
+ maxCount: realCount,
88
+ });
89
+ return items;
90
+ }
91
+ /**
92
+ * Get wiewport items parameters
93
+ * caching position and calculating items count in viewport
94
+ */
95
+ function getItems(opt, currentSize = 0) {
96
+ const items = [];
97
+ let index = opt.firstItemIndex;
98
+ let size = currentSize;
99
+ // max size or max count
100
+ while (size <= opt.maxSize && index < opt.maxCount) {
101
+ const newSize = getItemSize(index, opt.sizes, opt.origSize);
102
+ items.push({
103
+ start: opt.firstItemStart + size,
104
+ end: opt.firstItemStart + size + newSize,
105
+ itemIndex: index,
106
+ size: newSize,
107
+ });
108
+ size += newSize;
109
+ index++;
110
+ }
111
+ return items;
112
+ }
113
+ function recombineByOffset(offset, data) {
114
+ var _a, _b;
115
+ const newItems = [...data.items];
116
+ const itemsCount = newItems.length;
117
+ let newRange = {
118
+ start: data.start,
119
+ end: data.end,
120
+ };
121
+ // if offset out of revo-viewport, makes sense whole redraw
122
+ if (offset > itemsCount) {
123
+ return undefined;
124
+ }
125
+ // is direction of scroll positive
126
+ if (data.positiveDirection) {
127
+ // push item to the end
128
+ let lastItem = getLastItem(data);
129
+ let i = newRange.start;
130
+ const length = i + offset;
131
+ for (; i < length; i++) {
132
+ const newIndex = lastItem.itemIndex + 1;
133
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
134
+ // if item overlapped limit break a loop
135
+ if (lastItem.end + size > data.realSize) {
136
+ break;
137
+ }
138
+ // new item index to recombine
139
+ let newEnd = i % itemsCount;
140
+ // item should always present, we do not create new item, we recombine them
141
+ if (!newItems[newEnd]) {
142
+ throw new Error('incorrect index');
143
+ }
144
+ // do recombination
145
+ newItems[newEnd] = lastItem = {
146
+ start: lastItem.end,
147
+ end: lastItem.end + size,
148
+ itemIndex: newIndex,
149
+ size: size,
150
+ };
151
+ // update range
152
+ newRange.start++;
153
+ newRange.end = newEnd;
154
+ }
155
+ // direction is negative
156
+ }
157
+ else {
158
+ // push item to the start
159
+ let firstItem = getFirstItem(data);
160
+ const end = newRange.end;
161
+ for (let i = 0; i < offset; i++) {
162
+ const newIndex = ((_a = firstItem === null || firstItem === void 0 ? void 0 : firstItem.itemIndex) !== null && _a !== void 0 ? _a : 0) - 1;
163
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
164
+ // new item index to recombine
165
+ let newStart = end - i;
166
+ newStart = (newStart < 0 ? itemsCount + newStart : newStart) % itemsCount;
167
+ // item should always present, we do not create new item, we recombine them
168
+ if (!newItems[newStart]) {
169
+ console.error('incorrect index');
170
+ break;
171
+ }
172
+ // do recombination
173
+ const firstItemStart = (_b = firstItem === null || firstItem === void 0 ? void 0 : firstItem.start) !== null && _b !== void 0 ? _b : 0;
174
+ newItems[newStart] = firstItem = {
175
+ start: firstItemStart - size,
176
+ end: firstItemStart,
177
+ itemIndex: newIndex,
178
+ size: size,
179
+ };
180
+ // update range
181
+ newRange.start = newStart;
182
+ newRange.end--;
183
+ }
184
+ }
185
+ const range = {
186
+ start: (newRange.start < 0 ? itemsCount + newRange.start : newRange.start) %
187
+ itemsCount,
188
+ end: (newRange.end < 0 ? itemsCount + newRange.end : newRange.end) %
189
+ itemsCount,
190
+ };
191
+ return Object.assign({ items: newItems }, range);
192
+ }
193
+ function getItemSize(index, sizes, origSize = 0) {
194
+ if (sizes && sizes[index]) {
195
+ return sizes[index];
196
+ }
197
+ return origSize;
198
+ }
199
+ /**
200
+ * Verify if position is in range of the PositionItem, start and end are included
201
+ */
202
+ function isActiveRange(pos, realSize, first, last) {
203
+ if (!first || !last) {
204
+ return false;
205
+ }
206
+ // if position is in range of first item
207
+ // or position is after first item and last item is the last item in real size
208
+ return ((pos >= first.start && pos <= first.end) ||
209
+ (pos > first.end && last.end === realSize));
210
+ }
211
+ function isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem) {
212
+ var _a;
213
+ // if no first item, means no items in viewport
214
+ if (!firstItem) {
215
+ return false;
216
+ }
217
+ return virtualSize + pos > ((_a = lastItem === null || lastItem === void 0 ? void 0 : lastItem.end) !== null && _a !== void 0 ? _a : 0);
218
+ }
219
+ function getFirstItem(s) {
220
+ return s.items[s.start];
221
+ }
222
+ function getLastItem(s) {
223
+ return s.items[s.end];
224
+ }
225
+ /**
226
+ * Set items sizes from start index to end
227
+ * @param vpItems
228
+ * @param start
229
+ * @param size
230
+ * @param lastCoordinate
231
+ * @returns
232
+ */
233
+ function setItemSizes(vpItems, initialIndex, size, lastCoordinate) {
234
+ const items = [...vpItems];
235
+ const count = items.length;
236
+ let pos = lastCoordinate;
237
+ let i = 0;
238
+ let start = initialIndex;
239
+ // viewport not inited
240
+ if (!count) {
241
+ return [];
242
+ }
243
+ // loop through array from initial item after recombination
244
+ while (i < count) {
245
+ const item = items[start];
246
+ item.start = pos;
247
+ item.size = size;
248
+ item.end = item.start + size;
249
+ pos = item.end;
250
+ // loop by start index
251
+ start++;
252
+ i++;
253
+ // if start index out of array, reset it
254
+ if (start === count) {
255
+ start = 0;
256
+ }
257
+ }
258
+ return items;
259
+ }
260
+
261
+ /**
262
+ * Viewport store
263
+ * Used for virtualization (process of rendering only visible part of data)
264
+ * Redraws viewport based on position and dimension
265
+ */
266
+ function initialState() {
267
+ return {
268
+ // virtual item information per rendered item
269
+ items: [],
270
+ // virtual dom item order to render
271
+ start: 0,
272
+ end: 0,
273
+ // size of virtual viewport in px
274
+ virtualSize: 0,
275
+ // total number of items
276
+ realCount: 0,
277
+ // size of viewport in px
278
+ clientSize: 0,
279
+ };
280
+ }
281
+ /**
282
+ * Viewport store class
283
+ */
284
+ class ViewportStore {
285
+ get lastCoordinate() {
286
+ return this.lastKnownScroll;
287
+ }
288
+ set lastCoordinate(value) {
289
+ this.lastKnownScroll = value;
290
+ }
291
+ constructor(type) {
292
+ this.type = type;
293
+ // last coordinate for store position restore
294
+ this.lastKnownScroll = 0;
295
+ this.store = createStore(initialState());
296
+ }
297
+ /**
298
+ * Render viewport based on coordinate
299
+ * It's the main method for draw
300
+ * Use force if you want to re-render viewport
301
+ */
302
+ setViewPortCoordinate(position, dimension, force = false) {
303
+ const viewportSize = this.store.get('virtualSize');
304
+ // no visible data to calculate
305
+ if (!viewportSize) {
306
+ return;
307
+ }
308
+ const frameOffset = 1;
309
+ const singleOffsetInPx = dimension.originItemSize * frameOffset;
310
+ // add offset to virtual size from both sides
311
+ const outsize = singleOffsetInPx * 2;
312
+ // math virtual size is based on visible area + 2 items outside of visible area
313
+ const virtualSize = viewportSize + outsize;
314
+ // expected no scroll if real size less than virtual size, position is 0
315
+ let maxCoordinate = 0;
316
+ // if there is nodes outside of viewport, max coordinate has to be adjusted
317
+ if (dimension.realSize > viewportSize) {
318
+ // max coordinate is real size minus virtual/rendered space
319
+ maxCoordinate = dimension.realSize - viewportSize - singleOffsetInPx;
320
+ }
321
+ let pos = position;
322
+ // limit position to max and min coordinates
323
+ if (pos < 0) {
324
+ pos = 0;
325
+ }
326
+ else if (pos > maxCoordinate) {
327
+ pos = maxCoordinate;
328
+ }
329
+ // store last coordinate for further restore on redraw
330
+ this.lastCoordinate = pos;
331
+ // actual position is less than first item start based on offset
332
+ pos -= singleOffsetInPx;
333
+ pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;
334
+ let allItems;
335
+ // if force clear all items and start from 0
336
+ if (force) {
337
+ allItems = {
338
+ items: [],
339
+ start: 0,
340
+ end: 0,
341
+ };
342
+ }
343
+ else {
344
+ allItems = this.getItems();
345
+ }
346
+ const firstItem = getFirstItem(allItems);
347
+ const lastItem = getLastItem(allItems);
348
+ let toUpdate = {};
349
+ // left position changed
350
+ // verify if new position is in range of previously rendered first item
351
+ if (!isActiveRange(pos, dimension.realSize, firstItem, lastItem)) {
352
+ toUpdate = Object.assign(Object.assign({}, toUpdate), getUpdatedItemsByPosition(pos, allItems, this.store.get('realCount'), virtualSize, dimension));
353
+ this.setViewport(Object.assign({}, toUpdate));
354
+ // verify is render area is outside of last item
355
+ }
356
+ else if (isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem)) {
357
+ const items = [...allItems.items];
358
+ // check is any item missing for fulfill content
359
+ const missing = addMissingItems(firstItem, this.store.get('realCount'), virtualSize + pos - firstItem.start, allItems, {
360
+ sizes: dimension.sizes,
361
+ originItemSize: dimension.originItemSize,
362
+ });
363
+ // update missing items
364
+ if (missing.length) {
365
+ const range = {
366
+ start: this.store.get('start'),
367
+ end: this.store.get('end'),
368
+ };
369
+ updateMissingAndRange(items, missing, range);
370
+ toUpdate = Object.assign(Object.assign(Object.assign({}, toUpdate), { items: [...items] }), range);
371
+ this.setViewport(Object.assign({}, toUpdate));
372
+ }
373
+ }
374
+ }
375
+ /**
376
+ * Set sizes for existing items
377
+ */
378
+ setOriginalSizes(size) {
379
+ const items = this.store.get('items');
380
+ const count = items.length;
381
+ // viewport not inited
382
+ if (!count) {
383
+ return;
384
+ }
385
+ setStore(this.store, {
386
+ items: setItemSizes(items, this.store.get('start'), size, this.lastCoordinate),
387
+ });
388
+ }
389
+ getItems() {
390
+ return {
391
+ items: this.store.get('items'),
392
+ start: this.store.get('start'),
393
+ end: this.store.get('end'),
394
+ };
395
+ }
396
+ setViewport(data) {
397
+ // drop items on virtual size change, require a new item set
398
+ // drop items on real size change, require a new item set
399
+ if (typeof data.realCount === 'number' || typeof data.virtualSize === 'number') {
400
+ data = Object.assign(Object.assign({}, data), { items: data.items || [] });
401
+ }
402
+ setStore(this.store, data);
403
+ }
404
+ }
405
+
406
+ const LETTER_BLOCK_SIZE = 10;
407
+ const calculateRowHeaderSize = (itemsLength, rowHeaderColumn, minWidth = 50) => {
408
+ return ((rowHeaderColumn === null || rowHeaderColumn === void 0 ? void 0 : rowHeaderColumn.size) ||
409
+ Math.max((itemsLength.toString().length + 1) * LETTER_BLOCK_SIZE, minWidth));
410
+ };
411
+
412
+ const RowHeaderRender = s => (__, { rowIndex: i }) => s + i;
413
+
414
+ const RevogrRowHeaders = /*@__PURE__*/ proxyCustomElement(class RevogrRowHeaders extends HTMLElement {
415
+ constructor() {
416
+ super();
417
+ this.__registerHost();
418
+ this.scrollViewport = createEvent(this, "scrollview", 3);
419
+ this.elementToScroll = createEvent(this, "ref", 3);
420
+ /**
421
+ * Prevent rendering until job is done.
422
+ * Can be used for initial rendering performance improvement.
423
+ * When several plugins require initial rendering this will prevent double initial rendering.
424
+ */
425
+ this.jobsBeforeRender = [];
426
+ }
427
+ render() {
428
+ const dataViews = [];
429
+ const viewport = new ViewportStore('colPinStart');
430
+ /** render viewports rows */
431
+ let totalLength = 1;
432
+ // todo: this part could be optimized to avoid to often re-render dataPorts can be cached
433
+ for (let data of this.dataPorts) {
434
+ const itemCount = data.dataStore.get('items').length;
435
+ // initiate row data
436
+ const dataStore = new DataStore(data.type, Object.assign({}, data.dataStore.state));
437
+ // initiate column data
438
+ const colData = new DataStore('colPinStart');
439
+ const column = Object.assign({ cellTemplate: RowHeaderRender(totalLength) }, this.rowHeaderColumn);
440
+ colData.updateData([column]);
441
+ dataViews.push(h("revogr-data", Object.assign({}, data, { colType: "rowHeaders", jobsBeforeRender: this.jobsBeforeRender, rowClass: this.rowClass, dataStore: dataStore.store, colData: colData.store, viewportCol: viewport.store, readonly: true, range: false })));
442
+ totalLength += itemCount;
443
+ }
444
+ const colSize = calculateRowHeaderSize(totalLength, this.rowHeaderColumn);
445
+ viewport.setViewport({
446
+ realCount: 1,
447
+ virtualSize: 0,
448
+ items: [
449
+ {
450
+ size: colSize,
451
+ start: 0,
452
+ end: colSize,
453
+ itemIndex: 0,
454
+ },
455
+ ],
456
+ });
457
+ const viewportScroll = {
458
+ contentHeight: this.height,
459
+ contentWidth: 0,
460
+ style: { minWidth: `${colSize}px` },
461
+ colType: 'rowHeaders',
462
+ ref: (el) => this.elementToScroll.emit(el),
463
+ onScrollviewport: (e) => this.scrollViewport.emit(e.detail),
464
+ };
465
+ const viewportHeader = Object.assign(Object.assign({}, this.headerProp), {
466
+ // groups not present on row headers
467
+ groups: [], colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,
468
+ // parent,
469
+ slot: HEADER_SLOT
470
+ });
471
+ return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h("revogr-viewport-scroll", Object.assign({ key: '28984c9e3e4e84afc0acf66093f4f4f8b5846098' }, viewportScroll, { "row-header": true }), h("revogr-header", Object.assign({ key: 'c80b058075fdb384039a58827c2c498acdbe1cdf' }, viewportHeader)), dataViews)));
472
+ }
473
+ }, [256, "revogr-row-headers", {
474
+ "height": [2],
475
+ "dataPorts": [16, "data-ports"],
476
+ "headerProp": [16, "header-prop"],
477
+ "rowClass": [1, "row-class"],
478
+ "resize": [4],
479
+ "rowHeaderColumn": [16, "row-header-column"],
480
+ "additionalData": [8, "additional-data"],
481
+ "jobsBeforeRender": [16, "jobs-before-render"]
482
+ }]);
483
+ function defineCustomElement() {
484
+ if (typeof customElements === "undefined") {
485
+ return;
486
+ }
487
+ const components = ["revogr-row-headers", "revogr-data", "revogr-header", "revogr-viewport-scroll", "vnode-html"];
488
+ components.forEach(tagName => { switch (tagName) {
489
+ case "revogr-row-headers":
490
+ if (!customElements.get(tagName)) {
491
+ customElements.define(tagName, RevogrRowHeaders);
492
+ }
493
+ break;
494
+ case "revogr-data":
495
+ if (!customElements.get(tagName)) {
496
+ defineCustomElement$4();
497
+ }
498
+ break;
499
+ case "revogr-header":
500
+ if (!customElements.get(tagName)) {
501
+ defineCustomElement$3();
502
+ }
503
+ break;
504
+ case "revogr-viewport-scroll":
505
+ if (!customElements.get(tagName)) {
506
+ defineCustomElement$2();
507
+ }
508
+ break;
509
+ case "vnode-html":
510
+ if (!customElements.get(tagName)) {
511
+ defineCustomElement$1();
512
+ }
513
+ break;
514
+ } });
515
+ }
516
+
517
+ export { RevogrRowHeaders as R, ViewportStore as V, addMissingItems as a, getItems as b, isActiveRangeOutsideLastItem as c, getFirstItem as d, getLastItem as e, calculateRowHeaderSize as f, getUpdatedItemsByPosition as g, defineCustomElement as h, isActiveRange as i, recombineByOffset as r, setItemSizes as s, updateMissingAndRange as u };
518
+ //# sourceMappingURL=revogr-row-headers2.js.map
519
+
520
+ //# sourceMappingURL=revogr-row-headers2.js.map
@@ -0,0 +1 @@
1
+ {"file":"revogr-row-headers2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/store/vp/viewport.helpers.ts","src/store/vp/viewport.store.ts","src/utils/row-header-utils.ts","src/components/rowHeaders/row-header-render.tsx","src/components/rowHeaders/revogr-row-headers.tsx"],"sourcesContent":["import type {\r\n DimensionSettingsState,\r\n PositionItem,\r\n ViewSettingSizeProp,\r\n ViewportStateItems,\r\n VirtualPositionItem,\r\n Range,\r\n} from '@type';\r\n\r\nimport { getItemByPosition } from '../dimension/dimension.helpers';\r\n\r\nexport type DimensionDataViewport = Pick<\r\n DimensionSettingsState,\r\n | 'indexes'\r\n | 'positionIndexes'\r\n | 'positionIndexToItem'\r\n | 'sizes'\r\n | 'originItemSize'\r\n | 'realSize'\r\n>;\r\n\r\nexport type ItemsToUpdate = Pick<ViewportStateItems, 'items' | 'start' | 'end'>;\r\n/**\r\n * Update items based on new scroll position\r\n * If viewport wasn't changed fully simple recombination of positions\r\n * Otherwise rebuild viewport items\r\n */\r\nexport function getUpdatedItemsByPosition<T extends ItemsToUpdate>(\r\n pos: number, // coordinate\r\n items: T,\r\n realCount: number,\r\n virtualSize: number,\r\n dimension: DimensionDataViewport,\r\n): ItemsToUpdate {\r\n const activeItem: PositionItem = getItemByPosition(dimension, pos);\r\n const firstItem = getFirstItem(items);\r\n let toUpdate: ItemsToUpdate | undefined;\r\n // do simple position recombination if items already present in viewport\r\n if (firstItem) {\r\n let changedOffsetStart = activeItem.itemIndex - (firstItem.itemIndex || 0);\r\n // if item changed\r\n if (changedOffsetStart) {\r\n // simple recombination\r\n toUpdate = recombineByOffset(Math.abs(changedOffsetStart), {\r\n positiveDirection: changedOffsetStart > -1,\r\n ...dimension,\r\n ...items,\r\n });\r\n }\r\n }\r\n\r\n const maxSizeVirtualSize = getMaxVirtualSize(\r\n virtualSize,\r\n dimension.realSize,\r\n activeItem,\r\n );\r\n // if partial recombination add items if revo-viewport has some space left\r\n if (toUpdate) {\r\n const extra = addMissingItems(\r\n activeItem,\r\n realCount,\r\n maxSizeVirtualSize,\r\n toUpdate,\r\n dimension,\r\n );\r\n if (extra.length) {\r\n updateMissingAndRange(toUpdate.items, extra, toUpdate);\r\n }\r\n }\r\n\r\n // new collection if no items after replacement full replacement\r\n if (!toUpdate) {\r\n const items = getItems({\r\n firstItemStart: activeItem.start,\r\n firstItemIndex: activeItem.itemIndex,\r\n origSize: dimension.originItemSize,\r\n maxSize: maxSizeVirtualSize,\r\n maxCount: realCount,\r\n sizes: dimension.sizes,\r\n });\r\n\r\n // range now comes from 0 to length - 1\r\n toUpdate = {\r\n items,\r\n start: 0,\r\n end: items.length - 1,\r\n };\r\n }\r\n return toUpdate;\r\n}\r\n\r\n// virtual size can differ based on scroll position if some big items are present\r\n// scroll can be in the middle of item and virtual size will be larger\r\n// so we need to exclude this part from virtual size hence it's already passed\r\nfunction getMaxVirtualSize(\r\n virtualSize: number,\r\n realSize: number,\r\n activeItem: PositionItem,\r\n) {\r\n return Math.min(virtualSize + (activeItem.end - activeItem.start), realSize);\r\n}\r\n\r\nexport function updateMissingAndRange(\r\n items: VirtualPositionItem[],\r\n missing: VirtualPositionItem[],\r\n range: Range,\r\n) {\r\n items.splice(range.end + 1, 0, ...missing);\r\n // update range if start larger after recombination\r\n if (\r\n range.start >= range.end &&\r\n !(range.start === range.end && range.start === 0)\r\n ) {\r\n range.start += missing.length;\r\n }\r\n range.end += missing.length;\r\n}\r\n\r\n/**\r\n * If partial replacement\r\n * this function adds items if viewport has some space left\r\n */\r\nexport function addMissingItems<T extends ItemsToUpdate>(\r\n firstItem: PositionItem,\r\n realCount: number,\r\n virtualSize: number,\r\n existingCollection: T,\r\n dimension: Pick<DimensionSettingsState, 'sizes' | 'originItemSize'>,\r\n): VirtualPositionItem[] {\r\n const lastItem: VirtualPositionItem = getLastItem(existingCollection);\r\n const items = getItems({\r\n sizes: dimension.sizes,\r\n firstItemStart: lastItem.end,\r\n firstItemIndex: lastItem.itemIndex + 1,\r\n origSize: dimension.originItemSize,\r\n maxSize: virtualSize - (lastItem.end - firstItem.start),\r\n maxCount: realCount,\r\n });\r\n return items;\r\n}\r\n\r\n/**\r\n * Get wiewport items parameters\r\n * caching position and calculating items count in viewport\r\n */\r\nexport function getItems(\r\n opt: {\r\n firstItemIndex: number;\r\n firstItemStart: number;\r\n origSize: number;\r\n maxSize: number; // virtual size\r\n maxCount: number; // real item count, where the last item\r\n sizes?: ViewSettingSizeProp;\r\n },\r\n currentSize = 0,\r\n) {\r\n const items: VirtualPositionItem[] = [];\r\n\r\n let index = opt.firstItemIndex;\r\n let size = currentSize;\r\n\r\n // max size or max count\r\n while (size <= opt.maxSize && index < opt.maxCount) {\r\n const newSize = getItemSize(index, opt.sizes, opt.origSize);\r\n items.push({\r\n start: opt.firstItemStart + size,\r\n end: opt.firstItemStart + size + newSize,\r\n itemIndex: index,\r\n size: newSize,\r\n });\r\n size += newSize;\r\n index++;\r\n }\r\n return items;\r\n}\r\n\r\n/**\r\n * Do batch items recombination\r\n * If items not overlapped with existing viewport returns null\r\n */\r\ntype RecombindDimensionData = Pick<\r\n DimensionSettingsState,\r\n 'sizes' | 'realSize' | 'originItemSize'\r\n>;\r\ntype RecombineOffsetData = {\r\n positiveDirection: boolean;\r\n} & ItemsToUpdate &\r\n RecombindDimensionData;\r\nexport function recombineByOffset(\r\n offset: number,\r\n data: RecombineOffsetData,\r\n): ItemsToUpdate | undefined {\r\n const newItems = [...data.items];\r\n const itemsCount = newItems.length;\r\n let newRange = {\r\n start: data.start,\r\n end: data.end,\r\n };\r\n\r\n // if offset out of revo-viewport, makes sense whole redraw\r\n if (offset > itemsCount) {\r\n return undefined;\r\n }\r\n\r\n // is direction of scroll positive\r\n if (data.positiveDirection) {\r\n // push item to the end\r\n let lastItem: VirtualPositionItem = getLastItem(data);\r\n\r\n let i = newRange.start;\r\n const length = i + offset;\r\n for (; i < length; i++) {\r\n const newIndex = lastItem.itemIndex + 1;\r\n const size = getItemSize(\r\n newIndex,\r\n data.sizes,\r\n data.originItemSize,\r\n );\r\n\r\n // if item overlapped limit break a loop\r\n if (lastItem.end + size > data.realSize) {\r\n break;\r\n }\r\n\r\n // new item index to recombine\r\n let newEnd = i % itemsCount;\r\n\r\n // item should always present, we do not create new item, we recombine them\r\n if (!newItems[newEnd]) {\r\n throw new Error('incorrect index');\r\n }\r\n\r\n // do recombination\r\n newItems[newEnd] = lastItem = {\r\n start: lastItem.end,\r\n end: lastItem.end + size,\r\n itemIndex: newIndex,\r\n size: size,\r\n };\r\n // update range\r\n newRange.start++;\r\n newRange.end = newEnd;\r\n }\r\n\r\n // direction is negative\r\n } else {\r\n // push item to the start\r\n let firstItem = getFirstItem(data);\r\n\r\n const end = newRange.end;\r\n for (let i = 0; i < offset; i++) {\r\n const newIndex = (firstItem?.itemIndex ?? 0) - 1;\r\n const size = getItemSize(\r\n newIndex,\r\n data.sizes,\r\n data.originItemSize,\r\n );\r\n\r\n // new item index to recombine\r\n let newStart = end - i;\r\n newStart = (newStart < 0 ? itemsCount + newStart : newStart) % itemsCount;\r\n\r\n // item should always present, we do not create new item, we recombine them\r\n if (!newItems[newStart]) {\r\n console.error('incorrect index');\r\n break;\r\n }\r\n\r\n // do recombination\r\n const firstItemStart = firstItem?.start ?? 0;\r\n newItems[newStart] = firstItem = {\r\n start: firstItemStart - size,\r\n end: firstItemStart,\r\n itemIndex: newIndex,\r\n size: size,\r\n };\r\n // update range\r\n newRange.start = newStart;\r\n newRange.end--;\r\n }\r\n }\r\n const range = {\r\n start:\r\n (newRange.start < 0 ? itemsCount + newRange.start : newRange.start) %\r\n itemsCount,\r\n end:\r\n (newRange.end < 0 ? itemsCount + newRange.end : newRange.end) %\r\n itemsCount,\r\n };\r\n return {\r\n items: newItems,\r\n ...range,\r\n };\r\n}\r\n\r\nfunction getItemSize(\r\n index: number,\r\n sizes?: ViewSettingSizeProp,\r\n origSize = 0,\r\n): number {\r\n if (sizes && sizes[index]) {\r\n return sizes[index];\r\n }\r\n return origSize;\r\n}\r\n\r\n/**\r\n * Verify if position is in range of the PositionItem, start and end are included\r\n */\r\nexport function isActiveRange(\r\n pos: number,\r\n realSize: number,\r\n first?: PositionItem,\r\n last?: PositionItem,\r\n): boolean {\r\n if (!first || !last) {\r\n return false;\r\n }\r\n // if position is in range of first item\r\n // or position is after first item and last item is the last item in real size\r\n return (\r\n (pos >= first.start && pos <= first.end) ||\r\n (pos > first.end && last.end === realSize)\r\n );\r\n}\r\n\r\nexport function isActiveRangeOutsideLastItem(\r\n pos: number,\r\n virtualSize: number,\r\n firstItem?: PositionItem,\r\n lastItem?: PositionItem,\r\n) {\r\n // if no first item, means no items in viewport\r\n if (!firstItem) {\r\n return false;\r\n }\r\n return virtualSize + pos > (lastItem?.end ?? 0);\r\n}\r\n\r\nexport function getFirstItem(\r\n s: ItemsToUpdate,\r\n) {\r\n return s.items[s.start];\r\n}\r\n\r\nexport function getLastItem(s: ItemsToUpdate): VirtualPositionItem {\r\n return s.items[s.end];\r\n}\r\n\r\n/**\r\n * Set items sizes from start index to end\r\n * @param vpItems\r\n * @param start\r\n * @param size\r\n * @param lastCoordinate\r\n * @returns\r\n */\r\nexport function setItemSizes(\r\n vpItems: VirtualPositionItem[],\r\n initialIndex: number,\r\n size: number,\r\n lastCoordinate: number,\r\n) {\r\n const items = [...vpItems];\r\n const count = items.length;\r\n\r\n let pos = lastCoordinate;\r\n let i = 0;\r\n let start = initialIndex;\r\n\r\n // viewport not inited\r\n if (!count) {\r\n return [];\r\n }\r\n // loop through array from initial item after recombination\r\n while (i < count) {\r\n const item = items[start];\r\n item.start = pos;\r\n item.size = size;\r\n item.end = item.start + size;\r\n pos = item.end;\r\n // loop by start index\r\n start++;\r\n i++;\r\n\r\n // if start index out of array, reset it\r\n if (start === count) {\r\n start = 0;\r\n }\r\n }\r\n return items;\r\n}\r\n","import {\r\n DimensionDataViewport,\r\n addMissingItems,\r\n getFirstItem,\r\n getLastItem,\r\n getUpdatedItemsByPosition,\r\n isActiveRange,\r\n setItemSizes,\r\n updateMissingAndRange,\r\n isActiveRangeOutsideLastItem,\r\n ItemsToUpdate,\r\n} from './viewport.helpers';\r\nimport { createStore } from '@stencil/store';\r\nimport { type Observable, setStore } from '../../utils';\r\nimport type {\r\n VirtualPositionItem,\r\n ViewportState,\r\n MultiDimensionType,\r\n} from '@type';\r\n\r\n/**\r\n * Viewport store\r\n * Used for virtualization (process of rendering only visible part of data)\r\n * Redraws viewport based on position and dimension\r\n */\r\nfunction initialState(): ViewportState {\r\n return {\r\n // virtual item information per rendered item\r\n items: [],\r\n // virtual dom item order to render\r\n start: 0,\r\n end: 0,\r\n\r\n // size of virtual viewport in px\r\n virtualSize: 0,\r\n\r\n // total number of items\r\n realCount: 0,\r\n\r\n // size of viewport in px\r\n clientSize: 0,\r\n };\r\n}\r\n\r\n/**\r\n * Viewport store class\r\n */\r\nexport class ViewportStore {\r\n readonly store: Observable<ViewportState>;\r\n\r\n // last coordinate for store position restore\r\n private lastKnownScroll = 0;\r\n\r\n get lastCoordinate() {\r\n return this.lastKnownScroll;\r\n }\r\n set lastCoordinate(value: number) {\r\n this.lastKnownScroll = value;\r\n }\r\n constructor(readonly type: MultiDimensionType) {\r\n this.store = createStore(initialState());\r\n }\r\n\r\n /**\r\n * Render viewport based on coordinate\r\n * It's the main method for draw\r\n * Use force if you want to re-render viewport\r\n */\r\n setViewPortCoordinate(\r\n position: number,\r\n dimension: DimensionDataViewport,\r\n force = false,\r\n ) {\r\n const viewportSize = this.store.get('virtualSize');\r\n // no visible data to calculate\r\n if (!viewportSize) {\r\n return;\r\n }\r\n\r\n const frameOffset = 1;\r\n const singleOffsetInPx = dimension.originItemSize * frameOffset;\r\n // add offset to virtual size from both sides\r\n const outsize = singleOffsetInPx * 2;\r\n // math virtual size is based on visible area + 2 items outside of visible area\r\n const virtualSize = viewportSize + outsize;\r\n\r\n // expected no scroll if real size less than virtual size, position is 0\r\n let maxCoordinate = 0;\r\n // if there is nodes outside of viewport, max coordinate has to be adjusted\r\n if (dimension.realSize > viewportSize) {\r\n // max coordinate is real size minus virtual/rendered space\r\n maxCoordinate = dimension.realSize - viewportSize - singleOffsetInPx;\r\n }\r\n\r\n let pos = position;\r\n // limit position to max and min coordinates\r\n if (pos < 0) {\r\n pos = 0;\r\n } else if (pos > maxCoordinate) {\r\n pos = maxCoordinate;\r\n }\r\n\r\n // store last coordinate for further restore on redraw\r\n this.lastCoordinate = pos;\r\n\r\n // actual position is less than first item start based on offset\r\n pos -= singleOffsetInPx;\r\n pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;\r\n\r\n let allItems: ItemsToUpdate;\r\n // if force clear all items and start from 0\r\n if (force) {\r\n allItems = {\r\n items: [],\r\n start: 0,\r\n end: 0,\r\n };\r\n } else {\r\n allItems = this.getItems();\r\n }\r\n\r\n const firstItem: VirtualPositionItem | undefined = getFirstItem(allItems);\r\n const lastItem: VirtualPositionItem | undefined = getLastItem(allItems);\r\n\r\n let toUpdate: Partial<ViewportState> = {};\r\n\r\n // left position changed\r\n // verify if new position is in range of previously rendered first item\r\n if (!isActiveRange(pos, dimension.realSize, firstItem, lastItem)) {\r\n toUpdate = {\r\n ...toUpdate,\r\n ...getUpdatedItemsByPosition(\r\n pos,\r\n allItems,\r\n this.store.get('realCount'),\r\n virtualSize,\r\n dimension,\r\n ),\r\n };\r\n this.setViewport({ ...toUpdate });\r\n // verify is render area is outside of last item\r\n } else if (\r\n isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem)\r\n ) {\r\n const items = [...allItems.items];\r\n // check is any item missing for fulfill content\r\n const missing = addMissingItems(\r\n firstItem,\r\n this.store.get('realCount'),\r\n virtualSize + pos - firstItem.start,\r\n allItems,\r\n {\r\n sizes: dimension.sizes,\r\n originItemSize: dimension.originItemSize,\r\n },\r\n );\r\n\r\n // update missing items\r\n if (missing.length) {\r\n const range = {\r\n start: this.store.get('start'),\r\n end: this.store.get('end'),\r\n };\r\n updateMissingAndRange(items, missing, range);\r\n toUpdate = {\r\n ...toUpdate,\r\n items: [...items],\r\n ...range,\r\n };\r\n this.setViewport({ ...toUpdate });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set sizes for existing items\r\n */\r\n setOriginalSizes(size: number) {\r\n const items = this.store.get('items');\r\n const count = items.length;\r\n // viewport not inited\r\n if (!count) {\r\n return;\r\n }\r\n\r\n setStore(this.store, {\r\n items: setItemSizes(\r\n items,\r\n this.store.get('start'),\r\n size,\r\n this.lastCoordinate,\r\n ),\r\n });\r\n }\r\n\r\n getItems(): ItemsToUpdate {\r\n return {\r\n items: this.store.get('items'),\r\n start: this.store.get('start'),\r\n end: this.store.get('end'),\r\n };\r\n }\r\n\r\n setViewport(data: Partial<ViewportState>) {\r\n // drop items on virtual size change, require a new item set\r\n // drop items on real size change, require a new item set\r\n if (typeof data.realCount === 'number' || typeof data.virtualSize === 'number') {\r\n data = { ...data, items: data.items || [] };\r\n }\r\n setStore(this.store, data);\r\n }\r\n}\r\n","import { RowHeaders } from '..';\r\n\r\nconst LETTER_BLOCK_SIZE = 10;\r\nexport const calculateRowHeaderSize = (\r\n itemsLength: number,\r\n rowHeaderColumn?: RowHeaders,\r\n minWidth = 50,\r\n) => {\r\n return (\r\n rowHeaderColumn?.size ||\r\n Math.max((itemsLength.toString().length + 1) * LETTER_BLOCK_SIZE, minWidth)\r\n );\r\n};\r\n","import type { VNode } from '@stencil/core';\r\nimport type { HyperFunc } from '@type';\r\n\r\ntype HeaderRender = {\r\n (start: number): (h: HyperFunc<VNode>, e: { rowIndex: number }) => number;\r\n};\r\nexport const RowHeaderRender: HeaderRender = s => (__, { rowIndex: i }) => s + i;\r\n","import { h, Host, Component, Prop, Event, EventEmitter } from '@stencil/core';\r\nimport type { JSXBase } from '@stencil/core/internal';\r\n\r\nimport { ViewportStore, DataStore } from '@store';\r\nimport type {\r\n RowHeaders,\r\n ViewPortScrollEvent,\r\n DataType,\r\n ColumnRegular,\r\n ViewportData,\r\n ElementScroll,\r\n DimensionRows,\r\n DimensionCols,\r\n} from '@type';\r\n\r\nimport { ROW_HEADER_TYPE } from '../../utils/consts';\r\nimport { RowHeaderRender } from './row-header-render';\r\nimport { calculateRowHeaderSize } from '../../utils/row-header-utils';\r\nimport { HEADER_SLOT } from '../revoGrid/viewport.helpers';\r\nimport { type JSX } from '../../components';\r\n\r\n/**\r\n * Row headers component\r\n * Visible on the left side of the table\r\n */\r\n\r\n@Component({ tag: 'revogr-row-headers' })\r\nexport class RevogrRowHeaders {\r\n // #region Properties\r\n /**\r\n * Header height to setup row headers\r\n */\r\n @Prop() height: number;\r\n\r\n /**\r\n * Viewport data\r\n */\r\n @Prop() dataPorts: ViewportData[];\r\n /**\r\n * Header props\r\n */\r\n @Prop() headerProp: Record<string, any>;\r\n\r\n /**\r\n * Row class\r\n */\r\n @Prop() rowClass: string;\r\n\r\n /**\r\n * Enable resize\r\n */\r\n @Prop() resize: boolean;\r\n /**\r\n * Row header column\r\n */\r\n @Prop() rowHeaderColumn: RowHeaders;\r\n /**\r\n * Additional data to pass to renderer\r\n */\r\n @Prop() additionalData: any;\r\n /**\r\n * Prevent rendering until job is done.\r\n * Can be used for initial rendering performance improvement.\r\n * When several plugins require initial rendering this will prevent double initial rendering.\r\n */\r\n @Prop() jobsBeforeRender: Promise<any>[] = [];\r\n // #endregion\r\n\r\n /**\r\n * Scroll viewport\r\n */\r\n @Event({ eventName: 'scrollview', bubbles: false })\r\n scrollViewport: EventEmitter<ViewPortScrollEvent>;\r\n /**\r\n * Register element to scroll\r\n */\r\n @Event({ eventName: 'ref', bubbles: false })\r\n elementToScroll: EventEmitter<ElementScroll>;\r\n\r\n render() {\r\n const dataViews: HTMLElement[] = [];\r\n const viewport = new ViewportStore('colPinStart');\r\n\r\n /** render viewports rows */\r\n let totalLength = 1;\r\n // todo: this part could be optimized to avoid to often re-render dataPorts can be cached\r\n for (let data of this.dataPorts) {\r\n const itemCount = data.dataStore.get('items').length;\r\n\r\n // initiate row data\r\n const dataStore = new DataStore<DataType, DimensionRows>(data.type, {\r\n ...data.dataStore.state,\r\n });\r\n\r\n // initiate column data\r\n const colData = new DataStore<ColumnRegular, DimensionCols>(\r\n 'colPinStart',\r\n );\r\n const column: ColumnRegular = {\r\n cellTemplate: RowHeaderRender(totalLength),\r\n ...this.rowHeaderColumn,\r\n };\r\n colData.updateData([column]);\r\n dataViews.push(\r\n <revogr-data\r\n {...data}\r\n colType=\"rowHeaders\"\r\n jobsBeforeRender={this.jobsBeforeRender}\r\n rowClass={this.rowClass}\r\n dataStore={dataStore.store}\r\n colData={colData.store}\r\n viewportCol={viewport.store}\r\n readonly={true}\r\n range={false}\r\n />,\r\n );\r\n totalLength += itemCount;\r\n }\r\n\r\n const colSize = calculateRowHeaderSize(totalLength, this.rowHeaderColumn);\r\n viewport.setViewport({\r\n realCount: 1,\r\n virtualSize: 0,\r\n items: [\r\n {\r\n size: colSize,\r\n start: 0,\r\n end: colSize,\r\n itemIndex: 0,\r\n },\r\n ],\r\n });\r\n\r\n const viewportScroll: JSX.RevogrViewportScroll &\r\n JSXBase.HTMLAttributes<HTMLRevogrViewportScrollElement> = {\r\n contentHeight: this.height,\r\n contentWidth: 0,\r\n style: { minWidth: `${colSize}px` },\r\n colType: 'rowHeaders',\r\n ref: (el) => this.elementToScroll.emit(el),\r\n onScrollviewport: (e: CustomEvent) => this.scrollViewport.emit(e.detail),\r\n };\r\n const viewportHeader: JSX.RevogrHeader & { slot: string } = {\r\n ...this.headerProp,\r\n // groups not present on row headers\r\n groups: [],\r\n colData:\r\n typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [],\r\n viewportCol: viewport.store,\r\n canResize: false,\r\n type: ROW_HEADER_TYPE,\r\n // parent,\r\n slot: HEADER_SLOT,\r\n };\r\n return (\r\n <Host class={{ [ROW_HEADER_TYPE]: true }} key={ROW_HEADER_TYPE}>\r\n <revogr-viewport-scroll {...viewportScroll} row-header={true}>\r\n <revogr-header {...viewportHeader} />\r\n {dataViews}\r\n </revogr-viewport-scroll>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../dist/types/components";
2
+
3
+ interface RevogrScrollVirtual extends Components.RevogrScrollVirtual, HTMLElement {}
4
+ export const RevogrScrollVirtual: {
5
+ prototype: RevogrScrollVirtual;
6
+ new (): RevogrScrollVirtual;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { R as RevogrScrollVirtual$1, d as defineCustomElement$1 } from './revogr-scroll-virtual2.js';
5
+
6
+ const RevogrScrollVirtual = RevogrScrollVirtual$1;
7
+ const defineCustomElement = defineCustomElement$1;
8
+
9
+ export { RevogrScrollVirtual, defineCustomElement };
10
+ //# sourceMappingURL=revogr-scroll-virtual.js.map
11
+
12
+ //# sourceMappingURL=revogr-scroll-virtual.js.map
@@ -0,0 +1 @@
1
+ {"file":"revogr-scroll-virtual.js","mappings":";;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}