@revolist/revogrid 3.6.7 → 3.6.9

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 (450) hide show
  1. package/custom-element/_baseIteratee.js +2 -0
  2. package/custom-element/_baseIteratee.js.map +1 -0
  3. package/custom-element/columnService.js +5 -3
  4. package/custom-element/columnService.js.map +1 -0
  5. package/custom-element/consts.js +2 -0
  6. package/custom-element/consts.js.map +1 -0
  7. package/custom-element/data.store.js +54 -32
  8. package/custom-element/data.store.js.map +1 -0
  9. package/custom-element/debounce.js +2 -0
  10. package/custom-element/debounce.js.map +1 -0
  11. package/custom-element/dimension.helpers.js +2 -0
  12. package/custom-element/dimension.helpers.js.map +1 -0
  13. package/custom-element/each.js +2 -0
  14. package/custom-element/each.js.map +1 -0
  15. package/custom-element/filter.button.js +2 -0
  16. package/custom-element/filter.button.js.map +1 -0
  17. package/custom-element/identity.js +2 -0
  18. package/custom-element/identity.js.map +1 -0
  19. package/custom-element/index.d.ts +22 -0
  20. package/custom-element/index.js +3 -1
  21. package/custom-element/index.js.map +1 -0
  22. package/custom-element/isSymbol.js +2 -0
  23. package/custom-element/isSymbol.js.map +1 -0
  24. package/custom-element/keys.js +2 -0
  25. package/custom-element/keys.js.map +1 -0
  26. package/custom-element/localScrollService.js +2 -0
  27. package/custom-element/localScrollService.js.map +1 -0
  28. package/custom-element/resize-observer.js +2 -0
  29. package/custom-element/resize-observer.js.map +1 -0
  30. package/custom-element/revo-grid.js +32 -99
  31. package/custom-element/revo-grid.js.map +1 -0
  32. package/custom-element/revogr-clipboard.js +4 -4
  33. package/custom-element/revogr-clipboard.js.map +1 -0
  34. package/custom-element/revogr-data.js +2 -0
  35. package/custom-element/revogr-data.js.map +1 -0
  36. package/custom-element/revogr-data2.js +13 -2
  37. package/custom-element/revogr-data2.js.map +1 -0
  38. package/custom-element/revogr-edit.js +2 -0
  39. package/custom-element/revogr-edit.js.map +1 -0
  40. package/custom-element/revogr-edit2.js +6 -2
  41. package/custom-element/revogr-edit2.js.map +1 -0
  42. package/custom-element/revogr-filter-panel.js +10 -6
  43. package/custom-element/revogr-filter-panel.js.map +1 -0
  44. package/custom-element/revogr-focus.js +2 -0
  45. package/custom-element/revogr-focus.js.map +1 -0
  46. package/custom-element/revogr-focus2.js +8 -2
  47. package/custom-element/revogr-focus2.js.map +1 -0
  48. package/custom-element/revogr-header.js +2 -0
  49. package/custom-element/revogr-header.js.map +1 -0
  50. package/custom-element/revogr-header2.js +10 -2
  51. package/custom-element/revogr-header2.js.map +1 -0
  52. package/custom-element/revogr-order-editor.js +2 -0
  53. package/custom-element/revogr-order-editor.js.map +1 -0
  54. package/custom-element/revogr-order-editor2.js +7 -2
  55. package/custom-element/revogr-order-editor2.js.map +1 -0
  56. package/custom-element/revogr-overlay-selection.js +2 -0
  57. package/custom-element/revogr-overlay-selection.js.map +1 -0
  58. package/custom-element/revogr-overlay-selection2.js +41 -39
  59. package/custom-element/revogr-overlay-selection2.js.map +1 -0
  60. package/custom-element/revogr-row-headers.js +2 -0
  61. package/custom-element/revogr-row-headers.js.map +1 -0
  62. package/custom-element/revogr-row-headers2.js +9 -2
  63. package/custom-element/revogr-row-headers2.js.map +1 -0
  64. package/custom-element/revogr-scroll-virtual.js +2 -0
  65. package/custom-element/revogr-scroll-virtual.js.map +1 -0
  66. package/custom-element/revogr-scroll-virtual2.js +5 -2
  67. package/custom-element/revogr-scroll-virtual2.js.map +1 -0
  68. package/custom-element/revogr-temp-range.js +2 -0
  69. package/custom-element/revogr-temp-range.js.map +1 -0
  70. package/custom-element/revogr-temp-range2.js +7 -3
  71. package/custom-element/revogr-temp-range2.js.map +1 -0
  72. package/custom-element/revogr-viewport-scroll.js +2 -0
  73. package/custom-element/revogr-viewport-scroll.js.map +1 -0
  74. package/custom-element/revogr-viewport-scroll2.js +5 -10
  75. package/custom-element/revogr-viewport-scroll2.js.map +1 -0
  76. package/custom-element/selection.utils.js +2 -0
  77. package/custom-element/selection.utils.js.map +1 -0
  78. package/custom-element/toInteger.js +2 -0
  79. package/custom-element/toInteger.js.map +1 -0
  80. package/custom-element/toNumber.js +2 -0
  81. package/custom-element/toNumber.js.map +1 -0
  82. package/custom-element/utils.js +2 -0
  83. package/custom-element/utils.js.map +1 -0
  84. package/dist/cjs/{debounce-6cea2774.js → debounce-a0628875.js} +3 -1
  85. package/dist/cjs/debounce-a0628875.js.map +1 -0
  86. package/dist/cjs/{index-cb904e00.js → index-c209f988.js} +667 -315
  87. package/dist/cjs/index-c209f988.js.map +1 -0
  88. package/dist/cjs/index.cjs.js +2 -0
  89. package/dist/cjs/index.cjs.js.map +1 -0
  90. package/dist/cjs/loader.cjs.js +6 -26
  91. package/dist/cjs/loader.cjs.js.map +1 -0
  92. package/dist/cjs/{resize-observer-bf327d6a.js → resize-observer-cc749e66.js} +2 -0
  93. package/dist/cjs/resize-observer-cc749e66.js.map +1 -0
  94. package/dist/cjs/revo-grid.cjs.js +9 -60
  95. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  96. package/dist/cjs/revo-grid_11.cjs.entry.js +169 -180
  97. package/dist/cjs/revo-grid_11.cjs.entry.js.map +1 -0
  98. package/dist/cjs/revogr-clipboard.cjs.entry.js +4 -3
  99. package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -0
  100. package/dist/cjs/revogr-filter-panel.cjs.entry.js +11 -6
  101. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  102. package/dist/collection/collection-manifest.json +16 -16
  103. package/dist/collection/components/button/button.js +2 -1
  104. package/dist/collection/components/button/button.js.map +1 -0
  105. package/dist/collection/components/clipboard/revogr-clipboard.js +86 -80
  106. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  107. package/dist/collection/components/data/cellRenderer.js +5 -5
  108. package/dist/collection/components/data/cellRenderer.js.map +1 -0
  109. package/dist/collection/components/data/columnService.js +9 -8
  110. package/dist/collection/components/data/columnService.js.map +1 -0
  111. package/dist/collection/components/data/revogr-data.js +258 -226
  112. package/dist/collection/components/data/revogr-data.js.map +1 -0
  113. package/dist/collection/components/data/rowRenderer.js +2 -1
  114. package/dist/collection/components/data/rowRenderer.js.map +1 -0
  115. package/dist/collection/components/header/headerCellRenderer.js +6 -7
  116. package/dist/collection/components/header/headerCellRenderer.js.map +1 -0
  117. package/dist/collection/components/header/headerRenderer.js +7 -8
  118. package/dist/collection/components/header/headerRenderer.js.map +1 -0
  119. package/dist/collection/components/header/revogr-header.js +259 -233
  120. package/dist/collection/components/header/revogr-header.js.map +1 -0
  121. package/dist/collection/components/order/orderRenderer.js +3 -6
  122. package/dist/collection/components/order/orderRenderer.js.map +1 -0
  123. package/dist/collection/components/order/revogr-order-editor.js +279 -252
  124. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  125. package/dist/collection/components/order/rowOrderService.js +2 -1
  126. package/dist/collection/components/order/rowOrderService.js.map +1 -0
  127. package/dist/collection/components/overlay/autofill.service.js +8 -7
  128. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  129. package/dist/collection/components/overlay/clipboard.service.js +4 -3
  130. package/dist/collection/components/overlay/clipboard.service.js.map +1 -0
  131. package/dist/collection/components/overlay/editors/edit.utils.js +2 -1
  132. package/dist/collection/components/overlay/editors/edit.utils.js.map +1 -0
  133. package/dist/collection/components/overlay/editors/text.js +4 -3
  134. package/dist/collection/components/overlay/editors/text.js.map +1 -0
  135. package/dist/collection/components/overlay/keyboard.service.js +6 -5
  136. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  137. package/dist/collection/components/overlay/revogr-edit.js +112 -96
  138. package/dist/collection/components/overlay/revogr-edit.js.map +1 -0
  139. package/dist/collection/components/overlay/revogr-overlay-selection.js +546 -482
  140. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  141. package/dist/collection/components/overlay/selection.utils.js +2 -1
  142. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  143. package/dist/collection/components/revo-grid/revo-grid-style.css +7 -13
  144. package/dist/collection/components/revo-grid/revo-grid.js +1668 -1638
  145. package/dist/collection/components/revo-grid/revo-grid.js.map +1 -0
  146. package/dist/collection/components/revo-grid/viewport.helpers.js +1 -0
  147. package/dist/collection/components/revo-grid/viewport.helpers.js.map +1 -0
  148. package/dist/collection/components/revo-grid/viewport.interfaces.js +1 -3
  149. package/dist/collection/components/revo-grid/viewport.interfaces.js.map +1 -0
  150. package/dist/collection/components/revo-grid/viewport.js +4 -7
  151. package/dist/collection/components/revo-grid/viewport.js.map +1 -0
  152. package/dist/collection/components/revo-grid/viewport.resize.service.js +3 -2
  153. package/dist/collection/components/revo-grid/viewport.resize.service.js.map +1 -0
  154. package/dist/collection/components/revo-grid/viewport.scrolling.service.js +1 -0
  155. package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +1 -0
  156. package/dist/collection/components/revo-grid/viewport.section.js +5 -7
  157. package/dist/collection/components/revo-grid/viewport.section.js.map +1 -0
  158. package/dist/collection/components/revo-grid/viewport.service.js +7 -6
  159. package/dist/collection/components/revo-grid/viewport.service.js.map +1 -0
  160. package/dist/collection/components/rowHeaders/revogr-row-headers.js +161 -147
  161. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  162. package/dist/collection/components/rowHeaders/row-header-render.js +1 -0
  163. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  164. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +2 -4
  165. package/dist/collection/components/scroll/revogr-viewport-scroll.js +172 -168
  166. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  167. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +159 -137
  168. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  169. package/dist/collection/components/selection-focus/revogr-focus.js +153 -128
  170. package/dist/collection/components/selection-focus/revogr-focus.js.map +1 -0
  171. package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +1 -1
  172. package/dist/collection/components/selection-temp-range/revogr-temp-range.js +92 -77
  173. package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +1 -0
  174. package/dist/collection/global/global.js +3 -2
  175. package/dist/collection/global/global.js.map +1 -0
  176. package/dist/collection/index.js +1 -0
  177. package/dist/collection/index.js.map +1 -0
  178. package/dist/collection/plugins/autoSizeColumn.js +7 -6
  179. package/dist/collection/plugins/autoSizeColumn.js.map +1 -0
  180. package/dist/collection/plugins/basePlugin.js +1 -0
  181. package/dist/collection/plugins/basePlugin.js.map +1 -0
  182. package/dist/collection/plugins/dispatcher.js +1 -0
  183. package/dist/collection/plugins/dispatcher.js.map +1 -0
  184. package/dist/collection/plugins/export/csv.js +2 -1
  185. package/dist/collection/plugins/export/csv.js.map +1 -0
  186. package/dist/collection/plugins/export/export.plugin.js +6 -5
  187. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  188. package/dist/collection/plugins/export/types.js +1 -3
  189. package/dist/collection/plugins/export/types.js.map +1 -0
  190. package/dist/collection/plugins/filter/conditions/equal.js +1 -0
  191. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  192. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +1 -0
  193. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  194. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +3 -2
  195. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  196. package/dist/collection/plugins/filter/conditions/number/lessThan.js +1 -0
  197. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  198. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +3 -2
  199. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  200. package/dist/collection/plugins/filter/conditions/set.js +1 -0
  201. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  202. package/dist/collection/plugins/filter/conditions/string/beginswith.js +1 -0
  203. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  204. package/dist/collection/plugins/filter/conditions/string/contains.js +1 -0
  205. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  206. package/dist/collection/plugins/filter/filter.button.js +7 -12
  207. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  208. package/dist/collection/plugins/filter/filter.plugin.js +5 -4
  209. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  210. package/dist/collection/plugins/filter/filter.pop.js +254 -238
  211. package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
  212. package/dist/collection/plugins/filter/filter.service.js +9 -8
  213. package/dist/collection/plugins/filter/filter.service.js.map +1 -0
  214. package/dist/collection/plugins/filter/filter.style.css +2 -3
  215. package/dist/collection/plugins/filter/filter.types.js +1 -3
  216. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  217. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +6 -5
  218. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
  219. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +4 -3
  220. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
  221. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +4 -3
  222. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
  223. package/dist/collection/plugins/groupingRow/grouping.const.js +2 -1
  224. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  225. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +3 -2
  226. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  227. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +14 -13
  228. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  229. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +6 -10
  230. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  231. package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -3
  232. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  233. package/dist/collection/plugins/groupingRow/grouping.service.js +2 -1
  234. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  235. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +2 -1
  236. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  237. package/dist/collection/plugins/moveColumn/columnDragPlugin.js +8 -7
  238. package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +1 -0
  239. package/dist/collection/plugins/moveColumn/columnOrderHandler.js +2 -1
  240. package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +1 -0
  241. package/dist/collection/plugins/sorting/sorting.plugin.js +8 -7
  242. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  243. package/dist/collection/plugins/sorting/sorting.sign.js +2 -1
  244. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  245. package/dist/collection/plugins/stretchPlugin.js +4 -3
  246. package/dist/collection/plugins/stretchPlugin.js.map +1 -0
  247. package/dist/collection/plugins/trimmed/trimmed.plugin.js +1 -0
  248. package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +1 -0
  249. package/dist/collection/services/cell.helpers.js +2 -1
  250. package/dist/collection/services/cell.helpers.js.map +1 -0
  251. package/dist/collection/services/column.data.provider.js +14 -13
  252. package/dist/collection/services/column.data.provider.js.map +1 -0
  253. package/dist/collection/services/data.provider.js +4 -3
  254. package/dist/collection/services/data.provider.js.map +1 -0
  255. package/dist/collection/services/dimension.provider.js +5 -4
  256. package/dist/collection/services/dimension.provider.js.map +1 -0
  257. package/dist/collection/services/localScrollService.js +2 -1
  258. package/dist/collection/services/localScrollService.js.map +1 -0
  259. package/dist/collection/services/resizable.directive.js +3 -4
  260. package/dist/collection/services/resizable.directive.js.map +1 -0
  261. package/dist/collection/services/selection.store.connector.js +3 -2
  262. package/dist/collection/services/selection.store.connector.js.map +1 -0
  263. package/dist/collection/services/viewport.provider.js +4 -3
  264. package/dist/collection/services/viewport.provider.js.map +1 -0
  265. package/dist/collection/store/dataSource/data.proxy.js +1 -0
  266. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  267. package/dist/collection/store/dataSource/data.store.js +10 -9
  268. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  269. package/dist/collection/store/dimension/dimension.helpers.js +5 -4
  270. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  271. package/dist/collection/store/dimension/dimension.store.js +9 -7
  272. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  273. package/dist/collection/store/selection/selection.helpers.js +2 -1
  274. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  275. package/dist/collection/store/selection/selection.store.js +4 -3
  276. package/dist/collection/store/selection/selection.store.js.map +1 -0
  277. package/dist/collection/store/selection/selection.store.service.js +2 -1
  278. package/dist/collection/store/selection/selection.store.service.js.map +1 -0
  279. package/dist/collection/store/storeTypes.js +1 -0
  280. package/dist/collection/store/storeTypes.js.map +1 -0
  281. package/dist/collection/store/viewPort/viewport.helpers.js +2 -1
  282. package/dist/collection/store/viewPort/viewport.helpers.js.map +1 -0
  283. package/dist/collection/store/viewPort/viewport.store.js +4 -3
  284. package/dist/collection/store/viewPort/viewport.store.js.map +1 -0
  285. package/dist/collection/themeManager/theme.compact.js +1 -0
  286. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  287. package/dist/collection/themeManager/theme.default.js +1 -0
  288. package/dist/collection/themeManager/theme.default.js.map +1 -0
  289. package/dist/collection/themeManager/theme.material.js +1 -0
  290. package/dist/collection/themeManager/theme.material.js.map +1 -0
  291. package/dist/collection/themeManager/themeService.js +9 -8
  292. package/dist/collection/themeManager/themeService.js.map +1 -0
  293. package/dist/collection/utils/closestPolifill.js +1 -0
  294. package/dist/collection/utils/closestPolifill.js.map +1 -0
  295. package/dist/collection/utils/consts.js +1 -0
  296. package/dist/collection/utils/consts.js.map +1 -0
  297. package/dist/collection/utils/generateAlphabetHeader.js +1 -0
  298. package/dist/collection/utils/generateAlphabetHeader.js.map +1 -0
  299. package/dist/collection/utils/keyCodes.js +1 -0
  300. package/dist/collection/utils/keyCodes.js.map +1 -0
  301. package/dist/collection/utils/keyCodes.utils.js +4 -3
  302. package/dist/collection/utils/keyCodes.utils.js.map +1 -0
  303. package/dist/collection/utils/platform.js +1 -0
  304. package/dist/collection/utils/platform.js.map +1 -0
  305. package/dist/collection/utils/resizeObserver.js +1 -0
  306. package/dist/collection/utils/resizeObserver.js.map +1 -0
  307. package/dist/collection/utils/store.utils.js +1 -0
  308. package/dist/collection/utils/store.utils.js.map +1 -0
  309. package/dist/collection/utils/utils.js +1 -0
  310. package/dist/collection/utils/utils.js.map +1 -0
  311. package/dist/esm/{debounce-e4e6dd45.js → debounce-cb7aac48.js} +3 -1
  312. package/dist/esm/debounce-cb7aac48.js.map +1 -0
  313. package/dist/esm/{index-6f753b3c.js → index-f21f8a13.js} +667 -311
  314. package/dist/esm/index-f21f8a13.js.map +1 -0
  315. package/dist/esm/index.js +2 -0
  316. package/dist/esm/index.js.map +1 -0
  317. package/dist/esm/loader.js +6 -26
  318. package/dist/esm/loader.js.map +1 -0
  319. package/dist/esm/{resize-observer-00c48d78.js → resize-observer-4f34a839.js} +2 -0
  320. package/dist/esm/resize-observer-4f34a839.js.map +1 -0
  321. package/dist/esm/revo-grid.js +7 -61
  322. package/dist/esm/revo-grid.js.map +1 -0
  323. package/dist/esm/revo-grid_11.entry.js +169 -180
  324. package/dist/esm/revo-grid_11.entry.js.map +1 -0
  325. package/dist/esm/revogr-clipboard.entry.js +4 -3
  326. package/dist/esm/revogr-clipboard.entry.js.map +1 -0
  327. package/dist/esm/revogr-filter-panel.entry.js +11 -6
  328. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  329. package/dist/esm-es5/{debounce-e4e6dd45.js → debounce-cb7aac48.js} +2 -1
  330. package/dist/esm-es5/debounce-cb7aac48.js.map +1 -0
  331. package/dist/esm-es5/index-f21f8a13.js +5 -0
  332. package/dist/esm-es5/index-f21f8a13.js.map +1 -0
  333. package/dist/esm-es5/index.js +1 -0
  334. package/dist/esm-es5/index.js.map +1 -0
  335. package/dist/esm-es5/loader.js +2 -1
  336. package/dist/esm-es5/loader.js.map +1 -0
  337. package/dist/esm-es5/{resize-observer-00c48d78.js → resize-observer-4f34a839.js} +2 -1
  338. package/dist/esm-es5/resize-observer-4f34a839.js.map +1 -0
  339. package/dist/esm-es5/revo-grid.js +2 -1
  340. package/dist/esm-es5/revo-grid.js.map +1 -0
  341. package/dist/esm-es5/revo-grid_11.entry.js +3 -2
  342. package/dist/esm-es5/revo-grid_11.entry.js.map +1 -0
  343. package/dist/esm-es5/revogr-clipboard.entry.js +3 -2
  344. package/dist/esm-es5/revogr-clipboard.entry.js.map +1 -0
  345. package/dist/esm-es5/revogr-filter-panel.entry.js +3 -2
  346. package/dist/esm-es5/revogr-filter-panel.entry.js.map +1 -0
  347. package/dist/revo-grid/{debounce-5a33c710.system.js → debounce-3aba7c4d.system.js} +2 -1
  348. package/dist/revo-grid/debounce-3aba7c4d.system.js.map +1 -0
  349. package/dist/revo-grid/debounce-cb7aac48.js +5 -0
  350. package/dist/revo-grid/debounce-cb7aac48.js.map +1 -0
  351. package/dist/revo-grid/index-20224007.system.js +6 -0
  352. package/dist/revo-grid/index-20224007.system.js.map +1 -0
  353. package/dist/revo-grid/index-f21f8a13.js +6 -0
  354. package/dist/revo-grid/index-f21f8a13.js.map +1 -0
  355. package/dist/revo-grid/index.esm.js +2 -0
  356. package/dist/revo-grid/index.esm.js.map +1 -0
  357. package/dist/revo-grid/index.system.js +2 -1
  358. package/dist/revo-grid/index.system.js.map +1 -0
  359. package/dist/revo-grid/{resize-observer-8af0bc0e.system.js → resize-observer-2a36c9e4.system.js} +2 -1
  360. package/dist/revo-grid/resize-observer-2a36c9e4.system.js.map +1 -0
  361. package/dist/revo-grid/resize-observer-4f34a839.js +5 -0
  362. package/dist/revo-grid/resize-observer-4f34a839.js.map +1 -0
  363. package/dist/revo-grid/revo-grid.esm.js +2 -1
  364. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  365. package/dist/revo-grid/revo-grid.js +1 -7
  366. package/dist/revo-grid/revo-grid.system.js +2 -1
  367. package/dist/revo-grid/revo-grid.system.js.map +1 -0
  368. package/dist/revo-grid/revo-grid_11.entry.js +2 -1
  369. package/dist/revo-grid/revo-grid_11.entry.js.map +1 -0
  370. package/dist/revo-grid/revo-grid_11.system.entry.js +3 -2
  371. package/dist/revo-grid/revo-grid_11.system.entry.js.map +1 -0
  372. package/dist/revo-grid/revogr-clipboard.entry.js +2 -1
  373. package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -0
  374. package/dist/revo-grid/revogr-clipboard.system.entry.js +3 -2
  375. package/dist/revo-grid/revogr-clipboard.system.entry.js.map +1 -0
  376. package/dist/revo-grid/revogr-filter-panel.entry.js +2 -1
  377. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  378. package/dist/revo-grid/revogr-filter-panel.system.entry.js +3 -2
  379. package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +1 -0
  380. package/dist/types/components/data/cellRenderer.d.ts +1 -1
  381. package/dist/types/components/data/columnService.d.ts +4 -4
  382. package/dist/types/components/header/headerCellRenderer.d.ts +1 -1
  383. package/dist/types/components/header/headerRenderer.d.ts +1 -1
  384. package/dist/types/components/order/orderRenderer.d.ts +1 -1
  385. package/dist/types/components/order/rowOrderService.d.ts +1 -1
  386. package/dist/types/components/overlay/autofill.service.d.ts +1 -1
  387. package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
  388. package/dist/types/components/overlay/editors/text.d.ts +1 -1
  389. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  390. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +9 -3
  391. package/dist/types/components/overlay/selection.utils.d.ts +1 -1
  392. package/dist/types/components/revo-grid/viewport.d.ts +1 -1
  393. package/dist/types/components/revo-grid/viewport.interfaces.d.ts +5 -5
  394. package/dist/types/components/revo-grid/viewport.scrolling.service.d.ts +1 -1
  395. package/dist/types/components/revo-grid/viewport.section.d.ts +1 -1
  396. package/dist/types/components/revo-grid/viewport.service.d.ts +3 -3
  397. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  398. package/dist/types/components.d.ts +26 -0
  399. package/dist/types/plugins/autoSizeColumn.d.ts +1 -1
  400. package/dist/types/plugins/dispatcher.d.ts +1 -1
  401. package/dist/types/plugins/export/csv.d.ts +1 -1
  402. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  403. package/dist/types/plugins/export/types.d.ts +2 -2
  404. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  405. package/dist/types/plugins/filter/filter.plugin.d.ts +6 -6
  406. package/dist/types/plugins/filter/filter.pop.d.ts +4 -4
  407. package/dist/types/plugins/filter/filter.service.d.ts +1 -1
  408. package/dist/types/plugins/filter/filter.types.d.ts +5 -5
  409. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +1 -1
  410. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +1 -1
  411. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +1 -1
  412. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  413. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +5 -5
  414. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  415. package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +5 -5
  416. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -1
  417. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  418. package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +2 -2
  419. package/dist/types/services/column.data.provider.d.ts +4 -4
  420. package/dist/types/services/data.provider.d.ts +1 -1
  421. package/dist/types/services/dimension.provider.d.ts +2 -2
  422. package/dist/types/services/localScrollService.d.ts +1 -1
  423. package/dist/types/services/resizable.directive.d.ts +2 -2
  424. package/dist/types/services/selection.store.connector.d.ts +2 -2
  425. package/dist/types/services/viewport.provider.d.ts +1 -1
  426. package/dist/types/stencil-public-runtime.d.ts +95 -20
  427. package/dist/types/store/dataSource/data.proxy.d.ts +1 -1
  428. package/dist/types/store/dataSource/data.store.d.ts +4 -4
  429. package/dist/types/store/dimension/dimension.helpers.d.ts +3 -3
  430. package/dist/types/store/selection/selection.store.d.ts +1 -1
  431. package/dist/types/store/viewPort/viewport.helpers.d.ts +2 -2
  432. package/loader/index.d.ts +10 -1
  433. package/loader/package.json +1 -0
  434. package/package.json +10 -10
  435. package/dist/cjs/css-shim-9f5bc84d.js +0 -9
  436. package/dist/cjs/dom-fcb646f0.js +0 -78
  437. package/dist/esm/css-shim-e1e1ea5e.js +0 -7
  438. package/dist/esm/dom-21bd1807.js +0 -76
  439. package/dist/esm/polyfills/css-shim.js +0 -1
  440. package/dist/esm-es5/css-shim-e1e1ea5e.js +0 -4
  441. package/dist/esm-es5/dom-21bd1807.js +0 -24
  442. package/dist/esm-es5/index-6f753b3c.js +0 -4
  443. package/dist/revo-grid/css-shim-bcf89cc0.system.js +0 -4
  444. package/dist/revo-grid/css-shim-e1e1ea5e.js +0 -4
  445. package/dist/revo-grid/debounce-726bdadb.js +0 -4
  446. package/dist/revo-grid/dom-21bd1807.js +0 -22
  447. package/dist/revo-grid/dom-726246e2.system.js +0 -24
  448. package/dist/revo-grid/index-f14b41a0.system.js +0 -5
  449. package/dist/revo-grid/index-f30d1de1.js +0 -5
  450. package/dist/revo-grid/resize-observer-00c48d78.js +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revo-grid.js","sourceRoot":"","sources":["../../../src/components/revo-grid/revo-grid.tsx"],"names":[],"mappings":"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AC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Watch, Element, Listen, Event, EventEmitter, Method, VNode, State, Host } from '@stencil/core';\nimport reduce from 'lodash/reduce';\nimport each from 'lodash/each';\n\nimport ColumnDataProvider, { ColumnCollection } from '../../services/column.data.provider';\nimport { DataProvider } from '../../services/data.provider';\nimport { getVisibleSourceItem } from '../../store/dataSource/data.store';\nimport DimensionProvider from '../../services/dimension.provider';\nimport ViewportProvider from '../../services/viewport.provider';\nimport { Edition, Selection, RevoGrid, ThemeSpace, RevoPlugin } from '../../interfaces';\nimport ThemeService from '../../themeManager/themeService';\nimport { timeout } from '../../utils/utils';\nimport AutoSize, { AutoSizeColumnConfig } from '../../plugins/autoSizeColumn';\nimport { columnTypes } from '../../store/storeTypes';\nimport FilterPlugin, { ColumnFilterConfig, FilterCollection } from '../../plugins/filter/filter.plugin';\nimport SortingPlugin from '../../plugins/sorting/sorting.plugin';\nimport ExportFilePlugin from '../../plugins/export/export.plugin';\nimport { DataInput } from '../../plugins/export/types';\nimport GroupingRowPlugin from '../../plugins/groupingRow/grouping.row.plugin';\nimport { GroupingOptions } from '../../plugins/groupingRow/grouping.row.types';\nimport { ColumnSource, RowSource } from '../data/columnService';\nimport { RevoViewPort } from './viewport';\nimport ViewportService, { FocusedData } from './viewport.service';\nimport { ViewPortSections } from './viewport.section';\nimport GridScrollingService from './viewport.scrolling.service';\nimport { UUID } from '../../utils/consts';\nimport SelectionStoreConnector from '../../services/selection.store.connector';\nimport { OrdererService } from '../order/orderRenderer';\nimport StretchColumn, { isStretchPlugin } from '../../plugins/stretchPlugin';\nimport ColumnPlugin from '../../plugins/moveColumn/columnDragPlugin';\n\n@Component({\n tag: 'revo-grid',\n styleUrl: 'revo-grid-style.scss'\n})\nexport class RevoGridComponent {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n /** Excel like show rgRow indexe per rgRow */\n @Prop() rowHeaders: RevoGrid.RowHeaders | boolean;\n /**\n * Defines how many rows/columns should be rendered outside visible area.\n */\n @Prop() frameSize: number = 1;\n /**\n * Indicates default rgRow size.\n * By default 0, means theme package size will be applied\n */\n @Prop() rowSize: number = 0;\n /** Indicates default column size. */\n @Prop() colSize: number = 100;\n /** When true, user can range selection. */\n @Prop() range: boolean = false;\n /** When true, grid in read only mode. */\n @Prop() readonly: boolean = false;\n /** When true, columns are resizable. */\n @Prop() resize: boolean = false;\n /** When true cell focus appear. */\n @Prop() canFocus: boolean = true;\n /** When true enable clipboard. */\n @Prop() useClipboard: boolean = true;\n /**\n * Columns - defines an array of grid columns.\n * Can be column or grouped column.\n */\n @Prop() columns: (RevoGrid.ColumnRegular | RevoGrid.ColumnGrouping)[] = [];\n /**\n * Source - defines main data source.\n * Can be an Object or 2 dimensional array([][]);\n * Keys/indexes referenced from columns Prop\n */\n @Prop() source: RevoGrid.DataType[] = [];\n /** Pinned top Source: {[T in ColumnProp]: any} - defines pinned top rows data source. */\n @Prop() pinnedTopSource: RevoGrid.DataType[] = [];\n /** Pinned bottom Source: {[T in ColumnProp]: any} - defines pinned bottom rows data source. */\n @Prop() pinnedBottomSource: RevoGrid.DataType[] = [];\n /** Row properies applied */\n @Prop() rowDefinitions: RevoGrid.RowDefinition[] = [];\n\n /** Custom editors register */\n @Prop() editors: Edition.Editors = {};\n\n /**\n * Custom grid plugins\n * Has to be predefined during first grid init\n * Every plugin should be inherited from BasePlugin\n */\n @Prop() plugins: RevoPlugin.PluginClass[];\n\n /** Types\n * Every type represent multiple column properties\n * Types will be merged but can be replaced with column properties\n */\n @Prop() columnTypes: { [name: string]: RevoGrid.ColumnType } = {};\n\n /** Theme name */\n @Prop({ reflect: true, mutable: true }) theme: ThemeSpace.Theme = 'default';\n\n /**\n * Row class property\n * Define this property in rgRow object and this will be mapped as rgRow class\n */\n @Prop({ reflect: true }) rowClass: string = '';\n\n /**\n * Autosize config\n * Enable columns autoSize, for more details check @autoSizeColumn plugin\n * By default disabled, hence operation is not resource efficient\n * true to enable with default params (double header separator click for autosize)\n * or provide config\n */\n @Prop() autoSizeColumn: boolean | AutoSizeColumnConfig = false;\n\n /**\n * Enables filter plugin\n * Can be boolean\n * Can be filter collection\n */\n @Prop() filter: boolean | ColumnFilterConfig = false;\n\n /**\n * Enables column move plugin\n * Can be boolean\n */\n @Prop() canMoveColumns: boolean = false;\n /**\n * Trimmed rows\n * Functionality which allows to hide rows from main data set\n * @trimmedRows are physical rgRow indexes to hide\n */\n @Prop() trimmedRows: Record<number, boolean> = {};\n\n /**\n * Enables export plugin\n * Can be boolean\n * Can be export options\n */\n @Prop() exporting = false;\n\n /**\n * Group models by provided properties\n * Define properties to be groped by\n */\n @Prop() grouping: GroupingOptions;\n\n /**\n * Defines stretch strategy for columns with @StretchColumn plugin\n * if there are more space on the right last column size would be increased\n */\n @Prop() stretch: boolean | string = true;\n\n // --------------------------------------------------------------------------\n //\n // Events\n //\n // --------------------------------------------------------------------------\n\n /**\n * Before edit event.\n * Triggered before edit data applied.\n * Use e.preventDefault() to prevent edit data set and use you own.\n * Use e.val = {your value} to replace edit result with your own.\n */\n @Event() beforeedit: EventEmitter<Edition.BeforeSaveDataDetails>;\n\n /**\n * Before range edit event.\n * Triggered before range data applied, when range selection happened.\n * Use e.preventDefault() to prevent edit data set and use you own.\n */\n @Event() beforerangeedit: EventEmitter<Edition.BeforeRangeSaveDataDetails>;\n\n /**\n * After edit.\n * Triggered when after data applied or Range changeged.\n */\n @Event() afteredit: EventEmitter<Edition.BeforeSaveDataDetails | Edition.BeforeRangeSaveDataDetails>;\n\n /**\n * Before autofill.\n * Triggered before autofill applied.\n * Use e.preventDefault() to prevent edit data apply.\n */\n @Event() beforeautofill: EventEmitter<Selection.ChangedRange>;\n\n /**\n * Before range apply.\n * Triggered before range applied.\n * Use e.preventDefault() to prevent range.\n */\n @Event() beforeaange: EventEmitter<Selection.ChangedRange>;\n\n /**\n * Triggered after focus render finished.\n * Can be used to access a focus element through @event.target\n */\n @Event() afterfocus: EventEmitter<{ model: any; column: RevoGrid.ColumnRegular; }>;\n\n /**\n * Before rgRow order apply.\n * Use e.preventDefault() to prevent rgRow order change.\n */\n @Event() roworderchanged: EventEmitter<{ from: number; to: number }>;\n\n /**\n * Before source update sorting apply.\n * Use this event if you intended to prevent sorting on data update.\n * Use e.preventDefault() to prevent sorting data change during rows source update.\n */\n @Event() beforesourcesortingapply: EventEmitter;\n\n /**\n * Before sorting apply.\n * Use e.preventDefault() to prevent sorting data change.\n */\n @Event() beforesortingapply: EventEmitter<{\n column: RevoGrid.ColumnRegular;\n order: 'desc' | 'asc';\n additive: boolean;\n }>;\n /**\n * Before sorting event.\n * Initial sorting triggered, if this event stops no other event called.\n * Use e.preventDefault() to prevent sorting.\n */\n @Event() beforesorting: EventEmitter<{\n column: RevoGrid.ColumnRegular;\n order: 'desc' | 'asc';\n additive: boolean;\n }>;\n\n /**\n * Row order change started.\n * Use e.preventDefault() to prevent rgRow order change.\n * Use e.text = 'new name' to change item name on start.\n */\n @Event() rowdragstart: EventEmitter<{ pos: RevoGrid.PositionItem; text: string }>;\n\n /**\n * On header click.\n */\n @Event() headerclick: EventEmitter<RevoGrid.ColumnRegular>;\n\n /**\n * Before cell focus changed.\n * Use e.preventDefault() to prevent cell focus change.\n */\n @Event() beforecellfocus: EventEmitter<Edition.BeforeSaveDataDetails>;\n\n /**\n * Before grid focus lost happened.\n * Use e.preventDefault() to prevent cell focus change.\n */\n @Event() beforefocuslost: EventEmitter<FocusedData|null>;\n /**\n * Before data apply.\n * You can override data source here\n */\n @Event() beforesourceset: EventEmitter<{\n type: RevoGrid.DimensionRows;\n source: RevoGrid.DataType[];\n }>;\n\n /** After rows updated */\n @Event() aftersourceset: EventEmitter<{\n type: RevoGrid.DimensionRows;\n source: RevoGrid.DataType[];\n }>;\n\n /** Before column update */\n @Event() beforecolumnsset: EventEmitter<ColumnCollection>;\n\n /** Before column applied but after column set gathered and viewport updated */\n @Event() beforecolumnapplied: EventEmitter<ColumnCollection>;\n \n\n /** Column updated */\n @Event() aftercolumnsset: EventEmitter<{\n columns: ColumnCollection;\n order: Record<RevoGrid.ColumnProp, 'asc' | 'desc'>;\n }>;\n\n /**\n * Before filter applied to data source\n * Use e.preventDefault() to prevent cell focus change\n * Update @collection if you wish to change filters\n */\n @Event() beforefilterapply: EventEmitter<{ collection: FilterCollection }>;\n\n /**\n * Before filter trimmed values\n * Use e.preventDefault() to prevent value trimming and filter apply\n * Update @collection if you wish to change filters\n * Update @itemsToFilter if you wish to filter indexes of trimming\n */\n @Event() beforefiltertrimmed: EventEmitter<{ collection: FilterCollection; itemsToFilter: Record<number, boolean> }>;\n\n /**\n * Before trimmed values\n * Use e.preventDefault() to prevent value trimming\n * Update @trimmed if you wish to filter indexes of trimming\n */\n @Event() beforetrimmed: EventEmitter<{ trimmed: Record<number, boolean>; trimmedType: string; type: string }>;\n\n /**\n * Notify trimmed applied\n */\n @Event() aftertrimmed: EventEmitter;\n\n /**\n * Triggered when view port scrolled\n */\n @Event() viewportscroll: EventEmitter<RevoGrid.ViewPortScrollEvent>;\n /**\n * Before export\n * Use e.preventDefault() to prevent export\n * Replace data in Event in case you want to modify it in export\n */\n @Event() beforeexport: EventEmitter<DataInput>;\n\n /**\n * Before edit started\n * Use e.preventDefault() to prevent edit\n */\n @Event() beforeeditstart: EventEmitter<Edition.BeforeSaveDataDetails>;\n /**\n * After column resize\n * Get resized columns\n */\n @Event() aftercolumnresize: EventEmitter<Record<RevoGrid.ColumnProp, RevoGrid.ColumnRegular>>;\n\n // --------------------------------------------------------------------------\n //\n // Methods\n //\n // --------------------------------------------------------------------------\n /**\n * Refreshes data viewport.\n * Can be specific part as rgRow or pinned rgRow or 'all' by default.\n */\n @Method() async refresh(type: RevoGrid.DimensionRows | 'all' = 'all') {\n this.dataProvider.refresh(type);\n }\n\n /** Scrolls view port to specified rgRow index */\n @Method() async scrollToRow(coordinate: number = 0) {\n const y = this.dimensionProvider.getViewPortPos({\n coordinate,\n dimension: 'rgRow',\n });\n await this.scrollToCoordinate({ y });\n }\n\n /** Scrolls view port to specified column index */\n @Method() async scrollToColumnIndex(coordinate: number = 0) {\n const x = this.dimensionProvider.getViewPortPos({\n coordinate,\n dimension: 'rgCol',\n });\n await this.scrollToCoordinate({ x });\n }\n\n /** Scrolls view port to specified column prop */\n @Method() async scrollToColumnProp(prop: RevoGrid.ColumnProp) {\n const coordinate = this.columnProvider.getColumnIndexByProp(prop, 'rgCol');\n if (coordinate < 0) {\n // already on the screen\n return;\n }\n const x = this.dimensionProvider.getViewPortPos({\n coordinate,\n dimension: 'rgCol',\n });\n await this.scrollToCoordinate({ x });\n }\n\n /** Update columns */\n @Method() async updateColumns(cols: RevoGrid.ColumnRegular[]) {\n this.columnProvider.updateColumns(cols);\n }\n\n /** Add trimmed by type */\n @Method() async addTrimmed(trimmed: Record<number, boolean>, trimmedType = 'external', type: RevoGrid.DimensionRows = 'rgRow') {\n const event = this.beforetrimmed.emit({\n trimmed,\n trimmedType,\n type,\n });\n if (event.defaultPrevented) {\n return event;\n }\n this.dataProvider.setTrimmed({ [trimmedType]: event.detail.trimmed }, type);\n this.aftertrimmed.emit();\n return event;\n }\n\n /** Scrolls view port to coordinate */\n @Method() async scrollToCoordinate(cell: Partial<Selection.Cell>) {\n this.viewport?.scrollToCell(cell);\n }\n\n /** Bring cell to edit mode */\n @Method() async setCellEdit(rgRow: number, prop: RevoGrid.ColumnProp, rowSource: RevoGrid.DimensionRows = 'rgRow') {\n const rgCol = ColumnDataProvider.getColumnByProp(this.columns, prop);\n if (!rgCol) {\n return;\n }\n await timeout();\n const colGroup = rgCol.pin || 'rgCol';\n this.viewport?.setEdit(rgRow, this.columnProvider.getColumnIndexByProp(prop, colGroup), colGroup, rowSource);\n }\n\n /**\n * Register new virtual node inside of grid\n * Used for additional items creation such as plugin elements\n */\n @Method() async registerVNode(elements: VNode[]) {\n this.extraElements.push(...elements);\n this.extraElements = [...this.extraElements];\n }\n\n /** Get data from source */\n @Method() async getSource(type: RevoGrid.DimensionRows = 'rgRow') {\n return this.dataProvider.stores[type].store.get('source');\n }\n\n /**\n * Get data from visible part of source\n * Trimmed/filtered rows will be excluded\n * @param type - type of source\n */\n @Method() async getVisibleSource(type: RevoGrid.DimensionRows = 'rgRow') {\n return getVisibleSourceItem(this.dataProvider.stores[type].store);\n }\n\n /**\n * Provides access to rows internal store observer\n * Can be used for plugin support\n * @param type - type of source\n */\n @Method() async getSourceStore(type: RevoGrid.DimensionRows = 'rgRow'): Promise<RowSource> {\n return this.dataProvider.stores[type].store;\n }\n /**\n * Provides access to column internal store observer\n * Can be used for plugin support\n * @param type - type of column\n */\n @Method() async getColumnStore(type: RevoGrid.DimensionCols = 'rgCol'): Promise<ColumnSource> {\n return this.columnProvider.stores[type].store;\n }\n\n /**\n * Update column sorting\n * @param column - full column details to update\n * @param index - virtual column index\n * @param order - order to apply\n */\n @Method() async updateColumnSorting(column: RevoGrid.ColumnRegular, index: number, order: 'asc' | 'desc', additive: boolean) {\n return this.columnProvider.updateColumnSorting(column, index, order, additive);\n }\n\n /**\n * Clears column sorting\n */\n @Method() async clearSorting() {\n this.columnProvider.clearSorting();\n }\n\n /**\n * Receive all columns in data source\n */\n @Method() async getColumns(): Promise<RevoGrid.ColumnRegular[]> {\n return this.columnProvider.getColumns();\n }\n\n /**\n * Clear current grid focus\n */\n @Method() async clearFocus() {\n const focused = this.viewport?.getFocused();\n const event = this.beforefocuslost.emit(focused);\n if (event.defaultPrevented) {\n return;\n }\n this.selectionStoreConnector.clearAll();\n this.viewport?.clearFocused();\n }\n\n /**\n * Get all active plugins instances\n */\n @Method() async getPlugins(): Promise<RevoPlugin.Plugin[]> {\n return [...this.internalPlugins];\n }\n\n /**\n * Get the currently focused cell.\n */\n @Method() async getFocused(): Promise<FocusedData|null> {\n return this.viewport?.getFocused();\n }\n\n /**\n * Get the currently selected Range.\n */\n @Method() async getSelectedRange(): Promise<Selection.RangeArea|null> {\n return this.viewport?.getSelectedRange();\n }\n\n\n // --------------------------------------------------------------------------\n //\n // Listeners outside scope\n //\n // --------------------------------------------------------------------------\n \n /** Clear data which is outside of grid container */\n private handleOutsideClick({ target }: { target: HTMLElement | null }) {\n if (!target?.closest(`[${UUID}=\"${this.uuid}\"]`)) {\n this.clearFocus();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Listeners\n //\n // --------------------------------------------------------------------------\n\n\n\n /** DRAG AND DROP */\n @Listen('internalRowDragStart') onRowDragStarted(e: CustomEvent<{ pos: RevoGrid.PositionItem; text: string; event: MouseEvent }>) {\n e.cancelBubble = true;\n const dragStart = this.rowdragstart.emit(e.detail);\n if (dragStart.defaultPrevented) {\n e.preventDefault();\n return;\n }\n this.orderService?.start(this.element, { ...e.detail, ...dragStart.detail });\n }\n\n @Listen('internalRowDragEnd') onRowDragEnd() {\n this.orderService?.end();\n }\n\n @Listen('internalRowDrag') onRowDrag({ detail }: CustomEvent<RevoGrid.PositionItem>) {\n this.orderService?.move(detail);\n }\n\n @Listen('internalRowMouseMove') onRowMouseMove(e: CustomEvent<Selection.Cell>): void {\n e.cancelBubble = true;\n this.orderService?.moveTip(e.detail);\n }\n\n @Listen('internalCellEdit') async onBeforeEdit(e: CustomEvent<Edition.BeforeSaveDataDetails>) {\n e.cancelBubble = true;\n const { defaultPrevented, detail } = this.beforeedit.emit(e.detail);\n await timeout();\n // apply data\n if (!defaultPrevented) {\n this.dataProvider.setCellData(detail);\n this.afteredit.emit(detail);\n }\n }\n\n @Listen('internalRangeDataApply') onBeforeRangeEdit(e: CustomEvent<Edition.BeforeRangeSaveDataDetails>) {\n e.cancelBubble = true;\n const { defaultPrevented } = this.beforerangeedit.emit(e.detail);\n if (defaultPrevented) {\n e.preventDefault();\n return;\n }\n this.afteredit.emit(e.detail);\n }\n\n @Listen('internalSelectionChanged') onRangeChanged(e: CustomEvent<Selection.ChangedRange>) {\n e.cancelBubble = true;\n const beforeaange = this.beforeaange.emit(e.detail);\n if (beforeaange.defaultPrevented) {\n e.preventDefault();\n }\n const beforeFill = this.beforeautofill.emit(e.detail);\n if (beforeFill.defaultPrevented) {\n return;\n }\n }\n\n @Listen('initialRowDropped') onRowDropped(e: CustomEvent<{ from: number; to: number }>) {\n e.cancelBubble = true;\n const { defaultPrevented } = this.roworderchanged.emit(e.detail);\n if (defaultPrevented) {\n e.preventDefault();\n }\n }\n\n @Listen('initialHeaderClick') onHeaderClick(e: CustomEvent<RevoGrid.InitialHeaderClick>) {\n const { defaultPrevented } = this.headerclick.emit({\n ...e.detail.column,\n originalEvent: e.detail.originalEvent,\n });\n if (defaultPrevented) {\n e.preventDefault();\n }\n }\n\n @Listen('internalFocusCell') onCellFocus(e: CustomEvent<Edition.BeforeSaveDataDetails>) {\n e.cancelBubble = true;\n const { defaultPrevented } = this.beforecellfocus.emit(e.detail);\n if (!this.canFocus || defaultPrevented) {\n e.preventDefault();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n // for internal plugin usage\n @State() extraElements: VNode[] = [];\n\n uuid: string | null = null;\n columnProvider: ColumnDataProvider;\n dataProvider: DataProvider;\n dimensionProvider: DimensionProvider;\n viewportProvider: ViewportProvider;\n private themeService: ThemeService;\n private viewport: ViewportService | null = null;\n\n private orderService: OrdererService;\n private selectionStoreConnector: SelectionStoreConnector;\n private scrollingService: GridScrollingService;\n\n /**\n * Plugins\n * Define plugins collection\n */\n private internalPlugins: RevoPlugin.Plugin[] = [];\n private subscribers: Record<string, () => void> = {};\n\n @Element() element: HTMLRevoGridElement;\n\n @Watch('columns') columnChanged(newVal: RevoGrid.ColumnDataSchema[] = []) {\n this.dimensionProvider.dropColumns();\n const columnGather = ColumnDataProvider.getColumns(newVal, 0, this.columnTypes);\n this.beforecolumnsset.emit(columnGather);\n for (let type of columnTypes) {\n const items = columnGather.columns[type];\n this.dimensionProvider.setColumns(type, items.length, ColumnDataProvider.getSizes(items), type !== 'rgCol');\n }\n this.beforecolumnapplied.emit(columnGather);\n const columns = this.columnProvider.setColumns(columnGather);\n this.aftercolumnsset.emit({\n columns,\n order: this.columnProvider.order,\n });\n }\n\n @Watch('theme') themeChanged(t: ThemeSpace.Theme) {\n this.themeService.register(t);\n this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize, frameOffset: this.frameSize || 0 }, 'rgRow');\n this.dimensionProvider.setSettings({ originItemSize: this.colSize, frameOffset: this.frameSize || 0 }, 'rgCol');\n }\n\n @Watch('source') dataChanged(source: RevoGrid.DataType[] = []) {\n let newSource = [...source];\n const beforesourceset = this.beforesourceset.emit({\n type: 'rgRow',\n source: newSource,\n });\n newSource = beforesourceset.detail.source;\n\n newSource = this.dataProvider.setData(newSource, 'rgRow');\n this.aftersourceset.emit({\n type: 'rgRow',\n source: newSource,\n });\n }\n\n @Watch('pinnedBottomSource') dataBottomChanged(newVal: RevoGrid.DataType[] = []) {\n this.dataProvider.setData(newVal, 'rowPinEnd');\n }\n\n @Watch('pinnedTopSource') dataTopChanged(newVal: RevoGrid.DataType[] = []) {\n this.dataProvider.setData(newVal, 'rowPinStart');\n }\n\n @Watch('rowDefinitions') rowDefChanged(newVal: RevoGrid.RowDefinition[] = []) {\n if (!newVal.length) {\n return;\n }\n const rows = reduce(\n newVal,\n (\n r: Partial<\n {\n [T in RevoGrid.DimensionRows]: {\n sizes?: Record<number, number>;\n };\n }\n >,\n v,\n ) => {\n if (!r[v.type]) {\n r[v.type] = {};\n }\n if (v.size) {\n if (!r[v.type].sizes) {\n r[v.type].sizes = {};\n }\n r[v.type].sizes[v.index] = v.size;\n }\n return r;\n },\n {},\n );\n each(rows, (r, k: RevoGrid.DimensionRows) => {\n if (r.sizes) {\n this.dimensionProvider.setDimensionSize(k, r.sizes);\n }\n });\n }\n\n @Watch('trimmedRows') trimmedRowsChanged(newVal: Record<number, boolean> = {}) {\n this.addTrimmed(newVal);\n }\n\n @Watch('grouping') groupingChanged(newVal: GroupingOptions = {}) {\n let grPlugin: GroupingRowPlugin | undefined;\n for (let p of this.internalPlugins) {\n const isGrouping = (p as unknown) as GroupingRowPlugin;\n if (isGrouping.setGrouping) {\n grPlugin = isGrouping;\n break;\n }\n }\n if (!grPlugin) {\n return;\n }\n grPlugin.setGrouping(newVal || {});\n }\n\n @Watch('stretch') applyStretch(isStretch: boolean | string) {\n if (isStretch === 'false') {\n isStretch = false;\n }\n let stretch = this.internalPlugins.filter(p => isStretchPlugin(p))[0];\n if (isStretch) {\n if(!stretch) {\n this.internalPlugins.push(new StretchColumn(this.element, this.dimensionProvider));\n } else {\n (stretch as StretchColumn).applyStretch(this.columnProvider.getRawColumns());\n }\n } else if (stretch) {\n const index = this.internalPlugins.indexOf(stretch);\n this.internalPlugins.splice(index, 1);\n }\n }\n\n connectedCallback() {\n this.viewportProvider = new ViewportProvider();\n this.themeService = new ThemeService({\n rowSize: this.rowSize,\n });\n this.dimensionProvider = new DimensionProvider(this.viewportProvider);\n this.columnProvider = new ColumnDataProvider();\n this.dataProvider = new DataProvider(this.dimensionProvider);\n this.uuid = `${new Date().getTime()}-rvgrid`;\n\n const pluginData = {\n data: this.dataProvider,\n column: this.columnProvider,\n dimension: this.dimensionProvider,\n viewport: this.viewportProvider,\n selection: this.selectionStoreConnector,\n };\n\n if (this.autoSizeColumn) {\n this.internalPlugins.push(\n new AutoSize(\n this.element,\n {\n dataProvider: this.dataProvider,\n columnProvider: this.columnProvider,\n dimensionProvider: this.dimensionProvider,\n },\n typeof this.autoSizeColumn === 'object' ? this.autoSizeColumn : undefined,\n ),\n );\n }\n if (this.filter) {\n this.internalPlugins.push(new FilterPlugin(this.element, this.uuid, typeof this.filter === 'object' ? this.filter : undefined));\n }\n if (this.exporting) {\n this.internalPlugins.push(new ExportFilePlugin(this.element));\n }\n this.internalPlugins.push(new SortingPlugin(this.element));\n if (this.plugins) {\n this.plugins.forEach(p => {\n this.internalPlugins.push(new p(this.element, pluginData));\n });\n }\n\n if (this.canMoveColumns) {\n this.internalPlugins.push(new ColumnPlugin(this.element, pluginData));\n }\n\n this.internalPlugins.push(\n new GroupingRowPlugin(this.element, {\n dataProvider: this.dataProvider,\n columnProvider: this.columnProvider,\n }),\n );\n this.applyStretch(this.stretch);\n this.themeChanged(this.theme);\n this.columnChanged(this.columns);\n this.dataChanged(this.source);\n this.dataTopChanged(this.pinnedTopSource);\n this.dataBottomChanged(this.pinnedBottomSource);\n this.trimmedRowsChanged(this.trimmedRows);\n this.rowDefChanged(this.rowDefinitions);\n this.groupingChanged(this.grouping);\n \n this.selectionStoreConnector = new SelectionStoreConnector();\n this.scrollingService = new GridScrollingService((e: RevoGrid.ViewPortScrollEvent) => {\n this.dimensionProvider.setViewPortCoordinate({\n coordinate: e.coordinate,\n type: e.dimension,\n });\n this.viewportscroll.emit(e);\n });\n this.subscribers = { 'click': this.handleOutsideClick.bind(this) };\n for (let type in this.subscribers) {\n document.addEventListener(type, this.subscribers[type]);\n }\n }\n\n disconnectedCallback() {\n // destroy plugins on element disconnect\n each(this.internalPlugins, p => p.destroy());\n this.internalPlugins = [];\n // clear events\n for (let type in this.subscribers) {\n document.removeEventListener(type, this.subscribers[type]);\n delete this.subscribers[type];\n }\n }\n\n render() {\n const contentHeight = this.dimensionProvider.stores['rgRow'].store.get('realSize');\n this.viewport = new ViewportService({\n columnProvider: this.columnProvider,\n dataProvider: this.dataProvider,\n dimensionProvider: this.dimensionProvider,\n viewportProvider: this.viewportProvider,\n uuid: this.uuid,\n scrollingService: this.scrollingService,\n orderService: this.orderService,\n selectionStoreConnector: this.selectionStoreConnector,\n resize: c => this.aftercolumnresize.emit(c)\n }, contentHeight);\n\n const views: VNode[] = [];\n if (this.rowHeaders) {\n const anyView = this.viewport.columns[0];\n views.push(<revogr-row-headers\n height={contentHeight}\n resize={this.resize}\n dataPorts={anyView.dataPorts}\n headerProp={anyView.headerProp}\n uiid={anyView.prop[UUID]}\n rowHeaderColumn={typeof this.rowHeaders === 'object' ? this.rowHeaders : undefined}\n onScrollViewport={({ detail: e }: CustomEvent) => this.scrollingService.onScroll(e, 'headerRow')}\n onElementToScroll={({ detail: e }: CustomEvent) => this.scrollingService.registerElement(e, 'headerRow')}\n />);\n }\n views.push(<ViewPortSections\n columnFilter={!!this.filter}\n resize={this.resize}\n readonly={this.readonly}\n range={this.range}\n rowClass={this.rowClass}\n editors={this.editors}\n useClipboard={this.useClipboard}\n columns={this.viewport.columns}\n onCancelEdit={() => {\n this.selectionStoreConnector.setEdit(false);\n }}\n onEdit={detail => {\n const event = this.beforeeditstart.emit(detail);\n if (!event.defaultPrevented) {\n this.selectionStoreConnector.setEdit(detail.val);\n }\n }}\n registerElement={(e, k) => this.scrollingService.registerElement(e, k)}\n onScroll={details => this.scrollingService.onScroll(details)}\n />);\n return (\n <Host {...{ [`${UUID}`]: this.uuid }}>\n <RevoViewPort\n viewports={this.viewportProvider.stores}\n dimensions={this.dimensionProvider.stores}\n orderRef={e => (this.orderService = e)}\n registerElement={(e, k) => this.scrollingService.registerElement(e, k)}\n nakedClick={() => this.viewport.clearEdit()}\n onScroll={details => this.scrollingService.onScroll(details)}\n >{views}</RevoViewPort>\n {this.extraElements}\n </Host>\n );\n }\n}\n"]}
@@ -12,3 +12,4 @@ export function getLastCell(data, rowType) {
12
12
  y: data.viewports[rowType].store.get('realCount'),
13
13
  };
14
14
  }
15
+ //# sourceMappingURL=viewport.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.helpers.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.helpers.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,wDAAwD;AACxD,MAAM,UAAU,WAAW,CAAC,IAAoB,EAAE,OAAoC;EACpF,OAAO;IACL,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;IACtD,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;GAClD,CAAC;AACJ,CAAC","sourcesContent":["/** Collect data for pinned columns in required @ViewportProps format */\nimport { RevoGrid, Selection } from '../../interfaces';\nimport { ViewportColumn } from './viewport.interfaces';\n\nexport const HEADER_SLOT = 'header';\nexport const FOOTER_SLOT = 'footer';\nexport const CONTENT_SLOT = 'content';\nexport const DATA_SLOT = 'data';\n\n/** Receive last visible in viewport by required type */\nexport function getLastCell(data: ViewportColumn, rowType: RevoGrid.MultiDimensionType): Selection.Cell {\n return {\n x: data.viewports[data.colType].store.get('realCount'),\n y: data.viewports[rowType].store.get('realCount'),\n };\n}\n"]}
@@ -1,4 +1,2 @@
1
- /*!
2
- * Built by Revolist
3
- */
4
1
  export {};
2
+ //# sourceMappingURL=viewport.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.interfaces.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import { DataSourceState } from '../../store/dataSource/data.store';\nimport { Observable, RevoGrid, Selection } from '../../interfaces';\nimport { ViewportStores } from '../../services/viewport.provider';\nimport { DimensionStores } from '../../services/dimension.provider';\nimport { RowDataSources } from '../../services/data.provider';\nimport { JSX } from '../..';\n\nexport type SlotType = 'content' | 'header' | 'footer';\n\nexport type HeaderProperties = {\n} & Partial<JSX.RevogrHeader>;\n\nexport type ViewportColumn = {\n colType: RevoGrid.DimensionCols;\n position: Selection.Cell;\n\n uuid: string;\n fixWidth?: boolean;\n\n viewports: ViewportStores;\n dimensions: DimensionStores;\n\n rowStores: RowDataSources;\n colStore: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;\n\n} & Partial<JSX.RevogrViewportScroll> & Partial<JSX.RevogrHeader>;\n\nexport type ViewportData = {\n /** Last cell in data viewport. Indicates borders of viewport */\n lastCell: Selection.Cell;\n\n /** Viewport data position. Position provides connection between independent data stores and Selection store. */\n position: Selection.Cell;\n colData: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;\n\n dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n\n /** Stores to pass dimension data for render */\n dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n\n /** We use this store to define is rgRow selected */\n rowSelectionStore: Observable<Selection.SelectionStoreState>;\n /** Selection connection */\n segmentSelectionStore: Observable<Selection.SelectionStoreState>;\n\n /** Cols dataset */\n viewportCol: Observable<RevoGrid.ViewportState>;\n /** Rows dataset */\n viewportRow: Observable<RevoGrid.ViewportState>;\n\n /** Slot to put data */\n slot: SlotType;\n\n /** Current grid uniq Id */\n uuid: string;\n\n type: RevoGrid.DimensionRows;\n\n canDrag?: boolean;\n style?: { [key: string]: string };\n onUnregister?(): void;\n onSetRange?(e: CustomEvent<Selection.RangeArea>): void;\n onSetTempRange?(e: CustomEvent<Selection.TempRange | null>): void;\n onFocusCell?(e: CustomEvent<{ focus: Selection.Cell; end: Selection.Cell }>): void;\n};\n\nexport type ViewportProps = {\n prop: Record<string, any>;\n position: Selection.Cell;\n /** Cols dataset */\n viewportCol: Observable<RevoGrid.ViewportState>;\n\n /** header container props */\n headerProp: Record<string, any>;\n\n /** parent selector link */\n parent: string;\n\n /** viewport rows */\n dataPorts: ViewportData[];\n\n columnSelectionStore: Observable<Selection.SelectionStoreState>;\n};\n"]}
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Built by Revolist
3
3
  */
4
- import { h } from '@stencil/core';
5
- import OrderRenderer from '../order/orderRenderer';
4
+ import { h } from "@stencil/core";
5
+ import OrderRenderer from "../order/orderRenderer";
6
6
  export const RevoViewPort = ({ viewports, dimensions, orderRef, nakedClick, registerElement, onScroll }, children) => {
7
7
  const viewPortClick = (e, el) => {
8
8
  if (el === e.target) {
@@ -11,11 +11,8 @@ export const RevoViewPort = ({ viewports, dimensions, orderRef, nakedClick, regi
11
11
  };
12
12
  let el;
13
13
  return [
14
- h("div", { class: "main-viewport", ref: e => el = e, onClick: e => viewPortClick(e, el) },
15
- h("div", { class: "viewports" },
16
- children,
17
- h("revogr-scroll-virtual", { class: "vertical", dimension: "rgRow", viewportStore: viewports['rgRow'].store, dimensionStore: dimensions['rgRow'].store, ref: el => registerElement(el, 'rowScroll'), onScrollVirtual: e => onScroll(e.detail) }),
18
- h(OrderRenderer, { ref: orderRef }))),
14
+ h("div", { class: "main-viewport", ref: e => el = e, onClick: e => viewPortClick(e, el) }, h("div", { class: "viewports" }, children, h("revogr-scroll-virtual", { class: "vertical", dimension: "rgRow", viewportStore: viewports['rgRow'].store, dimensionStore: dimensions['rgRow'].store, ref: el => registerElement(el, 'rowScroll'), onScrollVirtual: e => onScroll(e.detail) }), h(OrderRenderer, { ref: orderRef }))),
19
15
  h("revogr-scroll-virtual", { class: "horizontal", dimension: "rgCol", viewportStore: viewports['rgCol'].store, dimensionStore: dimensions['rgCol'].store, ref: el => registerElement(el, 'colScroll'), onScrollVirtual: e => onScroll(e.detail) }),
20
16
  ];
21
17
  };
18
+ //# sourceMappingURL=viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAIzC,OAAO,aAAiC,MAAM,wBAAwB,CAAC;AAiBvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAS,EAAE,QAAiB,EAAE,EAAE;EACnI,MAAM,aAAa,GAAG,CAAC,CAAa,EAAE,EAAgB,EAAE,EAAE;IACxD,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;MACnB,UAAU,CAAC,CAAC,CAAC,CAAC;KACf;EACH,CAAC,CAAC;EAEF,IAAI,EAAe,CAAC;EACpB,OAAO;IACL,WAAK,KAAK,EAAC,eAAe,EAAC,GAAG,EAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAG,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;MAC/E,WAAK,KAAK,EAAC,WAAW;QACnB,QAAQ;QACT,6BACE,KAAK,EAAC,UAAU,EAChB,SAAS,EAAC,OAAO,EACjB,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EACvC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EACzC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,EAC3C,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GACxC;QACF,EAAC,aAAa,IAAC,GAAG,EAAE,QAAQ,GAAI,CAC5B,CACF;IACN,6BACE,KAAK,EAAC,YAAY,EAClB,SAAS,EAAC,OAAO,EACjB,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EACvC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EACzC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,EAC3C,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GACxC;GACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { RevoGrid } from '../../interfaces';\nimport { DimensionStores } from '../../services/dimension.provider';\nimport { ViewportStores } from '../../services/viewport.provider';\nimport OrderRenderer, { OrdererService } from '../order/orderRenderer';\n\nexport interface ElementScroll {\n changeScroll?(e: RevoGrid.ViewPortScrollEvent): Promise<RevoGrid.ViewPortScrollEvent>;\n setScroll(e: RevoGrid.ViewPortScrollEvent): Promise<void>;\n}\n\ntype Props = {\n viewports: ViewportStores;\n dimensions: DimensionStores;\n orderRef(e: OrdererService): void;\n registerElement(el: ElementScroll | null, key: string): void;\n onScroll(e: RevoGrid.ViewPortScrollEvent, key?: RevoGrid.DimensionColPin | string): void;\n nakedClick(e: MouseEvent): void;\n};\n\n\nexport const RevoViewPort = ({ viewports, dimensions, orderRef, nakedClick, registerElement, onScroll }: Props, children: VNode[]) => {\n const viewPortClick = (e: MouseEvent, el?: HTMLElement) => {\n if (el === e.target) {\n nakedClick(e);\n }\n };\n\n let el: HTMLElement;\n return [\n <div class=\"main-viewport\" ref={ e => el = e } onClick={e => viewPortClick(e, el)}>\n <div class=\"viewports\">\n {children}\n <revogr-scroll-virtual\n class=\"vertical\"\n dimension=\"rgRow\"\n viewportStore={viewports['rgRow'].store}\n dimensionStore={dimensions['rgRow'].store}\n ref={el => registerElement(el, 'rowScroll')}\n onScrollVirtual={e => onScroll(e.detail)}\n />\n <OrderRenderer ref={orderRef} />\n </div>\n </div>,\n <revogr-scroll-virtual\n class=\"horizontal\"\n dimension=\"rgCol\"\n viewportStore={viewports['rgCol'].store}\n dimensionStore={dimensions['rgCol'].store}\n ref={el => registerElement(el, 'colScroll')}\n onScrollVirtual={e => onScroll(e.detail)}\n />,\n ];\n};\n"]}
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Built by Revolist
3
3
  */
4
- import throttle from 'lodash/throttle';
5
- import { resizeObserver } from '../../utils/resizeObserver';
4
+ import throttle from "lodash/throttle";
5
+ import { resizeObserver } from "../../utils/resizeObserver";
6
6
  export default class GridResizeService {
7
7
  constructor(el, events) {
8
8
  this.events = events;
@@ -22,3 +22,4 @@ export default class GridResizeService {
22
22
  this.resizeObserver = null;
23
23
  }
24
24
  }
25
+ //# sourceMappingURL=viewport.resize.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.resize.service.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.resize.service.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D,MAAM,CAAC,OAAO,OAAO,iBAAiB;EAGpC,YAAY,EAAe,EAAU,MAAc;IAAd,WAAM,GAAN,MAAM,CAAQ;IAF3C,mBAAc,GAA0B,IAAI,CAAC;IAC7C,WAAM,GAAG,QAAQ,CAAC,CAAC,CAAqC,EAAE,CAAiB,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA,EAAE,EAAE,CAAC,CAAC;IAErH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EAChB,CAAC;EAED,KAAK,CAAC,IAAI,CAAC,EAAe;;IACxB,MAAM,cAAc,EAAE,CAAC;IACvB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,EAAE,CAAC,CAAC;EACnC,CAAC;EAEM,OAAO;;IACZ,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;EAC7B,CAAC;CACF","sourcesContent":["import throttle from 'lodash/throttle';\nimport { resizeObserver } from '../../utils/resizeObserver';\ninterface Events {\n resize(entries: ReadonlyArray<ResizeObserverEntry>, observer: ResizeObserver): void;\n}\nexport default class GridResizeService {\n private resizeObserver: ResizeObserver | null = null;\n private resize = throttle((e: ReadonlyArray<ResizeObserverEntry>, o: ResizeObserver) => this.events?.resize(e, o), 10);\n constructor(el: HTMLElement, private events: Events) {\n this.init(el);\n }\n\n async init(el: HTMLElement): Promise<void> {\n await resizeObserver();\n this.resizeObserver = new ResizeObserver(this.resize);\n this.resizeObserver?.observe(el);\n }\n\n public destroy(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n}\n"]}
@@ -61,3 +61,4 @@ export default class GridScrollingService {
61
61
  this.elements = {};
62
62
  }
63
63
  }
64
+ //# sourceMappingURL=viewport.scrolling.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.scrolling.service.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.scrolling.service.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,OAAO,oBAAoB;EAEvC,YAAoB,WAAsD;IAAtD,gBAAW,GAAX,WAAW,CAA2C;IADlE,aAAQ,GAAmB,EAAE,CAAC;EACuC,CAAC;EAE9E,KAAK,CAAC,QAAQ,CAAC,CAA+B,EAAE,GAAuC;IACrF,IAAI,QAA+C,CAAC;IACpD,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;MAC/B,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,EAAE;QACvD,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;UAC7B,SAAS;SACV;QACD,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;UACnC,EAAE,CAAC,YAAY,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;OACF;WAAM,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,KAAK,KAAK,WAAW,EAAE;QAC3D,SAAS;OACV;WAAM;QACL,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;UACnC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACjB;OACF;KACF;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,EAAE;MACZ,KAAK,GAAG,MAAM,QAAQ,CAAC;KACxB;IACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC1B,CAAC;EAEO,cAAc,CAAC,GAAuC;IAC5D,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACxD,CAAC;EAED,gBAAgB,CAAC,GAAmB;IAClC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;EACtB,CAAC;EAED;;;;KAIG;EACH,eAAe,CAAC,EAAwB,EAAE,GAAW;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;MACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;KACzB;IACD,oBAAoB;IACpB,IAAI,EAAE,EAAE;MACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7B;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7B,kBAAkB;MAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC3B;EACH,CAAC;EAED,UAAU;IACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;EACrB,CAAC;CACF","sourcesContent":["import { RevoGrid } from '../../interfaces';\n\nexport interface ElementScroll {\n changeScroll?(e: RevoGrid.ViewPortScrollEvent): Promise<RevoGrid.ViewPortScrollEvent>;\n setScroll(e: RevoGrid.ViewPortScrollEvent): Promise<void>;\n}\nexport type ElementsScroll = { [key: string]: ElementScroll[] };\nexport default class GridScrollingService {\n private elements: ElementsScroll = {};\n constructor(private setViewport: (e: RevoGrid.ViewPortScrollEvent) => void) {}\n\n async onScroll(e: RevoGrid.ViewPortScrollEvent, key?: RevoGrid.DimensionColPin | string): Promise<void> {\n let newEvent: Promise<RevoGrid.ViewPortScrollEvent>;\n for (let elKey in this.elements) {\n if (this.isPinnedColumn(key) && e.dimension === 'rgCol') {\n if (elKey === key || !e.delta) {\n continue;\n }\n for (let el of this.elements[elKey]) {\n el.changeScroll && (newEvent = el.changeScroll(e));\n }\n } else if (e.dimension === 'rgCol' && elKey === 'headerRow') {\n continue;\n } else {\n for (let el of this.elements[elKey]) {\n el.setScroll(e);\n }\n }\n }\n let event = e;\n if (newEvent) {\n event = await newEvent;\n }\n this.setViewport(event);\n }\n\n private isPinnedColumn(key?: RevoGrid.DimensionColPin | string): key is RevoGrid.DimensionColPin {\n return ['colPinStart', 'colPinEnd'].indexOf(key) > -1;\n }\n\n registerElements(els: ElementsScroll): void {\n this.elements = els;\n }\n\n /**\n * Register new element for farther scroll support\n * @param el - can be null if holder removed\n * @param key - element key\n */\n registerElement(el: ElementScroll | null, key: string): void {\n if (!this.elements[key]) {\n this.elements[key] = [];\n }\n // new element added\n if (el) {\n this.elements[key].push(el);\n } else if (this.elements[key]) {\n // element removed\n delete this.elements[key];\n }\n }\n\n unregister(): void {\n delete this.elements;\n this.elements = {};\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Built by Revolist
3
3
  */
4
- import { h } from '@stencil/core';
5
- import { UUID } from '../../utils/consts';
6
- import { DATA_SLOT, HEADER_SLOT } from './viewport.helpers';
4
+ import { h } from "@stencil/core";
5
+ import { UUID } from "../../utils/consts";
6
+ import { DATA_SLOT, HEADER_SLOT } from "./viewport.helpers";
7
7
  /**
8
8
  * All render based on sections
9
9
  * First we render vertical parts - pinned start, data, pinned end
@@ -19,13 +19,11 @@ export const ViewPortSections = ({ resize, editors, rowClass, readonly, range, c
19
19
  ];
20
20
  view.dataPorts.forEach((data, j) => {
21
21
  const key = view.prop.key + (j + 1);
22
- const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, onCancelEdit: () => onCancelEdit(), onSetEdit: ({ detail }) => onEdit(detail) }),
23
- h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })),
24
- h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }),
25
- h("revogr-focus", { colData: data.colData, dataStore: data.dataStore, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
22
+ const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, onCancelEdit: () => onCancelEdit(), onSetEdit: ({ detail }) => onEdit(detail) }), h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })), h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }), h("revogr-focus", { colData: data.colData, dataStore: data.dataStore, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
26
23
  dataViews.push(dataView);
27
24
  });
28
25
  viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => registerElement(el, view.prop.key), onScrollViewport: e => onScroll(e.detail, view.prop.key) }), dataViews));
29
26
  }
30
27
  return viewPortHtml;
31
28
  };
29
+ //# sourceMappingURL=viewport.section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.section.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.section.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgB5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAS,EAAE,EAAE;EAC9K,MAAM,YAAY,GAAY,EAAE,CAAC;EACjC,+BAA+B;EAC/B,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE;IACxB,4BAA4B;IAC5B,MAAM,SAAS,GAAkB;MAC/B,mCACE,WAAW,EAAE,IAAI,CAAC,WAAW,IACzB,IAAI,CAAC,UAAU,IACnB,cAAc,EAAE,IAAI,CAAC,oBAAoB,EACzC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,IACjB;KACH,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;MACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAEpC,MAAM,QAAQ,GAAG,CACf,gDACM,IAAI,IACR,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAC1C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAG,GAAG,EAAE,CAAC,YAAY,EAAE,EACnC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAEzC,mCACM,IAAI,EACJ,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IACzB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,IAAI,EAAE,SAAS,IACf;QACF,yBAAmB,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,GAAI;QACnI,oBAAc,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,GAAI,CACvJ,CAC5B,CAAC;MACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,IAAI,CACf,8CAA4B,IAAI,CAAC,IAAI,IAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAC3I,SAAS,CACa,CAC1B,CAAC;GACH;EACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { Edition, RevoGrid } from '../../interfaces';\nimport { UUID } from '../../utils/consts';\nimport { ElementScroll } from './viewport';\nimport { DATA_SLOT, HEADER_SLOT } from './viewport.helpers';\nimport { ViewportProps } from './viewport.interfaces';\ntype Props = {\n editors: Edition.Editors;\n useClipboard: boolean;\n readonly: boolean;\n range: boolean;\n rowClass: string;\n resize: boolean;\n columns: ViewportProps[];\n columnFilter: boolean;\n onScroll(e: RevoGrid.ViewPortScrollEvent, key?: RevoGrid.DimensionColPin | string): void;\n onCancelEdit(): void;\n onEdit(edit: Edition.BeforeEdit): void;\n registerElement(el: ElementScroll | null, key: string): void;\n};\n/**\n * All render based on sections\n * First we render vertical parts - pinned start, data, pinned end\n * Per each column we render data collections: headers, pinned top, center data, pinned bottom\n */\nexport const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, registerElement, onEdit, onCancelEdit, onScroll }: Props) => {\n const viewPortHtml: VNode[] = [];\n /** render viewports columns */\n for (let view of columns) {\n /** render viewports rows */\n const dataViews: HTMLElement[] = [\n <revogr-header\n viewportCol={view.viewportCol}\n {...view.headerProp}\n selectionStore={view.columnSelectionStore}\n slot={HEADER_SLOT}\n columnFilter={columnFilter}\n canResize={resize}\n />,\n ];\n view.dataPorts.forEach((data, j) => {\n const key = view.prop.key + (j + 1);\n\n const dataView = (\n <revogr-overlay-selection\n {...data}\n slot={data.slot}\n selectionStore={data.segmentSelectionStore}\n editors={editors}\n readonly={readonly}\n range={range}\n useClipboard={useClipboard}\n onCancelEdit= {() => onCancelEdit()}\n onSetEdit={({ detail }) => onEdit(detail)}\n >\n <revogr-data\n {...data}\n {...{ [UUID]: data.uuid }}\n key={key}\n readonly={readonly}\n range={range}\n rowClass={rowClass}\n rowSelectionStore={data.rowSelectionStore}\n slot={DATA_SLOT}\n />\n <revogr-temp-range selectionStore={data.segmentSelectionStore} dimensionRow={data.dimensionRow} dimensionCol={data.dimensionCol} />\n <revogr-focus colData={data.colData} dataStore={data.dataStore} selectionStore={data.segmentSelectionStore} dimensionRow={data.dimensionRow} dimensionCol={data.dimensionCol} />\n </revogr-overlay-selection>\n );\n dataViews.push(dataView);\n });\n viewPortHtml.push(\n <revogr-viewport-scroll {...view.prop} ref={el => registerElement(el, view.prop.key)} onScrollViewport={e => onScroll(e.detail, view.prop.key)}>\n {dataViews}\n </revogr-viewport-scroll>,\n );\n }\n return viewPortHtml;\n};\n"]}
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * Built by Revolist
3
3
  */
4
- import { EMPTY_INDEX } from '../../services/selection.store.connector';
5
- import { getSourceItem, getVisibleSourceItem } from '../../store/dataSource/data.store';
6
- import { columnTypes, rowTypes } from '../../store/storeTypes';
7
- import { UUID } from '../../utils/consts';
8
- import { CONTENT_SLOT, FOOTER_SLOT, getLastCell, HEADER_SLOT } from './viewport.helpers';
9
- import { reduce } from 'lodash';
4
+ import { EMPTY_INDEX } from "../../services/selection.store.connector";
5
+ import { getSourceItem, getVisibleSourceItem } from "../../store/dataSource/data.store";
6
+ import { columnTypes, rowTypes } from "../../store/storeTypes";
7
+ import { UUID } from "../../utils/consts";
8
+ import { CONTENT_SLOT, FOOTER_SLOT, getLastCell, HEADER_SLOT } from "./viewport.helpers";
9
+ import { reduce } from "lodash";
10
10
  export default class ViewportService {
11
11
  constructor(sv, contentHeight) {
12
12
  var _a, _b;
@@ -215,3 +215,4 @@ export default class ViewportService {
215
215
  (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEditByCell(storeCoordinate, { x: colIndex, y: rowIndex });
216
216
  }
217
217
  }
218
+ //# sourceMappingURL=viewport.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.service.js","sourceRoot":"","sources":["../../../src/components/revo-grid/viewport.service.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Observable, RevoGrid, Selection } from '../../interfaces';\nimport DimensionProvider from '../../services/dimension.provider';\nimport SelectionStoreConnector, { EMPTY_INDEX } from '../../services/selection.store.connector';\nimport ViewportProvider from '../../services/viewport.provider';\nimport { DataSourceState, getSourceItem, getVisibleSourceItem } from '../../store/dataSource/data.store';\nimport { columnTypes, rowTypes } from '../../store/storeTypes';\nimport { UUID } from '../../utils/consts';\nimport { OrdererService } from '../order/orderRenderer';\nimport GridScrollingService from './viewport.scrolling.service';\nimport { CONTENT_SLOT, FOOTER_SLOT, getLastCell, HEADER_SLOT } from './viewport.helpers';\nimport { HeaderProperties, SlotType, ViewportColumn, ViewportData, ViewportProps } from './viewport.interfaces';\nimport ColumnDataProvider from '../../services/column.data.provider';\nimport { DataProvider } from '../../services/data.provider';\nimport { reduce } from 'lodash';\n\ntype StoresMapping<T> = { [xOrY: number]: Partial<T> };\n\ntype Config = {\n columnProvider: ColumnDataProvider;\n dataProvider: DataProvider;\n dimensionProvider: DimensionProvider;\n viewportProvider: ViewportProvider;\n uuid: string | null;\n scrollingService: GridScrollingService;\n orderService: OrdererService;\n selectionStoreConnector: SelectionStoreConnector;\n resize(r: Record<RevoGrid.ColumnProp, RevoGrid.ColumnRegular>): void;\n};\n\n\n\nexport type FocusedData = {\n model: any,\n cell: Selection.Cell;\n colType: RevoGrid.DimensionCols;\n rowType: RevoGrid.DimensionRows;\n column?: RevoGrid.ColumnRegular;\n};\n\n\nexport default class ViewportService {\n readonly columns: ViewportProps[];\n readonly storesByType: Partial<Record<RevoGrid.MultiDimensionType, number>> = {};\n readonly storesXToType: StoresMapping<RevoGrid.DimensionCols> = {};\n readonly storesYToType: StoresMapping<RevoGrid.DimensionRows> = {};\n constructor(private sv: Config, contentHeight: number) {\n this.sv.selectionStoreConnector?.beforeUpdate();\n this.columns = this.getViewportColumnData(contentHeight);\n this.sv.scrollingService?.unregister();\n }\n\n private onColumnResize(\n type: RevoGrid.DimensionCols,\n e: CustomEvent<RevoGrid.ViewSettingSizeProp>,\n store: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>\n ) {\n this.sv.dimensionProvider?.setDimensionSize(type, e.detail);\n const changedItems = reduce(e.detail|| {}, (r: Record<RevoGrid.ColumnProp, RevoGrid.ColumnRegular>, size, index) => {\n const item: RevoGrid.ColumnRegular = getSourceItem(store, parseInt(index, 10));\n if (item) {\n r[item.prop] = {...item, size};\n }\n return r;\n }, {});\n this.sv.resize(changedItems);\n }\n\n /**\n * Transform data from stores and apply it to different components\n */\n private getViewportColumnData(contentHeight: number): ViewportProps[] {\n const columns: ViewportProps[] = [];\n let x = 0; // we increase x only if column present\n columnTypes.forEach(val => {\n const colStore = this.sv.columnProvider.stores[val].store;\n // only columns that have data show\n if (!colStore.get('items').length) {\n return;\n }\n const column: ViewportColumn = {\n colType: val,\n position: { x, y: 1 },\n\n contentHeight,\n fixWidth: val !== 'rgCol',\n uuid: `${this.sv.uuid}-${x}`,\n\n viewports: this.sv.viewportProvider.stores,\n dimensions: this.sv.dimensionProvider.stores,\n rowStores: this.sv.dataProvider.stores,\n\n colStore,\n onHeaderresize: e => this.onColumnResize(val, e, colStore)\n };\n if (val === 'rgCol') {\n column.onResizeViewport = (e: CustomEvent<RevoGrid.ViewPortResizeEvent>) =>\n this.sv.viewportProvider?.setViewport(e.detail.dimension, { virtualSize: e.detail.size });\n }\n const colData = this.gatherColumnData(column);\n const columnSelectionStore = this.registerCol(colData.position.x, val);\n\n // render per each column data collections vertically\n const dataPorts = this.dataViewPort(column).reduce<ViewportData[]>((r, rgRow) => {\n // register selection store for Segment\n const segmentSelection = this.registerSegment(rgRow.position);\n segmentSelection.setLastCell(rgRow.lastCell);\n\n // register selection store for Row\n const rowSelectionStore = this.registerRow(rgRow.position.y, rgRow.type);\n const rowDef: ViewportData = {\n ...rgRow,\n rowSelectionStore,\n segmentSelectionStore: segmentSelection.store,\n ref: (e: Element) => this.sv.selectionStoreConnector.registerSection(e),\n onSetRange: e => segmentSelection.setRangeArea(e.detail),\n onSetTempRange: e => segmentSelection.setTempArea(e.detail),\n onFocusCell: e => {\n segmentSelection.clearFocus();\n this.sv.selectionStoreConnector.focus(segmentSelection, e.detail);\n },\n };\n r.push(rowDef);\n return r;\n }, []);\n columns.push({\n ...colData,\n columnSelectionStore,\n dataPorts,\n });\n x++;\n });\n return columns;\n }\n\n /** register selection store for Segment */\n private registerSegment(position: Selection.Cell) {\n return this.sv.selectionStoreConnector.register(position);\n }\n\n /** register selection store for Row */\n private registerRow(y: number, type: RevoGrid.DimensionRows) {\n // link to position\n this.storesByType[type] = y;\n this.storesYToType[y] = type;\n return this.sv.selectionStoreConnector.registerRow(y).store;\n }\n\n /** register selection store for Column */\n private registerCol(x: number, type: RevoGrid.DimensionCols) {\n // link to position\n this.storesByType[type] = x;\n this.storesXToType[x] = type;\n return this.sv.selectionStoreConnector.registerColumn(x).store\n }\n\n /** Collect Column data */\n private gatherColumnData(data: ViewportColumn) {\n const parent: string = data.uuid;\n const realSize = data.dimensions[data.colType].store.get('realSize');\n const prop: Record<string, any> = {\n contentWidth: realSize,\n class: data.colType,\n [`${UUID}`]: data.uuid,\n contentHeight: data.contentHeight,\n key: data.colType,\n onResizeViewport: data.onResizeViewport,\n };\n if (data.fixWidth) {\n prop.style = { minWidth: `${realSize}px` };\n }\n const headerProp: HeaderProperties = {\n parent,\n colData: getVisibleSourceItem(data.colStore),\n dimensionCol: data.dimensions[data.colType].store,\n groups: data.colStore.get('groups'),\n groupingDepth: data.colStore.get('groupingDepth'),\n onHeaderresize: data.onHeaderresize,\n };\n\n return {\n prop,\n position: data.position,\n headerProp,\n parent,\n viewportCol: data.viewports[data.colType].store,\n };\n }\n\n /** Collect Row data */\n private dataViewPort(data: ViewportColumn) {\n const slots: { [key in RevoGrid.DimensionRows]: SlotType } = {\n rowPinStart: HEADER_SLOT,\n rgRow: CONTENT_SLOT,\n rowPinEnd: FOOTER_SLOT,\n };\n\n // y position for selection\n let y = 0;\n return rowTypes.reduce((r, type) => {\n // filter out empty sources, we still need to return source to keep slot working\n const isPresent = data.viewports[type].store.get('realCount') || type === 'rgRow';\n const rgCol = {\n ...data,\n position: { ...data.position, y: isPresent ? y : EMPTY_INDEX },\n };\n r.push(\n this.dataPartition(\n rgCol,\n type,\n slots[type],\n type !== 'rgRow', // is fixed\n ),\n );\n if (isPresent) {\n y++;\n }\n return r;\n }, []);\n }\n\n private dataPartition(data: ViewportColumn, type: RevoGrid.DimensionRows, slot: SlotType, fixed?: boolean) {\n return {\n colData: data.colStore,\n viewportCol: data.viewports[data.colType].store,\n viewportRow: data.viewports[type].store,\n lastCell: getLastCell(data, type),\n slot,\n type,\n canDrag: !fixed,\n position: data.position,\n uuid: `${data.uuid}-${data.position.x}-${data.position.y}`,\n dataStore: data.rowStores[type].store,\n dimensionCol: data.dimensions[data.colType].store,\n dimensionRow: data.dimensions[type].store,\n style: fixed ? { height: `${data.dimensions[type].store.get('realSize')}px` } : undefined,\n };\n }\n\n scrollToCell(cell: Partial<Selection.Cell>) {\n for (let key in cell) {\n const coordinate = cell[key as keyof Selection.Cell];\n this.sv.scrollingService.onScroll({ dimension: key === 'x' ? 'rgCol' : 'rgRow', coordinate });\n }\n }\n\n /**\n * Clear current grid focus\n */\n clearFocused() {\n this.sv.selectionStoreConnector.clearAll();\n }\n\n clearEdit() {\n this.sv.selectionStoreConnector.setEdit(false);\n }\n\n /**\n * Collect focused element data\n */\n getFocused(): FocusedData | null {\n const focused = this.sv.selectionStoreConnector.focusedStore;\n if (!focused) {\n return null;\n }\n // get column data\n const colType = this.storesXToType[focused.position.x];\n const column = this.sv.columnProvider.getColumn(focused.cell.x, colType);\n\n // get row data\n const rowType = this.storesYToType[focused.position.y];\n const model = this.sv.dataProvider.getModel(focused.cell.y, rowType);\n return {\n column,\n model,\n cell: focused.cell,\n colType,\n rowType\n };\n }\n\n getSelectedRange(): Selection.RangeArea | null {\n return this.sv.selectionStoreConnector.selectedRange;\n }\n\n setEdit(rowIndex: number, colIndex: number, colType: RevoGrid.DimensionCols, rowType: RevoGrid.DimensionRows) {\n const stores = this.storesByType;\n const storeCoordinate = {\n x: stores[colType],\n y: stores[rowType],\n };\n this.sv.selectionStoreConnector?.setEditByCell(storeCoordinate, { x: colIndex, y: rowIndex });\n }\n}\n"]}