@revolist/revogrid 3.6.2 → 3.6.4

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 (451) hide show
  1. package/custom-element/_baseIteratee.js +3 -1
  2. package/custom-element/_baseIteratee.js.map +1 -0
  3. package/custom-element/columnService.js +6 -4
  4. package/custom-element/columnService.js.map +1 -0
  5. package/custom-element/consts.js +3 -1
  6. package/custom-element/consts.js.map +1 -0
  7. package/custom-element/data.store.js +55 -33
  8. package/custom-element/data.store.js.map +1 -0
  9. package/custom-element/debounce.js +3 -1
  10. package/custom-element/debounce.js.map +1 -0
  11. package/custom-element/dimension.helpers.js +3 -1
  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 +9 -16
  20. package/custom-element/index.js +4 -15
  21. package/custom-element/index.js.map +1 -0
  22. package/custom-element/isSymbol.js +3 -1
  23. package/custom-element/isSymbol.js.map +1 -0
  24. package/custom-element/keys.js +3 -1
  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 +5 -3
  29. package/custom-element/resize-observer.js.map +1 -0
  30. package/custom-element/revo-grid.js +39 -159
  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 +14 -3
  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 +7 -3
  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 +11 -3
  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 +8 -3
  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 +15 -3
  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 -3
  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 +8 -4
  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 +6 -11
  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/themeService.js +65 -0
  79. package/custom-element/themeService.js.map +1 -0
  80. package/custom-element/toInteger.js +2 -0
  81. package/custom-element/toInteger.js.map +1 -0
  82. package/custom-element/toNumber.js +3 -1
  83. package/custom-element/toNumber.js.map +1 -0
  84. package/custom-element/utils.js +2 -0
  85. package/custom-element/utils.js.map +1 -0
  86. package/dist/cjs/{debounce-6cea2774.js → debounce-25dce8a1.js} +3 -1
  87. package/dist/cjs/debounce-25dce8a1.js.map +1 -0
  88. package/dist/cjs/{index-cb904e00.js → index-5f3dfe40.js} +577 -283
  89. package/dist/cjs/index-5f3dfe40.js.map +1 -0
  90. package/dist/cjs/index.cjs.js +2 -0
  91. package/dist/cjs/index.cjs.js.map +1 -0
  92. package/dist/cjs/loader.cjs.js +5 -16
  93. package/dist/cjs/loader.cjs.js.map +1 -0
  94. package/dist/cjs/{resize-observer-bf327d6a.js → resize-observer-7f159b88.js} +5 -3
  95. package/dist/cjs/resize-observer-7f159b88.js.map +1 -0
  96. package/dist/cjs/revo-grid.cjs.js +11 -59
  97. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  98. package/dist/cjs/revo-grid_11.cjs.entry.js +153 -150
  99. package/dist/cjs/revo-grid_11.cjs.entry.js.map +1 -0
  100. package/dist/cjs/revogr-clipboard.cjs.entry.js +4 -3
  101. package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -0
  102. package/dist/cjs/revogr-filter-panel.cjs.entry.js +11 -6
  103. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  104. package/dist/collection/collection-manifest.json +2 -2
  105. package/dist/collection/components/button/button.js +1 -0
  106. package/dist/collection/components/button/button.js.map +1 -0
  107. package/dist/collection/components/clipboard/revogr-clipboard.js +82 -80
  108. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  109. package/dist/collection/components/data/cellRenderer.js +2 -2
  110. package/dist/collection/components/data/cellRenderer.js.map +1 -0
  111. package/dist/collection/components/data/columnService.js +4 -3
  112. package/dist/collection/components/data/columnService.js.map +1 -0
  113. package/dist/collection/components/data/revogr-data.js +240 -219
  114. package/dist/collection/components/data/revogr-data.js.map +1 -0
  115. package/dist/collection/components/data/rowRenderer.js +1 -0
  116. package/dist/collection/components/data/rowRenderer.js.map +1 -0
  117. package/dist/collection/components/header/headerCellRenderer.js +2 -3
  118. package/dist/collection/components/header/headerCellRenderer.js.map +1 -0
  119. package/dist/collection/components/header/headerRenderer.js +2 -3
  120. package/dist/collection/components/header/headerRenderer.js.map +1 -0
  121. package/dist/collection/components/header/revogr-header.js +244 -229
  122. package/dist/collection/components/header/revogr-header.js.map +1 -0
  123. package/dist/collection/components/order/orderRenderer.js +2 -5
  124. package/dist/collection/components/order/orderRenderer.js.map +1 -0
  125. package/dist/collection/components/order/revogr-order-editor.js +257 -248
  126. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  127. package/dist/collection/components/order/rowOrderService.js +1 -0
  128. package/dist/collection/components/order/rowOrderService.js.map +1 -0
  129. package/dist/collection/components/overlay/autofill.service.js +1 -0
  130. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  131. package/dist/collection/components/overlay/clipboard.service.js +1 -0
  132. package/dist/collection/components/overlay/clipboard.service.js.map +1 -0
  133. package/dist/collection/components/overlay/editors/edit.utils.js +1 -0
  134. package/dist/collection/components/overlay/editors/edit.utils.js.map +1 -0
  135. package/dist/collection/components/overlay/editors/text.js +1 -0
  136. package/dist/collection/components/overlay/editors/text.js.map +1 -0
  137. package/dist/collection/components/overlay/keyboard.service.js +1 -0
  138. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  139. package/dist/collection/components/overlay/revogr-edit.js +106 -94
  140. package/dist/collection/components/overlay/revogr-edit.js.map +1 -0
  141. package/dist/collection/components/overlay/revogr-overlay-selection.js +488 -466
  142. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  143. package/dist/collection/components/overlay/selection.utils.js +1 -0
  144. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  145. package/dist/collection/components/revo-grid/revo-grid-style.css +7 -13
  146. package/dist/collection/components/revo-grid/revo-grid.js +1565 -1618
  147. package/dist/collection/components/revo-grid/revo-grid.js.map +1 -0
  148. package/dist/collection/components/revo-grid/viewport.helpers.js +1 -0
  149. package/dist/collection/components/revo-grid/viewport.helpers.js.map +1 -0
  150. package/dist/collection/components/revo-grid/viewport.interfaces.js +1 -3
  151. package/dist/collection/components/revo-grid/viewport.interfaces.js.map +1 -0
  152. package/dist/collection/components/revo-grid/viewport.js +2 -5
  153. package/dist/collection/components/revo-grid/viewport.js.map +1 -0
  154. package/dist/collection/components/revo-grid/viewport.resize.service.js +1 -0
  155. package/dist/collection/components/revo-grid/viewport.resize.service.js.map +1 -0
  156. package/dist/collection/components/revo-grid/viewport.scrolling.service.js +1 -0
  157. package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +1 -0
  158. package/dist/collection/components/revo-grid/viewport.section.js +2 -4
  159. package/dist/collection/components/revo-grid/viewport.section.js.map +1 -0
  160. package/dist/collection/components/revo-grid/viewport.service.js +8 -2
  161. package/dist/collection/components/revo-grid/viewport.service.js.map +1 -0
  162. package/dist/collection/components/rowHeaders/revogr-row-headers.js +151 -142
  163. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  164. package/dist/collection/components/rowHeaders/row-header-render.js +1 -0
  165. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  166. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +2 -4
  167. package/dist/collection/components/scroll/revogr-viewport-scroll.js +161 -164
  168. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  169. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +147 -135
  170. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  171. package/dist/collection/components/selection-focus/revogr-focus.js +141 -125
  172. package/dist/collection/components/selection-focus/revogr-focus.js.map +1 -0
  173. package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +1 -1
  174. package/dist/collection/components/selection-temp-range/revogr-temp-range.js +83 -74
  175. package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +1 -0
  176. package/dist/collection/global/global.js +1 -0
  177. package/dist/collection/global/global.js.map +1 -0
  178. package/dist/collection/index.js +1 -0
  179. package/dist/collection/index.js.map +1 -0
  180. package/dist/collection/plugins/autoSizeColumn.js +1 -0
  181. package/dist/collection/plugins/autoSizeColumn.js.map +1 -0
  182. package/dist/collection/plugins/basePlugin.js +1 -0
  183. package/dist/collection/plugins/basePlugin.js.map +1 -0
  184. package/dist/collection/plugins/dispatcher.js +1 -0
  185. package/dist/collection/plugins/dispatcher.js.map +1 -0
  186. package/dist/collection/plugins/export/csv.js +1 -0
  187. package/dist/collection/plugins/export/csv.js.map +1 -0
  188. package/dist/collection/plugins/export/export.plugin.js +1 -0
  189. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  190. package/dist/collection/plugins/export/types.js +1 -3
  191. package/dist/collection/plugins/export/types.js.map +1 -0
  192. package/dist/collection/plugins/filter/conditions/equal.js +1 -0
  193. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  194. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +1 -0
  195. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  196. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +1 -0
  197. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  198. package/dist/collection/plugins/filter/conditions/number/lessThan.js +1 -0
  199. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  200. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +1 -0
  201. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  202. package/dist/collection/plugins/filter/conditions/set.js +1 -0
  203. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  204. package/dist/collection/plugins/filter/conditions/string/beginswith.js +1 -0
  205. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  206. package/dist/collection/plugins/filter/conditions/string/contains.js +1 -0
  207. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  208. package/dist/collection/plugins/filter/filter.button.js +6 -11
  209. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  210. package/dist/collection/plugins/filter/filter.plugin.js +1 -0
  211. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  212. package/dist/collection/plugins/filter/filter.pop.js +239 -234
  213. package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
  214. package/dist/collection/plugins/filter/filter.service.js +1 -0
  215. package/dist/collection/plugins/filter/filter.service.js.map +1 -0
  216. package/dist/collection/plugins/filter/filter.style.css +2 -3
  217. package/dist/collection/plugins/filter/filter.types.js +1 -3
  218. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  219. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +1 -0
  220. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
  221. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +1 -0
  222. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
  223. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +1 -0
  224. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
  225. package/dist/collection/plugins/groupingRow/grouping.const.js +1 -0
  226. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  227. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +1 -0
  228. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  229. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +6 -5
  230. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  231. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +3 -7
  232. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  233. package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -3
  234. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  235. package/dist/collection/plugins/groupingRow/grouping.service.js +1 -0
  236. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  237. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -0
  238. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  239. package/dist/collection/plugins/moveColumn/columnDragPlugin.js +1 -0
  240. package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +1 -0
  241. package/dist/collection/plugins/moveColumn/columnOrderHandler.js +1 -0
  242. package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +1 -0
  243. package/dist/collection/plugins/sorting/sorting.plugin.js +4 -3
  244. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  245. package/dist/collection/plugins/sorting/sorting.sign.js +1 -0
  246. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  247. package/dist/collection/plugins/stretchPlugin.js +1 -0
  248. package/dist/collection/plugins/stretchPlugin.js.map +1 -0
  249. package/dist/collection/plugins/trimmed/trimmed.plugin.js +1 -0
  250. package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +1 -0
  251. package/dist/collection/services/cell.helpers.js +1 -0
  252. package/dist/collection/services/cell.helpers.js.map +1 -0
  253. package/dist/collection/services/column.data.provider.js +8 -7
  254. package/dist/collection/services/column.data.provider.js.map +1 -0
  255. package/dist/collection/services/data.provider.js +1 -0
  256. package/dist/collection/services/data.provider.js.map +1 -0
  257. package/dist/collection/services/dimension.provider.js +1 -0
  258. package/dist/collection/services/dimension.provider.js.map +1 -0
  259. package/dist/collection/services/localScrollService.js +1 -0
  260. package/dist/collection/services/localScrollService.js.map +1 -0
  261. package/dist/collection/services/resizable.directive.js +2 -3
  262. package/dist/collection/services/resizable.directive.js.map +1 -0
  263. package/dist/collection/services/selection.store.connector.js +1 -0
  264. package/dist/collection/services/selection.store.connector.js.map +1 -0
  265. package/dist/collection/services/viewport.provider.js +1 -0
  266. package/dist/collection/services/viewport.provider.js.map +1 -0
  267. package/dist/collection/store/dataSource/data.proxy.js +1 -0
  268. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  269. package/dist/collection/store/dataSource/data.store.js +4 -3
  270. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  271. package/dist/collection/store/dimension/dimension.helpers.js +1 -0
  272. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  273. package/dist/collection/store/dimension/dimension.store.js +5 -3
  274. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  275. package/dist/collection/store/selection/selection.helpers.js +1 -0
  276. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  277. package/dist/collection/store/selection/selection.store.js +1 -0
  278. package/dist/collection/store/selection/selection.store.js.map +1 -0
  279. package/dist/collection/store/selection/selection.store.service.js +1 -0
  280. package/dist/collection/store/selection/selection.store.service.js.map +1 -0
  281. package/dist/collection/store/storeTypes.js +1 -0
  282. package/dist/collection/store/storeTypes.js.map +1 -0
  283. package/dist/collection/store/viewPort/viewport.helpers.js +1 -0
  284. package/dist/collection/store/viewPort/viewport.helpers.js.map +1 -0
  285. package/dist/collection/store/viewPort/viewport.store.js +1 -1
  286. package/dist/collection/store/viewPort/viewport.store.js.map +1 -0
  287. package/dist/collection/themeManager/theme.compact.js +1 -0
  288. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  289. package/dist/collection/themeManager/theme.default.js +1 -0
  290. package/dist/collection/themeManager/theme.default.js.map +1 -0
  291. package/dist/collection/themeManager/theme.material.js +1 -0
  292. package/dist/collection/themeManager/theme.material.js.map +1 -0
  293. package/dist/collection/themeManager/themeService.js +6 -5
  294. package/dist/collection/themeManager/themeService.js.map +1 -0
  295. package/dist/collection/utils/closestPolifill.js +1 -0
  296. package/dist/collection/utils/closestPolifill.js.map +1 -0
  297. package/dist/collection/utils/consts.js +1 -0
  298. package/dist/collection/utils/consts.js.map +1 -0
  299. package/dist/collection/utils/generateAlphabetHeader.js +1 -0
  300. package/dist/collection/utils/generateAlphabetHeader.js.map +1 -0
  301. package/dist/collection/utils/keyCodes.js +1 -0
  302. package/dist/collection/utils/keyCodes.js.map +1 -0
  303. package/dist/collection/utils/keyCodes.utils.js +1 -0
  304. package/dist/collection/utils/keyCodes.utils.js.map +1 -0
  305. package/dist/collection/utils/platform.js +1 -0
  306. package/dist/collection/utils/platform.js.map +1 -0
  307. package/dist/collection/utils/resizeObserver.js +1 -0
  308. package/dist/collection/utils/resizeObserver.js.map +1 -0
  309. package/dist/collection/utils/store.utils.js +1 -0
  310. package/dist/collection/utils/store.utils.js.map +1 -0
  311. package/dist/collection/utils/utils.js +1 -0
  312. package/dist/collection/utils/utils.js.map +1 -0
  313. package/dist/esm/{debounce-e4e6dd45.js → debounce-7221834a.js} +3 -1
  314. package/dist/esm/debounce-7221834a.js.map +1 -0
  315. package/dist/esm/{index-6f753b3c.js → index-068eebfc.js} +577 -279
  316. package/dist/esm/index-068eebfc.js.map +1 -0
  317. package/dist/esm/index.js +2 -0
  318. package/dist/esm/index.js.map +1 -0
  319. package/dist/esm/loader.js +5 -16
  320. package/dist/esm/loader.js.map +1 -0
  321. package/dist/esm/polyfills/css-shim.js +1 -1
  322. package/dist/esm/{resize-observer-00c48d78.js → resize-observer-d817c4b6.js} +5 -3
  323. package/dist/esm/resize-observer-d817c4b6.js.map +1 -0
  324. package/dist/esm/revo-grid.js +9 -60
  325. package/dist/esm/revo-grid.js.map +1 -0
  326. package/dist/esm/revo-grid_11.entry.js +153 -150
  327. package/dist/esm/revo-grid_11.entry.js.map +1 -0
  328. package/dist/esm/revogr-clipboard.entry.js +4 -3
  329. package/dist/esm/revogr-clipboard.entry.js.map +1 -0
  330. package/dist/esm/revogr-filter-panel.entry.js +11 -6
  331. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  332. package/dist/esm-es5/{debounce-e4e6dd45.js → debounce-7221834a.js} +2 -1
  333. package/dist/esm-es5/debounce-7221834a.js.map +1 -0
  334. package/dist/esm-es5/index-068eebfc.js +5 -0
  335. package/dist/esm-es5/index-068eebfc.js.map +1 -0
  336. package/dist/esm-es5/index.js +1 -0
  337. package/dist/esm-es5/index.js.map +1 -0
  338. package/dist/esm-es5/loader.js +2 -1
  339. package/dist/esm-es5/loader.js.map +1 -0
  340. package/dist/esm-es5/{resize-observer-00c48d78.js → resize-observer-d817c4b6.js} +2 -1
  341. package/dist/esm-es5/resize-observer-d817c4b6.js.map +1 -0
  342. package/dist/esm-es5/revo-grid.js +2 -1
  343. package/dist/esm-es5/revo-grid.js.map +1 -0
  344. package/dist/esm-es5/revo-grid_11.entry.js +3 -2
  345. package/dist/esm-es5/revo-grid_11.entry.js.map +1 -0
  346. package/dist/esm-es5/revogr-clipboard.entry.js +3 -2
  347. package/dist/esm-es5/revogr-clipboard.entry.js.map +1 -0
  348. package/dist/esm-es5/revogr-filter-panel.entry.js +3 -2
  349. package/dist/esm-es5/revogr-filter-panel.entry.js.map +1 -0
  350. package/dist/revo-grid/debounce-7221834a.js +5 -0
  351. package/dist/revo-grid/debounce-7221834a.js.map +1 -0
  352. package/dist/revo-grid/{debounce-5a33c710.system.js → debounce-fa358fc7.system.js} +2 -1
  353. package/dist/revo-grid/debounce-fa358fc7.system.js.map +1 -0
  354. package/dist/revo-grid/index-068eebfc.js +6 -0
  355. package/dist/revo-grid/index-068eebfc.js.map +1 -0
  356. package/dist/revo-grid/index-36847b63.system.js +6 -0
  357. package/dist/revo-grid/index-36847b63.system.js.map +1 -0
  358. package/dist/revo-grid/index.esm.js +2 -0
  359. package/dist/revo-grid/index.esm.js.map +1 -0
  360. package/dist/revo-grid/index.system.js +2 -1
  361. package/dist/revo-grid/index.system.js.map +1 -0
  362. package/dist/revo-grid/{resize-observer-8af0bc0e.system.js → resize-observer-64c845eb.system.js} +2 -1
  363. package/dist/revo-grid/resize-observer-64c845eb.system.js.map +1 -0
  364. package/dist/revo-grid/resize-observer-d817c4b6.js +5 -0
  365. package/dist/revo-grid/resize-observer-d817c4b6.js.map +1 -0
  366. package/dist/revo-grid/revo-grid.esm.js +2 -1
  367. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  368. package/dist/revo-grid/revo-grid.js +0 -2
  369. package/dist/revo-grid/revo-grid.system.js +2 -1
  370. package/dist/revo-grid/revo-grid.system.js.map +1 -0
  371. package/dist/revo-grid/revo-grid_11.entry.js +2 -1
  372. package/dist/revo-grid/revo-grid_11.entry.js.map +1 -0
  373. package/dist/revo-grid/revo-grid_11.system.entry.js +3 -2
  374. package/dist/revo-grid/revo-grid_11.system.entry.js.map +1 -0
  375. package/dist/revo-grid/revogr-clipboard.entry.js +2 -1
  376. package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -0
  377. package/dist/revo-grid/revogr-clipboard.system.entry.js +3 -2
  378. package/dist/revo-grid/revogr-clipboard.system.entry.js.map +1 -0
  379. package/dist/revo-grid/revogr-filter-panel.entry.js +2 -1
  380. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  381. package/dist/revo-grid/revogr-filter-panel.system.entry.js +3 -2
  382. package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +1 -0
  383. package/dist/types/components/data/cellRenderer.d.ts +1 -1
  384. package/dist/types/components/data/columnService.d.ts +4 -4
  385. package/dist/types/components/header/headerCellRenderer.d.ts +1 -1
  386. package/dist/types/components/header/headerRenderer.d.ts +1 -1
  387. package/dist/types/components/order/orderRenderer.d.ts +1 -1
  388. package/dist/types/components/order/rowOrderService.d.ts +1 -1
  389. package/dist/types/components/overlay/autofill.service.d.ts +1 -1
  390. package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
  391. package/dist/types/components/overlay/editors/text.d.ts +1 -1
  392. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  393. package/dist/types/components/overlay/selection.utils.d.ts +1 -1
  394. package/dist/types/components/revo-grid/viewport.d.ts +1 -1
  395. package/dist/types/components/revo-grid/viewport.interfaces.d.ts +5 -5
  396. package/dist/types/components/revo-grid/viewport.scrolling.service.d.ts +1 -1
  397. package/dist/types/components/revo-grid/viewport.section.d.ts +1 -1
  398. package/dist/types/components/revo-grid/viewport.service.d.ts +6 -3
  399. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  400. package/dist/types/components.d.ts +26 -0
  401. package/dist/types/plugins/autoSizeColumn.d.ts +1 -1
  402. package/dist/types/plugins/dispatcher.d.ts +1 -1
  403. package/dist/types/plugins/export/csv.d.ts +1 -1
  404. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  405. package/dist/types/plugins/export/types.d.ts +2 -2
  406. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  407. package/dist/types/plugins/filter/filter.plugin.d.ts +6 -6
  408. package/dist/types/plugins/filter/filter.pop.d.ts +4 -4
  409. package/dist/types/plugins/filter/filter.service.d.ts +1 -1
  410. package/dist/types/plugins/filter/filter.types.d.ts +5 -5
  411. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +1 -1
  412. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +1 -1
  413. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +1 -1
  414. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  415. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +5 -5
  416. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  417. package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +5 -5
  418. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -1
  419. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  420. package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +2 -2
  421. package/dist/types/services/column.data.provider.d.ts +4 -4
  422. package/dist/types/services/data.provider.d.ts +1 -1
  423. package/dist/types/services/dimension.provider.d.ts +2 -2
  424. package/dist/types/services/localScrollService.d.ts +1 -1
  425. package/dist/types/services/resizable.directive.d.ts +2 -2
  426. package/dist/types/services/selection.store.connector.d.ts +2 -2
  427. package/dist/types/services/viewport.provider.d.ts +1 -1
  428. package/dist/types/stencil-public-runtime.d.ts +91 -19
  429. package/dist/types/store/dataSource/data.proxy.d.ts +1 -1
  430. package/dist/types/store/dataSource/data.store.d.ts +4 -4
  431. package/dist/types/store/dimension/dimension.helpers.d.ts +3 -3
  432. package/dist/types/store/selection/selection.store.d.ts +1 -1
  433. package/dist/types/store/viewPort/viewport.helpers.d.ts +2 -2
  434. package/loader/index.d.ts +9 -0
  435. package/loader/package.json +1 -0
  436. package/package.json +1 -1
  437. package/dist/cjs/css-shim-9f5bc84d.js +0 -9
  438. package/dist/cjs/dom-fcb646f0.js +0 -78
  439. package/dist/esm/css-shim-e1e1ea5e.js +0 -7
  440. package/dist/esm/dom-21bd1807.js +0 -76
  441. package/dist/esm-es5/css-shim-e1e1ea5e.js +0 -4
  442. package/dist/esm-es5/dom-21bd1807.js +0 -24
  443. package/dist/esm-es5/index-6f753b3c.js +0 -4
  444. package/dist/revo-grid/css-shim-bcf89cc0.system.js +0 -4
  445. package/dist/revo-grid/css-shim-e1e1ea5e.js +0 -4
  446. package/dist/revo-grid/debounce-726bdadb.js +0 -4
  447. package/dist/revo-grid/dom-21bd1807.js +0 -22
  448. package/dist/revo-grid/dom-726246e2.system.js +0 -24
  449. package/dist/revo-grid/index-f14b41a0.system.js +0 -5
  450. package/dist/revo-grid/index-f30d1de1.js +0 -5
  451. 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"]}
@@ -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"]}
@@ -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"]}
@@ -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"]}
@@ -180,15 +180,20 @@ export default class ViewportService {
180
180
  clearEdit() {
181
181
  this.sv.selectionStoreConnector.setEdit(false);
182
182
  }
183
+ /**
184
+ * Collect focused element data
185
+ */
183
186
  getFocused() {
184
187
  const focused = this.sv.selectionStoreConnector.focusedStore;
185
188
  if (!focused) {
186
189
  return null;
187
190
  }
191
+ // get column data
188
192
  const colType = this.storesXToType[focused.position.x];
189
193
  const column = this.sv.columnProvider.getColumn(focused.cell.x, colType);
190
- const rowType = this.storesYToType[focused.position.x];
191
- const model = this.sv.dataProvider.getModel(focused.cell.x, rowType);
194
+ // get row data
195
+ const rowType = this.storesYToType[focused.position.y];
196
+ const model = this.sv.dataProvider.getModel(focused.cell.y, rowType);
192
197
  return {
193
198
  column,
194
199
  model,
@@ -210,3 +215,4 @@ export default class ViewportService {
210
215
  (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEditByCell(storeCoordinate, { x: colIndex, y: rowIndex });
211
216
  }
212
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"]}