@revolist/revogrid 4.0.2-next → 4.0.2

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 (805) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/app-globals-53fde1aa.js +14 -0
  3. package/dist/cjs/app-globals-53fde1aa.js.map +1 -0
  4. package/dist/cjs/column.service-2066d651.js +545 -0
  5. package/dist/cjs/column.service-2066d651.js.map +1 -0
  6. package/dist/cjs/debounce-e2b7c6fb.js +226 -0
  7. package/dist/cjs/debounce-e2b7c6fb.js.map +1 -0
  8. package/dist/cjs/dimension.helpers-ee39d6c4.js +4218 -0
  9. package/dist/cjs/dimension.helpers-ee39d6c4.js.map +1 -0
  10. package/dist/cjs/dispatcher-a58fa91a.js +34 -0
  11. package/dist/cjs/dispatcher-a58fa91a.js.map +1 -0
  12. package/dist/cjs/events-7ccd6894.js +233 -0
  13. package/dist/cjs/events-7ccd6894.js.map +1 -0
  14. package/dist/cjs/filter.button-db6cbd2e.js +44 -0
  15. package/dist/cjs/filter.button-db6cbd2e.js.map +1 -0
  16. package/dist/cjs/header-cell-renderer-3df76829.js +304 -0
  17. package/dist/cjs/header-cell-renderer-3df76829.js.map +1 -0
  18. package/dist/cjs/index-73c149e3.js +106 -0
  19. package/dist/cjs/index-73c149e3.js.map +1 -0
  20. package/dist/cjs/index-84e32c2a.js +1868 -0
  21. package/dist/cjs/index-84e32c2a.js.map +1 -0
  22. package/dist/cjs/index.cjs.js +53 -0
  23. package/dist/cjs/index.cjs.js.map +1 -0
  24. package/dist/cjs/key.utils-dc4ac217.js +129 -0
  25. package/dist/cjs/key.utils-dc4ac217.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +12 -27
  27. package/dist/cjs/loader.cjs.js.map +1 -0
  28. package/dist/cjs/{resize-observer-8dc80084.js → resize-observer-d009a220.js} +30 -13
  29. package/dist/cjs/resize-observer-d009a220.js.map +1 -0
  30. package/dist/cjs/revo-grid.cjs.entry.js +3992 -0
  31. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  32. package/dist/cjs/revo-grid.cjs.js +22 -65
  33. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  34. package/dist/cjs/revogr-attribution_6.cjs.entry.js +1270 -0
  35. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -0
  36. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +508 -0
  37. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  38. package/dist/cjs/revogr-data_4.cjs.entry.js +958 -0
  39. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  40. package/dist/cjs/revogr-filter-panel.cjs.entry.js +268 -115
  41. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  42. package/dist/cjs/selection.store-2e110a67.js +400 -0
  43. package/dist/cjs/selection.store-2e110a67.js.map +1 -0
  44. package/dist/cjs/storeTypes-b3f924b2.js +106 -0
  45. package/dist/cjs/storeTypes-b3f924b2.js.map +1 -0
  46. package/dist/cjs/throttle-f7aee21b.js +240 -0
  47. package/dist/cjs/throttle-f7aee21b.js.map +1 -0
  48. package/dist/cjs/toNumber-838e6ff5.js +340 -0
  49. package/dist/cjs/toNumber-838e6ff5.js.map +1 -0
  50. package/dist/cjs/viewport.helpers-6670177c.js +262 -0
  51. package/dist/cjs/viewport.helpers-6670177c.js.map +1 -0
  52. package/dist/collection/collection-manifest.json +18 -16
  53. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  54. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  55. package/dist/collection/components/clipboard/revogr-clipboard.js +410 -115
  56. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  57. package/dist/collection/components/data/cell-renderer.js +39 -0
  58. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  59. package/dist/collection/components/data/column.service.js +302 -0
  60. package/dist/collection/components/data/column.service.js.map +1 -0
  61. package/dist/collection/components/data/revogr-data-style.css +18 -11
  62. package/dist/collection/components/data/revogr-data.js +626 -301
  63. package/dist/collection/components/data/revogr-data.js.map +1 -0
  64. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  65. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  66. package/dist/collection/components/data/row-renderer.js +16 -0
  67. package/dist/collection/components/data/row-renderer.js.map +1 -0
  68. package/dist/collection/components/editors/edit.utils.js +9 -0
  69. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  70. package/dist/collection/components/{overlay → editors}/revogr-edit-style.css +15 -9
  71. package/dist/collection/components/editors/revogr-edit.js +316 -0
  72. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  73. package/dist/collection/components/editors/text-editor.js +73 -0
  74. package/dist/collection/components/editors/text-editor.js.map +1 -0
  75. package/dist/collection/components/header/header-cell-renderer.js +28 -0
  76. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  77. package/dist/collection/components/header/header-renderer.js +47 -0
  78. package/dist/collection/components/header/header-renderer.js.map +1 -0
  79. package/dist/collection/components/header/revogr-header-style.css +15 -9
  80. package/dist/collection/components/header/revogr-header.js +421 -297
  81. package/dist/collection/components/header/revogr-header.js.map +1 -0
  82. package/dist/collection/components/order/order-renderer.js +50 -0
  83. package/dist/collection/components/order/order-renderer.js.map +1 -0
  84. package/dist/collection/components/order/order-row.service.js +72 -0
  85. package/dist/collection/components/order/order-row.service.js.map +1 -0
  86. package/dist/collection/components/order/revogr-order-editor.js +381 -350
  87. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  88. package/dist/collection/components/overlay/autofill.service.js +206 -179
  89. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  90. package/dist/collection/components/overlay/keyboard.service.js +137 -124
  91. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  92. package/dist/collection/components/overlay/revogr-overlay-selection.js +1208 -703
  93. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  94. package/dist/collection/components/overlay/revogr-overlay-style.css +86 -13
  95. package/dist/collection/components/overlay/selection.utils.js +86 -82
  96. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  97. package/dist/collection/components/revoGrid/grid.helpers.js +28 -13
  98. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  99. package/dist/collection/components/revoGrid/revo-grid-style.css +143 -51
  100. package/dist/collection/components/revoGrid/revo-grid.js +2834 -2181
  101. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  102. package/dist/collection/components/revoGrid/viewport.helpers.js +9 -4
  103. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  104. package/dist/collection/components/revoGrid/viewport.resize.service.js +23 -19
  105. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  106. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +78 -50
  107. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  108. package/dist/collection/components/revoGrid/viewport.service.js +224 -204
  109. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  110. package/dist/collection/components/rowHeaders/revogr-row-headers.js +262 -204
  111. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  112. package/dist/collection/components/rowHeaders/row-header-render.js +4 -0
  113. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  114. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +20 -13
  115. package/dist/collection/components/scroll/revogr-viewport-scroll.js +535 -369
  116. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  117. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  118. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  119. package/dist/collection/components/scrollable/revogr-scroll-style.css +24 -18
  120. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +286 -247
  121. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  122. package/dist/collection/components/selectionFocus/revogr-focus-style.css +16 -10
  123. package/dist/collection/components/selectionFocus/revogr-focus.js +366 -96
  124. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  125. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +16 -10
  126. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +149 -128
  127. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  128. package/dist/collection/components/vnode/vnode-converter.js +81 -0
  129. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  130. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  131. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  132. package/dist/collection/global/global.js +15 -11
  133. package/dist/collection/global/global.js.map +1 -0
  134. package/dist/collection/index.js +18 -0
  135. package/dist/collection/index.js.map +1 -0
  136. package/dist/collection/plugins/base.plugin.js +88 -0
  137. package/dist/collection/plugins/base.plugin.js.map +1 -0
  138. package/dist/collection/plugins/column.auto-size.plugin.js +234 -0
  139. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  140. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  141. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  142. package/dist/collection/plugins/dispatcher.js +27 -0
  143. package/dist/collection/plugins/dispatcher.js.map +1 -0
  144. package/dist/collection/plugins/export/csv.js +57 -53
  145. package/dist/collection/plugins/export/csv.js.map +1 -0
  146. package/dist/collection/plugins/export/export.plugin.js +154 -150
  147. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  148. package/dist/collection/plugins/export/types.js +1 -0
  149. package/dist/collection/plugins/export/types.js.map +1 -0
  150. package/dist/collection/plugins/filter/conditions/equal.js +15 -7
  151. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  152. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +10 -6
  153. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  154. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +7 -3
  155. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  156. package/dist/collection/plugins/filter/conditions/number/lessThan.js +12 -8
  157. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  158. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +7 -3
  159. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  160. package/dist/collection/plugins/filter/conditions/set.js +4 -0
  161. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  162. package/dist/collection/plugins/filter/conditions/string/beginswith.js +17 -13
  163. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  164. package/dist/collection/plugins/filter/conditions/string/contains.js +17 -10
  165. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  166. package/dist/collection/plugins/filter/filter.button.js +21 -13
  167. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  168. package/dist/collection/plugins/filter/filter.plugin.js +280 -185
  169. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  170. package/dist/collection/plugins/filter/filter.pop.js +492 -246
  171. package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
  172. package/dist/collection/plugins/filter/filter.service.js +42 -38
  173. package/dist/collection/plugins/filter/filter.service.js.map +1 -0
  174. package/dist/collection/plugins/filter/filter.style.css +68 -15
  175. package/dist/collection/plugins/filter/filter.types.js +1 -0
  176. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  177. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +30 -26
  178. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
  179. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +38 -30
  180. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
  181. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +22 -18
  182. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
  183. package/dist/collection/plugins/groupingRow/grouping.const.js +7 -2
  184. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  185. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +64 -61
  186. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  187. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +239 -237
  188. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  189. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +27 -24
  190. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  191. package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -0
  192. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  193. package/dist/collection/plugins/groupingRow/grouping.service.js +101 -131
  194. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  195. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +47 -43
  196. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  197. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +167 -0
  198. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  199. package/dist/collection/plugins/moveColumn/order-column.handler.js +69 -0
  200. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  201. package/dist/collection/plugins/sorting/sorting.plugin.js +218 -163
  202. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  203. package/dist/collection/plugins/sorting/sorting.sign.js +6 -2
  204. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  205. package/dist/collection/serve/controller.js +233 -0
  206. package/dist/collection/{utilsExternal/generate-data.js → serve/data.js} +72 -32
  207. package/dist/collection/services/cell.helpers.js +9 -5
  208. package/dist/collection/services/cell.helpers.js.map +1 -0
  209. package/dist/collection/services/column.data.provider.js +201 -185
  210. package/dist/collection/services/column.data.provider.js.map +1 -0
  211. package/dist/collection/services/data.provider.js +70 -45
  212. package/dist/collection/services/data.provider.js.map +1 -0
  213. package/dist/collection/services/dimension.provider.js +143 -84
  214. package/dist/collection/services/dimension.provider.js.map +1 -0
  215. package/dist/collection/services/local.scroll.service.js +120 -0
  216. package/dist/collection/services/local.scroll.service.js.map +1 -0
  217. package/dist/collection/services/local.scroll.timer.js +42 -0
  218. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  219. package/dist/collection/services/resizable.directive.js +211 -226
  220. package/dist/collection/services/resizable.directive.js.map +1 -0
  221. package/dist/collection/services/resizable.element.js +39 -0
  222. package/dist/collection/services/resizable.element.js.map +1 -0
  223. package/dist/collection/services/selection.store.connector.js +257 -208
  224. package/dist/collection/services/selection.store.connector.js.map +1 -0
  225. package/dist/collection/services/viewport.provider.js +16 -12
  226. package/dist/collection/services/viewport.provider.js.map +1 -0
  227. package/dist/collection/store/dataSource/data.proxy.js +29 -25
  228. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  229. package/dist/collection/store/dataSource/data.store.js +100 -93
  230. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  231. package/dist/collection/store/dataSource/index.js +7 -0
  232. package/dist/collection/store/dataSource/index.js.map +1 -0
  233. package/dist/collection/store/dataSource/trimmed.plugin.js +36 -0
  234. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  235. package/dist/collection/store/dimension/dimension.helpers.js +97 -95
  236. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  237. package/dist/collection/store/dimension/dimension.store.js +106 -48
  238. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  239. package/dist/collection/store/dimension/index.js +6 -0
  240. package/dist/collection/store/dimension/index.js.map +1 -0
  241. package/dist/collection/store/selection/index.js +7 -0
  242. package/dist/collection/store/selection/index.js.map +1 -0
  243. package/dist/collection/store/selection/selection.helpers.js +43 -39
  244. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  245. package/dist/collection/store/selection/selection.store.js +75 -63
  246. package/dist/collection/store/selection/selection.store.js.map +1 -0
  247. package/dist/collection/store/selection/selection.store.service.js +35 -31
  248. package/dist/collection/store/selection/selection.store.service.js.map +1 -0
  249. package/dist/collection/store/storeTypes.js +10 -2
  250. package/dist/collection/store/storeTypes.js.map +1 -0
  251. package/dist/collection/store/viewport/index.js +6 -0
  252. package/dist/collection/store/viewport/index.js.map +1 -0
  253. package/dist/collection/store/viewport/viewport.helpers.js +247 -0
  254. package/dist/collection/store/viewport/viewport.helpers.js.map +1 -0
  255. package/dist/collection/store/viewport/viewport.store.js +193 -0
  256. package/dist/collection/store/viewport/viewport.store.js.map +1 -0
  257. package/dist/collection/themeManager/theme.compact.js +7 -3
  258. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  259. package/dist/collection/themeManager/theme.default.js +7 -3
  260. package/dist/collection/themeManager/theme.default.js.map +1 -0
  261. package/dist/collection/themeManager/theme.material.js +7 -3
  262. package/dist/collection/themeManager/theme.material.js.map +1 -0
  263. package/dist/collection/themeManager/theme.service.js +53 -0
  264. package/dist/collection/themeManager/theme.service.js.map +1 -0
  265. package/dist/collection/types/dimension.js +2 -0
  266. package/dist/collection/types/dimension.js.map +1 -0
  267. package/dist/collection/types/interfaces.js +2 -0
  268. package/dist/collection/types/interfaces.js.map +1 -0
  269. package/dist/collection/types/plugin.js +2 -0
  270. package/dist/collection/types/plugin.js.map +1 -0
  271. package/dist/collection/types/plugin.types.js +2 -0
  272. package/dist/collection/types/plugin.types.js.map +1 -0
  273. package/dist/collection/types/selection.js +2 -0
  274. package/dist/collection/types/selection.js.map +1 -0
  275. package/dist/collection/types/theme.js +2 -0
  276. package/dist/collection/types/theme.js.map +1 -0
  277. package/dist/collection/types/viewport.interfaces.js +2 -0
  278. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  279. package/dist/collection/utils/browser.js +7 -0
  280. package/dist/collection/utils/browser.js.map +1 -0
  281. package/dist/collection/utils/closest.polifill.js +22 -0
  282. package/dist/collection/utils/closest.polifill.js.map +1 -0
  283. package/dist/collection/utils/consts.js +8 -0
  284. package/dist/collection/utils/consts.js.map +1 -0
  285. package/dist/collection/utils/events.js +29 -0
  286. package/dist/collection/utils/events.js.map +1 -0
  287. package/dist/collection/utils/header.utils.js +24 -0
  288. package/dist/collection/utils/header.utils.js.map +1 -0
  289. package/dist/collection/utils/index.js +125 -0
  290. package/dist/collection/utils/index.js.map +1 -0
  291. package/dist/collection/utils/key.codes.js +76 -0
  292. package/dist/collection/utils/key.codes.js.map +1 -0
  293. package/dist/collection/utils/key.utils.js +84 -0
  294. package/dist/collection/utils/key.utils.js.map +1 -0
  295. package/dist/collection/utils/mobile.js +7 -0
  296. package/dist/collection/utils/mobile.js.map +1 -0
  297. package/dist/collection/utils/platform.js +5 -1
  298. package/dist/collection/utils/platform.js.map +1 -0
  299. package/dist/collection/utils/resize-observer.polifill.js +10 -0
  300. package/dist/collection/utils/resize-observer.polifill.js.map +1 -0
  301. package/dist/collection/utils/row-header-utils.js +9 -0
  302. package/dist/collection/utils/row-header-utils.js.map +1 -0
  303. package/dist/collection/utils/store.utils.js +7 -3
  304. package/dist/collection/utils/store.utils.js.map +1 -0
  305. package/dist/esm/app-globals-ef1fca59.js +12 -0
  306. package/dist/esm/app-globals-ef1fca59.js.map +1 -0
  307. package/dist/esm/column.service-21a3af74.js +520 -0
  308. package/dist/esm/column.service-21a3af74.js.map +1 -0
  309. package/dist/esm/debounce-7781346d.js +224 -0
  310. package/dist/esm/debounce-7781346d.js.map +1 -0
  311. package/dist/esm/dimension.helpers-a3065cb1.js +4185 -0
  312. package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -0
  313. package/dist/esm/dispatcher-8ea9187d.js +30 -0
  314. package/dist/esm/dispatcher-8ea9187d.js.map +1 -0
  315. package/dist/esm/events-3dd8ee7c.js +228 -0
  316. package/dist/esm/events-3dd8ee7c.js.map +1 -0
  317. package/dist/esm/filter.button-46ce4f80.js +38 -0
  318. package/dist/esm/filter.button-46ce4f80.js.map +1 -0
  319. package/dist/esm/header-cell-renderer-1ca84d5f.js +301 -0
  320. package/dist/esm/header-cell-renderer-1ca84d5f.js.map +1 -0
  321. package/dist/esm/index-21436631.js +1837 -0
  322. package/dist/esm/index-21436631.js.map +1 -0
  323. package/dist/esm/index-98fd0168.js +79 -0
  324. package/dist/esm/index-98fd0168.js.map +1 -0
  325. package/dist/esm/index.js +11 -0
  326. package/dist/esm/index.js.map +1 -0
  327. package/dist/esm/key.utils-4586a3d6.js +120 -0
  328. package/dist/esm/key.utils-4586a3d6.js.map +1 -0
  329. package/dist/esm/loader.js +11 -26
  330. package/dist/esm/loader.js.map +1 -0
  331. package/dist/esm/{resize-observer-56b7b34f.js → resize-observer-83c9e167.js} +30 -14
  332. package/dist/esm/resize-observer-83c9e167.js.map +1 -0
  333. package/dist/esm/revo-grid.entry.js +3988 -0
  334. package/dist/esm/revo-grid.entry.js.map +1 -0
  335. package/dist/esm/revo-grid.js +19 -65
  336. package/dist/esm/revo-grid.js.map +1 -0
  337. package/dist/esm/revogr-attribution_6.entry.js +1261 -0
  338. package/dist/esm/revogr-attribution_6.entry.js.map +1 -0
  339. package/dist/esm/revogr-clipboard_3.entry.js +502 -0
  340. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  341. package/dist/esm/revogr-data_4.entry.js +951 -0
  342. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  343. package/dist/esm/revogr-filter-panel.entry.js +268 -115
  344. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  345. package/dist/esm/selection.store-2577ddf9.js +391 -0
  346. package/dist/esm/selection.store-2577ddf9.js.map +1 -0
  347. package/dist/esm/storeTypes-f2647985.js +101 -0
  348. package/dist/esm/storeTypes-f2647985.js.map +1 -0
  349. package/dist/esm/throttle-cfd527d6.js +235 -0
  350. package/dist/esm/throttle-cfd527d6.js.map +1 -0
  351. package/dist/esm/toNumber-8de324a7.js +331 -0
  352. package/dist/esm/toNumber-8de324a7.js.map +1 -0
  353. package/dist/esm/viewport.helpers-6591d423.js +251 -0
  354. package/dist/esm/viewport.helpers-6591d423.js.map +1 -0
  355. package/dist/index.js +1 -1
  356. package/dist/loader/cdn.js +4 -0
  357. package/dist/loader/index.cjs.js +4 -0
  358. package/{loader → dist/loader}/index.d.ts +11 -3
  359. package/dist/loader/index.es2017.js +4 -0
  360. package/dist/{esm/polyfills/es5-html-element.js → loader/index.js} +5 -1
  361. package/{loader → dist/loader}/package.json +1 -0
  362. package/dist/revo-grid/app-globals-ef1fca59.js +5 -0
  363. package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -0
  364. package/dist/revo-grid/column.service-21a3af74.js +5 -0
  365. package/dist/revo-grid/column.service-21a3af74.js.map +1 -0
  366. package/dist/revo-grid/debounce-7781346d.js +5 -0
  367. package/dist/revo-grid/debounce-7781346d.js.map +1 -0
  368. package/dist/revo-grid/dimension.helpers-a3065cb1.js +5 -0
  369. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -0
  370. package/dist/revo-grid/dispatcher-8ea9187d.js +5 -0
  371. package/dist/revo-grid/dispatcher-8ea9187d.js.map +1 -0
  372. package/dist/revo-grid/events-3dd8ee7c.js +5 -0
  373. package/dist/revo-grid/events-3dd8ee7c.js.map +1 -0
  374. package/dist/revo-grid/filter.button-46ce4f80.js +5 -0
  375. package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -0
  376. package/dist/revo-grid/header-cell-renderer-1ca84d5f.js +5 -0
  377. package/dist/revo-grid/header-cell-renderer-1ca84d5f.js.map +1 -0
  378. package/dist/revo-grid/index-21436631.js +6 -0
  379. package/dist/revo-grid/index-21436631.js.map +1 -0
  380. package/dist/revo-grid/index-98fd0168.js +5 -0
  381. package/dist/revo-grid/index-98fd0168.js.map +1 -0
  382. package/dist/revo-grid/index.esm.js +5 -0
  383. package/dist/revo-grid/index.esm.js.map +1 -0
  384. package/dist/revo-grid/key.utils-4586a3d6.js +5 -0
  385. package/dist/revo-grid/key.utils-4586a3d6.js.map +1 -0
  386. package/dist/revo-grid/resize-observer-83c9e167.js +5 -0
  387. package/dist/revo-grid/resize-observer-83c9e167.js.map +1 -0
  388. package/dist/revo-grid/revo-grid.entry.js +5 -0
  389. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  390. package/dist/revo-grid/revo-grid.esm.js +5 -1
  391. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  392. package/dist/revo-grid/revogr-attribution_6.entry.js +5 -0
  393. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -0
  394. package/dist/revo-grid/revogr-clipboard_3.entry.js +5 -0
  395. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  396. package/dist/revo-grid/revogr-data_4.entry.js +5 -0
  397. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  398. package/dist/revo-grid/revogr-filter-panel.entry.js +5 -1
  399. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  400. package/dist/revo-grid/selection.store-2577ddf9.js +5 -0
  401. package/dist/revo-grid/selection.store-2577ddf9.js.map +1 -0
  402. package/dist/revo-grid/storeTypes-f2647985.js +5 -0
  403. package/dist/revo-grid/storeTypes-f2647985.js.map +1 -0
  404. package/dist/revo-grid/throttle-cfd527d6.js +5 -0
  405. package/dist/revo-grid/throttle-cfd527d6.js.map +1 -0
  406. package/dist/revo-grid/toNumber-8de324a7.js +5 -0
  407. package/dist/revo-grid/toNumber-8de324a7.js.map +1 -0
  408. package/dist/revo-grid/viewport.helpers-6591d423.js +5 -0
  409. package/dist/revo-grid/viewport.helpers-6591d423.js.map +1 -0
  410. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  411. package/dist/types/components/clipboard/revogr-clipboard.d.ts +78 -10
  412. package/dist/types/components/data/cell-renderer.d.ts +14 -0
  413. package/dist/types/components/data/column.service.d.ts +60 -0
  414. package/dist/types/components/data/revogr-data.d.ts +101 -27
  415. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  416. package/dist/types/components/data/{rowRenderer.d.ts → row-renderer.d.ts} +6 -5
  417. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  418. package/dist/types/components/editors/text-editor.d.ts +46 -0
  419. package/dist/types/components/header/header-cell-renderer.d.ts +11 -0
  420. package/dist/types/components/header/header-renderer.d.ts +17 -0
  421. package/dist/types/components/header/revogr-header.d.ts +70 -22
  422. package/dist/types/components/order/order-renderer.d.ts +29 -0
  423. package/dist/types/components/order/order-row.service.d.ts +28 -0
  424. package/dist/types/components/order/revogr-order-editor.d.ts +43 -41
  425. package/dist/types/components/overlay/autofill.service.d.ts +69 -54
  426. package/dist/types/components/overlay/keyboard.service.d.ts +24 -23
  427. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +216 -75
  428. package/dist/types/components/overlay/selection.utils.d.ts +24 -27
  429. package/dist/types/components/revoGrid/grid.helpers.d.ts +16 -11
  430. package/dist/types/components/revoGrid/revo-grid.d.ts +555 -403
  431. package/dist/types/components/revoGrid/viewport.helpers.d.ts +4 -3
  432. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +7 -7
  433. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -21
  434. package/dist/types/components/revoGrid/viewport.service.d.ts +54 -56
  435. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +45 -12
  436. package/dist/types/components/rowHeaders/row-header-render.d.ts +5 -5
  437. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +115 -76
  438. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  439. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +39 -22
  440. package/dist/types/components/selectionFocus/revogr-focus.d.ts +61 -9
  441. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +26 -11
  442. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  443. package/dist/types/components/vnode/vnode.utils.d.ts +8 -0
  444. package/dist/types/components.d.ts +1595 -274
  445. package/dist/types/index.d.ts +14 -0
  446. package/dist/types/plugins/base.plugin.d.ts +49 -0
  447. package/dist/types/plugins/column.auto-size.plugin.d.ts +47 -0
  448. package/dist/types/plugins/column.stretch.plugin.d.ts +22 -0
  449. package/dist/types/plugins/dispatcher.d.ts +16 -0
  450. package/dist/types/plugins/export/csv.d.ts +6 -6
  451. package/dist/types/plugins/export/export.plugin.d.ts +18 -18
  452. package/dist/types/plugins/export/types.d.ts +15 -15
  453. package/dist/types/plugins/filter/filter.button.d.ts +7 -3
  454. package/dist/types/plugins/filter/filter.plugin.d.ts +61 -43
  455. package/dist/types/plugins/filter/filter.pop.d.ts +60 -35
  456. package/dist/types/plugins/filter/filter.service.d.ts +15 -15
  457. package/dist/types/plugins/filter/filter.types.d.ts +7 -7
  458. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +16 -13
  459. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +10 -6
  460. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +12 -10
  461. package/dist/types/plugins/groupingRow/grouping.const.d.ts +8 -7
  462. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +6 -6
  463. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +32 -37
  464. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +7 -5
  465. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +23 -15
  466. package/dist/types/plugins/groupingRow/grouping.service.d.ts +18 -16
  467. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
  468. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +56 -0
  469. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  470. package/dist/types/plugins/sorting/sorting.plugin.d.ts +40 -27
  471. package/dist/types/plugins/sorting/sorting.sign.d.ts +3 -3
  472. package/dist/types/services/cell.helpers.d.ts +2 -2
  473. package/dist/types/services/column.data.provider.d.ts +33 -35
  474. package/dist/types/services/data.provider.d.ts +27 -21
  475. package/dist/types/services/dimension.provider.d.ts +52 -32
  476. package/dist/types/services/local.scroll.service.d.ts +37 -0
  477. package/dist/types/services/local.scroll.timer.d.ts +26 -0
  478. package/dist/types/services/resizable.directive.d.ts +52 -51
  479. package/dist/types/services/resizable.element.d.ts +4 -0
  480. package/dist/types/services/selection.store.connector.d.ts +54 -36
  481. package/dist/types/services/viewport.provider.d.ts +6 -8
  482. package/dist/types/stencil-public-runtime.d.ts +331 -217
  483. package/dist/types/store/dataSource/data.proxy.d.ts +3 -3
  484. package/dist/types/store/dataSource/data.store.d.ts +45 -46
  485. package/dist/types/store/dataSource/index.d.ts +3 -0
  486. package/dist/types/store/dataSource/trimmed.plugin.d.ts +10 -0
  487. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -9
  488. package/dist/types/store/dimension/dimension.store.d.ts +29 -11
  489. package/dist/types/store/dimension/index.d.ts +2 -0
  490. package/dist/types/store/selection/index.d.ts +3 -0
  491. package/dist/types/store/selection/selection.helpers.d.ts +1 -3
  492. package/dist/types/store/selection/selection.store.d.ts +19 -17
  493. package/dist/types/store/selection/selection.store.service.d.ts +12 -13
  494. package/dist/types/store/storeTypes.d.ts +4 -4
  495. package/dist/types/store/viewport/index.d.ts +2 -0
  496. package/dist/types/store/viewport/viewport.helpers.d.ts +54 -0
  497. package/dist/types/store/viewport/viewport.store.d.ts +36 -0
  498. package/dist/types/themeManager/theme.compact.d.ts +3 -3
  499. package/dist/types/themeManager/theme.default.d.ts +3 -3
  500. package/dist/types/themeManager/theme.material.d.ts +3 -3
  501. package/dist/types/themeManager/theme.service.d.ts +13 -0
  502. package/dist/types/types/dimension.d.ts +8 -0
  503. package/dist/types/types/interfaces.d.ts +243 -0
  504. package/dist/types/types/plugin.d.ts +9 -0
  505. package/dist/types/types/plugin.types.d.ts +12 -0
  506. package/dist/types/types/selection.d.ts +115 -0
  507. package/dist/types/types/theme.d.ts +7 -0
  508. package/dist/types/types/viewport.interfaces.d.ts +51 -0
  509. package/dist/types/utils/browser.d.ts +1 -0
  510. package/dist/types/utils/consts.d.ts +5 -1
  511. package/dist/types/utils/events.d.ts +2 -0
  512. package/dist/types/utils/{utils.d.ts → index.d.ts} +17 -1
  513. package/dist/types/utils/key.codes.d.ts +70 -0
  514. package/dist/types/utils/{keyCodes.utils.d.ts → key.utils.d.ts} +5 -1
  515. package/dist/types/utils/mobile.d.ts +1 -0
  516. package/dist/types/utils/platform.d.ts +1 -1
  517. package/dist/types/utils/row-header-utils.d.ts +2 -0
  518. package/dist/types/utils/store.utils.d.ts +2 -2
  519. package/hydrate/index.d.ts +218 -0
  520. package/hydrate/index.js +32381 -0
  521. package/hydrate/package.json +6 -0
  522. package/package.json +94 -52
  523. package/readme.md +135 -98
  524. package/standalone/_baseIteratee.js +1237 -0
  525. package/standalone/_baseIteratee.js.map +1 -0
  526. package/standalone/_stringToPath.js +1389 -0
  527. package/standalone/_stringToPath.js.map +1 -0
  528. package/standalone/column.service.js +889 -0
  529. package/standalone/column.service.js.map +1 -0
  530. package/standalone/consts.js +30 -0
  531. package/standalone/consts.js.map +1 -0
  532. package/standalone/data.store.js +705 -0
  533. package/standalone/data.store.js.map +1 -0
  534. package/standalone/debounce.js +225 -0
  535. package/standalone/debounce.js.map +1 -0
  536. package/standalone/dimension.helpers.js +355 -0
  537. package/standalone/dimension.helpers.js.map +1 -0
  538. package/standalone/each.js +200 -0
  539. package/standalone/each.js.map +1 -0
  540. package/standalone/filter.button.js +38 -0
  541. package/standalone/filter.button.js.map +1 -0
  542. package/standalone/identity.js +349 -0
  543. package/standalone/identity.js.map +1 -0
  544. package/standalone/index.d.ts +66 -0
  545. package/standalone/index.js +42 -0
  546. package/standalone/index.js.map +1 -0
  547. package/standalone/index2.js +55 -0
  548. package/standalone/index2.js.map +1 -0
  549. package/standalone/isObjectLike.js +195 -0
  550. package/standalone/isObjectLike.js.map +1 -0
  551. package/standalone/local.scroll.timer.js +163 -0
  552. package/standalone/local.scroll.timer.js.map +1 -0
  553. package/{custom-element → standalone}/resize-observer.js +30 -14
  554. package/standalone/resize-observer.js.map +1 -0
  555. package/standalone/revo-grid.d.ts +11 -0
  556. package/standalone/revo-grid.js +4252 -0
  557. package/standalone/revo-grid.js.map +1 -0
  558. package/standalone/revogr-attribution.d.ts +11 -0
  559. package/standalone/revogr-attribution.js +11 -0
  560. package/standalone/revogr-attribution.js.map +1 -0
  561. package/standalone/revogr-attribution2.js +31 -0
  562. package/standalone/revogr-attribution2.js.map +1 -0
  563. package/standalone/revogr-clipboard.d.ts +11 -0
  564. package/standalone/revogr-clipboard.js +11 -0
  565. package/standalone/revogr-clipboard.js.map +1 -0
  566. package/standalone/revogr-clipboard2.js +159 -0
  567. package/standalone/revogr-clipboard2.js.map +1 -0
  568. package/standalone/revogr-data.d.ts +11 -0
  569. package/standalone/revogr-data.js +11 -0
  570. package/standalone/revogr-data.js.map +1 -0
  571. package/standalone/revogr-data2.js +368 -0
  572. package/standalone/revogr-data2.js.map +1 -0
  573. package/standalone/revogr-edit.d.ts +11 -0
  574. package/standalone/revogr-edit.js +11 -0
  575. package/standalone/revogr-edit.js.map +1 -0
  576. package/standalone/revogr-edit2.js +335 -0
  577. package/standalone/revogr-edit2.js.map +1 -0
  578. package/standalone/revogr-filter-panel.d.ts +11 -0
  579. package/standalone/revogr-filter-panel.js +310 -0
  580. package/standalone/revogr-filter-panel.js.map +1 -0
  581. package/standalone/revogr-focus.d.ts +11 -0
  582. package/standalone/revogr-focus.js +11 -0
  583. package/standalone/revogr-focus.js.map +1 -0
  584. package/standalone/revogr-focus2.js +106 -0
  585. package/standalone/revogr-focus2.js.map +1 -0
  586. package/standalone/revogr-header.d.ts +11 -0
  587. package/standalone/revogr-header.js +11 -0
  588. package/standalone/revogr-header.js.map +1 -0
  589. package/standalone/revogr-header2.js +667 -0
  590. package/standalone/revogr-header2.js.map +1 -0
  591. package/standalone/revogr-order-editor.d.ts +11 -0
  592. package/standalone/revogr-order-editor.js +11 -0
  593. package/standalone/revogr-order-editor.js.map +1 -0
  594. package/standalone/revogr-order-editor2.js +199 -0
  595. package/standalone/revogr-order-editor2.js.map +1 -0
  596. package/standalone/revogr-overlay-selection.d.ts +11 -0
  597. package/standalone/revogr-overlay-selection.js +11 -0
  598. package/standalone/revogr-overlay-selection.js.map +1 -0
  599. package/standalone/revogr-overlay-selection2.js +876 -0
  600. package/standalone/revogr-overlay-selection2.js.map +1 -0
  601. package/standalone/revogr-row-headers.d.ts +11 -0
  602. package/standalone/revogr-row-headers.js +11 -0
  603. package/standalone/revogr-row-headers.js.map +1 -0
  604. package/standalone/revogr-row-headers2.js +555 -0
  605. package/standalone/revogr-row-headers2.js.map +1 -0
  606. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  607. package/standalone/revogr-scroll-virtual.js +11 -0
  608. package/standalone/revogr-scroll-virtual.js.map +1 -0
  609. package/standalone/revogr-scroll-virtual2.js +187 -0
  610. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  611. package/standalone/revogr-temp-range.d.ts +11 -0
  612. package/standalone/revogr-temp-range.js +11 -0
  613. package/standalone/revogr-temp-range.js.map +1 -0
  614. package/standalone/revogr-temp-range2.js +90 -0
  615. package/standalone/revogr-temp-range2.js.map +1 -0
  616. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  617. package/standalone/revogr-viewport-scroll.js +11 -0
  618. package/standalone/revogr-viewport-scroll.js.map +1 -0
  619. package/standalone/revogr-viewport-scroll2.js +336 -0
  620. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  621. package/standalone/selection.utils.js +108 -0
  622. package/standalone/selection.utils.js.map +1 -0
  623. package/standalone/throttle.js +79 -0
  624. package/standalone/throttle.js.map +1 -0
  625. package/standalone/toNumber.js +144 -0
  626. package/standalone/toNumber.js.map +1 -0
  627. package/standalone/vnode-converter.js +45 -0
  628. package/standalone/vnode-converter.js.map +1 -0
  629. package/standalone/vnode-html.d.ts +11 -0
  630. package/standalone/vnode-html.js +11 -0
  631. package/standalone/vnode-html.js.map +1 -0
  632. package/custom-element/index.d.ts +0 -117
  633. package/custom-element/index.js +0 -28857
  634. package/dist/cjs/css-shim-e33df79c.js +0 -6
  635. package/dist/cjs/dom-c8b6d1a7.js +0 -75
  636. package/dist/cjs/filter.button-2396a488.js +0 -27
  637. package/dist/cjs/index-d3f67f2e.js +0 -1729
  638. package/dist/cjs/revo-grid_11.cjs.entry.js +0 -28621
  639. package/dist/cjs/revogr-clipboard.cjs.entry.js +0 -53
  640. package/dist/collection/components/button/button.js +0 -4
  641. package/dist/collection/components/data/cellRenderer.js +0 -19
  642. package/dist/collection/components/data/columnService.js +0 -243
  643. package/dist/collection/components/data/rowRenderer.js +0 -6
  644. package/dist/collection/components/header/headerCellRenderer.js +0 -19
  645. package/dist/collection/components/header/headerRenderer.js +0 -45
  646. package/dist/collection/components/order/orderRenderer.js +0 -50
  647. package/dist/collection/components/order/rowOrderService.js +0 -68
  648. package/dist/collection/components/overlay/clipboard.service.js +0 -39
  649. package/dist/collection/components/overlay/editors/edit.utils.js +0 -5
  650. package/dist/collection/components/overlay/editors/text.js +0 -35
  651. package/dist/collection/components/overlay/revogr-edit.js +0 -163
  652. package/dist/collection/components/revoGrid/viewport.interfaces.js +0 -1
  653. package/dist/collection/components/revoGrid/viewport.js +0 -18
  654. package/dist/collection/components/revoGrid/viewport.section.js +0 -28
  655. package/dist/collection/components/rowHeaders/row-header-utils.js +0 -4
  656. package/dist/collection/plugins/autoSizeColumn.d.ts +0 -54
  657. package/dist/collection/plugins/autoSizeColumn.js +0 -230
  658. package/dist/collection/plugins/basePlugin.d.ts +0 -37
  659. package/dist/collection/plugins/basePlugin.js +0 -53
  660. package/dist/collection/plugins/export/csv.d.ts +0 -9
  661. package/dist/collection/plugins/export/export.plugin.d.ts +0 -24
  662. package/dist/collection/plugins/export/types.d.ts +0 -23
  663. package/dist/collection/plugins/filter/conditions/equal.d.ts +0 -4
  664. package/dist/collection/plugins/filter/conditions/number/greaterThan.d.ts +0 -3
  665. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +0 -3
  666. package/dist/collection/plugins/filter/conditions/number/lessThan.d.ts +0 -3
  667. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.d.ts +0 -3
  668. package/dist/collection/plugins/filter/conditions/set.d.ts +0 -4
  669. package/dist/collection/plugins/filter/conditions/string/beginswith.d.ts +0 -3
  670. package/dist/collection/plugins/filter/conditions/string/contains.d.ts +0 -4
  671. package/dist/collection/plugins/filter/filter.button.d.ts +0 -10
  672. package/dist/collection/plugins/filter/filter.plugin.d.ts +0 -59
  673. package/dist/collection/plugins/filter/filter.pop.d.ts +0 -42
  674. package/dist/collection/plugins/filter/filter.service.d.ts +0 -20
  675. package/dist/collection/plugins/filter/filter.types.d.ts +0 -8
  676. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -16
  677. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -13
  678. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.d.ts +0 -14
  679. package/dist/collection/plugins/groupingRow/grouping.const.d.ts +0 -9
  680. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.d.ts +0 -15
  681. package/dist/collection/plugins/groupingRow/grouping.row.plugin.d.ts +0 -40
  682. package/dist/collection/plugins/groupingRow/grouping.row.renderer.d.ts +0 -9
  683. package/dist/collection/plugins/groupingRow/grouping.row.types.d.ts +0 -19
  684. package/dist/collection/plugins/groupingRow/grouping.service.d.ts +0 -25
  685. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.d.ts +0 -10
  686. package/dist/collection/plugins/sorting/sorting.plugin.d.ts +0 -32
  687. package/dist/collection/plugins/sorting/sorting.sign.d.ts +0 -8
  688. package/dist/collection/plugins/stretchPlugin.d.ts +0 -29
  689. package/dist/collection/plugins/stretchPlugin.js +0 -90
  690. package/dist/collection/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  691. package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -32
  692. package/dist/collection/services/localScrollService.js +0 -80
  693. package/dist/collection/store/viewPort/viewport.helpers.js +0 -180
  694. package/dist/collection/store/viewPort/viewport.store.js +0 -121
  695. package/dist/collection/themeManager/themeService.js +0 -43
  696. package/dist/collection/utils/closestPolifill.js +0 -18
  697. package/dist/collection/utils/generateAlphabetHeader.js +0 -20
  698. package/dist/collection/utils/keyCodes.js +0 -70
  699. package/dist/collection/utils/keyCodes.utils.js +0 -64
  700. package/dist/collection/utils/resizeObserver.js +0 -6
  701. package/dist/collection/utils/utils.js +0 -104
  702. package/dist/esm/css-shim-8d75038b.js +0 -4
  703. package/dist/esm/dom-1b195079.js +0 -73
  704. package/dist/esm/filter.button-53ebca66.js +0 -23
  705. package/dist/esm/index-42c84e7c.js +0 -1694
  706. package/dist/esm/polyfills/core-js.js +0 -11
  707. package/dist/esm/polyfills/css-shim.js +0 -1
  708. package/dist/esm/polyfills/dom.js +0 -79
  709. package/dist/esm/polyfills/index.js +0 -34
  710. package/dist/esm/polyfills/system.js +0 -6
  711. package/dist/esm/revo-grid_11.entry.js +0 -28607
  712. package/dist/esm/revogr-clipboard.entry.js +0 -49
  713. package/dist/esm-es5/css-shim-8d75038b.js +0 -1
  714. package/dist/esm-es5/dom-1b195079.js +0 -21
  715. package/dist/esm-es5/filter.button-53ebca66.js +0 -1
  716. package/dist/esm-es5/index-42c84e7c.js +0 -1
  717. package/dist/esm-es5/loader.js +0 -1
  718. package/dist/esm-es5/resize-observer-56b7b34f.js +0 -1
  719. package/dist/esm-es5/revo-grid.js +0 -1
  720. package/dist/esm-es5/revo-grid_11.entry.js +0 -1
  721. package/dist/esm-es5/revogr-clipboard.entry.js +0 -1
  722. package/dist/esm-es5/revogr-filter-panel.entry.js +0 -1
  723. package/dist/revo-grid/css-shim-88bfb262.system.js +0 -1
  724. package/dist/revo-grid/css-shim-8d75038b.js +0 -1
  725. package/dist/revo-grid/dom-1b195079.js +0 -19
  726. package/dist/revo-grid/dom-ee2dd1b3.system.js +0 -21
  727. package/dist/revo-grid/filter.button-1509c206.js +0 -1
  728. package/dist/revo-grid/filter.button-4bd87101.system.js +0 -1
  729. package/dist/revo-grid/index-a15e7527.system.js +0 -1
  730. package/dist/revo-grid/index-a7f99799.js +0 -1
  731. package/dist/revo-grid/index.system.js +0 -1
  732. package/dist/revo-grid/plugins/autoSizeColumn.d.ts +0 -54
  733. package/dist/revo-grid/plugins/basePlugin.d.ts +0 -37
  734. package/dist/revo-grid/plugins/export/csv.d.ts +0 -9
  735. package/dist/revo-grid/plugins/export/export.plugin.d.ts +0 -24
  736. package/dist/revo-grid/plugins/export/types.d.ts +0 -23
  737. package/dist/revo-grid/plugins/filter/conditions/equal.d.ts +0 -4
  738. package/dist/revo-grid/plugins/filter/conditions/number/greaterThan.d.ts +0 -3
  739. package/dist/revo-grid/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +0 -3
  740. package/dist/revo-grid/plugins/filter/conditions/number/lessThan.d.ts +0 -3
  741. package/dist/revo-grid/plugins/filter/conditions/number/lessThanOrEqual.d.ts +0 -3
  742. package/dist/revo-grid/plugins/filter/conditions/set.d.ts +0 -4
  743. package/dist/revo-grid/plugins/filter/conditions/string/beginswith.d.ts +0 -3
  744. package/dist/revo-grid/plugins/filter/conditions/string/contains.d.ts +0 -4
  745. package/dist/revo-grid/plugins/filter/filter.button.d.ts +0 -10
  746. package/dist/revo-grid/plugins/filter/filter.plugin.d.ts +0 -59
  747. package/dist/revo-grid/plugins/filter/filter.pop.d.ts +0 -42
  748. package/dist/revo-grid/plugins/filter/filter.service.d.ts +0 -20
  749. package/dist/revo-grid/plugins/filter/filter.types.d.ts +0 -8
  750. package/dist/revo-grid/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -16
  751. package/dist/revo-grid/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -13
  752. package/dist/revo-grid/plugins/groupingColumn/headerGroupRenderer.d.ts +0 -14
  753. package/dist/revo-grid/plugins/groupingRow/grouping.const.d.ts +0 -9
  754. package/dist/revo-grid/plugins/groupingRow/grouping.row.expand.service.d.ts +0 -15
  755. package/dist/revo-grid/plugins/groupingRow/grouping.row.plugin.d.ts +0 -40
  756. package/dist/revo-grid/plugins/groupingRow/grouping.row.renderer.d.ts +0 -9
  757. package/dist/revo-grid/plugins/groupingRow/grouping.row.types.d.ts +0 -19
  758. package/dist/revo-grid/plugins/groupingRow/grouping.service.d.ts +0 -25
  759. package/dist/revo-grid/plugins/groupingRow/grouping.trimmed.service.d.ts +0 -10
  760. package/dist/revo-grid/plugins/sorting/sorting.plugin.d.ts +0 -32
  761. package/dist/revo-grid/plugins/sorting/sorting.sign.d.ts +0 -8
  762. package/dist/revo-grid/plugins/stretchPlugin.d.ts +0 -29
  763. package/dist/revo-grid/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  764. package/dist/revo-grid/resize-observer-56b7b34f.js +0 -1
  765. package/dist/revo-grid/resize-observer-7a7b9757.system.js +0 -1
  766. package/dist/revo-grid/revo-grid.js +0 -132
  767. package/dist/revo-grid/revo-grid.system.js +0 -1
  768. package/dist/revo-grid/revo-grid_11.entry.js +0 -1
  769. package/dist/revo-grid/revo-grid_11.system.entry.js +0 -1
  770. package/dist/revo-grid/revogr-clipboard.entry.js +0 -1
  771. package/dist/revo-grid/revogr-clipboard.system.entry.js +0 -1
  772. package/dist/revo-grid/revogr-filter-panel.system.entry.js +0 -1
  773. package/dist/types/components/button/button.d.ts +0 -5
  774. package/dist/types/components/data/cellRenderer.d.ts +0 -8
  775. package/dist/types/components/data/columnService.d.ts +0 -42
  776. package/dist/types/components/header/headerCellRenderer.d.ts +0 -8
  777. package/dist/types/components/header/headerRenderer.d.ts +0 -15
  778. package/dist/types/components/order/orderRenderer.d.ts +0 -28
  779. package/dist/types/components/order/rowOrderService.d.ts +0 -27
  780. package/dist/types/components/overlay/clipboard.service.d.ts +0 -20
  781. package/dist/types/components/overlay/editors/text.d.ts +0 -13
  782. package/dist/types/components/overlay/revogr-edit.d.ts +0 -19
  783. package/dist/types/components/revoGrid/viewport.d.ts +0 -19
  784. package/dist/types/components/revoGrid/viewport.interfaces.d.ts +0 -66
  785. package/dist/types/components/revoGrid/viewport.section.d.ts +0 -24
  786. package/dist/types/components/rowHeaders/row-header-utils.d.ts +0 -2
  787. package/dist/types/interfaces.d.ts +0 -437
  788. package/dist/types/plugins/autoSizeColumn.d.ts +0 -54
  789. package/dist/types/plugins/basePlugin.d.ts +0 -37
  790. package/dist/types/plugins/stretchPlugin.d.ts +0 -29
  791. package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  792. package/dist/types/services/localScrollService.d.ts +0 -28
  793. package/dist/types/store/viewPort/viewport.helpers.d.ts +0 -30
  794. package/dist/types/store/viewPort/viewport.store.d.ts +0 -18
  795. package/dist/types/themeManager/themeService.d.ts +0 -13
  796. package/dist/types/utils/closestPolifill.d.ts +0 -0
  797. package/dist/types/utils/keyCodes.d.ts +0 -68
  798. package/loader/cdn.js +0 -3
  799. package/loader/index.cjs.js +0 -3
  800. package/loader/index.es2017.js +0 -3
  801. package/loader/index.js +0 -4
  802. /package/dist/types/components/{overlay/editors → editors}/edit.utils.d.ts +0 -0
  803. /package/dist/{esm-es5/index.js → types/utils/closest.polifill.d.ts} +0 -0
  804. /package/dist/types/utils/{generateAlphabetHeader.d.ts → header.utils.d.ts} +0 -0
  805. /package/dist/types/utils/{resizeObserver.d.ts → resize-observer.polifill.d.ts} +0 -0
@@ -1,127 +1,134 @@
1
- import { createStore } from '@stencil/store';
2
- import findIndex from 'lodash/findIndex';
3
- import range from 'lodash/range';
4
- import { trimmedPlugin } from '../../plugins/trimmed/trimmed.plugin';
5
- import { setStore } from '../../utils/store.utils';
6
- import { proxyPlugin } from './data.proxy';
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import { createStore } from "@stencil/store";
5
+ import findIndex from "lodash/findIndex";
6
+ import range from "lodash/range";
7
+ import { trimmedPlugin } from "./trimmed.plugin";
8
+ import { setStore } from "../../utils/store.utils";
9
+ import { proxyPlugin } from "./data.proxy";
10
+ /**
11
+ * Data store
12
+ * Manage the state of a data source and provide methods for updating, adding, and refreshing the data.
13
+ */
7
14
  export default class DataStore {
8
- constructor(type) {
9
- const store = (this.dataStore = createStore({
10
- items: [],
11
- proxyItems: [],
12
- source: [],
13
- groupingDepth: 0,
14
- groups: {},
15
- type,
16
- trimmed: {},
17
- }));
18
- store.use(proxyPlugin(store));
19
- store.use(trimmedPlugin(store));
20
- }
21
- get store() {
22
- return this.dataStore;
23
- }
24
- /**
25
- * full data source update
26
- * @param source - data column/rgRow source
27
- * @param grouping - grouping information if present
28
- */
29
- updateData(source, grouping, silent = false) {
30
- // during full update we do drop trim
31
- if (!silent) {
32
- this.store.set('trimmed', {});
15
+ get store() {
16
+ return this.dataStore;
17
+ }
18
+ constructor(type, storeData) {
19
+ const store = (this.dataStore = createStore(Object.assign({ items: [], proxyItems: [], source: [], groupingDepth: 0, groups: {}, type, trimmed: {}, groupingCustomRenderer: undefined }, storeData)));
20
+ store.use(proxyPlugin(store));
21
+ store.use(trimmedPlugin(store));
22
+ }
23
+ /**
24
+ * full data source update
25
+ * @param source - data column/rgRow source
26
+ * @param grouping - grouping information if present
27
+ */
28
+ updateData(source, grouping, silent = false) {
29
+ // during full update we do drop trim
30
+ if (!silent) {
31
+ this.store.set('trimmed', {});
32
+ }
33
+ // clear items
34
+ this.store.set('items', []);
35
+ const items = range(0, (source === null || source === void 0 ? void 0 : source.length) || 0);
36
+ // set proxy first
37
+ setStore(this.store, {
38
+ source,
39
+ proxyItems: [...items],
40
+ });
41
+ // update data items
42
+ this.store.set('items', items);
43
+ // apply grouping if present
44
+ if (grouping) {
45
+ setStore(this.store, {
46
+ groupingDepth: grouping.depth,
47
+ groups: grouping.groups,
48
+ groupingCustomRenderer: grouping.customRenderer,
49
+ });
50
+ }
51
+ }
52
+ addTrimmed(some) {
53
+ let trimmed = this.store.get('trimmed');
54
+ trimmed = Object.assign(Object.assign({}, trimmed), some);
55
+ setStore(this.store, { trimmed });
56
+ }
57
+ // local data update
58
+ setData(input) {
59
+ const data = Object.assign({}, input);
60
+ setStore(this.store, data);
33
61
  }
34
- // clear items
35
- this.store.set('items', []);
36
- const items = range(0, (source === null || source === void 0 ? void 0 : source.length) || 0);
37
- // set proxy first
38
- setStore(this.store, {
39
- source,
40
- proxyItems: [...items],
41
- });
42
- // update data items
43
- this.store.set('items', items);
44
- // apply grooping if present
45
- if (grouping) {
46
- setStore(this.store, {
47
- groupingDepth: grouping.depth,
48
- groups: grouping.groups,
49
- });
62
+ refresh() {
63
+ const source = this.store.get('source');
64
+ this.store.set('source', [...source]);
50
65
  }
51
- }
52
- addTrimmed(some) {
53
- let trimmed = this.store.get('trimmed');
54
- trimmed = Object.assign(Object.assign({}, trimmed), some);
55
- setStore(this.store, { trimmed });
56
- }
57
- // local data update
58
- setData(input) {
59
- const data = Object.assign({}, input);
60
- setStore(this.store, data);
61
- }
62
- refresh() {
63
- const source = this.store.get('source');
64
- this.store.set('source', [...source]);
65
- }
66
66
  }
67
67
  /**
68
68
  * get physical index by virtual
69
69
  * @param store - store to process
70
70
  */
71
71
  export function getPhysical(store, virtualIndex) {
72
- const items = store.get('items');
73
- return items[virtualIndex];
72
+ const items = store.get('items');
73
+ return items[virtualIndex];
74
74
  }
75
75
  /**
76
76
  * get all visible items
77
77
  * @param store - store to process
78
78
  */
79
79
  export function getVisibleSourceItem(store) {
80
- const source = store.get('source');
81
- return store.get('items').map(v => source[v]);
80
+ const source = store.get('source');
81
+ return store.get('items').map(v => source[v]);
82
82
  }
83
83
  /**
84
84
  * get mapped item from source
85
85
  * @param store - store to process
86
86
  * @param virtualIndex - virtual index to process
87
87
  */
88
- export function getSourceItem(store, virtualIndex) {
89
- const items = store.get('items');
90
- const source = store.get('source');
91
- return source[items[virtualIndex]];
92
- }
88
+ export const getSourceItem = (store, virtualIndex) => {
89
+ const items = store.get('items');
90
+ const source = store.get('source');
91
+ return source[items[virtualIndex]];
92
+ };
93
93
  /**
94
- * set item to source
95
- * @param store - store to process
96
- * @param modelByIndex - collection of rows with virtual indexes to setup
94
+ * Apple item/model/row value to data source
95
+ * @param store - data source with changes
96
+ * @param modelByIndex - collection of rows/values with virtual indexes to setup/replace in store/data source
97
+ * @param mutate - if true, store will be mutated and whole viewport will be re-rendered
97
98
  */
98
- export function setSourceByVirtualIndex(store, modelByIndex) {
99
- const items = store.get('items');
100
- const source = store.get('source');
101
- for (let virtualIndex in modelByIndex) {
102
- const realIndex = items[virtualIndex];
103
- source[realIndex] = modelByIndex[virtualIndex];
104
- }
105
- store.set('source', [...source]);
99
+ export function setSourceByVirtualIndex(store, modelByIndex, mutate = true) {
100
+ const items = store.get('items');
101
+ const source = store.get('source');
102
+ for (let virtualIndex in modelByIndex) {
103
+ const realIndex = items[virtualIndex];
104
+ source[realIndex] = modelByIndex[virtualIndex];
105
+ }
106
+ if (mutate) {
107
+ store.set('source', [...source]);
108
+ }
106
109
  }
107
110
  /**
108
111
  * set item to source
109
112
  * @param store - store to process
110
113
  * @param modelByIndex - collection of rows with physical indexes to setup
114
+ * @param mutate - if true, store will be mutated and whole viewport will be re-rendered
111
115
  */
112
- export function setSourceByPhysicalIndex(store, modelByIndex) {
113
- const source = store.get('source');
114
- for (let index in modelByIndex) {
115
- source[index] = modelByIndex[index];
116
- }
117
- store.set('source', [...source]);
116
+ export function setSourceByPhysicalIndex(store, modelByIndex, mutate = true) {
117
+ const source = store.get('source');
118
+ for (let index in modelByIndex) {
119
+ source[index] = modelByIndex[index];
120
+ }
121
+ if (mutate) {
122
+ store.set('source', [...source]);
123
+ }
118
124
  }
119
125
  export function setItems(store, items) {
120
- store.set('items', items);
126
+ store.set('items', items);
121
127
  }
122
128
  export function getSourceItemVirtualIndexByProp(store, prop) {
123
- const items = store.get('items');
124
- const source = store.get('source');
125
- const physicalIndex = findIndex(source, { prop });
126
- return items.indexOf(physicalIndex);
129
+ const items = store.get('items');
130
+ const source = store.get('source');
131
+ const physicalIndex = findIndex(source, { prop });
132
+ return items.indexOf(physicalIndex);
127
133
  }
134
+ //# sourceMappingURL=data.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.store.js","sourceRoot":"","sources":["../../../src/store/dataSource/data.store.ts"],"names":[],"mappings":"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","sourcesContent":["import { createStore } from '@stencil/store';\nimport findIndex from 'lodash/findIndex';\nimport range from 'lodash/range';\n\nimport { Trimmed, trimmedPlugin } from './trimmed.plugin';\nimport { setStore } from '../../utils/store.utils';\nimport { proxyPlugin } from './data.proxy';\nimport { GroupLabelTemplateFunc } from '../../plugins/groupingRow/grouping.row.types';\nimport { DimensionRows, DimensionCols } from '../..';\nimport {\n ColumnProperties,\n ColumnGrouping,\n ColumnRegular,\n DataType,\n DataSourceState,\n Observable,\n ColumnProp,\n} from '../..';\n\nexport interface Group extends ColumnProperties {\n name: string;\n children: (ColumnGrouping | ColumnRegular)[];\n // props/ids\n ids: (string | number)[];\n}\nexport type Groups = Record<any, any>;\nexport type GDataType = DataType | ColumnRegular;\nexport type GDimension = DimensionRows | DimensionCols;\nexport type DSourceState<\n T1 extends GDataType,\n T2 extends GDimension,\n> = DataSourceState<T1, T2> & {\n groupingCustomRenderer?: GroupLabelTemplateFunc | null;\n};\n\n/**\n * Data store\n * Manage the state of a data source and provide methods for updating, adding, and refreshing the data.\n */\nexport default class DataStore<T extends GDataType, ST extends GDimension> {\n private readonly dataStore: Observable<DSourceState<T, ST>>;\n get store(): Observable<DSourceState<T, ST>> {\n return this.dataStore;\n }\n constructor(type: ST, storeData?: DSourceState<T, ST>) {\n const store = (this.dataStore = createStore<DSourceState<T, ST>>({\n items: [],\n proxyItems: [],\n source: [],\n groupingDepth: 0,\n groups: {},\n type,\n trimmed: {},\n groupingCustomRenderer: undefined,\n ...storeData,\n }));\n store.use(proxyPlugin(store));\n store.use(trimmedPlugin(store));\n }\n\n /**\n * full data source update\n * @param source - data column/rgRow source\n * @param grouping - grouping information if present\n */\n updateData(\n source: T[],\n grouping?: {\n depth: number;\n groups?: Groups;\n customRenderer?: GroupLabelTemplateFunc;\n },\n silent = false,\n ) {\n // during full update we do drop trim\n if (!silent) {\n this.store.set('trimmed', {});\n }\n // clear items\n this.store.set('items', []);\n const items = range(0, source?.length || 0);\n\n // set proxy first\n setStore(this.store, {\n source,\n proxyItems: [...items],\n });\n // update data items\n this.store.set('items', items);\n // apply grouping if present\n if (grouping) {\n setStore(this.store, {\n groupingDepth: grouping.depth,\n groups: grouping.groups,\n groupingCustomRenderer: grouping.customRenderer,\n });\n }\n }\n\n addTrimmed(some: Partial<Trimmed>) {\n let trimmed = this.store.get('trimmed');\n trimmed = { ...trimmed, ...some };\n setStore(this.store, { trimmed });\n }\n\n // local data update\n setData(input: Partial<DSourceState<T, ST>>) {\n const data: Partial<DSourceState<T, ST>> = {\n ...input,\n };\n setStore(this.store, data);\n }\n\n refresh() {\n const source = this.store.get('source');\n this.store.set('source', [...source]);\n }\n}\n/**\n * get physical index by virtual\n * @param store - store to process\n */\nexport function getPhysical(\n store: Observable<DSourceState<any, any>>,\n virtualIndex: number,\n) {\n const items = store.get('items');\n return items[virtualIndex];\n}\n\n/**\n * get all visible items\n * @param store - store to process\n */\nexport function getVisibleSourceItem(\n store: Observable<DSourceState<any, any>>,\n) {\n const source = store.get('source');\n return store.get('items').map(v => source[v]);\n}\n\n/**\n * get mapped item from source\n * @param store - store to process\n * @param virtualIndex - virtual index to process\n */\nexport const getSourceItem = (\n store: Observable<DSourceState<any, any>>,\n virtualIndex: number,\n): any | undefined => {\n const items = store.get('items');\n const source = store.get('source');\n return source[items[virtualIndex]];\n};\n\n/**\n * Apple item/model/row value to data source\n * @param store - data source with changes\n * @param modelByIndex - collection of rows/values with virtual indexes to setup/replace in store/data source\n * @param mutate - if true, store will be mutated and whole viewport will be re-rendered\n */\nexport function setSourceByVirtualIndex<T>(\n store: Observable<DSourceState<T, any>>,\n modelByIndex: Record<number, T>,\n mutate = true,\n) {\n const items = store.get('items');\n const source = store.get('source');\n\n for (let virtualIndex in modelByIndex) {\n const realIndex = items[virtualIndex];\n source[realIndex] = modelByIndex[virtualIndex];\n }\n if (mutate) {\n store.set('source', [...source]);\n }\n}\n\n/**\n * set item to source\n * @param store - store to process\n * @param modelByIndex - collection of rows with physical indexes to setup\n * @param mutate - if true, store will be mutated and whole viewport will be re-rendered\n */\nexport function setSourceByPhysicalIndex<T>(\n store: Observable<DSourceState<T, any>>,\n modelByIndex: Record<number, T>,\n mutate = true,\n) {\n const source = store.get('source');\n for (let index in modelByIndex) {\n source[index] = modelByIndex[index];\n }\n if (mutate) {\n store.set('source', [...source]);\n }\n}\n\nexport function setItems<T>(\n store: Observable<DSourceState<T, any>>,\n items: number[],\n) {\n store.set('items', items);\n}\n\nexport function getSourceItemVirtualIndexByProp(\n store: Observable<DSourceState<any, any>>,\n prop: ColumnProp,\n) {\n const items = store.get('items');\n const source = store.get('source');\n const physicalIndex = findIndex(source, { prop });\n return items.indexOf(physicalIndex);\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ export * from './data.proxy';
5
+ export * from './data.store';
6
+ export * from './trimmed.plugin';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/dataSource/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './data.proxy';\nexport * from './data.store';\nexport * from './trimmed.plugin';\n"]}
@@ -0,0 +1,36 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ /**
5
+ * Hide items from main collection
6
+ * But keep them in store
7
+ */
8
+ export const trimmedPlugin = (store) => ({
9
+ set(k, newVal) {
10
+ switch (k) {
11
+ case 'trimmed':
12
+ const proxy = store.get('proxyItems');
13
+ const trimmed = gatherTrimmedItems(newVal);
14
+ const newItems = proxy.reduce((result, v) => {
15
+ // check if present in new trimmed remove from items (filter)
16
+ if (!trimmed[v]) {
17
+ result.push(v);
18
+ }
19
+ return result;
20
+ }, []);
21
+ store.set('items', newItems);
22
+ break;
23
+ }
24
+ },
25
+ });
26
+ export function gatherTrimmedItems(trimmedItems) {
27
+ const trimmed = {};
28
+ for (let trimmedKey in trimmedItems) {
29
+ // trimmed overweight not trimmed
30
+ for (let t in trimmedItems[trimmedKey]) {
31
+ trimmed[t] = trimmed[t] || trimmedItems[trimmedKey][t];
32
+ }
33
+ }
34
+ return trimmed;
35
+ }
36
+ //# sourceMappingURL=trimmed.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trimmed.plugin.js","sourceRoot":"","sources":["../../../src/store/dataSource/trimmed.plugin.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAAuC,EAAyC,EAAE,CAAC,CAAC;IACnH,GAAG,CAAC,CAAC,EAAE,MAAM;QACX,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,SAAS;gBACZ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAiB,CAAC,CAAC;gBAEtD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAgB,EAAE,CAAS,EAAE,EAAE;oBAC5D,6DAA6D;oBAC7D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,CAAC;gBAEP,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC7B,MAAM;QACV,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,YAAqB;IACtD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;QACpC,iCAAiC;QACjC,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { Observable, PluginSubscribe } from '../..';\nimport { DSourceState } from './data.store';\n\nexport type TrimmedEntity = Record<number, boolean>;\nexport type Trimmed = Record<string, TrimmedEntity>;\n\n/**\n * Hide items from main collection\n * But keep them in store\n */\nexport const trimmedPlugin = <T>(store: Observable<DSourceState<T, any>>): PluginSubscribe<DSourceState<T, any>> => ({\n set(k, newVal) {\n switch (k) {\n case 'trimmed':\n const proxy = store.get('proxyItems');\n const trimmed = gatherTrimmedItems(newVal as Trimmed);\n\n const newItems = proxy.reduce((result: number[], v: number) => {\n // check if present in new trimmed remove from items (filter)\n if (!trimmed[v]) {\n result.push(v);\n }\n return result;\n }, []);\n\n store.set('items', newItems);\n break;\n }\n },\n});\n\nexport function gatherTrimmedItems(trimmedItems: Trimmed) {\n const trimmed: TrimmedEntity = {};\n\n for (let trimmedKey in trimmedItems) {\n // trimmed overweight not trimmed\n for (let t in trimmedItems[trimmedKey]) {\n trimmed[t] = trimmed[t] || trimmedItems[trimmedKey][t];\n }\n }\n return trimmed;\n}\n"]}
@@ -1,107 +1,109 @@
1
- import each from 'lodash/each';
2
- import sortedIndex from 'lodash/sortedIndex';
3
- import reduce from 'lodash/reduce';
4
- import { mergeSortedArray } from '../../utils/utils';
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import each from "lodash/each";
5
+ import sortedIndex from "lodash/sortedIndex";
6
+ import reduce from "lodash/reduce";
5
7
  /**
6
8
  * Pre-calculation
7
- * Dimension sizes for each cell
9
+ * Dimension custom sizes for each cell
10
+ * Keeps only changed sizes, skips origin size
8
11
  */
9
- export function calculateDimensionData(state, newSizes) {
10
- let positionIndexes = [];
11
- const positionIndexToItem = {};
12
- const indexToItem = {};
13
- // to compare how real width changed
14
- let newTotal = 0;
15
- // combine all sizes
16
- const sizes = Object.assign(Object.assign({}, state.sizes), newSizes);
17
- // prepare order sorted new sizes and calculate changed real size
18
- let newIndexes = [];
19
- each(newSizes, (size, index) => {
20
- // if first introduced custom size
21
- if (!state.sizes[index]) {
22
- newTotal += size - (state.realSize ? state.originItemSize : 0);
23
- newIndexes.splice(sortedIndex(newIndexes, parseInt(index, 10)), 0, parseInt(index, 10));
24
- }
25
- else {
26
- newTotal += size - state.sizes[index];
27
- }
28
- });
29
- // add order to cached order collection for faster linking
30
- const updatedIndexesCache = mergeSortedArray(state.indexes, newIndexes);
31
- // fill new coordinates
32
- reduce(updatedIndexesCache, (previous, itemIndex, i) => {
33
- const newItem = {
34
- itemIndex,
35
- start: 0,
36
- end: 0,
12
+ export function calculateDimensionData(originItemSize, newSizes = {}) {
13
+ const positionIndexes = [];
14
+ const positionIndexToItem = {};
15
+ const indexToItem = {};
16
+ // combine all new sizes
17
+ const sizes = Object.assign({}, newSizes);
18
+ // prepare order sorted new sizes and calculate changed real size
19
+ let newIndexes = [];
20
+ each(newSizes, (_, i) => {
21
+ const index = parseInt(i, 10);
22
+ newIndexes[sortedIndex(newIndexes, index)] = index;
23
+ });
24
+ // fill new coordinates based on what is changed
25
+ reduce(newIndexes, (previous, itemIndex, i) => {
26
+ const newItem = {
27
+ itemIndex,
28
+ start: 0,
29
+ end: 0,
30
+ };
31
+ // if previous item was changed too
32
+ if (previous) {
33
+ const itemsBetween = (itemIndex - previous.itemIndex - 1) * originItemSize;
34
+ newItem.start = itemsBetween + previous.end;
35
+ }
36
+ else {
37
+ newItem.start = itemIndex * originItemSize;
38
+ }
39
+ newItem.end = newItem.start + sizes[itemIndex];
40
+ positionIndexes.push(newItem.start);
41
+ indexToItem[itemIndex] = positionIndexToItem[i] = newItem;
42
+ return newItem;
43
+ }, undefined);
44
+ return {
45
+ indexes: newIndexes,
46
+ positionIndexes: [...positionIndexes],
47
+ positionIndexToItem: Object.assign({}, positionIndexToItem),
48
+ indexToItem,
49
+ sizes,
50
+ };
51
+ }
52
+ /**
53
+ * Calculate item by position
54
+ */
55
+ export const getItemByPosition = ({ indexes, positionIndexes, originItemSize, positionIndexToItem, }, pos) => {
56
+ const item = {
57
+ itemIndex: 0,
58
+ start: 0,
59
+ end: 0,
37
60
  };
38
- if (previous) {
39
- newItem.start = (itemIndex - previous.itemIndex - 1) * state.originItemSize + previous.end;
61
+ const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;
62
+ // not found or first index
63
+ if (!currentPlace) {
64
+ item.itemIndex = Math.floor(pos / originItemSize);
65
+ item.start = item.itemIndex * originItemSize;
66
+ item.end = item.start + originItemSize;
67
+ return item;
40
68
  }
41
- else {
42
- newItem.start = itemIndex * state.originItemSize;
69
+ const positionItem = positionIndexToItem[currentPlace - 1];
70
+ // if item has specified size
71
+ if (positionItem.end > pos) {
72
+ return positionItem;
43
73
  }
44
- newItem.end = newItem.start + sizes[itemIndex];
45
- positionIndexes.push(newItem.start);
46
- indexToItem[itemIndex] = positionIndexToItem[i] = newItem;
47
- return newItem;
48
- }, undefined);
49
- return {
50
- indexes: updatedIndexesCache,
51
- positionIndexes: [...positionIndexes],
52
- positionIndexToItem: Object.assign({}, positionIndexToItem),
53
- indexToItem,
54
- realSize: state.realSize + newTotal,
55
- sizes,
56
- };
57
- }
58
- export function getItemByPosition({ indexes, positionIndexes, originItemSize, positionIndexToItem }, pos) {
59
- const item = {
60
- itemIndex: 0,
61
- start: 0,
62
- end: 0,
63
- };
64
- const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;
65
- // not found or first index
66
- if (!currentPlace) {
67
- item.itemIndex = Math.floor(pos / originItemSize);
68
- item.start = item.itemIndex * originItemSize;
74
+ // special size item was present before
75
+ const relativePos = pos - positionItem.end;
76
+ const relativeIndex = Math.floor(relativePos / originItemSize);
77
+ item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;
78
+ item.start = positionItem.end + relativeIndex * originItemSize;
69
79
  item.end = item.start + originItemSize;
70
80
  return item;
71
- }
72
- const positionItem = positionIndexToItem[currentPlace - 1];
73
- // if item has specified size
74
- if (positionItem.end > pos) {
75
- return positionItem;
76
- }
77
- // special size item was present before
78
- const relativePos = pos - positionItem.end;
79
- const relativeIndex = Math.floor(relativePos / originItemSize);
80
- item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;
81
- item.start = positionItem.end + relativeIndex * originItemSize;
82
- item.end = item.start + originItemSize;
83
- return item;
84
- }
81
+ };
85
82
  export function getItemByIndex(dimension, index) {
86
- let item = {
87
- itemIndex: index,
88
- start: 0,
89
- end: 0,
90
- };
91
- // if item has specified size
92
- if (dimension.indexToItem[index]) {
93
- return dimension.indexToItem[index];
94
- }
95
- const currentPlace = dimension.indexes.length ? sortedIndex(dimension.indexes, index) : 0;
96
- // not found or first index
97
- if (!currentPlace) {
98
- item.start = item.itemIndex * dimension.originItemSize;
83
+ let item = {
84
+ itemIndex: index,
85
+ start: 0,
86
+ end: 0,
87
+ };
88
+ // if item has specified size
89
+ if (dimension.indexToItem[index]) {
90
+ return dimension.indexToItem[index];
91
+ }
92
+ const currentPlace = dimension.indexes.length
93
+ ? sortedIndex(dimension.indexes, index)
94
+ : 0;
95
+ // not found or first index
96
+ if (!currentPlace) {
97
+ item.start = item.itemIndex * dimension.originItemSize;
98
+ item.end = item.start + dimension.originItemSize;
99
+ return item;
100
+ }
101
+ // special size item was present before
102
+ const positionItem = dimension.indexToItem[dimension.indexes[currentPlace - 1]];
103
+ item.start =
104
+ positionItem.end +
105
+ (index - positionItem.itemIndex - 1) * dimension.originItemSize;
99
106
  item.end = item.start + dimension.originItemSize;
100
107
  return item;
101
- }
102
- // special size item was present before
103
- const positionItem = dimension.indexToItem[dimension.indexes[currentPlace - 1]];
104
- item.start = positionItem.end + (index - positionItem.itemIndex - 1) * dimension.originItemSize;
105
- item.end = item.start + dimension.originItemSize;
106
- return item;
107
108
  }
109
+ //# sourceMappingURL=dimension.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimension.helpers.js","sourceRoot":"","sources":["../../../src/store/dimension/dimension.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import each from 'lodash/each';\nimport sortedIndex from 'lodash/sortedIndex';\nimport reduce from 'lodash/reduce';\nimport {\n DimensionSettingsState,\n PositionItem,\n ViewSettingSizeProp,\n} from '../..';\n\nexport type DimensionPosition = Pick<\n DimensionSettingsState,\n 'indexes' | 'positionIndexes' | 'originItemSize' | 'positionIndexToItem'\n>;\nexport type DimensionIndexInput = Pick<\n DimensionSettingsState,\n 'indexes' | 'originItemSize' | 'indexToItem'\n>;\nexport type DimensionSize = Pick<\n DimensionSettingsState,\n | 'indexes'\n | 'positionIndexes'\n | 'positionIndexToItem'\n | 'indexToItem'\n | 'realSize'\n | 'sizes'\n>;\n/**\n * Pre-calculation\n * Dimension custom sizes for each cell\n * Keeps only changed sizes, skips origin size\n */\nexport function calculateDimensionData(\n originItemSize: number,\n newSizes: ViewSettingSizeProp = {},\n) {\n const positionIndexes: number[] = [];\n const positionIndexToItem: { [position: number]: PositionItem } = {};\n const indexToItem: { [index: number]: PositionItem } = {};\n\n // combine all new sizes\n const sizes = { ...newSizes };\n // prepare order sorted new sizes and calculate changed real size\n let newIndexes: number[] = [];\n each(newSizes, (_, i) => {\n const index = parseInt(i, 10);\n newIndexes[sortedIndex(newIndexes, index)] = index;\n });\n // fill new coordinates based on what is changed\n reduce(\n newIndexes,\n (previous: PositionItem | undefined, itemIndex: number, i: number) => {\n const newItem: PositionItem = {\n itemIndex,\n start: 0,\n end: 0,\n };\n // if previous item was changed too\n if (previous) {\n const itemsBetween =\n (itemIndex - previous.itemIndex - 1) * originItemSize;\n newItem.start = itemsBetween + previous.end;\n } else {\n newItem.start = itemIndex * originItemSize;\n }\n newItem.end = newItem.start + sizes[itemIndex];\n positionIndexes.push(newItem.start);\n indexToItem[itemIndex] = positionIndexToItem[i] = newItem;\n return newItem;\n },\n undefined,\n );\n\n return {\n indexes: newIndexes,\n positionIndexes: [...positionIndexes],\n positionIndexToItem: { ...positionIndexToItem },\n indexToItem,\n sizes,\n };\n}\n\n/**\n * Calculate item by position\n */\nexport const getItemByPosition = (\n {\n indexes,\n positionIndexes,\n originItemSize,\n positionIndexToItem,\n }: DimensionPosition,\n pos: number,\n) => {\n const item: PositionItem = {\n itemIndex: 0,\n start: 0,\n end: 0,\n };\n const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;\n // not found or first index\n if (!currentPlace) {\n item.itemIndex = Math.floor(pos / originItemSize);\n item.start = item.itemIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n }\n const positionItem = positionIndexToItem[currentPlace - 1];\n // if item has specified size\n if (positionItem.end > pos) {\n return positionItem;\n }\n // special size item was present before\n const relativePos = pos - positionItem.end;\n const relativeIndex = Math.floor(relativePos / originItemSize);\n item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;\n item.start = positionItem.end + relativeIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n}\n\nexport function getItemByIndex(dimension: DimensionIndexInput, index: number) {\n let item: PositionItem = {\n itemIndex: index,\n start: 0,\n end: 0,\n };\n // if item has specified size\n if (dimension.indexToItem[index]) {\n return dimension.indexToItem[index];\n }\n\n const currentPlace = dimension.indexes.length\n ? sortedIndex(dimension.indexes, index)\n : 0;\n // not found or first index\n if (!currentPlace) {\n item.start = item.itemIndex * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n }\n // special size item was present before\n\n const positionItem =\n dimension.indexToItem[dimension.indexes[currentPlace - 1]];\n item.start =\n positionItem.end +\n (index - positionItem.itemIndex - 1) * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n}\n"]}