@revolist/revogrid 4.13.4 → 4.14.0

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 (153) hide show
  1. package/dist/cjs/{column.drag.plugin-b3483e65.js → column.drag.plugin-c61efe93.js} +17 -44
  2. package/dist/cjs/column.drag.plugin-c61efe93.js.map +1 -0
  3. package/dist/cjs/{column.service-b59380a3.js → column.service-d572cdcf.js} +27 -12
  4. package/dist/cjs/column.service-d572cdcf.js.map +1 -0
  5. package/dist/cjs/{dimension.helpers-5b822a09.js → dimension.helpers-29797371.js} +2 -3
  6. package/dist/cjs/dimension.helpers-29797371.js.map +1 -0
  7. package/dist/cjs/{edit.utils-32d4c9e4.js → edit.utils-70c04b70.js} +2 -2
  8. package/dist/cjs/{edit.utils-32d4c9e4.js.map → edit.utils-70c04b70.js.map} +1 -1
  9. package/dist/cjs/{grouping.row.renderer-d6119ced.js → grouping.row.renderer-2e8d482e.js} +3 -3
  10. package/dist/cjs/{grouping.row.renderer-d6119ced.js.map → grouping.row.renderer-2e8d482e.js.map} +1 -1
  11. package/dist/cjs/{header-cell-renderer-a66fe375.js → header-cell-renderer-c21e64da.js} +2 -2
  12. package/dist/cjs/{header-cell-renderer-a66fe375.js.map → header-cell-renderer-c21e64da.js.map} +1 -1
  13. package/dist/cjs/index.cjs.js +52 -51
  14. package/dist/cjs/index.cjs.js.map +1 -1
  15. package/dist/cjs/{key.utils-05f14738.js → key.utils-7d4c4755.js} +2 -2
  16. package/dist/cjs/{key.utils-05f14738.js.map → key.utils-7d4c4755.js.map} +1 -1
  17. package/dist/cjs/revo-grid.cjs.entry.js +24 -24
  18. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  19. package/dist/cjs/revogr-attribution_7.cjs.entry.js +15 -12
  20. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
  21. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
  22. package/dist/cjs/revogr-data_4.cjs.entry.js +74 -62
  23. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  24. package/dist/cjs/{text-editor-82f53111.js → text-editor-079930a7.js} +3 -3
  25. package/dist/cjs/{text-editor-82f53111.js.map → text-editor-079930a7.js.map} +1 -1
  26. package/dist/cjs/{throttle-5674040a.js → throttle-250327e5.js} +2 -2
  27. package/dist/cjs/{throttle-5674040a.js.map → throttle-250327e5.js.map} +1 -1
  28. package/dist/cjs/{viewport.store-4dbfeaa3.js → viewport.store-7f0d0f80.js} +2 -2
  29. package/dist/cjs/{viewport.store-4dbfeaa3.js.map → viewport.store-7f0d0f80.js.map} +1 -1
  30. package/dist/collection/{plugins/groupingColumn/headerGroupRenderer.js → components/header/header-group-renderer.js} +5 -5
  31. package/dist/collection/components/header/header-group-renderer.js.map +1 -0
  32. package/dist/collection/components/header/revogr-header.js +72 -14
  33. package/dist/collection/components/header/revogr-header.js.map +1 -1
  34. package/dist/collection/components/overlay/revogr-overlay-selection.js +2 -2
  35. package/dist/collection/components/revoGrid/revo-grid-style.css +4 -0
  36. package/dist/collection/components/rowHeaders/revogr-row-headers.js +6 -3
  37. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  38. package/dist/collection/components/scroll/revogr-viewport-scroll.js +1 -1
  39. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +1 -1
  40. package/dist/collection/components/vnode/vnode-converter.js +1 -1
  41. package/dist/collection/plugins/export/export.plugin.js +5 -19
  42. package/dist/collection/plugins/export/export.plugin.js.map +1 -1
  43. package/dist/collection/plugins/export/types.js.map +1 -1
  44. package/dist/collection/plugins/index.js +0 -2
  45. package/dist/collection/plugins/index.js.map +1 -1
  46. package/dist/collection/serve/data.js +13 -8
  47. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  48. package/dist/collection/types/events.js +1 -0
  49. package/dist/collection/types/events.js.map +1 -1
  50. package/dist/collection/utils/column.utils.js +13 -10
  51. package/dist/collection/utils/column.utils.js.map +1 -1
  52. package/dist/{revo-grid/column.drag.plugin-da99fde5.js → esm/column.drag.plugin-eb8f7e38.js} +11 -35
  53. package/dist/esm/column.drag.plugin-eb8f7e38.js.map +1 -0
  54. package/dist/{revo-grid/column.service-f39c0a1d.js → esm/column.service-2f25c7d0.js} +25 -13
  55. package/dist/esm/column.service-2f25c7d0.js.map +1 -0
  56. package/dist/{revo-grid/dimension.helpers-5567e424.js → esm/dimension.helpers-87e12689.js} +3 -3
  57. package/dist/esm/{dimension.helpers-5567e424.js.map → dimension.helpers-87e12689.js.map} +1 -1
  58. package/dist/esm/{edit.utils-b59306be.js → edit.utils-343ef0f1.js} +2 -2
  59. package/dist/esm/{edit.utils-b59306be.js.map → edit.utils-343ef0f1.js.map} +1 -1
  60. package/dist/esm/{grouping.row.renderer-95f32c6b.js → grouping.row.renderer-918d6acc.js} +3 -3
  61. package/dist/esm/{grouping.row.renderer-95f32c6b.js.map → grouping.row.renderer-918d6acc.js.map} +1 -1
  62. package/dist/{revo-grid/header-cell-renderer-31f53644.js → esm/header-cell-renderer-c0c0704e.js} +2 -2
  63. package/dist/{revo-grid/header-cell-renderer-31f53644.js.map → esm/header-cell-renderer-c0c0704e.js.map} +1 -1
  64. package/dist/esm/index.js +10 -9
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/{revo-grid/key.utils-3632161b.js → esm/key.utils-c0366861.js} +2 -2
  67. package/dist/esm/{key.utils-3632161b.js.map → key.utils-c0366861.js.map} +1 -1
  68. package/dist/esm/revo-grid.entry.js +6 -6
  69. package/dist/esm/revo-grid.entry.js.map +1 -1
  70. package/dist/esm/revogr-attribution_7.entry.js +15 -12
  71. package/dist/esm/revogr-attribution_7.entry.js.map +1 -1
  72. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  73. package/dist/esm/revogr-data_4.entry.js +74 -62
  74. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  75. package/dist/esm/{text-editor-e47e56c3.js → text-editor-1b2ff7fc.js} +3 -3
  76. package/dist/esm/{text-editor-e47e56c3.js.map → text-editor-1b2ff7fc.js.map} +1 -1
  77. package/dist/{revo-grid/throttle-dec28f5b.js → esm/throttle-9dcf4e1f.js} +2 -2
  78. package/dist/{revo-grid/throttle-dec28f5b.js.map → esm/throttle-9dcf4e1f.js.map} +1 -1
  79. package/dist/{revo-grid/viewport.store-c18a25a6.js → esm/viewport.store-84060ef5.js} +2 -2
  80. package/dist/esm/{viewport.store-c18a25a6.js.map → viewport.store-84060ef5.js.map} +1 -1
  81. package/dist/{esm/column.drag.plugin-da99fde5.js → revo-grid/column.drag.plugin-eb8f7e38.js} +11 -35
  82. package/dist/revo-grid/column.drag.plugin-eb8f7e38.js.map +1 -0
  83. package/dist/{esm/column.service-f39c0a1d.js → revo-grid/column.service-2f25c7d0.js} +25 -13
  84. package/dist/revo-grid/column.service-2f25c7d0.js.map +1 -0
  85. package/dist/{esm/dimension.helpers-5567e424.js → revo-grid/dimension.helpers-87e12689.js} +3 -3
  86. package/dist/revo-grid/{dimension.helpers-5567e424.js.map → dimension.helpers-87e12689.js.map} +1 -1
  87. package/dist/revo-grid/{edit.utils-b59306be.js → edit.utils-343ef0f1.js} +2 -2
  88. package/dist/revo-grid/{edit.utils-b59306be.js.map → edit.utils-343ef0f1.js.map} +1 -1
  89. package/dist/revo-grid/{grouping.row.renderer-95f32c6b.js → grouping.row.renderer-918d6acc.js} +3 -3
  90. package/dist/revo-grid/{grouping.row.renderer-95f32c6b.js.map → grouping.row.renderer-918d6acc.js.map} +1 -1
  91. package/dist/{esm/header-cell-renderer-31f53644.js → revo-grid/header-cell-renderer-c0c0704e.js} +2 -2
  92. package/dist/{esm/header-cell-renderer-31f53644.js.map → revo-grid/header-cell-renderer-c0c0704e.js.map} +1 -1
  93. package/dist/revo-grid/index.esm.js +10 -9
  94. package/dist/revo-grid/index.esm.js.map +1 -1
  95. package/dist/{esm/key.utils-3632161b.js → revo-grid/key.utils-c0366861.js} +2 -2
  96. package/dist/revo-grid/{key.utils-3632161b.js.map → key.utils-c0366861.js.map} +1 -1
  97. package/dist/revo-grid/revo-grid.entry.js +6 -6
  98. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  99. package/dist/revo-grid/revogr-attribution_7.entry.js +15 -12
  100. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
  101. package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
  102. package/dist/revo-grid/revogr-data_4.entry.js +74 -62
  103. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  104. package/dist/revo-grid/{text-editor-e47e56c3.js → text-editor-1b2ff7fc.js} +3 -3
  105. package/dist/revo-grid/{text-editor-e47e56c3.js.map → text-editor-1b2ff7fc.js.map} +1 -1
  106. package/dist/{esm/throttle-dec28f5b.js → revo-grid/throttle-9dcf4e1f.js} +2 -2
  107. package/dist/{esm/throttle-dec28f5b.js.map → revo-grid/throttle-9dcf4e1f.js.map} +1 -1
  108. package/dist/{esm/viewport.store-c18a25a6.js → revo-grid/viewport.store-84060ef5.js} +2 -2
  109. package/dist/revo-grid/{viewport.store-c18a25a6.js.map → viewport.store-84060ef5.js.map} +1 -1
  110. package/dist/types/{plugins/groupingColumn/headerGroupRenderer.d.ts → components/header/header-group-renderer.d.ts} +4 -4
  111. package/dist/types/components/header/revogr-header.d.ts +9 -2
  112. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +1 -1
  113. package/dist/types/components.d.ts +7 -0
  114. package/dist/types/plugins/export/export.plugin.d.ts +0 -1
  115. package/dist/types/plugins/export/types.d.ts +1 -1
  116. package/dist/types/plugins/index.d.ts +0 -2
  117. package/dist/types/store/dataSource/data.store.d.ts +2 -2
  118. package/dist/types/types/events.d.ts +1 -1
  119. package/dist/types/utils/column.utils.d.ts +2 -2
  120. package/hydrate/index.js +80 -77
  121. package/hydrate/index.mjs +80 -77
  122. package/package.json +1 -1
  123. package/standalone/column.service.js +25 -13
  124. package/standalone/column.service.js.map +1 -1
  125. package/standalone/data.store.js +1 -1
  126. package/standalone/data.store.js.map +1 -1
  127. package/standalone/dimension.helpers.js +1 -1
  128. package/standalone/index.js +4 -3
  129. package/standalone/index.js.map +1 -1
  130. package/standalone/index2.js +1 -0
  131. package/standalone/index2.js.map +1 -1
  132. package/standalone/revo-grid.js +10 -34
  133. package/standalone/revo-grid.js.map +1 -1
  134. package/standalone/revogr-data2.js +1 -1
  135. package/standalone/revogr-header2.js +76 -64
  136. package/standalone/revogr-header2.js.map +1 -1
  137. package/standalone/revogr-overlay-selection2.js +3 -3
  138. package/standalone/revogr-row-headers2.js +7 -4
  139. package/standalone/revogr-row-headers2.js.map +1 -1
  140. package/standalone/revogr-scroll-virtual2.js +1 -1
  141. package/standalone/revogr-viewport-scroll2.js +1 -1
  142. package/standalone/vnode-converter.js +1 -1
  143. package/dist/cjs/column.drag.plugin-b3483e65.js.map +0 -1
  144. package/dist/cjs/column.service-b59380a3.js.map +0 -1
  145. package/dist/cjs/dimension.helpers-5b822a09.js.map +0 -1
  146. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +0 -34
  147. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +0 -1
  148. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +0 -1
  149. package/dist/esm/column.drag.plugin-da99fde5.js.map +0 -1
  150. package/dist/esm/column.service-f39c0a1d.js.map +0 -1
  151. package/dist/revo-grid/column.drag.plugin-da99fde5.js.map +0 -1
  152. package/dist/revo-grid/column.service-f39c0a1d.js.map +0 -1
  153. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -18
package/hydrate/index.js CHANGED
@@ -6960,22 +6960,24 @@ function getColumns(columns, level = 0, types) {
6960
6960
  }
6961
6961
  function gatherGroup(res, colData, collection, level = 0) {
6962
6962
  // group template
6963
- const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
6963
+ const group = Object.assign(Object.assign({}, colData), { level, indexes: [] });
6964
6964
  // check columns for update
6965
- for (let k in collection.columns) {
6966
- const key = k;
6967
- const resultItem = res.columns[key];
6968
- const collectionItem = collection.columns[key];
6965
+ columnTypes.forEach(type => {
6966
+ const resultItem = res.columns[type];
6967
+ const collectionItem = collection.columns[type];
6969
6968
  // if column data
6970
6969
  if (isArray$1(resultItem) && isArray$1(collectionItem)) {
6971
- // fill columns
6972
- resultItem.push(...collectionItem);
6973
6970
  // fill grouping
6974
- if (collectionItem.length) {
6975
- res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
6971
+ const itemLength = collectionItem.length;
6972
+ if (itemLength) {
6973
+ const columnLength = resultItem.length;
6974
+ // fill columns
6975
+ resultItem.push(...collectionItem);
6976
+ // fill indexes per each viewport
6977
+ res.columnGrouping[type].push(Object.assign(Object.assign({}, group), { indexes: Array(itemLength).fill(columnLength).map((v, i) => v + i) }));
6976
6978
  }
6977
6979
  }
6978
- }
6980
+ });
6979
6981
  // merge column groupings
6980
6982
  for (let k in collection.columnGrouping) {
6981
6983
  const key = k;
@@ -10059,7 +10061,7 @@ class OverlaySelection {
10059
10061
  nodes.push(hAsync("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) }));
10060
10062
  }
10061
10063
  }
10062
- return (hAsync(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) => {
10064
+ return (hAsync(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) => {
10063
10065
  const saveEv = this.beforeCellSave.emit(e.detail);
10064
10066
  if (!saveEv.defaultPrevented) {
10065
10067
  this.cellEdit(saveEv.detail);
@@ -10068,7 +10070,7 @@ class OverlaySelection {
10068
10070
  if (!saveEv.detail.preventFocus) {
10069
10071
  this.focusNext();
10070
10072
  }
10071
- } }, nodes, hAsync("slot", { key: '693c50627eb52b9902d9fe5ddd0c09fd2a3ee562', name: "data" })));
10073
+ } }, nodes, hAsync("slot", { key: '945243e45f2cfbb78d8727c10652d6d0d530d494', name: "data" })));
10072
10074
  }
10073
10075
  /**
10074
10076
  * Executes the focus operation on the specified range of cells.
@@ -12584,21 +12586,19 @@ class ExportFilePlugin extends BasePlugin {
12584
12586
  const groups = store.get('groups');
12585
12587
  const colNames = [];
12586
12588
  const colProps = [];
12587
- const visibleItems = virtualIndexes.reduce((r, v, virtualIndex) => {
12589
+ virtualIndexes.forEach((v) => {
12588
12590
  const prop = source[v].prop;
12589
12591
  colNames.push(source[v].name || '');
12590
12592
  colProps.push(prop);
12591
- r[prop] = virtualIndex;
12592
- return r;
12593
- }, {});
12594
- const rows = this.getGroupHeaders(depth, groups, virtualIndexes, visibleItems);
12593
+ });
12594
+ const rows = this.getGroupHeaders(depth, groups, virtualIndexes);
12595
12595
  rows.push(colNames);
12596
12596
  return {
12597
12597
  headers: rows,
12598
12598
  props: colProps,
12599
12599
  };
12600
12600
  }
12601
- getGroupHeaders(depth, groups, items, visibleItems) {
12601
+ getGroupHeaders(depth, groups, items) {
12602
12602
  const rows = [];
12603
12603
  const template = fill(new Array(items.length), '');
12604
12604
  for (let d = 0; d < depth; d++) {
@@ -12610,7 +12610,7 @@ class ExportFilePlugin extends BasePlugin {
12610
12610
  const levelGroups = groups[d];
12611
12611
  // add names of groups
12612
12612
  levelGroups.forEach((group) => {
12613
- const minIndex = this.findGroupStartIndex(group.ids, visibleItems);
12613
+ const minIndex = group.indexes[0];
12614
12614
  if (typeof minIndex === 'number') {
12615
12615
  rgRow[minIndex] = group.name;
12616
12616
  }
@@ -12618,18 +12618,6 @@ class ExportFilePlugin extends BasePlugin {
12618
12618
  }
12619
12619
  return rows;
12620
12620
  }
12621
- findGroupStartIndex(ids, visibleItems) {
12622
- let min;
12623
- ids.forEach(id => {
12624
- const current = visibleItems[id];
12625
- if (typeof current === 'number') {
12626
- if (typeof min !== 'number' || min > current) {
12627
- min = current;
12628
- }
12629
- }
12630
- });
12631
- return min;
12632
- }
12633
12621
  async getSource() {
12634
12622
  const data = [];
12635
12623
  const promisesData = [];
@@ -14290,7 +14278,7 @@ class PluginService {
14290
14278
  }
14291
14279
  }
14292
14280
 
14293
- const revoGridStyleCss = ".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}revo-grid[theme=default],revo-grid:not([theme]){border:1px solid var(--revo-grid-header-border);font-size:12px}revo-grid[theme=default] .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:var(--revo-grid-header-color)}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--revo-grid-header-color)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--revo-grid-header-border)}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-header-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset, 0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{--revo-grid-primary:#266ae8;--revo-grid-primary-transparent:rgba(38, 106, 232, 0.9);--revo-grid-background:#fff;--revo-grid-foreground:black;--revo-grid-divider:gray;--revo-grid-shadow:rgba(0, 0, 0, 0.15);--revo-grid-text:black;--revo-grid-border:rgba(0, 0, 0, 0.2);--revo-grid-filter-panel-bg:#fff;--revo-grid-filter-panel-border:#d9d9d9;--revo-grid-filter-panel-shadow:rgba(0, 0, 0, 0.15);--revo-grid-filter-panel-input-bg:#eaeaeb;--revo-grid-filter-panel-divider:#d9d9d9;--revo-grid-filter-panel-select-border:transparent;--revo-grid-filter-panel-select-border-hover:transparent;--revo-grid-header-bg:#f8f9fa;--revo-grid-header-color:#000;--revo-grid-header-border:#cecece;--revo-grid-cell-border:#e2e3e3;--revo-grid-focused-bg:rgba(233, 234, 237, 0.5);--revo-grid-row-hover:#f1f1f1;--revo-grid-row-headers-bg:#f7faff;--revo-grid-row-headers-color:#757a82;--revo-grid-cell-disabled-bg:rgba(0, 0, 0, 0.07);display:flex !important;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;color:var(--revo-grid-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid[theme*=dark]{--revo-grid-background:#212529;--revo-grid-foreground:#fff;--revo-grid-text:rgba(255, 255, 255, 0.9);--revo-grid-divider:#505050;--revo-grid-border:rgba(255, 255, 255, 0.2);--revo-grid-filter-panel-bg:#212529;--revo-grid-filter-panel-border:#505050;--revo-grid-filter-panel-input-bg:#343a40;--revo-grid-filter-panel-divider:#505050;--revo-grid-header-bg:#343a40;--revo-grid-header-color:#fff;--revo-grid-header-border:#505050;--revo-grid-cell-border:#424242;--revo-grid-focused-bg:rgba(52, 58, 64, 0.5);--revo-grid-row-hover:rgba(80, 80, 80, 0.5);--revo-grid-row-headers-bg:rgba(52, 58, 64, 0.8);--revo-grid-row-headers-color:rgba(255, 255, 255, 0.8);--revo-grid-cell-disabled-bg:rgba(255, 255, 255, 0.07)}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--revo-grid-row-hover)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--revo-grid-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--revo-grid-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--revo-grid-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--revo-grid-focused-bg)}revo-grid revogr-data .rgCell{color:var(--revo-grid-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--revo-grid-cell-disabled-bg)}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--revo-grid-primary-transparent);border-bottom:4px solid var(--revo-grid-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--revo-grid-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--revo-grid-border);white-space:nowrap;text-decoration:none;color:var(--revo-grid-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--revo-grid-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--revo-grid-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--revo-grid-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}";
14281
+ const revoGridStyleCss = ".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}revo-grid[theme=default],revo-grid:not([theme]){border:1px solid var(--revo-grid-header-border);font-size:12px}revo-grid[theme=default] .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--revo-grid-header-border), -1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:var(--revo-grid-header-color)}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--revo-grid-header-color)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--revo-grid-header-border)}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-header-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset, 0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{--revo-grid-primary:#266ae8;--revo-grid-primary-transparent:rgba(38, 106, 232, 0.9);--revo-grid-background:#fff;--revo-grid-foreground:black;--revo-grid-divider:gray;--revo-grid-shadow:rgba(0, 0, 0, 0.15);--revo-grid-text:black;--revo-grid-border:rgba(0, 0, 0, 0.2);--revo-grid-filter-panel-bg:#fff;--revo-grid-filter-panel-border:#d9d9d9;--revo-grid-filter-panel-shadow:rgba(0, 0, 0, 0.15);--revo-grid-filter-panel-input-bg:#eaeaeb;--revo-grid-filter-panel-divider:#d9d9d9;--revo-grid-filter-panel-select-border:transparent;--revo-grid-filter-panel-select-border-hover:transparent;--revo-grid-header-bg:#f8f9fa;--revo-grid-header-color:#000;--revo-grid-header-border:#cecece;--revo-grid-cell-border:#e2e3e3;--revo-grid-focused-bg:rgba(233, 234, 237, 0.5);--revo-grid-row-hover:#f1f1f1;--revo-grid-row-headers-bg:#f7faff;--revo-grid-row-headers-color:#757a82;--revo-grid-cell-disabled-bg:rgba(0, 0, 0, 0.07);display:flex !important;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;color:var(--revo-grid-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid[theme*=dark]{--revo-grid-background:#212529;--revo-grid-foreground:#fff;--revo-grid-text:rgba(255, 255, 255, 0.9);--revo-grid-divider:#505050;--revo-grid-border:rgba(255, 255, 255, 0.2);--revo-grid-filter-panel-bg:#212529;--revo-grid-filter-panel-border:#505050;--revo-grid-filter-panel-input-bg:#343a40;--revo-grid-filter-panel-divider:#505050;--revo-grid-header-bg:#343a40;--revo-grid-header-color:#fff;--revo-grid-header-border:#505050;--revo-grid-cell-border:#424242;--revo-grid-focused-bg:rgba(52, 58, 64, 0.5);--revo-grid-row-hover:rgba(80, 80, 80, 0.5);--revo-grid-row-headers-bg:rgba(52, 58, 64, 0.8);--revo-grid-row-headers-color:rgba(255, 255, 255, 0.8);--revo-grid-cell-disabled-bg:rgba(255, 255, 255, 0.07)}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--revo-grid-row-hover)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--revo-grid-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--revo-grid-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--revo-grid-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--revo-grid-focused-bg)}revo-grid revogr-data .rgCell{color:var(--revo-grid-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--revo-grid-cell-disabled-bg)}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--revo-grid-primary-transparent);border-bottom:4px solid var(--revo-grid-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--revo-grid-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--revo-grid-border);white-space:nowrap;text-decoration:none;color:var(--revo-grid-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--revo-grid-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--revo-grid-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--revo-grid-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}";
14294
14282
  var RevoGridStyle0 = revoGridStyleCss;
14295
14283
 
14296
14284
  /**
@@ -16080,10 +16068,10 @@ const HeaderRenderer = (p) => {
16080
16068
  p.canFilter && ((_e = p.data) === null || _e === void 0 ? void 0 : _e.filter) !== false ? (hAsync(FilterButton, { column: p.data })) : ('')));
16081
16069
  };
16082
16070
 
16083
- const GroupHeaderRenderer = (p) => {
16071
+ const HeaderGroupRenderer = (p) => {
16084
16072
  const groupProps = {
16085
16073
  canResize: p.canResize,
16086
- minWidth: p.group.ids.length * MIN_COL_SIZE,
16074
+ minWidth: p.group.indexes.length * MIN_COL_SIZE,
16087
16075
  maxWidth: 0,
16088
16076
  active: p.active || ['r'],
16089
16077
  class: {
@@ -16098,31 +16086,6 @@ const GroupHeaderRenderer = (p) => {
16098
16086
  return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
16099
16087
  };
16100
16088
 
16101
- const ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }) => {
16102
- // render group columns
16103
- const groupRow = [];
16104
- for (let i = 0; i < depth; i++) {
16105
- if (groups[i]) {
16106
- for (let group of groups[i]) {
16107
- // if group in visible range
16108
- // find first visible group prop in visible columns range
16109
- const indexFirstVisibleCol = findIndex(group.ids, id => typeof visibleProps[id] === 'number');
16110
- if (indexFirstVisibleCol > -1) {
16111
- const colVisibleIndex = visibleProps[group.ids[indexFirstVisibleCol]]; // get column index
16112
- const groupStartIndex = colVisibleIndex - indexFirstVisibleCol; // first column index in group
16113
- const groupEndIndex = groupStartIndex + group.ids.length - 1; // last column index in group
16114
- // coordinates
16115
- const groupStart = getItemByIndex(dimensionCol, groupStartIndex).start;
16116
- const groupEnd = getItemByIndex(dimensionCol, groupEndIndex).end;
16117
- groupRow.push(hAsync(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 }));
16118
- }
16119
- }
16120
- }
16121
- groupRow.push(hAsync("div", { class: `${HEADER_ROW_CLASS} group` }));
16122
- }
16123
- return groupRow;
16124
- };
16125
-
16126
16089
  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}";
16127
16090
  var RevogrHeaderStyle0 = revogrHeaderStyleCss;
16128
16091
 
@@ -16134,6 +16097,7 @@ class RevogrHeaderComponent {
16134
16097
  this.beforeResize = createEvent(this, "beforeheaderresize", 7);
16135
16098
  this.headerdblClick = createEvent(this, "headerdblclick", 7);
16136
16099
  this.beforeHeaderRender = createEvent(this, "beforeheaderrender", 7);
16100
+ this.beforeGroupHeaderRender = createEvent(this, "beforegroupheaderrender", 7);
16137
16101
  this.afterHeaderRender = createEvent(this, "afterheaderrender", 7);
16138
16102
  this.viewportCol = undefined;
16139
16103
  this.dimensionCol = undefined;
@@ -16177,34 +16141,70 @@ class RevogrHeaderComponent {
16177
16141
  var _a;
16178
16142
  const cols = this.viewportCol.get('items');
16179
16143
  const range = (_a = this.selectionStore) === null || _a === void 0 ? void 0 : _a.get('range');
16144
+ const { cells } = this.renderHeaderColumns(cols, range);
16145
+ const groupRow = this.renderGroupingColumns();
16146
+ return [
16147
+ hAsync("div", { key: '0fc2f09e02b7301c6423367f930f7e529a840c1a', class: "group-rgRow" }, groupRow),
16148
+ hAsync("div", { key: '4be7fa2d4220d6e2745818fb4c3d9b2dc491ef9b', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
16149
+ ];
16150
+ }
16151
+ renderHeaderColumns(cols, range) {
16180
16152
  const cells = [];
16181
- const visibleProps = {};
16182
- // render header columns
16183
16153
  for (let rgCol of cols) {
16184
16154
  const colData = this.colData[rgCol.itemIndex];
16185
16155
  const props = {
16186
- range: range,
16156
+ range,
16187
16157
  column: rgCol,
16188
16158
  data: Object.assign(Object.assign({}, colData), { index: rgCol.itemIndex, providers: this.providers }),
16189
16159
  canFilter: !!this.columnFilter,
16190
16160
  canResize: this.canResize,
16191
16161
  active: this.resizeHandler,
16162
+ additionalData: this.additionalData,
16192
16163
  onResize: e => this.onResize(e, rgCol.itemIndex),
16193
16164
  onDblClick: e => this.headerdblClick.emit(e),
16194
16165
  onClick: e => this.initialHeaderClick.emit(e),
16195
- additionalData: this.additionalData,
16196
16166
  };
16197
16167
  const event = this.beforeHeaderRender.emit(props);
16198
- if (event.defaultPrevented) {
16199
- continue;
16168
+ if (!event.defaultPrevented) {
16169
+ cells.push(hAsync(HeaderRenderer, Object.assign({}, event.detail)));
16200
16170
  }
16201
- cells.push(hAsync(HeaderRenderer, Object.assign({}, event.detail)));
16202
- visibleProps[colData === null || colData === void 0 ? void 0 : colData.prop] = rgCol.itemIndex;
16203
16171
  }
16204
- return [
16205
- hAsync("div", { key: 'f01cf39610e7e66f7bf4fa09f52455875a940ced', class: "group-rgRow" }, hAsync(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 })),
16206
- hAsync("div", { key: '65ab0e1d0ea5a548c7dc4abfda116beb29316b3d', class: `${HEADER_ROW_CLASS} ${HEADER_ACTUAL_ROW_CLASS}` }, cells),
16207
- ];
16172
+ return { cells };
16173
+ }
16174
+ renderGroupingColumns() {
16175
+ var _a;
16176
+ const groupRow = [];
16177
+ for (let i = 0; i < this.groupingDepth; i++) {
16178
+ if (this.groups[i]) {
16179
+ for (let group of this.groups[i]) {
16180
+ const groupStartIndex = (_a = group.indexes[0]) !== null && _a !== void 0 ? _a : -1;
16181
+ if (groupStartIndex > -1) {
16182
+ const groupEndIndex = groupStartIndex + group.indexes.length - 1;
16183
+ const groupStart = getItemByIndex(this.dimensionCol.state, groupStartIndex).start;
16184
+ const groupEnd = getItemByIndex(this.dimensionCol.state, groupEndIndex).end;
16185
+ const props = {
16186
+ providers: this.providers,
16187
+ start: groupStart,
16188
+ end: groupEnd,
16189
+ group,
16190
+ active: this.resizeHandler,
16191
+ canResize: this.canResize,
16192
+ additionalData: this.additionalData,
16193
+ onResize: e => {
16194
+ var _a;
16195
+ return this.onResizeGroup((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, groupStartIndex, groupEndIndex);
16196
+ },
16197
+ };
16198
+ const event = this.beforeGroupHeaderRender.emit(props);
16199
+ if (!event.defaultPrevented) {
16200
+ groupRow.push(hAsync(HeaderGroupRenderer, Object.assign({}, event.detail)));
16201
+ }
16202
+ }
16203
+ }
16204
+ }
16205
+ groupRow.push(hAsync("div", { class: `${HEADER_ROW_CLASS} group` }));
16206
+ }
16207
+ return groupRow;
16208
16208
  }
16209
16209
  get providers() {
16210
16210
  return {
@@ -16299,10 +16299,13 @@ class RevogrRowHeaders {
16299
16299
  ref: (el) => this.elementToScroll.emit(el),
16300
16300
  onScrollviewport: (e) => this.scrollViewport.emit(e.detail),
16301
16301
  };
16302
- const viewportHeader = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,
16302
+ const viewportHeader = Object.assign(Object.assign({}, this.headerProp), {
16303
+ // groups not present on row headers
16304
+ groups: [], colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,
16303
16305
  // parent,
16304
- slot: HEADER_SLOT });
16305
- return (hAsync(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, hAsync("revogr-viewport-scroll", Object.assign({ key: 'addb87ab3406b5691cecf810119582bda3a4b4a2' }, viewportScroll, { "row-header": true }), hAsync("revogr-header", Object.assign({ key: '8621e76b132e7d1507794b515b40f525577413e2' }, viewportHeader)), dataViews)));
16306
+ slot: HEADER_SLOT
16307
+ });
16308
+ return (hAsync(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, hAsync("revogr-viewport-scroll", Object.assign({ key: 'c401e82e02e4bdb7afb25f2f49c6776f2e115c81' }, viewportScroll, { "row-header": true }), hAsync("revogr-header", Object.assign({ key: '3c73d27bd96e23a34fc0cf47eda4d2e65751df98' }, viewportHeader)), dataViews)));
16306
16309
  }
16307
16310
  static get cmpMeta() { return {
16308
16311
  "$flags$": 0,
@@ -16651,7 +16654,7 @@ class RevogrScrollVirtual {
16651
16654
  render() {
16652
16655
  const sizeType = this.dimension === 'rgRow' ? 'height' : 'width';
16653
16656
  const size = getContentSize(this.dimensionStore.get('realSize'), this.size, this.viewportStore.get('clientSize'));
16654
- return (hAsync(Host, { key: '7789bd408d3e154836bcd2aed4ebaa1663e7f968', onScroll: (e) => this.onScroll(e) }, hAsync("div", { key: '40549da97df3a580ad2ddef13fe7b4dbe6df54bc', style: {
16657
+ return (hAsync(Host, { key: '94ccf82880ca9a3b0b1a87e94553f3c6ea6e885a', onScroll: (e) => this.onScroll(e) }, hAsync("div", { key: '3518b4db297114195e4ef9bd3555d08bae08daa9', style: {
16655
16658
  [sizeType]: `${size}px`,
16656
16659
  } })));
16657
16660
  }
@@ -16918,7 +16921,7 @@ class RevogrViewportScroll {
16918
16921
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
16919
16922
  }
16920
16923
  render() {
16921
- return (hAsync(Host, { key: '970ac2365588d1c894d9684113eb9beaf64e1a1d', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: 'dc57aab1bde4496e83131d80a7e189db25b93312', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, hAsync("div", { key: 'bd014cf0a67bb913016f00f7838344611a1b26df', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: '772eb408b6ea670624cc338550215565ec36ef89', name: HEADER_SLOT })), hAsync("div", { key: '5dcf061c78864b0dc4e4ffbcc28c0ebb3536ce8b', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'b45f46aedefe82843b086cdca822e05339a77fda', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, hAsync("slot", { key: '8d07196c79741ace0f4c734138d69abdf96fee4f', name: CONTENT_SLOT }))), hAsync("div", { key: 'f6313f9394e99a3ad07895ed06e965540268b35a', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'b1bcdb75bb5e4dcc1e43493d7b4f01b2578352e4', name: FOOTER_SLOT })))));
16924
+ return (hAsync(Host, { key: 'c8c94171231164105fad7a6f53743db615dc123a', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: 'd33774605170a5ba43e41e3d3133130eeda1a6fb', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, hAsync("div", { key: '3cf14b0fd2fce937f5f28b205fbd2402d0de3cb4', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: '14ce896ee001c614553744c2e4d8d680bf4e6d15', name: HEADER_SLOT })), hAsync("div", { key: '46b937e0fc75a71f983b739e0c8179c2dc8115ac', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'cf775690b0eef973f205659973ea23e376bc64d6', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, hAsync("slot", { key: '63b50bb02edda40839829e7b54825953d3634906', name: CONTENT_SLOT }))), hAsync("div", { key: 'c28e2f9d0524a8d0adc86d6a7d78b1ce15831edd', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'bd24b24482d201ad91c279d09f3bcc0f2bc58370', name: FOOTER_SLOT })))));
16922
16925
  }
16923
16926
  /**
16924
16927
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing
@@ -17041,7 +17044,7 @@ class VNodeToHtml {
17041
17044
  render() {
17042
17045
  var _a, _b;
17043
17046
  this.vnodes = (_b = (_a = this.redraw) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : null;
17044
- return (hAsync(Host, { key: '73a019dbc046a9d4504bc84a80868e8023d1f502', style: { visibility: 'hidden', position: 'absolute' } }, this.vnodes));
17047
+ return (hAsync(Host, { key: '11b76ca8a86ebf279add88bbd86ef9eb5149605a', style: { visibility: 'hidden', position: 'absolute' } }, this.vnodes));
17045
17048
  }
17046
17049
  get el() { return getElement(this); }
17047
17050
  static get cmpMeta() { return {