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,251 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { getItemByPosition } from "../dimension/dimension.helpers";
5
+ /**
6
+ * Update items based on new scroll position
7
+ * If viewport wasn't changed fully simple recombination of positions
8
+ * Otherwise rebuild viewport items
9
+ */
10
+ export function getUpdatedItemsByPosition(pos, // coordinate
11
+ items, realCount, virtualSize, dimension) {
12
+ const activeItem = getItemByPosition(dimension, pos);
13
+ const firstItem = getFirstItem(items);
14
+ let toUpdate;
15
+ // do simple position recombination if items already present in viewport
16
+ if (firstItem) {
17
+ let changedOffsetStart = activeItem.itemIndex - (firstItem.itemIndex || 0);
18
+ // if item changed
19
+ if (changedOffsetStart) {
20
+ // simple recombination
21
+ toUpdate = recombineByOffset(Math.abs(changedOffsetStart), Object.assign(Object.assign({ positiveDirection: changedOffsetStart > -1 }, dimension), items));
22
+ }
23
+ }
24
+ const maxSizeVirtualSize = getMaxVirtualSize(virtualSize, dimension.realSize, activeItem);
25
+ // if partial recombination add items if revo-viewport has some space left
26
+ if (toUpdate) {
27
+ const extra = addMissingItems(activeItem, realCount, maxSizeVirtualSize, toUpdate, dimension);
28
+ if (extra.length) {
29
+ updateMissingAndRange(toUpdate.items, extra, toUpdate);
30
+ }
31
+ }
32
+ // new collection if no items after replacement full replacement
33
+ if (!toUpdate) {
34
+ const items = getItems({
35
+ firstItemStart: activeItem.start,
36
+ firstItemIndex: activeItem.itemIndex,
37
+ origSize: dimension.originItemSize,
38
+ maxSize: maxSizeVirtualSize,
39
+ maxCount: realCount,
40
+ sizes: dimension.sizes,
41
+ });
42
+ // range now comes from 0 to length - 1
43
+ toUpdate = {
44
+ items,
45
+ start: 0,
46
+ end: items.length - 1,
47
+ };
48
+ }
49
+ return toUpdate;
50
+ }
51
+ // virtual size can differ based on scroll position if some big items are present
52
+ // scroll can be in the middle of item and virtual size will be larger
53
+ // so we need to exclude this part from virtual size hence it's already passed
54
+ function getMaxVirtualSize(virtualSize, realSize, activeItem) {
55
+ return Math.min(virtualSize + (activeItem.end - activeItem.start), realSize);
56
+ }
57
+ export function updateMissingAndRange(items, missing, range) {
58
+ items.splice(range.end + 1, 0, ...missing);
59
+ // update range if start larger after recombination
60
+ if (range.start >= range.end &&
61
+ !(range.start === range.end && range.start === 0)) {
62
+ range.start += missing.length;
63
+ }
64
+ range.end += missing.length;
65
+ }
66
+ /**
67
+ * If partial replacement
68
+ * this function adds items if viewport has some space left
69
+ */
70
+ export function addMissingItems(firstItem, realCount, virtualSize, existingCollection, dimension) {
71
+ const lastItem = getLastItem(existingCollection);
72
+ const items = getItems({
73
+ sizes: dimension.sizes,
74
+ firstItemStart: lastItem.end,
75
+ firstItemIndex: lastItem.itemIndex + 1,
76
+ origSize: dimension.originItemSize,
77
+ maxSize: virtualSize - (lastItem.end - firstItem.start),
78
+ maxCount: realCount,
79
+ });
80
+ return items;
81
+ }
82
+ /**
83
+ * Get wiewport items parameters
84
+ * caching position and calculating items count in viewport
85
+ */
86
+ export function getItems(opt, currentSize = 0) {
87
+ const items = [];
88
+ let index = opt.firstItemIndex;
89
+ let size = currentSize;
90
+ // max size or max count
91
+ while (size <= opt.maxSize && index < opt.maxCount) {
92
+ const newSize = getItemSize(index, opt.sizes, opt.origSize);
93
+ items.push({
94
+ start: opt.firstItemStart + size,
95
+ end: opt.firstItemStart + size + newSize,
96
+ itemIndex: index,
97
+ size: newSize,
98
+ });
99
+ size += newSize;
100
+ index++;
101
+ }
102
+ return items;
103
+ }
104
+ export function recombineByOffset(offset, data) {
105
+ var _a, _b;
106
+ const newItems = [...data.items];
107
+ const itemsCount = newItems.length;
108
+ let newRange = {
109
+ start: data.start,
110
+ end: data.end,
111
+ };
112
+ // if offset out of revo-viewport, makes sense whole redraw
113
+ if (offset > itemsCount) {
114
+ return undefined;
115
+ }
116
+ // is direction of scroll positive
117
+ if (data.positiveDirection) {
118
+ // push item to the end
119
+ let lastItem = getLastItem(data);
120
+ let i = newRange.start;
121
+ const length = i + offset;
122
+ for (; i < length; i++) {
123
+ const newIndex = lastItem.itemIndex + 1;
124
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
125
+ // if item overlapped limit break a loop
126
+ if (lastItem.end + size > data.realSize) {
127
+ break;
128
+ }
129
+ // new item index to recombine
130
+ let newEnd = i % itemsCount;
131
+ // item should always present, we do not create new item, we recombine them
132
+ if (!newItems[newEnd]) {
133
+ throw new Error('incorrect index');
134
+ }
135
+ // do recombination
136
+ newItems[newEnd] = lastItem = {
137
+ start: lastItem.end,
138
+ end: lastItem.end + size,
139
+ itemIndex: newIndex,
140
+ size: size,
141
+ };
142
+ // update range
143
+ newRange.start++;
144
+ newRange.end = newEnd;
145
+ }
146
+ // direction is negative
147
+ }
148
+ else {
149
+ // push item to the start
150
+ let firstItem = getFirstItem(data);
151
+ const end = newRange.end;
152
+ for (let i = 0; i < offset; i++) {
153
+ const newIndex = ((_a = firstItem === null || firstItem === void 0 ? void 0 : firstItem.itemIndex) !== null && _a !== void 0 ? _a : 0) - 1;
154
+ const size = getItemSize(newIndex, data.sizes, data.originItemSize);
155
+ // new item index to recombine
156
+ let newStart = end - i;
157
+ newStart = (newStart < 0 ? itemsCount + newStart : newStart) % itemsCount;
158
+ // item should always present, we do not create new item, we recombine them
159
+ if (!newItems[newStart]) {
160
+ console.error('incorrect index');
161
+ break;
162
+ }
163
+ // do recombination
164
+ const firstItemStart = (_b = firstItem === null || firstItem === void 0 ? void 0 : firstItem.start) !== null && _b !== void 0 ? _b : 0;
165
+ newItems[newStart] = firstItem = {
166
+ start: firstItemStart - size,
167
+ end: firstItemStart,
168
+ itemIndex: newIndex,
169
+ size: size,
170
+ };
171
+ // update range
172
+ newRange.start = newStart;
173
+ newRange.end--;
174
+ }
175
+ }
176
+ const range = {
177
+ start: (newRange.start < 0 ? itemsCount + newRange.start : newRange.start) %
178
+ itemsCount,
179
+ end: (newRange.end < 0 ? itemsCount + newRange.end : newRange.end) %
180
+ itemsCount,
181
+ };
182
+ return Object.assign({ items: newItems }, range);
183
+ }
184
+ function getItemSize(index, sizes, origSize = 0) {
185
+ if (sizes && sizes[index]) {
186
+ return sizes[index];
187
+ }
188
+ return origSize;
189
+ }
190
+ /**
191
+ * Verify if position is in range of the PositionItem, start and end are included
192
+ */
193
+ export function isActiveRange(pos, realSize, first, last) {
194
+ if (!first || !last) {
195
+ return false;
196
+ }
197
+ // if position is in range of first item
198
+ // or position is after first item and last item is the last item in real size
199
+ return ((pos >= first.start && pos <= first.end) ||
200
+ (pos > first.end && last.end === realSize));
201
+ }
202
+ export function isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem) {
203
+ var _a;
204
+ // if no first item, means no items in viewport
205
+ if (!firstItem) {
206
+ return false;
207
+ }
208
+ return virtualSize + pos > ((_a = lastItem === null || lastItem === void 0 ? void 0 : lastItem.end) !== null && _a !== void 0 ? _a : 0);
209
+ }
210
+ export function getFirstItem(s) {
211
+ return s.items[s.start];
212
+ }
213
+ export function getLastItem(s) {
214
+ return s.items[s.end];
215
+ }
216
+ /**
217
+ * Set items sizes from start index to end
218
+ * @param vpItems
219
+ * @param start
220
+ * @param size
221
+ * @param lastCoordinate
222
+ * @returns
223
+ */
224
+ export function setItemSizes(vpItems, initialIndex, size, lastCoordinate) {
225
+ const items = [...vpItems];
226
+ const count = items.length;
227
+ let pos = lastCoordinate;
228
+ let i = 0;
229
+ let start = initialIndex;
230
+ // viewport not inited
231
+ if (!count) {
232
+ return [];
233
+ }
234
+ // loop through array from initial item after recombination
235
+ while (i < count) {
236
+ const item = items[start];
237
+ item.start = pos;
238
+ item.size = size;
239
+ item.end = item.start + size;
240
+ pos = item.end;
241
+ // loop by start index
242
+ start++;
243
+ i++;
244
+ // if start index out of array, reset it
245
+ if (start === count) {
246
+ start = 0;
247
+ }
248
+ }
249
+ return items;
250
+ }
251
+ //# sourceMappingURL=viewport.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.helpers.js","sourceRoot":"","sources":["../../../src/store/vp/viewport.helpers.ts"],"names":[],"mappings":"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","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"]}
@@ -0,0 +1,151 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { addMissingItems, getFirstItem, getLastItem, getUpdatedItemsByPosition, isActiveRange, setItemSizes, updateMissingAndRange, isActiveRangeOutsideLastItem, } from "./viewport.helpers";
5
+ import { createStore } from "@stencil/store";
6
+ import { setStore } from "../../utils";
7
+ /**
8
+ * Viewport store
9
+ * Used for virtualization (process of rendering only visible part of data)
10
+ * Redraws viewport based on position and dimension
11
+ */
12
+ function initialState() {
13
+ return {
14
+ // virtual item information per rendered item
15
+ items: [],
16
+ // virtual dom item order to render
17
+ start: 0,
18
+ end: 0,
19
+ // size of virtual viewport in px
20
+ virtualSize: 0,
21
+ // total number of items
22
+ realCount: 0,
23
+ // size of viewport in px
24
+ clientSize: 0,
25
+ };
26
+ }
27
+ /**
28
+ * Viewport store class
29
+ */
30
+ export class ViewportStore {
31
+ get lastCoordinate() {
32
+ return this.lastKnownScroll;
33
+ }
34
+ set lastCoordinate(value) {
35
+ this.lastKnownScroll = value;
36
+ }
37
+ constructor(type) {
38
+ this.type = type;
39
+ // last coordinate for store position restore
40
+ this.lastKnownScroll = 0;
41
+ this.store = createStore(initialState());
42
+ }
43
+ /**
44
+ * Render viewport based on coordinate
45
+ * It's the main method for draw
46
+ * Use force if you want to re-render viewport
47
+ */
48
+ setViewPortCoordinate(position, dimension, force = false) {
49
+ const viewportSize = this.store.get('virtualSize');
50
+ // no visible data to calculate
51
+ if (!viewportSize) {
52
+ return;
53
+ }
54
+ const frameOffset = 1;
55
+ const singleOffsetInPx = dimension.originItemSize * frameOffset;
56
+ // add offset to virtual size from both sides
57
+ const outsize = singleOffsetInPx * 2;
58
+ // math virtual size is based on visible area + 2 items outside of visible area
59
+ const virtualSize = viewportSize + outsize;
60
+ // expected no scroll if real size less than virtual size, position is 0
61
+ let maxCoordinate = 0;
62
+ // if there is nodes outside of viewport, max coordinate has to be adjusted
63
+ if (dimension.realSize > viewportSize) {
64
+ // max coordinate is real size minus virtual/rendered space
65
+ maxCoordinate = dimension.realSize - viewportSize - singleOffsetInPx;
66
+ }
67
+ let pos = position;
68
+ // limit position to max and min coordinates
69
+ if (pos < 0) {
70
+ pos = 0;
71
+ }
72
+ else if (pos > maxCoordinate) {
73
+ pos = maxCoordinate;
74
+ }
75
+ // store last coordinate for further restore on redraw
76
+ this.lastCoordinate = pos;
77
+ // actual position is less than first item start based on offset
78
+ pos -= singleOffsetInPx;
79
+ pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;
80
+ let allItems;
81
+ // if force clear all items and start from 0
82
+ if (force) {
83
+ allItems = {
84
+ items: [],
85
+ start: 0,
86
+ end: 0,
87
+ };
88
+ }
89
+ else {
90
+ allItems = this.getItems();
91
+ }
92
+ const firstItem = getFirstItem(allItems);
93
+ const lastItem = getLastItem(allItems);
94
+ let toUpdate = {};
95
+ // left position changed
96
+ // verify if new position is in range of previously rendered first item
97
+ if (!isActiveRange(pos, dimension.realSize, firstItem, lastItem)) {
98
+ toUpdate = Object.assign(Object.assign({}, toUpdate), getUpdatedItemsByPosition(pos, allItems, this.store.get('realCount'), virtualSize, dimension));
99
+ this.setViewport(Object.assign({}, toUpdate));
100
+ // verify is render area is outside of last item
101
+ }
102
+ else if (isActiveRangeOutsideLastItem(pos, virtualSize, firstItem, lastItem)) {
103
+ const items = [...allItems.items];
104
+ // check is any item missing for fulfill content
105
+ const missing = addMissingItems(firstItem, this.store.get('realCount'), virtualSize + pos - firstItem.start, allItems, {
106
+ sizes: dimension.sizes,
107
+ originItemSize: dimension.originItemSize,
108
+ });
109
+ // update missing items
110
+ if (missing.length) {
111
+ const range = {
112
+ start: this.store.get('start'),
113
+ end: this.store.get('end'),
114
+ };
115
+ updateMissingAndRange(items, missing, range);
116
+ toUpdate = Object.assign(Object.assign(Object.assign({}, toUpdate), { items: [...items] }), range);
117
+ this.setViewport(Object.assign({}, toUpdate));
118
+ }
119
+ }
120
+ }
121
+ /**
122
+ * Set sizes for existing items
123
+ */
124
+ setOriginalSizes(size) {
125
+ const items = this.store.get('items');
126
+ const count = items.length;
127
+ // viewport not inited
128
+ if (!count) {
129
+ return;
130
+ }
131
+ setStore(this.store, {
132
+ items: setItemSizes(items, this.store.get('start'), size, this.lastCoordinate),
133
+ });
134
+ }
135
+ getItems() {
136
+ return {
137
+ items: this.store.get('items'),
138
+ start: this.store.get('start'),
139
+ end: this.store.get('end'),
140
+ };
141
+ }
142
+ setViewport(data) {
143
+ // drop items on virtual size change, require a new item set
144
+ // drop items on real size change, require a new item set
145
+ if (typeof data.realCount === 'number' || typeof data.virtualSize === 'number') {
146
+ data = Object.assign(Object.assign({}, data), { items: data.items || [] });
147
+ }
148
+ setStore(this.store, data);
149
+ }
150
+ }
151
+ //# sourceMappingURL=viewport.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.store.js","sourceRoot":"","sources":["../../../src/store/vp/viewport.store.ts"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ export class ThemeCompact {
5
+ constructor() {
6
+ this.defaultRowSize = 32;
7
+ }
8
+ }
9
+ //# sourceMappingURL=theme.compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.compact.js","sourceRoot":"","sources":["../../src/themeManager/theme.compact.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAAzB;QACE,mBAAc,GAAG,EAAE,CAAC;IACtB,CAAC;CAAA","sourcesContent":["import { ThemePackage } from '../types/theme';\r\n\r\nexport class ThemeCompact implements ThemePackage {\r\n defaultRowSize = 32;\r\n}\r\n"]}
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ export class ThemeDefault {
5
+ constructor() {
6
+ this.defaultRowSize = 27;
7
+ }
8
+ }
9
+ //# sourceMappingURL=theme.default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.default.js","sourceRoot":"","sources":["../../src/themeManager/theme.default.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAAzB;QACE,mBAAc,GAAG,EAAE,CAAC;IACtB,CAAC;CAAA","sourcesContent":["import { ThemePackage } from '../types/theme';\r\n\r\nexport class ThemeDefault implements ThemePackage {\r\n defaultRowSize = 27;\r\n}\r\n"]}
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ export class ThemeMaterial {
5
+ constructor() {
6
+ this.defaultRowSize = 42;
7
+ }
8
+ }
9
+ //# sourceMappingURL=theme.material.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.material.js","sourceRoot":"","sources":["../../src/themeManager/theme.material.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAA1B;QACE,mBAAc,GAAG,EAAE,CAAC;IACtB,CAAC;CAAA","sourcesContent":["import { ThemePackage } from '../types/theme';\r\n\r\nexport class ThemeMaterial implements ThemePackage {\r\n defaultRowSize = 42;\r\n}\r\n"]}
@@ -0,0 +1,53 @@
1
+ /*!
2
+ * Built by LevelSkill.Pro
3
+ */
4
+ import { ThemeCompact } from "./theme.compact";
5
+ import { ThemeDefault } from "./theme.default";
6
+ import { ThemeMaterial } from "./theme.material";
7
+ export const DEFAULT_THEME = 'default';
8
+ export const allowedThemes = [
9
+ DEFAULT_THEME,
10
+ 'material',
11
+ 'compact',
12
+ 'darkMaterial',
13
+ 'darkCompact',
14
+ ];
15
+ export default class ThemeService {
16
+ get theme() {
17
+ return this.currentTheme;
18
+ }
19
+ get rowSize() {
20
+ return this.customRowSize || this.currentTheme.defaultRowSize;
21
+ }
22
+ set rowSize(size) {
23
+ this.customRowSize = size;
24
+ }
25
+ constructor(cfg) {
26
+ this.customRowSize = 0;
27
+ this.customRowSize = cfg.rowSize;
28
+ this.register('default');
29
+ }
30
+ register(theme) {
31
+ const parsedTheme = getTheme(theme);
32
+ switch (parsedTheme) {
33
+ case 'material':
34
+ case 'darkMaterial':
35
+ this.currentTheme = new ThemeMaterial();
36
+ break;
37
+ case 'compact':
38
+ case 'darkCompact':
39
+ this.currentTheme = new ThemeCompact();
40
+ break;
41
+ default:
42
+ this.currentTheme = new ThemeDefault();
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ export function getTheme(theme) {
48
+ if (theme && allowedThemes.indexOf(theme) > -1) {
49
+ return theme;
50
+ }
51
+ return DEFAULT_THEME;
52
+ }
53
+ //# sourceMappingURL=theme.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.service.js","sourceRoot":"","sources":["../../src/themeManager/theme.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,aAAa;IACb,UAAU;IACV,SAAS;IACT,cAAc;IACd,aAAa;CACd,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,YAAY;IAI/B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,IAAY;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,YAAY,GAAgB;QAdpB,kBAAa,GAAG,CAAC,CAAC;QAexB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,SAAS,CAAC;YACf,KAAK,aAAa;gBAChB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM;YACR;gBACE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAGD,MAAM,UAAU,QAAQ,CAAC,KAAqB;IAC5C,IAAI,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,KAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,KAAc,CAAC;IACxB,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { Theme, ThemeConfig, ThemePackage } from '../types/theme';\r\nimport { ThemeCompact } from './theme.compact';\r\nimport { ThemeDefault } from './theme.default';\r\nimport { ThemeMaterial } from './theme.material';\r\n\r\nexport const DEFAULT_THEME = 'default';\r\n\r\nexport const allowedThemes: Theme[] = [\r\n DEFAULT_THEME,\r\n 'material',\r\n 'compact',\r\n 'darkMaterial',\r\n 'darkCompact',\r\n];\r\nexport default class ThemeService {\r\n private currentTheme: ThemePackage;\r\n private customRowSize = 0;\r\n\r\n get theme() {\r\n return this.currentTheme;\r\n }\r\n\r\n get rowSize() {\r\n return this.customRowSize || this.currentTheme.defaultRowSize;\r\n }\r\n\r\n set rowSize(size: number) {\r\n this.customRowSize = size;\r\n }\r\n\r\n constructor(cfg: ThemeConfig) {\r\n this.customRowSize = cfg.rowSize;\r\n this.register('default');\r\n }\r\n\r\n register(theme: Theme) {\r\n const parsedTheme = getTheme(theme);\r\n switch (parsedTheme) {\r\n case 'material':\r\n case 'darkMaterial':\r\n this.currentTheme = new ThemeMaterial();\r\n break;\r\n case 'compact':\r\n case 'darkCompact':\r\n this.currentTheme = new ThemeCompact();\r\n break;\r\n default:\r\n this.currentTheme = new ThemeDefault();\r\n break;\r\n }\r\n }\r\n}\r\n\r\n\r\nexport function getTheme(theme?: string | null): Theme {\r\n if (theme && allowedThemes.indexOf(theme as Theme) > -1) {\r\n return theme as Theme;\r\n }\r\n return DEFAULT_THEME;\r\n}"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dimension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimension.js","sourceRoot":"","sources":["../../src/types/dimension.ts"],"names":[],"mappings":"","sourcesContent":["export type DimensionTypeRow = 'rgRow';\r\nexport type DimensionTypeCol = 'rgCol';\r\nexport type DimensionColPin = 'colPinStart' | 'colPinEnd';\r\nexport type DimensionRowPin = 'rowPinStart' | 'rowPinEnd';\r\nexport type DimensionType = DimensionTypeCol | DimensionTypeRow;\r\nexport type DimensionCols = DimensionColPin | DimensionTypeCol;\r\nexport type DimensionRows = DimensionTypeRow | DimensionRowPin;\r\nexport type MultiDimensionType = DimensionCols | DimensionRows;\r\n"]}