@revolist/revogrid 4.13.3 → 4.13.5

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 (107) hide show
  1. package/dist/cjs/dimension.helpers-5b822a09.js.map +1 -1
  2. package/dist/cjs/index.cjs.js +10 -9
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/revo-grid.cjs.entry.js +1 -1
  5. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  6. package/dist/cjs/revogr-attribution_7.cjs.entry.js +4 -4
  7. package/dist/cjs/revogr-data_4.cjs.entry.js +71 -56
  8. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  9. package/dist/collection/{plugins/groupingColumn/headerGroupRenderer.js → components/header/header-group-renderer.js} +4 -4
  10. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  11. package/dist/collection/components/header/revogr-header.js +75 -13
  12. package/dist/collection/components/header/revogr-header.js.map +1 -1
  13. package/dist/collection/components/overlay/revogr-overlay-selection.js +2 -2
  14. package/dist/collection/components/revoGrid/revo-grid-style.css +1 -0
  15. package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
  16. package/dist/collection/components/scroll/revogr-viewport-scroll.js +1 -1
  17. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +1 -1
  18. package/dist/collection/components/vnode/vnode-converter.js +1 -1
  19. package/dist/collection/plugins/index.js +0 -2
  20. package/dist/collection/plugins/index.js.map +1 -1
  21. package/dist/collection/serve/data.js +5 -0
  22. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  23. package/dist/collection/types/events.js +1 -0
  24. package/dist/collection/types/events.js.map +1 -1
  25. package/dist/esm/{column.drag.plugin-da99fde5.js → column.drag.plugin-c625cb29.js} +5 -5
  26. package/dist/{revo-grid/column.drag.plugin-da99fde5.js.map → esm/column.drag.plugin-c625cb29.js.map} +1 -1
  27. package/dist/esm/{column.service-f39c0a1d.js → column.service-5f5b38b9.js} +2 -2
  28. package/dist/{revo-grid/column.service-f39c0a1d.js.map → esm/column.service-5f5b38b9.js.map} +1 -1
  29. package/dist/{revo-grid/dimension.helpers-5567e424.js → esm/dimension.helpers-54788e5f.js} +2 -2
  30. package/dist/{revo-grid/dimension.helpers-5567e424.js.map → esm/dimension.helpers-54788e5f.js.map} +1 -1
  31. package/dist/esm/{edit.utils-b59306be.js → edit.utils-130d232d.js} +2 -2
  32. package/dist/esm/{edit.utils-b59306be.js.map → edit.utils-130d232d.js.map} +1 -1
  33. package/dist/{revo-grid/grouping.row.renderer-95f32c6b.js → esm/grouping.row.renderer-adeb3f82.js} +3 -3
  34. package/dist/esm/{grouping.row.renderer-95f32c6b.js.map → grouping.row.renderer-adeb3f82.js.map} +1 -1
  35. package/dist/esm/{header-cell-renderer-31f53644.js → header-cell-renderer-cdc31050.js} +2 -2
  36. package/dist/{revo-grid/header-cell-renderer-31f53644.js.map → esm/header-cell-renderer-cdc31050.js.map} +1 -1
  37. package/dist/esm/index.js +10 -9
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/{revo-grid/key.utils-3632161b.js → esm/key.utils-b61b261e.js} +2 -2
  40. package/dist/esm/{key.utils-3632161b.js.map → key.utils-b61b261e.js.map} +1 -1
  41. package/dist/esm/revo-grid.entry.js +6 -6
  42. package/dist/esm/revo-grid.entry.js.map +1 -1
  43. package/dist/esm/revogr-attribution_7.entry.js +10 -10
  44. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  45. package/dist/esm/revogr-data_4.entry.js +76 -61
  46. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  47. package/dist/{revo-grid/text-editor-e47e56c3.js → esm/text-editor-00ca5b90.js} +3 -3
  48. package/dist/esm/{text-editor-e47e56c3.js.map → text-editor-00ca5b90.js.map} +1 -1
  49. package/dist/esm/{throttle-dec28f5b.js → throttle-deb3116a.js} +2 -2
  50. package/dist/esm/{throttle-dec28f5b.js.map → throttle-deb3116a.js.map} +1 -1
  51. package/dist/{revo-grid/viewport.store-c18a25a6.js → esm/viewport.store-f6aff24d.js} +2 -2
  52. package/dist/esm/{viewport.store-c18a25a6.js.map → viewport.store-f6aff24d.js.map} +1 -1
  53. package/dist/revo-grid/{column.drag.plugin-da99fde5.js → column.drag.plugin-c625cb29.js} +5 -5
  54. package/dist/{esm/column.drag.plugin-da99fde5.js.map → revo-grid/column.drag.plugin-c625cb29.js.map} +1 -1
  55. package/dist/revo-grid/{column.service-f39c0a1d.js → column.service-5f5b38b9.js} +2 -2
  56. package/dist/{esm/column.service-f39c0a1d.js.map → revo-grid/column.service-5f5b38b9.js.map} +1 -1
  57. package/dist/{esm/dimension.helpers-5567e424.js → revo-grid/dimension.helpers-54788e5f.js} +2 -2
  58. package/dist/{esm/dimension.helpers-5567e424.js.map → revo-grid/dimension.helpers-54788e5f.js.map} +1 -1
  59. package/dist/revo-grid/{edit.utils-b59306be.js → edit.utils-130d232d.js} +2 -2
  60. package/dist/revo-grid/{edit.utils-b59306be.js.map → edit.utils-130d232d.js.map} +1 -1
  61. package/dist/{esm/grouping.row.renderer-95f32c6b.js → revo-grid/grouping.row.renderer-adeb3f82.js} +3 -3
  62. package/dist/revo-grid/{grouping.row.renderer-95f32c6b.js.map → grouping.row.renderer-adeb3f82.js.map} +1 -1
  63. package/dist/revo-grid/{header-cell-renderer-31f53644.js → header-cell-renderer-cdc31050.js} +2 -2
  64. package/dist/{esm/header-cell-renderer-31f53644.js.map → revo-grid/header-cell-renderer-cdc31050.js.map} +1 -1
  65. package/dist/revo-grid/index.esm.js +10 -9
  66. package/dist/revo-grid/index.esm.js.map +1 -1
  67. package/dist/{esm/key.utils-3632161b.js → revo-grid/key.utils-b61b261e.js} +2 -2
  68. package/dist/revo-grid/{key.utils-3632161b.js.map → key.utils-b61b261e.js.map} +1 -1
  69. package/dist/revo-grid/revo-grid.entry.js +6 -6
  70. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  71. package/dist/revo-grid/revogr-attribution_7.entry.js +10 -10
  72. package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
  73. package/dist/revo-grid/revogr-data_4.entry.js +76 -61
  74. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  75. package/dist/{esm/text-editor-e47e56c3.js → revo-grid/text-editor-00ca5b90.js} +3 -3
  76. package/dist/revo-grid/{text-editor-e47e56c3.js.map → text-editor-00ca5b90.js.map} +1 -1
  77. package/dist/revo-grid/{throttle-dec28f5b.js → throttle-deb3116a.js} +2 -2
  78. package/dist/revo-grid/{throttle-dec28f5b.js.map → throttle-deb3116a.js.map} +1 -1
  79. package/dist/{esm/viewport.store-c18a25a6.js → revo-grid/viewport.store-f6aff24d.js} +2 -2
  80. package/dist/revo-grid/{viewport.store-c18a25a6.js.map → viewport.store-f6aff24d.js.map} +1 -1
  81. package/dist/types/{plugins/groupingColumn/headerGroupRenderer.d.ts → components/header/header-group-renderer.d.ts} +4 -4
  82. package/dist/types/components/header/revogr-header.d.ts +9 -2
  83. package/dist/types/components.d.ts +7 -0
  84. package/dist/types/plugins/index.d.ts +0 -2
  85. package/dist/types/store/dataSource/data.store.d.ts +1 -1
  86. package/dist/types/types/events.d.ts +1 -1
  87. package/hydrate/index.js +59 -44
  88. package/hydrate/index.mjs +59 -44
  89. package/package.json +1 -1
  90. package/standalone/column.service.js +1 -1
  91. package/standalone/data.store.js +1 -1
  92. package/standalone/data.store.js.map +1 -1
  93. package/standalone/index.js +3 -2
  94. package/standalone/index.js.map +1 -1
  95. package/standalone/revo-grid.js +1 -1
  96. package/standalone/revo-grid.js.map +1 -1
  97. package/standalone/revogr-header2.js +77 -62
  98. package/standalone/revogr-header2.js.map +1 -1
  99. package/standalone/revogr-overlay-selection2.js +2 -2
  100. package/standalone/revogr-row-headers2.js +1 -1
  101. package/standalone/revogr-scroll-virtual2.js +1 -1
  102. package/standalone/revogr-viewport-scroll2.js +1 -1
  103. package/standalone/vnode-converter.js +1 -1
  104. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +0 -34
  105. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +0 -1
  106. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +0 -1
  107. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -18
@@ -2,15 +2,15 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, c as createEvent, a as getElement } from './index-f6fae858.js';
5
- import { b as getSourceItem, j as getItemByPosition, k as getItemByIndex, J as FOCUS_CLASS, U as codesLetter, u as timeout, R as RESIZE_INTERVAL, L as CELL_HANDLER_CLASS, K as MOBILE_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, A as ROW_HEADER_TYPE, o as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-5567e424.js';
5
+ import { b as getSourceItem, j as getItemByPosition, k as getItemByIndex, J as FOCUS_CLASS, U as codesLetter, u as timeout, R as RESIZE_INTERVAL, L as CELL_HANDLER_CLASS, K as MOBILE_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, A as ROW_HEADER_TYPE, o as getScrollbarSize, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-54788e5f.js';
6
6
  import { g as getPropertyFromEvent, v as verifyTouchTarget } from './events-cf0893a3.js';
7
- import { g as getRange, M as ColumnService, x as getCellData, N as getCellEditor, a as isRangeSingleCell } from './column.service-f39c0a1d.js';
8
- import { i as isEditInput } from './edit.utils-b59306be.js';
9
- import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll } from './key.utils-3632161b.js';
7
+ import { g as getRange, M as ColumnService, x as getCellData, N as getCellEditor, a as isRangeSingleCell } from './column.service-5f5b38b9.js';
8
+ import { i as isEditInput } from './edit.utils-130d232d.js';
9
+ import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll } from './key.utils-b61b261e.js';
10
10
  import { d as debounce } from './debounce-b3166f78.js';
11
- import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-c18a25a6.js';
11
+ import { V as ViewportStore, f as calculateRowHeaderSize } from './viewport.store-f6aff24d.js';
12
12
  import { H as HEADER_SLOT } from './viewport.helpers-7e7f9dad.js';
13
- import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-dec28f5b.js';
13
+ import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-deb3116a.js';
14
14
 
15
15
  const Attribution = class {
16
16
  constructor(hostRef) {
@@ -867,7 +867,7 @@ const OverlaySelection = class {
867
867
  nodes.push(h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, rowType: this.types.rowType, onRowdragstartinit: e => this.rowDragStart(e) }));
868
868
  }
869
869
  }
870
- return (h(Host, { key: '4beb16eb1cfe23899d054adbd52b46120aad5ba6', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true), onCloseedit: (e) => this.closeEdit(e), onCelledit: (e) => {
870
+ return (h(Host, { key: 'aaae2fb9cd6abd04c5b742277214579901062a54', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true), onCloseedit: (e) => this.closeEdit(e), onCelledit: (e) => {
871
871
  const saveEv = this.beforeCellSave.emit(e.detail);
872
872
  if (!saveEv.defaultPrevented) {
873
873
  this.cellEdit(saveEv.detail);
@@ -876,7 +876,7 @@ const OverlaySelection = class {
876
876
  if (!saveEv.detail.preventFocus) {
877
877
  this.focusNext();
878
878
  }
879
- } }, nodes, h("slot", { key: '693c50627eb52b9902d9fe5ddd0c09fd2a3ee562', name: "data" })));
879
+ } }, nodes, h("slot", { key: '945243e45f2cfbb78d8727c10652d6d0d530d494', name: "data" })));
880
880
  }
881
881
  /**
882
882
  * Executes the focus operation on the specified range of cells.
@@ -1200,7 +1200,7 @@ const RevogrRowHeaders = class {
1200
1200
  const viewportHeader = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,
1201
1201
  // parent,
1202
1202
  slot: HEADER_SLOT });
1203
- return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h("revogr-viewport-scroll", Object.assign({ key: 'addb87ab3406b5691cecf810119582bda3a4b4a2' }, viewportScroll, { "row-header": true }), h("revogr-header", Object.assign({ key: '8621e76b132e7d1507794b515b40f525577413e2' }, viewportHeader)), dataViews)));
1203
+ return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h("revogr-viewport-scroll", Object.assign({ key: 'f665e56f8b21f96d9c0782232fcd7473f9fb0c53' }, viewportScroll, { "row-header": true }), h("revogr-header", Object.assign({ key: 'c5056a8b06e1d62ed69ce206344af61d340572e2' }, viewportHeader)), dataViews)));
1204
1204
  }
1205
1205
  };
1206
1206
 
@@ -1370,7 +1370,7 @@ const RevogrScrollVirtual = class {
1370
1370
  render() {
1371
1371
  const sizeType = this.dimension === 'rgRow' ? 'height' : 'width';
1372
1372
  const size = getContentSize(this.dimensionStore.get('realSize'), this.size, this.viewportStore.get('clientSize'));
1373
- return (h(Host, { key: '7789bd408d3e154836bcd2aed4ebaa1663e7f968', onScroll: (e) => this.onScroll(e) }, h("div", { key: '40549da97df3a580ad2ddef13fe7b4dbe6df54bc', style: {
1373
+ return (h(Host, { key: '94ccf82880ca9a3b0b1a87e94553f3c6ea6e885a', onScroll: (e) => this.onScroll(e) }, h("div", { key: '3518b4db297114195e4ef9bd3555d08bae08daa9', style: {
1374
1374
  [sizeType]: `${size}px`,
1375
1375
  } })));
1376
1376
  }
@@ -2,11 +2,11 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-f6fae858.js';
5
- import { N as EDIT_INPUT_WR, j as getItemByPosition, O as DRAGG_TEXT, b as getSourceItem } from './dimension.helpers-5567e424.js';
6
- import { T as TextEditor } from './text-editor-e47e56c3.js';
7
- import { a as isEditorCtrConstructible } from './edit.utils-b59306be.js';
5
+ import { N as EDIT_INPUT_WR, j as getItemByPosition, O as DRAGG_TEXT, b as getSourceItem } from './dimension.helpers-54788e5f.js';
6
+ import { T as TextEditor } from './text-editor-00ca5b90.js';
7
+ import { a as isEditorCtrConstructible } from './edit.utils-130d232d.js';
8
8
  import { d as debounce } from './debounce-b3166f78.js';
9
- import './key.utils-3632161b.js';
9
+ import './key.utils-b61b261e.js';
10
10
 
11
11
  const Clipboard = class {
12
12
  constructor(hostRef) {
@@ -2,58 +2,15 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, B as Build, r as registerInstance, c as createEvent, H as Host, a as getElement } from './index-f6fae858.js';
5
- import { O as isRowDragService, z as getCellDataParsed, M as ColumnService, s as isGrouping, I as baseEach } from './column.service-f39c0a1d.js';
6
- import { M as MIN_COL_SIZE, H as HEADER_CLASS, a7 as findIndex, k as getItemByIndex, E as HEADER_ROW_CLASS, Q as ROW_FOCUSED_CLASS, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS, b as getSourceItem, x as DATA_COL, y as DATA_ROW, a8 as getNative, Y as isArray, a4 as baseIteratee, J as FOCUS_CLASS, B as HEADER_SORTABLE_CLASS, F as HEADER_ACTUAL_ROW_CLASS } from './dimension.helpers-5567e424.js';
7
- import { G as GroupingRowRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './grouping.row.renderer-95f32c6b.js';
5
+ import { O as isRowDragService, z as getCellDataParsed, M as ColumnService, s as isGrouping, I as baseEach } from './column.service-5f5b38b9.js';
6
+ import { Q as ROW_FOCUSED_CLASS, G as DRAG_ICON_CLASS, I as DRAGGABLE_CLASS, b as getSourceItem, x as DATA_COL, y as DATA_ROW, a7 as getNative, Y as isArray, a4 as baseIteratee, J as FOCUS_CLASS, H as HEADER_CLASS, B as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, E as HEADER_ROW_CLASS, F as HEADER_ACTUAL_ROW_CLASS, a8 as findIndex, k as getItemByIndex } from './dimension.helpers-54788e5f.js';
7
+ import { G as GroupingRowRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './grouping.row.renderer-adeb3f82.js';
8
8
  import { c as FilterButton } from './filter.button-84396156.js';
9
- import { H as HeaderCellRenderer } from './header-cell-renderer-31f53644.js';
10
- import { t as throttle, L as LocalScrollTimer, a as LocalScrollService } from './throttle-dec28f5b.js';
9
+ import { H as HeaderCellRenderer } from './header-cell-renderer-cdc31050.js';
10
+ import { t as throttle, L as LocalScrollTimer, a as LocalScrollService } from './throttle-deb3116a.js';
11
11
  import { H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT } from './viewport.helpers-7e7f9dad.js';
12
12
  import './debounce-b3166f78.js';
13
13
 
14
- const GroupHeaderRenderer = (p) => {
15
- const groupProps = {
16
- canResize: p.canResize,
17
- minWidth: p.group.ids.length * MIN_COL_SIZE,
18
- maxWidth: 0,
19
- active: p.active || ['r'],
20
- class: {
21
- [HEADER_CLASS]: true,
22
- },
23
- style: {
24
- transform: `translateX(${p.start}px)`,
25
- width: `${p.end - p.start}px`,
26
- },
27
- onResize: p.onResize,
28
- };
29
- return (h(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
30
- };
31
-
32
- const ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }) => {
33
- // render group columns
34
- const groupRow = [];
35
- for (let i = 0; i < depth; i++) {
36
- if (groups[i]) {
37
- for (let group of groups[i]) {
38
- // if group in visible range
39
- // find first visible group prop in visible columns range
40
- const indexFirstVisibleCol = findIndex(group.ids, id => typeof visibleProps[id] === 'number');
41
- if (indexFirstVisibleCol > -1) {
42
- const colVisibleIndex = visibleProps[group.ids[indexFirstVisibleCol]]; // get column index
43
- const groupStartIndex = colVisibleIndex - indexFirstVisibleCol; // first column index in group
44
- const groupEndIndex = groupStartIndex + group.ids.length - 1; // last column index in group
45
- // coordinates
46
- const groupStart = getItemByIndex(dimensionCol, groupStartIndex).start;
47
- const groupEnd = getItemByIndex(dimensionCol, groupEndIndex).end;
48
- groupRow.push(h(GroupHeaderRenderer, { providers: providers, start: groupStart, end: groupEnd, group: group, active: active, canResize: canResize, onResize: e => { var _a; return onResize((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, groupStartIndex, groupEndIndex); }, additionalData: additionalData }));
49
- }
50
- }
51
- }
52
- groupRow.push(h("div", { class: `${HEADER_ROW_CLASS} group` }));
53
- }
54
- return groupRow;
55
- };
56
-
57
14
  /**
58
15
  * Class is responsible for highlighting rows in a table.
59
16
  */
@@ -518,6 +475,24 @@ const HeaderRenderer = (p) => {
518
475
  p.canFilter && ((_e = p.data) === null || _e === void 0 ? void 0 : _e.filter) !== false ? (h(FilterButton, { column: p.data })) : ('')));
519
476
  };
520
477
 
478
+ const HeaderGroupRenderer = (p) => {
479
+ const groupProps = {
480
+ canResize: p.canResize,
481
+ minWidth: p.group.ids.length * MIN_COL_SIZE,
482
+ maxWidth: 0,
483
+ active: p.active || ['r'],
484
+ class: {
485
+ [HEADER_CLASS]: true,
486
+ },
487
+ style: {
488
+ transform: `translateX(${p.start}px)`,
489
+ width: `${p.end - p.start}px`,
490
+ },
491
+ onResize: p.onResize,
492
+ };
493
+ return (h(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
494
+ };
495
+
521
496
  const revogrHeaderStyleCss = "@charset \"UTF-8\";.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:\"::\"}.revo-alt-icon{-webkit-mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-header{position:relative;z-index:5;display:block}revogr-header .rgHeaderCell{display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell i.asc:after,revogr-header .rgHeaderCell i.desc:after{font-size:13px}revogr-header .rgHeaderCell i.asc:after{content:\"↑\"}revogr-header .rgHeaderCell i.desc:after{content:\"↓\"}revogr-header .rgHeaderCell,revogr-header .grouped-cell{position:absolute;box-sizing:border-box;height:100%;z-index:1}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}";
522
497
  const RevogrHeaderStyle0 = revogrHeaderStyleCss;
523
498
 
@@ -529,6 +504,7 @@ const RevogrHeaderComponent = class {
529
504
  this.beforeResize = createEvent(this, "beforeheaderresize", 7);
530
505
  this.headerdblClick = createEvent(this, "headerdblclick", 7);
531
506
  this.beforeHeaderRender = createEvent(this, "beforeheaderrender", 7);
507
+ this.beforeGroupHeaderRender = createEvent(this, "beforegroupheaderrender", 7);
532
508
  this.afterHeaderRender = createEvent(this, "afterheaderrender", 7);
533
509
  this.viewportCol = undefined;
534
510
  this.dimensionCol = undefined;
@@ -572,34 +548,73 @@ const RevogrHeaderComponent = class {
572
548
  var _a;
573
549
  const cols = this.viewportCol.get('items');
574
550
  const range = (_a = this.selectionStore) === null || _a === void 0 ? void 0 : _a.get('range');
551
+ const { cells, visibleProps } = this.renderHeaderColumns(cols, range);
552
+ const groupRow = this.renderGroupingColumns(visibleProps);
553
+ return [
554
+ h("div", { key: '0bed5a28ee74503f3e98cbab7da081b4fddd6b61', class: "group-rgRow" }, groupRow),
555
+ h("div", { key: '6a3dd5c7bc2d4a953ce710984847375a5b73cde2', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
556
+ ];
557
+ }
558
+ renderHeaderColumns(cols, range) {
575
559
  const cells = [];
576
560
  const visibleProps = {};
577
- // render header columns
578
561
  for (let rgCol of cols) {
579
562
  const colData = this.colData[rgCol.itemIndex];
580
563
  const props = {
581
- range: range,
564
+ range,
582
565
  column: rgCol,
583
566
  data: Object.assign(Object.assign({}, colData), { index: rgCol.itemIndex, providers: this.providers }),
584
567
  canFilter: !!this.columnFilter,
585
568
  canResize: this.canResize,
586
569
  active: this.resizeHandler,
570
+ additionalData: this.additionalData,
587
571
  onResize: e => this.onResize(e, rgCol.itemIndex),
588
572
  onDblClick: e => this.headerdblClick.emit(e),
589
573
  onClick: e => this.initialHeaderClick.emit(e),
590
- additionalData: this.additionalData,
591
574
  };
592
575
  const event = this.beforeHeaderRender.emit(props);
593
- if (event.defaultPrevented) {
594
- continue;
576
+ if (!event.defaultPrevented) {
577
+ cells.push(h(HeaderRenderer, Object.assign({}, event.detail)));
578
+ visibleProps[colData === null || colData === void 0 ? void 0 : colData.prop] = rgCol.itemIndex;
595
579
  }
596
- cells.push(h(HeaderRenderer, Object.assign({}, event.detail)));
597
- visibleProps[colData === null || colData === void 0 ? void 0 : colData.prop] = rgCol.itemIndex;
598
580
  }
599
- return [
600
- h("div", { key: 'f01cf39610e7e66f7bf4fa09f52455875a940ced', class: "group-rgRow" }, h(ColumnGroupsRenderer, { key: 'fa60d0aa9bb63d86f7e07ed7c1372207147a13c4', canResize: this.canResize, active: this.resizeHandler, visibleProps: visibleProps, providers: this.providers, groups: this.groups, dimensionCol: this.dimensionCol.state, depth: this.groupingDepth, onResize: (changedX, startIndex, endIndex) => this.onResizeGroup(changedX, startIndex, endIndex), additionalData: this.additionalData })),
601
- h("div", { key: '65ab0e1d0ea5a548c7dc4abfda116beb29316b3d', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
602
- ];
581
+ return { cells, visibleProps };
582
+ }
583
+ renderGroupingColumns(visibleProps) {
584
+ const groupRow = [];
585
+ for (let i = 0; i < this.groupingDepth; i++) {
586
+ if (this.groups[i]) {
587
+ for (let group of this.groups[i]) {
588
+ const indexFirstVisibleCol = findIndex(group.ids, id => typeof visibleProps[id] === 'number');
589
+ if (indexFirstVisibleCol > -1) {
590
+ const colVisibleIndex = visibleProps[group.ids[indexFirstVisibleCol]];
591
+ const groupStartIndex = colVisibleIndex - indexFirstVisibleCol;
592
+ const groupEndIndex = groupStartIndex + group.ids.length - 1;
593
+ const groupStart = getItemByIndex(this.dimensionCol.state, groupStartIndex).start;
594
+ const groupEnd = getItemByIndex(this.dimensionCol.state, groupEndIndex).end;
595
+ const props = {
596
+ providers: this.providers,
597
+ start: groupStart,
598
+ end: groupEnd,
599
+ group,
600
+ active: this.resizeHandler,
601
+ canResize: this.canResize,
602
+ additionalData: this.additionalData,
603
+ onResize: e => {
604
+ var _a;
605
+ return this.onResizeGroup((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, groupStartIndex, groupEndIndex);
606
+ },
607
+ };
608
+ const event = this.beforeGroupHeaderRender.emit(props);
609
+ if (!event.defaultPrevented) {
610
+ groupRow.push(h(HeaderGroupRenderer, Object.assign({}, event.detail)));
611
+ }
612
+ }
613
+ }
614
+ }
615
+ groupRow.push(h("div", { class: `${HEADER_ROW_CLASS} group` }));
616
+ }
617
+ return groupRow;
603
618
  }
604
619
  get providers() {
605
620
  return {
@@ -854,7 +869,7 @@ const RevogrViewportScroll = class {
854
869
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
855
870
  }
856
871
  render() {
857
- return (h(Host, { key: '970ac2365588d1c894d9684113eb9beaf64e1a1d', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: 'dc57aab1bde4496e83131d80a7e189db25b93312', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: 'bd014cf0a67bb913016f00f7838344611a1b26df', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '772eb408b6ea670624cc338550215565ec36ef89', name: HEADER_SLOT })), h("div", { key: '5dcf061c78864b0dc4e4ffbcc28c0ebb3536ce8b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'b45f46aedefe82843b086cdca822e05339a77fda', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: '8d07196c79741ace0f4c734138d69abdf96fee4f', name: CONTENT_SLOT }))), h("div", { key: 'f6313f9394e99a3ad07895ed06e965540268b35a', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'b1bcdb75bb5e4dcc1e43493d7b4f01b2578352e4', name: FOOTER_SLOT })))));
872
+ return (h(Host, { key: 'c8c94171231164105fad7a6f53743db615dc123a', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: 'd33774605170a5ba43e41e3d3133130eeda1a6fb', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, h("div", { key: '3cf14b0fd2fce937f5f28b205fbd2402d0de3cb4', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: '14ce896ee001c614553744c2e4d8d680bf4e6d15', name: HEADER_SLOT })), h("div", { key: '46b937e0fc75a71f983b739e0c8179c2dc8115ac', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'cf775690b0eef973f205659973ea23e376bc64d6', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, h("slot", { key: '63b50bb02edda40839829e7b54825953d3634906', name: CONTENT_SLOT }))), h("div", { key: 'c28e2f9d0524a8d0adc86d6a7d78b1ce15831edd', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'bd24b24482d201ad91c279d09f3bcc0f2bc58370', name: FOOTER_SLOT })))));
858
873
  }
859
874
  /**
860
875
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing
@@ -954,7 +969,7 @@ const VNodeToHtml = class {
954
969
  render() {
955
970
  var _a, _b;
956
971
  this.vnodes = (_b = (_a = this.redraw) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : null;
957
- return (h(Host, { key: '73a019dbc046a9d4504bc84a80868e8023d1f502', style: { visibility: 'hidden', position: 'absolute' } }, this.vnodes));
972
+ return (h(Host, { key: '11b76ca8a86ebf279add88bbd86ef9eb5149605a', style: { visibility: 'hidden', position: 'absolute' } }, this.vnodes));
958
973
  }
959
974
  get el() { return getElement(this); }
960
975
  };