@revolist/revogrid 3.1.6 → 3.2.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 (213) hide show
  1. package/dist/revo-grid/_baseIteratee-af30b221.js +2070 -0
  2. package/dist/{collection/global/global.js → revo-grid/app-globals-7e6866ba.js} +11 -2
  3. package/dist/{collection/components/data/columnService.js → revo-grid/columnService-91e552ba.js} +11 -6
  4. package/dist/revo-grid/consts-ef824e6f.js +46 -0
  5. package/dist/revo-grid/css-shim-5387c708.js +7 -0
  6. package/dist/revo-grid/data.store-3263fff9.js +557 -0
  7. package/dist/revo-grid/debounce-aaa4b4da.js +217 -0
  8. package/dist/revo-grid/dimension.helpers-a7944fc4.js +340 -0
  9. package/dist/revo-grid/dispatcher-891af82e.js +24 -0
  10. package/dist/{cjs/dom-c8b6d1a7.js → revo-grid/dom-21bd1807.js} +4 -3
  11. package/dist/revo-grid/each-0378e5a3.js +180 -0
  12. package/dist/{collection/plugins/filter/filter.button.js → revo-grid/filter.button-74c1cd9c.js} +16 -10
  13. package/dist/revo-grid/identity-c8c7d3d8.js +26 -0
  14. package/dist/revo-grid/index-8a604c17.js +3067 -0
  15. package/dist/revo-grid/index.esm.js +3 -0
  16. package/dist/revo-grid/isString-a51066b5.js +34 -0
  17. package/dist/revo-grid/isSymbol-e4b5dafe.js +247 -0
  18. package/dist/revo-grid/keyCodes.utils-bd06e3ba.js +299 -0
  19. package/dist/revo-grid/keys-70b7c240.js +561 -0
  20. package/dist/{collection/services/localScrollService.js → revo-grid/localScrollService-e9b73323.js} +8 -2
  21. package/dist/{esm/revo-grid_11.entry.js → revo-grid/lodash-a0ab4cdd.js} +13773 -24597
  22. package/dist/{cjs/resize-observer-8dc80084.js → revo-grid/resize-observer-00c48d78.js} +25 -14
  23. package/dist/revo-grid/revo-grid.entry.js +3484 -0
  24. package/dist/revo-grid/revo-grid.esm.js +133 -1
  25. package/dist/revo-grid/revogr-clipboard.entry.js +52 -1
  26. package/dist/revo-grid/revogr-data.entry.js +152 -0
  27. package/dist/revo-grid/revogr-edit.entry.js +105 -0
  28. package/dist/revo-grid/revogr-filter-panel.entry.js +277 -1
  29. package/dist/revo-grid/revogr-focus.entry.js +41 -0
  30. package/dist/revo-grid/revogr-header.entry.js +560 -0
  31. package/dist/revo-grid/revogr-order-editor.entry.js +175 -0
  32. package/dist/revo-grid/revogr-overlay-selection.entry.js +711 -0
  33. package/dist/revo-grid/revogr-row-headers.entry.js +73 -0
  34. package/dist/revo-grid/revogr-scroll-virtual.entry.js +114 -0
  35. package/dist/revo-grid/revogr-temp-range.entry.js +73 -0
  36. package/dist/revo-grid/revogr-viewport-scroll.entry.js +340 -0
  37. package/dist/revo-grid/selection.store.connector-2b613fd0.js +503 -0
  38. package/dist/{collection/components/overlay/selection.utils.js → revo-grid/selection.utils-a9932db6.js} +15 -9
  39. package/dist/revo-grid/shadow-css-602a09db.js +390 -0
  40. package/dist/{collection/themeManager/themeService.js → revo-grid/themeService-ddaaa364.js} +26 -6
  41. package/dist/revo-grid/toInteger-9e6cbfd2.js +107 -0
  42. package/dist/revo-grid/toNumber-913b0b72.js +105 -0
  43. package/dist/{collection/utils/utils.js → revo-grid/utils-2c3b3857.js} +13 -8
  44. package/dist/revo-grid/viewport.helpers-49d3f031.js +16 -0
  45. package/dist/{collection/store/viewPort/viewport.helpers.js → revo-grid/viewport.store-ffaaab6d.js} +135 -9
  46. package/dist/types/components/revo-grid/revo-grid.d.ts +6 -0
  47. package/dist/types/components.d.ts +110 -58
  48. package/dist/types/plugins/dispatcher.d.ts +10 -0
  49. package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +66 -0
  50. package/dist/types/plugins/moveColumn/columnOrderHandler.d.ts +12 -0
  51. package/dist/types/services/resizable.directive.d.ts +1 -1
  52. package/dist/types/stencil-public-runtime.d.ts +189 -186
  53. package/package.json +22 -20
  54. package/custom-element/index.js +0 -28972
  55. package/custom-element/resize-observer.js +0 -489
  56. package/dist/cjs/css-shim-e33df79c.js +0 -6
  57. package/dist/cjs/debounce-e9b040d9.js +0 -575
  58. package/dist/cjs/index-d3f67f2e.js +0 -1729
  59. package/dist/cjs/index.cjs.js +0 -2
  60. package/dist/cjs/loader.cjs.js +0 -35
  61. package/dist/cjs/revo-grid.cjs.js +0 -73
  62. package/dist/cjs/revo-grid_11.cjs.entry.js +0 -28056
  63. package/dist/cjs/revogr-clipboard.cjs.entry.js +0 -53
  64. package/dist/cjs/revogr-filter-panel.cjs.entry.js +0 -275
  65. package/dist/collection/collection-manifest.json +0 -25
  66. package/dist/collection/components/button/button.js +0 -4
  67. package/dist/collection/components/clipboard/revogr-clipboard.js +0 -121
  68. package/dist/collection/components/data/cellRenderer.js +0 -24
  69. package/dist/collection/components/data/revogr-data-style.css +0 -135
  70. package/dist/collection/components/data/revogr-data.js +0 -322
  71. package/dist/collection/components/data/rowRenderer.js +0 -6
  72. package/dist/collection/components/header/headerCellRenderer.js +0 -19
  73. package/dist/collection/components/header/headerRenderer.js +0 -45
  74. package/dist/collection/components/header/revogr-header-style.css +0 -198
  75. package/dist/collection/components/header/revogr-header.js +0 -297
  76. package/dist/collection/components/order/orderRenderer.js +0 -50
  77. package/dist/collection/components/order/revogr-order-editor.js +0 -358
  78. package/dist/collection/components/order/rowOrderService.js +0 -68
  79. package/dist/collection/components/overlay/autofill.service.js +0 -182
  80. package/dist/collection/components/overlay/clipboard.service.js +0 -39
  81. package/dist/collection/components/overlay/editors/edit.utils.js +0 -5
  82. package/dist/collection/components/overlay/editors/text.js +0 -35
  83. package/dist/collection/components/overlay/keyboard.service.js +0 -128
  84. package/dist/collection/components/overlay/revogr-edit-style.css +0 -86
  85. package/dist/collection/components/overlay/revogr-edit.js +0 -159
  86. package/dist/collection/components/overlay/revogr-overlay-selection.js +0 -726
  87. package/dist/collection/components/overlay/revogr-overlay-style.css +0 -98
  88. package/dist/collection/components/revo-grid/revo-grid-style.css +0 -527
  89. package/dist/collection/components/revo-grid/revo-grid.js +0 -2186
  90. package/dist/collection/components/revo-grid/viewport.helpers.js +0 -11
  91. package/dist/collection/components/revo-grid/viewport.interfaces.js +0 -1
  92. package/dist/collection/components/revo-grid/viewport.js +0 -18
  93. package/dist/collection/components/revo-grid/viewport.resize.service.js +0 -21
  94. package/dist/collection/components/revo-grid/viewport.scrolling.service.js +0 -60
  95. package/dist/collection/components/revo-grid/viewport.section.js +0 -28
  96. package/dist/collection/components/revo-grid/viewport.service.js +0 -209
  97. package/dist/collection/components/rowHeaders/revogr-row-headers.js +0 -210
  98. package/dist/collection/components/rowHeaders/row-header-render.js +0 -1
  99. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +0 -137
  100. package/dist/collection/components/scroll/revogr-viewport-scroll.js +0 -399
  101. package/dist/collection/components/scrollable/revogr-scroll-style.css +0 -104
  102. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +0 -253
  103. package/dist/collection/components/selection-focus/revogr-focus-style.css +0 -77
  104. package/dist/collection/components/selection-focus/revogr-focus.js +0 -103
  105. package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +0 -98
  106. package/dist/collection/components/selection-temp-range/revogr-temp-range.js +0 -138
  107. package/dist/collection/index.js +0 -1
  108. package/dist/collection/plugins/autoSizeColumn.js +0 -230
  109. package/dist/collection/plugins/basePlugin.js +0 -27
  110. package/dist/collection/plugins/export/csv.js +0 -68
  111. package/dist/collection/plugins/export/export.plugin.js +0 -165
  112. package/dist/collection/plugins/export/types.js +0 -1
  113. package/dist/collection/plugins/filter/conditions/equal.js +0 -17
  114. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +0 -10
  115. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +0 -7
  116. package/dist/collection/plugins/filter/conditions/number/lessThan.js +0 -12
  117. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +0 -7
  118. package/dist/collection/plugins/filter/conditions/set.js +0 -3
  119. package/dist/collection/plugins/filter/conditions/string/beginswith.js +0 -17
  120. package/dist/collection/plugins/filter/conditions/string/contains.js +0 -18
  121. package/dist/collection/plugins/filter/filter.plugin.js +0 -256
  122. package/dist/collection/plugins/filter/filter.pop.js +0 -485
  123. package/dist/collection/plugins/filter/filter.service.js +0 -44
  124. package/dist/collection/plugins/filter/filter.style.css +0 -239
  125. package/dist/collection/plugins/filter/filter.types.js +0 -1
  126. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +0 -30
  127. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +0 -36
  128. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +0 -21
  129. package/dist/collection/plugins/groupingRow/grouping.const.js +0 -10
  130. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +0 -76
  131. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +0 -258
  132. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +0 -29
  133. package/dist/collection/plugins/groupingRow/grouping.row.types.js +0 -1
  134. package/dist/collection/plugins/groupingRow/grouping.service.js +0 -155
  135. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +0 -57
  136. package/dist/collection/plugins/sorting/sorting.plugin.js +0 -181
  137. package/dist/collection/plugins/sorting/sorting.sign.js +0 -6
  138. package/dist/collection/plugins/stretchPlugin.js +0 -68
  139. package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -32
  140. package/dist/collection/services/cell.helpers.js +0 -7
  141. package/dist/collection/services/column.data.provider.js +0 -188
  142. package/dist/collection/services/data.provider.js +0 -47
  143. package/dist/collection/services/dimension.provider.js +0 -78
  144. package/dist/collection/services/resizable.directive.js +0 -250
  145. package/dist/collection/services/selection.store.connector.js +0 -213
  146. package/dist/collection/services/viewport.provider.js +0 -14
  147. package/dist/collection/store/dataSource/data.proxy.js +0 -34
  148. package/dist/collection/store/dataSource/data.store.js +0 -127
  149. package/dist/collection/store/dimension/dimension.helpers.js +0 -107
  150. package/dist/collection/store/dimension/dimension.store.js +0 -59
  151. package/dist/collection/store/selection/selection.helpers.js +0 -53
  152. package/dist/collection/store/selection/selection.store.js +0 -68
  153. package/dist/collection/store/selection/selection.store.service.js +0 -35
  154. package/dist/collection/store/storeTypes.js +0 -5
  155. package/dist/collection/store/viewPort/viewport.store.js +0 -121
  156. package/dist/collection/themeManager/theme.compact.js +0 -5
  157. package/dist/collection/themeManager/theme.default.js +0 -5
  158. package/dist/collection/themeManager/theme.material.js +0 -5
  159. package/dist/collection/utils/closestPolifill.js +0 -18
  160. package/dist/collection/utils/consts.js +0 -19
  161. package/dist/collection/utils/generateAlphabetHeader.js +0 -20
  162. package/dist/collection/utils/keyCodes.js +0 -70
  163. package/dist/collection/utils/keyCodes.utils.js +0 -64
  164. package/dist/collection/utils/platform.js +0 -5
  165. package/dist/collection/utils/resizeObserver.js +0 -6
  166. package/dist/collection/utils/store.utils.js +0 -7
  167. package/dist/collection/utilsExternal/generate-data.js +0 -132
  168. package/dist/esm/css-shim-8d75038b.js +0 -4
  169. package/dist/esm/debounce-8dadcda7.js +0 -558
  170. package/dist/esm/dom-1b195079.js +0 -73
  171. package/dist/esm/index-42c84e7c.js +0 -1694
  172. package/dist/esm/index.js +0 -1
  173. package/dist/esm/loader.js +0 -31
  174. package/dist/esm/polyfills/core-js.js +0 -11
  175. package/dist/esm/polyfills/css-shim.js +0 -1
  176. package/dist/esm/polyfills/dom.js +0 -79
  177. package/dist/esm/polyfills/es5-html-element.js +0 -1
  178. package/dist/esm/polyfills/index.js +0 -34
  179. package/dist/esm/polyfills/system.js +0 -6
  180. package/dist/esm/resize-observer-56b7b34f.js +0 -489
  181. package/dist/esm/revo-grid.js +0 -71
  182. package/dist/esm/revogr-clipboard.entry.js +0 -49
  183. package/dist/esm/revogr-filter-panel.entry.js +0 -271
  184. package/dist/esm-es5/css-shim-8d75038b.js +0 -1
  185. package/dist/esm-es5/debounce-8dadcda7.js +0 -1
  186. package/dist/esm-es5/dom-1b195079.js +0 -21
  187. package/dist/esm-es5/index-42c84e7c.js +0 -1
  188. package/dist/esm-es5/index.js +0 -0
  189. package/dist/esm-es5/loader.js +0 -1
  190. package/dist/esm-es5/resize-observer-56b7b34f.js +0 -1
  191. package/dist/esm-es5/revo-grid.js +0 -1
  192. package/dist/esm-es5/revo-grid_11.entry.js +0 -1
  193. package/dist/esm-es5/revogr-clipboard.entry.js +0 -1
  194. package/dist/esm-es5/revogr-filter-panel.entry.js +0 -1
  195. package/dist/index.cjs.js +0 -1
  196. package/dist/index.js +0 -1
  197. package/dist/revo-grid/css-shim-88bfb262.system.js +0 -1
  198. package/dist/revo-grid/css-shim-8d75038b.js +0 -1
  199. package/dist/revo-grid/debounce-d097578d.js +0 -1
  200. package/dist/revo-grid/debounce-f40a88f6.system.js +0 -1
  201. package/dist/revo-grid/dom-1b195079.js +0 -19
  202. package/dist/revo-grid/dom-ee2dd1b3.system.js +0 -21
  203. package/dist/revo-grid/index-a15e7527.system.js +0 -1
  204. package/dist/revo-grid/index-a7f99799.js +0 -1
  205. package/dist/revo-grid/index.system.js +0 -1
  206. package/dist/revo-grid/resize-observer-56b7b34f.js +0 -1
  207. package/dist/revo-grid/resize-observer-7a7b9757.system.js +0 -1
  208. package/dist/revo-grid/revo-grid.js +0 -132
  209. package/dist/revo-grid/revo-grid.system.js +0 -1
  210. package/dist/revo-grid/revo-grid_11.entry.js +0 -1
  211. package/dist/revo-grid/revo-grid_11.system.entry.js +0 -1
  212. package/dist/revo-grid/revogr-clipboard.system.entry.js +0 -1
  213. package/dist/revo-grid/revogr-filter-panel.system.entry.js +0 -1
@@ -1,11 +0,0 @@
1
- export const HEADER_SLOT = 'header';
2
- export const FOOTER_SLOT = 'footer';
3
- export const CONTENT_SLOT = 'content';
4
- export const DATA_SLOT = 'data';
5
- /** Receive last visible in viewport by required type */
6
- export function getLastCell(data, rowType) {
7
- return {
8
- x: data.viewports[data.colType].store.get('realCount'),
9
- y: data.viewports[rowType].store.get('realCount'),
10
- };
11
- }
@@ -1,18 +0,0 @@
1
- import { h } from '@stencil/core';
2
- import OrderRenderer from '../order/orderRenderer';
3
- export const RevoViewPort = ({ viewports, dimensions, orderRef, nakedClick, registerElement, onScroll }, children) => {
4
- const viewPortClick = (e, el) => {
5
- if (el === e.target) {
6
- nakedClick(e);
7
- }
8
- };
9
- let el;
10
- return [
11
- h("div", { class: "main-viewport", ref: e => el = e, onClick: e => viewPortClick(e, el) },
12
- h("div", { class: "viewports" },
13
- children,
14
- 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) }),
15
- h(OrderRenderer, { ref: orderRef }))),
16
- 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) }),
17
- ];
18
- };
@@ -1,21 +0,0 @@
1
- import throttle from 'lodash/throttle';
2
- import { resizeObserver } from '../../utils/resizeObserver';
3
- export default class GridResizeService {
4
- constructor(el, events) {
5
- this.events = events;
6
- this.resizeObserver = null;
7
- this.resize = throttle((e, o) => { var _a; return (_a = this.events) === null || _a === void 0 ? void 0 : _a.resize(e, o); }, 10);
8
- this.init(el);
9
- }
10
- async init(el) {
11
- var _a;
12
- await resizeObserver();
13
- this.resizeObserver = new ResizeObserver(this.resize);
14
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(el);
15
- }
16
- destroy() {
17
- var _a;
18
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
19
- this.resizeObserver = null;
20
- }
21
- }
@@ -1,60 +0,0 @@
1
- export default class GridScrollingService {
2
- constructor(setViewport) {
3
- this.setViewport = setViewport;
4
- this.elements = {};
5
- }
6
- async onScroll(e, key) {
7
- let newEvent;
8
- for (let elKey in this.elements) {
9
- if (this.isPinnedColumn(key) && e.dimension === 'rgCol') {
10
- if (elKey === key || !e.delta) {
11
- continue;
12
- }
13
- for (let el of this.elements[elKey]) {
14
- el.changeScroll && (newEvent = el.changeScroll(e));
15
- }
16
- }
17
- else if (e.dimension === 'rgCol' && elKey === 'headerRow') {
18
- continue;
19
- }
20
- else {
21
- for (let el of this.elements[elKey]) {
22
- el.setScroll(e);
23
- }
24
- }
25
- }
26
- let event = e;
27
- if (newEvent) {
28
- event = await newEvent;
29
- }
30
- this.setViewport(event);
31
- }
32
- isPinnedColumn(key) {
33
- return ['colPinStart', 'colPinEnd'].indexOf(key) > -1;
34
- }
35
- registerElements(els) {
36
- this.elements = els;
37
- }
38
- /**
39
- * Register new element for farther scroll support
40
- * @param el - can be null if holder removed
41
- * @param key - element key
42
- */
43
- registerElement(el, key) {
44
- if (!this.elements[key]) {
45
- this.elements[key] = [];
46
- }
47
- // new element added
48
- if (el) {
49
- this.elements[key].push(el);
50
- }
51
- else if (this.elements[key]) {
52
- // element removed
53
- delete this.elements[key];
54
- }
55
- }
56
- unregister() {
57
- delete this.elements;
58
- this.elements = {};
59
- }
60
- }
@@ -1,28 +0,0 @@
1
- import { h } from '@stencil/core';
2
- import { UUID } from '../../utils/consts';
3
- import { DATA_SLOT, HEADER_SLOT } from './viewport.helpers';
4
- /**
5
- * All render based on sections
6
- * First we render vertical parts - pinned start, data, pinned end
7
- * Per each column we render data collections: headers, pinned top, center data, pinned bottom
8
- */
9
- export const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, registerElement, onEdit, onScroll }) => {
10
- const viewPortHtml = [];
11
- /** render viewports columns */
12
- for (let view of columns) {
13
- /** render viewports rows */
14
- const dataViews = [
15
- h("revogr-header", Object.assign({ viewportCol: view.viewportCol }, view.headerProp, { selectionStore: view.columnSelectionStore, slot: HEADER_SLOT, columnFilter: columnFilter, canResize: resize })),
16
- ];
17
- view.dataPorts.forEach((data, j) => {
18
- const key = view.prop.key + (j + 1);
19
- const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, onSetEdit: ({ detail }) => onEdit(detail) }),
20
- h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })),
21
- h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }),
22
- h("revogr-focus", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
23
- dataViews.push(dataView);
24
- });
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));
26
- }
27
- return viewPortHtml;
28
- };
@@ -1,209 +0,0 @@
1
- import { EMPTY_INDEX } from '../../services/selection.store.connector';
2
- import { getSourceItem, getVisibleSourceItem } from '../../store/dataSource/data.store';
3
- import { columnTypes, rowTypes } from '../../store/storeTypes';
4
- import { UUID } from '../../utils/consts';
5
- import { CONTENT_SLOT, FOOTER_SLOT, getLastCell, HEADER_SLOT } from './viewport.helpers';
6
- import { reduce } from 'lodash';
7
- export default class ViewportService {
8
- constructor(sv, contentHeight) {
9
- var _a, _b;
10
- this.sv = sv;
11
- this.storesByType = {};
12
- this.storesXToType = {};
13
- this.storesYToType = {};
14
- (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.beforeUpdate();
15
- this.columns = this.getViewportColumnData(contentHeight);
16
- (_b = this.sv.scrollingService) === null || _b === void 0 ? void 0 : _b.unregister();
17
- }
18
- onColumnResize(type, e, store) {
19
- var _a;
20
- (_a = this.sv.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setDimensionSize(type, e.detail);
21
- const changedItems = reduce(e.detail || {}, (r, size, index) => {
22
- const item = getSourceItem(store, parseInt(index, 10));
23
- if (item) {
24
- r[item.prop] = Object.assign(Object.assign({}, item), { size });
25
- }
26
- return r;
27
- }, {});
28
- this.sv.resize(changedItems);
29
- }
30
- /**
31
- * Transform data from stores and apply it to different components
32
- */
33
- getViewportColumnData(contentHeight) {
34
- const columns = [];
35
- let x = 0; // we increase x only if column present
36
- columnTypes.forEach(val => {
37
- const colStore = this.sv.columnProvider.stores[val].store;
38
- // only columns that have data show
39
- if (!colStore.get('items').length) {
40
- return;
41
- }
42
- const column = {
43
- colType: val,
44
- position: { x, y: 1 },
45
- contentHeight,
46
- fixWidth: val !== 'rgCol',
47
- uuid: `${this.sv.uuid}-${x}`,
48
- viewports: this.sv.viewportProvider.stores,
49
- dimensions: this.sv.dimensionProvider.stores,
50
- rowStores: this.sv.dataProvider.stores,
51
- colStore,
52
- onHeaderresize: e => this.onColumnResize(val, e, colStore)
53
- };
54
- if (val === 'rgCol') {
55
- column.onResizeViewport = (e) => { var _a; return (_a = this.sv.viewportProvider) === null || _a === void 0 ? void 0 : _a.setViewport(e.detail.dimension, { virtualSize: e.detail.size }); };
56
- }
57
- const colData = this.gatherColumnData(column);
58
- const columnSelectionStore = this.registerCol(colData.position.x, val);
59
- // render per each column data collections vertically
60
- const dataPorts = this.dataViewPort(column).reduce((r, rgRow) => {
61
- // register selection store for Segment
62
- const segmentSelection = this.registerSegment(rgRow.position);
63
- segmentSelection.setLastCell(rgRow.lastCell);
64
- // register selection store for Row
65
- const rowSelectionStore = this.registerRow(rgRow.position.y, rgRow.type);
66
- const rowDef = Object.assign(Object.assign({}, rgRow), { rowSelectionStore, segmentSelectionStore: segmentSelection.store, ref: (e) => this.sv.selectionStoreConnector.registerSection(e), onSetRange: e => segmentSelection.setRangeArea(e.detail), onSetTempRange: e => segmentSelection.setTempArea(e.detail), onFocusCell: e => {
67
- segmentSelection.clearFocus();
68
- this.sv.selectionStoreConnector.focus(segmentSelection, e.detail);
69
- } });
70
- r.push(rowDef);
71
- return r;
72
- }, []);
73
- columns.push(Object.assign(Object.assign({}, colData), { columnSelectionStore,
74
- dataPorts }));
75
- x++;
76
- });
77
- return columns;
78
- }
79
- /** register selection store for Segment */
80
- registerSegment(position) {
81
- return this.sv.selectionStoreConnector.register(position);
82
- }
83
- /** register selection store for Row */
84
- registerRow(y, type) {
85
- // link to position
86
- this.storesByType[type] = y;
87
- this.storesYToType[y] = type;
88
- return this.sv.selectionStoreConnector.registerRow(y).store;
89
- }
90
- /** register selection store for Column */
91
- registerCol(x, type) {
92
- // link to position
93
- this.storesByType[type] = x;
94
- this.storesXToType[x] = type;
95
- return this.sv.selectionStoreConnector.registerColumn(x).store;
96
- }
97
- /** Collect Column data */
98
- gatherColumnData(data) {
99
- const parent = data.uuid;
100
- const realSize = data.dimensions[data.colType].store.get('realSize');
101
- const prop = {
102
- contentWidth: realSize,
103
- class: data.colType,
104
- [`${UUID}`]: data.uuid,
105
- contentHeight: data.contentHeight,
106
- key: data.colType,
107
- onResizeViewport: data.onResizeViewport,
108
- };
109
- if (data.fixWidth) {
110
- prop.style = { minWidth: `${realSize}px` };
111
- }
112
- const headerProp = {
113
- parent,
114
- colData: getVisibleSourceItem(data.colStore),
115
- dimensionCol: data.dimensions[data.colType].store,
116
- groups: data.colStore.get('groups'),
117
- groupingDepth: data.colStore.get('groupingDepth'),
118
- onHeaderresize: data.onHeaderresize,
119
- };
120
- return {
121
- prop,
122
- position: data.position,
123
- headerProp,
124
- parent,
125
- viewportCol: data.viewports[data.colType].store,
126
- };
127
- }
128
- /** Collect Row data */
129
- dataViewPort(data) {
130
- const slots = {
131
- rowPinStart: HEADER_SLOT,
132
- rgRow: CONTENT_SLOT,
133
- rowPinEnd: FOOTER_SLOT,
134
- };
135
- // y position for selection
136
- let y = 0;
137
- return rowTypes.reduce((r, type) => {
138
- // filter out empty sources, we still need to return source to keep slot working
139
- const isPresent = data.viewports[type].store.get('realCount') || type === 'rgRow';
140
- const rgCol = Object.assign(Object.assign({}, data), { position: Object.assign(Object.assign({}, data.position), { y: isPresent ? y : EMPTY_INDEX }) });
141
- r.push(this.dataPartition(rgCol, type, slots[type], type !== 'rgRow'));
142
- if (isPresent) {
143
- y++;
144
- }
145
- return r;
146
- }, []);
147
- }
148
- dataPartition(data, type, slot, fixed) {
149
- return {
150
- colData: data.colStore,
151
- viewportCol: data.viewports[data.colType].store,
152
- viewportRow: data.viewports[type].store,
153
- lastCell: getLastCell(data, type),
154
- slot,
155
- type,
156
- canDrag: !fixed,
157
- position: data.position,
158
- uuid: `${data.uuid}-${data.position.x}-${data.position.y}`,
159
- dataStore: data.rowStores[type].store,
160
- dimensionCol: data.dimensions[data.colType].store,
161
- dimensionRow: data.dimensions[type].store,
162
- style: fixed ? { height: `${data.dimensions[type].store.get('realSize')}px` } : undefined,
163
- };
164
- }
165
- scrollToCell(cell) {
166
- for (let key in cell) {
167
- const coordinate = cell[key];
168
- this.sv.scrollingService.onScroll({ dimension: key === 'x' ? 'rgCol' : 'rgRow', coordinate });
169
- }
170
- }
171
- /**
172
- * Clear current grid focus
173
- */
174
- clearFocused() {
175
- this.sv.selectionStoreConnector.clearAll();
176
- }
177
- clearEdit() {
178
- this.sv.selectionStoreConnector.setEdit(false);
179
- }
180
- getFocused() {
181
- const focused = this.sv.selectionStoreConnector.focusedStore;
182
- if (!focused) {
183
- return null;
184
- }
185
- const colType = this.storesXToType[focused.position.x];
186
- const column = this.sv.columnProvider.getColumn(focused.cell.x, colType);
187
- const rowType = this.storesYToType[focused.position.x];
188
- const model = this.sv.dataProvider.getModel(focused.cell.x, rowType);
189
- return {
190
- column,
191
- model,
192
- cell: focused.cell,
193
- colType,
194
- rowType
195
- };
196
- }
197
- getSelectedRange() {
198
- return this.sv.selectionStoreConnector.selectedRange;
199
- }
200
- setEdit(rowIndex, colIndex, colType, rowType) {
201
- var _a;
202
- const stores = this.storesByType;
203
- const storeCoordinate = {
204
- x: stores[colType],
205
- y: stores[rowType],
206
- };
207
- (_a = this.sv.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEditByCell(storeCoordinate, { x: colIndex, y: rowIndex });
208
- }
209
- }
@@ -1,210 +0,0 @@
1
- import { h, Host } from '@stencil/core';
2
- import { Component, Prop, Event } from '@stencil/core';
3
- import DataStore from '../../store/dataSource/data.store';
4
- import ViewportStore from '../../store/viewPort/viewport.store';
5
- import { UUID } from '../../utils/consts';
6
- import { RowHeaderRender } from './row-header-render';
7
- const LETTER_BLOCK_SIZE = 10;
8
- export class RevogrRowHeaders {
9
- render() {
10
- var _a;
11
- const dataViews = [];
12
- const viewport = new ViewportStore();
13
- /** render viewports rows */
14
- let totalLength = 1;
15
- for (let data of this.dataPorts) {
16
- const itemCount = data.dataStore.get('items').length;
17
- // initiate row data
18
- const dataStore = new DataStore(data.type);
19
- dataStore.updateData(data.dataStore.get('source'));
20
- // initiate column data
21
- const colData = new DataStore('colPinStart');
22
- const column = Object.assign({ cellTemplate: RowHeaderRender(totalLength) }, this.rowHeaderColumn);
23
- colData.updateData([column]);
24
- const viewData = Object.assign(Object.assign({}, data), { dataStore: dataStore.store, colData: colData.store, viewportCol: viewport.store, readonly: true, range: false });
25
- dataViews.push(h("revogr-data", Object.assign({}, viewData)));
26
- totalLength += itemCount;
27
- }
28
- const colSize = ((_a = this.rowHeaderColumn) === null || _a === void 0 ? void 0 : _a.size) || (totalLength.toString().length + 1) * LETTER_BLOCK_SIZE;
29
- viewport.setViewport({
30
- realCount: 1,
31
- virtualSize: 0,
32
- items: [
33
- {
34
- size: colSize,
35
- start: 0,
36
- end: colSize,
37
- itemIndex: 0,
38
- },
39
- ],
40
- });
41
- const parent = `${this.uiid}-rowHeaders`;
42
- const viewportScroll = {
43
- [UUID]: parent,
44
- contentHeight: this.height,
45
- contentWidth: 0,
46
- style: { minWidth: `${colSize}px` },
47
- ref: (el) => this.elementToScroll.emit(el),
48
- onScrollViewport: (e) => this.scrollViewport.emit(e.detail),
49
- };
50
- const viewportHeader = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, parent, slot: 'header' });
51
- return h(Host, { class: "rowHeaders", key: "rowHeaders" },
52
- h("revogr-viewport-scroll", Object.assign({}, viewportScroll),
53
- h("revogr-header", Object.assign({}, viewportHeader)),
54
- dataViews));
55
- }
56
- static get is() { return "revogr-row-headers"; }
57
- static get properties() { return {
58
- "height": {
59
- "type": "number",
60
- "mutable": false,
61
- "complexType": {
62
- "original": "number",
63
- "resolved": "number",
64
- "references": {}
65
- },
66
- "required": false,
67
- "optional": false,
68
- "docs": {
69
- "tags": [],
70
- "text": ""
71
- },
72
- "attribute": "height",
73
- "reflect": false
74
- },
75
- "dataPorts": {
76
- "type": "unknown",
77
- "mutable": false,
78
- "complexType": {
79
- "original": "ViewportData[]",
80
- "resolved": "ViewportData[]",
81
- "references": {
82
- "ViewportData": {
83
- "location": "import",
84
- "path": "../revo-grid/viewport.interfaces"
85
- }
86
- }
87
- },
88
- "required": false,
89
- "optional": false,
90
- "docs": {
91
- "tags": [],
92
- "text": ""
93
- }
94
- },
95
- "headerProp": {
96
- "type": "unknown",
97
- "mutable": false,
98
- "complexType": {
99
- "original": "Record<string, any>",
100
- "resolved": "{ [x: string]: any; }",
101
- "references": {
102
- "Record": {
103
- "location": "global"
104
- }
105
- }
106
- },
107
- "required": false,
108
- "optional": false,
109
- "docs": {
110
- "tags": [],
111
- "text": ""
112
- }
113
- },
114
- "uiid": {
115
- "type": "string",
116
- "mutable": false,
117
- "complexType": {
118
- "original": "string",
119
- "resolved": "string",
120
- "references": {}
121
- },
122
- "required": false,
123
- "optional": false,
124
- "docs": {
125
- "tags": [],
126
- "text": ""
127
- },
128
- "attribute": "uiid",
129
- "reflect": false
130
- },
131
- "resize": {
132
- "type": "boolean",
133
- "mutable": false,
134
- "complexType": {
135
- "original": "boolean",
136
- "resolved": "boolean",
137
- "references": {}
138
- },
139
- "required": false,
140
- "optional": false,
141
- "docs": {
142
- "tags": [],
143
- "text": ""
144
- },
145
- "attribute": "resize",
146
- "reflect": false
147
- },
148
- "rowHeaderColumn": {
149
- "type": "unknown",
150
- "mutable": false,
151
- "complexType": {
152
- "original": "RevoGrid.RowHeaders",
153
- "resolved": "RowHeaders",
154
- "references": {
155
- "RevoGrid": {
156
- "location": "import",
157
- "path": "../../interfaces"
158
- }
159
- }
160
- },
161
- "required": false,
162
- "optional": false,
163
- "docs": {
164
- "tags": [],
165
- "text": ""
166
- }
167
- }
168
- }; }
169
- static get events() { return [{
170
- "method": "scrollViewport",
171
- "name": "scrollViewport",
172
- "bubbles": false,
173
- "cancelable": true,
174
- "composed": true,
175
- "docs": {
176
- "tags": [],
177
- "text": ""
178
- },
179
- "complexType": {
180
- "original": "RevoGrid.ViewPortScrollEvent",
181
- "resolved": "{ dimension: DimensionType; coordinate: number; delta?: number; }",
182
- "references": {
183
- "RevoGrid": {
184
- "location": "import",
185
- "path": "../../interfaces"
186
- }
187
- }
188
- }
189
- }, {
190
- "method": "elementToScroll",
191
- "name": "elementToScroll",
192
- "bubbles": false,
193
- "cancelable": true,
194
- "composed": true,
195
- "docs": {
196
- "tags": [],
197
- "text": ""
198
- },
199
- "complexType": {
200
- "original": "ElementScroll",
201
- "resolved": "ElementScroll",
202
- "references": {
203
- "ElementScroll": {
204
- "location": "import",
205
- "path": "../revo-grid/viewport.scrolling.service"
206
- }
207
- }
208
- }
209
- }]; }
210
- }
@@ -1 +0,0 @@
1
- export const RowHeaderRender = s => (__, { rowIndex: i }) => s + i;