@revolist/revogrid 4.8.18 → 4.9.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 (166) hide show
  1. package/dist/cjs/{base.plugin-1c16ff6d.js → base.plugin-d48d867d.js} +7 -6
  2. package/dist/cjs/base.plugin-d48d867d.js.map +1 -0
  3. package/dist/cjs/{column.service-ad5ffa3c.js → column.service-6f691f50.js} +2 -2
  4. package/dist/cjs/{column.service-ad5ffa3c.js.map → column.service-6f691f50.js.map} +1 -1
  5. package/dist/cjs/{header-cell-renderer-d92249e4.js → header-cell-renderer-81a22b00.js} +2 -2
  6. package/dist/cjs/{header-cell-renderer-d92249e4.js.map → header-cell-renderer-81a22b00.js.map} +1 -1
  7. package/dist/cjs/{index-a9f1b728.js → index-2410bbd9.js} +1 -3
  8. package/dist/cjs/index-2410bbd9.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +1 -1
  10. package/dist/cjs/{key.utils-a981b651.js → key.utils-1e48ab8f.js} +2 -4
  11. package/dist/cjs/key.utils-1e48ab8f.js.map +1 -0
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/revo-grid.cjs.entry.js +32 -34
  14. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  15. package/dist/cjs/revo-grid.cjs.js +1 -1
  16. package/dist/cjs/revogr-attribution_6.cjs.entry.js +4 -4
  17. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +2 -2
  18. package/dist/cjs/revogr-data_4.cjs.entry.js +11 -11
  19. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  20. package/dist/cjs/revogr-filter-panel.cjs.entry.js +14 -17
  21. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  22. package/dist/cjs/{throttle-46478b04.js → throttle-bcc4740d.js} +2 -2
  23. package/dist/cjs/{throttle-46478b04.js.map → throttle-bcc4740d.js.map} +1 -1
  24. package/dist/collection/collection-manifest.json +1 -1
  25. package/dist/collection/components/revoGrid/grid.helpers.js +16 -15
  26. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -1
  27. package/dist/collection/components/revoGrid/revo-grid.js +10 -15
  28. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  29. package/dist/collection/components/scroll/revogr-viewport-scroll.js +7 -8
  30. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  31. package/dist/collection/plugins/filter/{filter.pop.js → filter.panel.js} +23 -43
  32. package/dist/collection/plugins/filter/filter.panel.js.map +1 -0
  33. package/dist/collection/plugins/filter/filter.plugin.js +2 -2
  34. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  35. package/dist/collection/store/dimension/dimension.store.js +6 -6
  36. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  37. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  38. package/dist/collection/utils/consts.js +0 -1
  39. package/dist/collection/utils/consts.js.map +1 -1
  40. package/dist/collection/utils/key.utils.js +5 -6
  41. package/dist/collection/utils/key.utils.js.map +1 -1
  42. package/dist/esm/{base.plugin-44263df0.js → base.plugin-78393655.js} +8 -7
  43. package/dist/esm/base.plugin-78393655.js.map +1 -0
  44. package/dist/esm/{column.service-d727b605.js → column.service-0e41057a.js} +4 -4
  45. package/dist/esm/{column.service-d727b605.js.map → column.service-0e41057a.js.map} +1 -1
  46. package/dist/esm/{dimension.helpers-2bb7bbfc.js → dimension.helpers-91398565.js} +2 -2
  47. package/dist/esm/{dimension.helpers-2bb7bbfc.js.map → dimension.helpers-91398565.js.map} +1 -1
  48. package/dist/esm/{header-cell-renderer-220c509a.js → header-cell-renderer-6d8ac25d.js} +2 -2
  49. package/dist/esm/{header-cell-renderer-220c509a.js.map → header-cell-renderer-6d8ac25d.js.map} +1 -1
  50. package/dist/esm/{index-5a722722.js → index-4e881436.js} +2 -3
  51. package/dist/esm/index-4e881436.js.map +1 -0
  52. package/dist/esm/index.js +4 -4
  53. package/dist/esm/{key.utils-46287a7f.js → key.utils-425c987d.js} +2 -4
  54. package/dist/esm/key.utils-425c987d.js.map +1 -0
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/revo-grid.entry.js +35 -37
  57. package/dist/esm/revo-grid.entry.js.map +1 -1
  58. package/dist/esm/revo-grid.js +1 -1
  59. package/dist/esm/revogr-attribution_6.entry.js +7 -7
  60. package/dist/esm/revogr-clipboard_3.entry.js +3 -3
  61. package/dist/esm/revogr-data_4.entry.js +13 -13
  62. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  63. package/dist/esm/revogr-filter-panel.entry.js +15 -18
  64. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  65. package/dist/esm/{selection.helpers-2beedd2e.js → selection.helpers-50e9f09d.js} +2 -2
  66. package/dist/esm/{selection.helpers-2beedd2e.js.map → selection.helpers-50e9f09d.js.map} +1 -1
  67. package/dist/esm/{throttle-eeca0062.js → throttle-1b1dd9d2.js} +2 -2
  68. package/dist/esm/{throttle-eeca0062.js.map → throttle-1b1dd9d2.js.map} +1 -1
  69. package/dist/esm/{viewport.store-abdf9ec2.js → viewport.store-bfd0b036.js} +2 -2
  70. package/dist/esm/{viewport.store-abdf9ec2.js.map → viewport.store-bfd0b036.js.map} +1 -1
  71. package/dist/revo-grid/base.plugin-78393655.js +5 -0
  72. package/dist/{cjs/base.plugin-1c16ff6d.js.map → revo-grid/base.plugin-78393655.js.map} +1 -1
  73. package/dist/revo-grid/{column.service-d727b605.js → column.service-0e41057a.js} +2 -2
  74. package/dist/revo-grid/{dimension.helpers-2bb7bbfc.js → dimension.helpers-91398565.js} +2 -2
  75. package/dist/revo-grid/{header-cell-renderer-220c509a.js → header-cell-renderer-6d8ac25d.js} +2 -2
  76. package/dist/revo-grid/index-4e881436.js +5 -0
  77. package/dist/revo-grid/index-4e881436.js.map +1 -0
  78. package/dist/revo-grid/index.esm.js +1 -1
  79. package/dist/revo-grid/key.utils-425c987d.js +5 -0
  80. package/dist/revo-grid/key.utils-425c987d.js.map +1 -0
  81. package/dist/revo-grid/revo-grid.entry.js +1 -1
  82. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  83. package/dist/revo-grid/revo-grid.esm.js +1 -1
  84. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  85. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  86. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  87. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  88. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  89. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  90. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  91. package/dist/revo-grid/{selection.helpers-2beedd2e.js → selection.helpers-50e9f09d.js} +2 -2
  92. package/dist/revo-grid/{throttle-eeca0062.js → throttle-1b1dd9d2.js} +2 -2
  93. package/dist/revo-grid/{viewport.store-abdf9ec2.js → viewport.store-bfd0b036.js} +2 -2
  94. package/dist/types/components/revoGrid/revo-grid.d.ts +0 -1
  95. package/dist/types/components.d.ts +2 -4
  96. package/dist/types/plugins/filter/{filter.pop.d.ts → filter.panel.d.ts} +1 -2
  97. package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
  98. package/dist/types/types/viewport.interfaces.d.ts +0 -2
  99. package/dist/types/utils/consts.d.ts +0 -1
  100. package/hydrate/index.js +89 -95
  101. package/hydrate/index.mjs +89 -95
  102. package/package.json +2 -2
  103. package/standalone/_baseIteratee.js +670 -42
  104. package/standalone/_baseIteratee.js.map +1 -1
  105. package/standalone/column.service.js +1 -2
  106. package/standalone/column.service.js.map +1 -1
  107. package/standalone/consts.js +1 -2
  108. package/standalone/consts.js.map +1 -1
  109. package/standalone/data.store.js +2 -3
  110. package/standalone/data.store.js.map +1 -1
  111. package/standalone/debounce.js +1 -2
  112. package/standalone/debounce.js.map +1 -1
  113. package/standalone/dimension.helpers.js +199 -9
  114. package/standalone/dimension.helpers.js.map +1 -1
  115. package/standalone/index.d.ts +1 -1
  116. package/standalone/revo-grid.js +38 -42
  117. package/standalone/revo-grid.js.map +1 -1
  118. package/standalone/revogr-data2.js +1 -2
  119. package/standalone/revogr-data2.js.map +1 -1
  120. package/standalone/revogr-edit2.js +0 -2
  121. package/standalone/revogr-edit2.js.map +1 -1
  122. package/standalone/revogr-filter-panel.js +14 -18
  123. package/standalone/revogr-filter-panel.js.map +1 -1
  124. package/standalone/revogr-focus2.js +1 -2
  125. package/standalone/revogr-focus2.js.map +1 -1
  126. package/standalone/revogr-header2.js +3 -6
  127. package/standalone/revogr-header2.js.map +1 -1
  128. package/standalone/revogr-order-editor2.js +1 -2
  129. package/standalone/revogr-order-editor2.js.map +1 -1
  130. package/standalone/revogr-overlay-selection2.js +1 -2
  131. package/standalone/revogr-overlay-selection2.js.map +1 -1
  132. package/standalone/revogr-row-headers2.js +1 -2
  133. package/standalone/revogr-row-headers2.js.map +1 -1
  134. package/standalone/revogr-viewport-scroll2.js +7 -8
  135. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  136. package/standalone/selection.utils.js +1 -2
  137. package/standalone/selection.utils.js.map +1 -1
  138. package/standalone/throttle.js +1 -1
  139. package/standalone/toNumber.js +156 -2
  140. package/standalone/toNumber.js.map +1 -1
  141. package/dist/cjs/index-a9f1b728.js.map +0 -1
  142. package/dist/cjs/key.utils-a981b651.js.map +0 -1
  143. package/dist/collection/plugins/filter/filter.pop.js.map +0 -1
  144. package/dist/esm/base.plugin-44263df0.js.map +0 -1
  145. package/dist/esm/index-5a722722.js.map +0 -1
  146. package/dist/esm/key.utils-46287a7f.js.map +0 -1
  147. package/dist/revo-grid/base.plugin-44263df0.js +0 -5
  148. package/dist/revo-grid/base.plugin-44263df0.js.map +0 -1
  149. package/dist/revo-grid/index-5a722722.js +0 -5
  150. package/dist/revo-grid/index-5a722722.js.map +0 -1
  151. package/dist/revo-grid/key.utils-46287a7f.js +0 -5
  152. package/dist/revo-grid/key.utils-46287a7f.js.map +0 -1
  153. package/standalone/_nodeUtil.js +0 -260
  154. package/standalone/_nodeUtil.js.map +0 -1
  155. package/standalone/each.js +0 -200
  156. package/standalone/each.js.map +0 -1
  157. package/standalone/identity.js +0 -389
  158. package/standalone/identity.js.map +0 -1
  159. package/standalone/isObjectLike.js +0 -162
  160. package/standalone/isObjectLike.js.map +0 -1
  161. /package/dist/revo-grid/{column.service-d727b605.js.map → column.service-0e41057a.js.map} +0 -0
  162. /package/dist/revo-grid/{dimension.helpers-2bb7bbfc.js.map → dimension.helpers-91398565.js.map} +0 -0
  163. /package/dist/revo-grid/{header-cell-renderer-220c509a.js.map → header-cell-renderer-6d8ac25d.js.map} +0 -0
  164. /package/dist/revo-grid/{selection.helpers-2beedd2e.js.map → selection.helpers-50e9f09d.js.map} +0 -0
  165. /package/dist/revo-grid/{throttle-eeca0062.js.map → throttle-1b1dd9d2.js.map} +0 -0
  166. /package/dist/revo-grid/{viewport.store-abdf9ec2.js.map → viewport.store-bfd0b036.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -3046,7 +3046,7 @@ class FilterPanel {
3046
3046
  title: 'Filter by',
3047
3047
  save: 'Save',
3048
3048
  // drops the filter
3049
- reset: 'Cancel',
3049
+ reset: 'Clear changes',
3050
3050
  cancel: 'Close',
3051
3051
  add: 'Add more condition...',
3052
3052
  placeholder: 'Enter value...',
@@ -3061,7 +3061,6 @@ class FilterPanel {
3061
3061
  this.currentFilterId = -1;
3062
3062
  this.currentFilterType = defaultType;
3063
3063
  this.changes = undefined;
3064
- this.uuid = undefined;
3065
3064
  this.filterItems = {};
3066
3065
  this.filterTypes = {};
3067
3066
  this.filterNames = {};
@@ -3072,7 +3071,18 @@ class FilterPanel {
3072
3071
  onMouseDown(e) {
3073
3072
  if (this.changes && !e.defaultPrevented) {
3074
3073
  const el = e.target;
3075
- if (this.isOutside(el) && !isFilterBtn(el)) {
3074
+ const select = document.getElementById('add-filter');
3075
+ if (select) {
3076
+ select.value = defaultType;
3077
+ }
3078
+ this.currentFilterType = defaultType;
3079
+ if (this.changes) {
3080
+ this.changes.type = defaultType;
3081
+ }
3082
+ this.currentFilterId = -1;
3083
+ const path = e.composedPath();
3084
+ const isOutside = !path.includes(this.element);
3085
+ if (isOutside && !isFilterBtn(el)) {
3076
3086
  this.changes = undefined;
3077
3087
  }
3078
3088
  }
@@ -3285,26 +3295,12 @@ class FilterPanel {
3285
3295
  throw new Error('Changes required per edit');
3286
3296
  }
3287
3297
  }
3288
- isOutside(e) {
3289
- const select = document.getElementById('add-filter');
3290
- if (select)
3291
- select.value = defaultType;
3292
- this.currentFilterType = defaultType;
3293
- if (this.changes) {
3294
- this.changes.type = defaultType;
3295
- }
3296
- this.currentFilterId = -1;
3297
- if (e === null || e === void 0 ? void 0 : e.classList.contains(`[uuid="${this.uuid}"]`)) {
3298
- return false;
3299
- }
3300
- return !(e === null || e === void 0 ? void 0 : e.closest(`[uuid="${this.uuid}"]`));
3301
- }
3298
+ get element() { return getElement(this); }
3302
3299
  static get style() { return RevogrFilterPanelStyle0; }
3303
3300
  static get cmpMeta() { return {
3304
3301
  "$flags$": 0,
3305
3302
  "$tagName$": "revogr-filter-panel",
3306
3303
  "$members$": {
3307
- "uuid": [1537],
3308
3304
  "filterItems": [16],
3309
3305
  "filterTypes": [16],
3310
3306
  "filterNames": [16],
@@ -3321,7 +3317,7 @@ class FilterPanel {
3321
3317
  },
3322
3318
  "$listeners$": [[5, "mousedown", "onMouseDown"]],
3323
3319
  "$lazyBundleId$": "-",
3324
- "$attrsToReflect$": [["uuid", "uuid"]]
3320
+ "$attrsToReflect$": []
3325
3321
  }; }
3326
3322
  }
3327
3323
 
@@ -7495,12 +7491,13 @@ const trimmedPlugin = (store) => {
7495
7491
  const setTrimmed = (sizes, trimmed) => {
7496
7492
  const newSize = Object.assign({}, sizes);
7497
7493
  trimmedSize = {};
7498
- each(trimmed, (v, index) => {
7499
- if (v && newSize[index]) {
7500
- trimmedSize[index] = newSize[index];
7501
- delete newSize[index];
7494
+ for (const [index, v] of Object.entries(trimmed)) {
7495
+ const i = index;
7496
+ if (v && newSize[i]) {
7497
+ trimmedSize[i] = newSize[i];
7498
+ delete newSize[i];
7502
7499
  }
7503
- });
7500
+ }
7504
7501
  store.setDimensionSize(newSize);
7505
7502
  };
7506
7503
  return {
@@ -8425,7 +8422,6 @@ const MIN_COL_SIZE = 30;
8425
8422
  const RESIZE_INTERVAL = 40;
8426
8423
  const DATA_COL = 'data-rgCol';
8427
8424
  const DATA_ROW = 'data-rgRow';
8428
- const UUID = 'grid-uuid';
8429
8425
  const DISABLED_CLASS = 'disabled';
8430
8426
  const CELL_CLASS = 'rgCell';
8431
8427
  const ROW_HEADER_TYPE = 'rowHeaders';
@@ -9385,37 +9381,6 @@ var osPlatform;
9385
9381
  osPlatform["mac"] = "Mac";
9386
9382
  })(osPlatform || (osPlatform = {}));
9387
9383
 
9388
- var baseGetTag = _baseGetTag,
9389
- isArray$2 = isArray_1,
9390
- isObjectLike = isObjectLike_1;
9391
-
9392
- /** `Object#toString` result references. */
9393
- var stringTag = '[object String]';
9394
-
9395
- /**
9396
- * Checks if `value` is classified as a `String` primitive or object.
9397
- *
9398
- * @static
9399
- * @since 0.1.0
9400
- * @memberOf _
9401
- * @category Lang
9402
- * @param {*} value The value to check.
9403
- * @returns {boolean} Returns `true` if `value` is a string, else `false`.
9404
- * @example
9405
- *
9406
- * _.isString('abc');
9407
- * // => true
9408
- *
9409
- * _.isString(1);
9410
- * // => false
9411
- */
9412
- function isString$1(value) {
9413
- return typeof value == 'string' ||
9414
- (!isArray$2(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
9415
- }
9416
-
9417
- var isString_1 = isString$1;
9418
-
9419
9384
  function isLetterKey(code) {
9420
9385
  return (code === 32 || // space
9421
9386
  (code >= 48 && code <= 57) ||
@@ -10682,7 +10647,7 @@ var _baseMap = baseMap$1;
10682
10647
  var arrayMap = _arrayMap,
10683
10648
  baseIteratee$1 = _baseIteratee,
10684
10649
  baseMap = _baseMap,
10685
- isArray$1 = isArray_1;
10650
+ isArray$2 = isArray_1;
10686
10651
 
10687
10652
  /**
10688
10653
  * Creates an array of values by running each element in `collection` thru
@@ -10727,7 +10692,7 @@ var arrayMap = _arrayMap,
10727
10692
  * // => ['barney', 'fred']
10728
10693
  */
10729
10694
  function map(collection, iteratee) {
10730
- var func = isArray$1(collection) ? arrayMap : baseMap;
10695
+ var func = isArray$2(collection) ? arrayMap : baseMap;
10731
10696
  return func(collection, baseIteratee$1(iteratee));
10732
10697
  }
10733
10698
 
@@ -11697,7 +11662,7 @@ const filterTypes = {
11697
11662
  const FILTER_TRIMMED_TYPE = 'filter';
11698
11663
  const FILTER_CONFIG_CHANGED_EVENT = 'filterconfigchanged';
11699
11664
  class FilterPlugin extends BasePlugin {
11700
- constructor(revogrid, providers, uiid, config) {
11665
+ constructor(revogrid, providers, config) {
11701
11666
  var _a;
11702
11667
  super(revogrid, providers);
11703
11668
  this.revogrid = revogrid;
@@ -11746,7 +11711,7 @@ class FilterPlugin extends BasePlugin {
11746
11711
  const existingNodes = this.revogrid.registerVNode.filter((n) => n.$tag$ !== 'revogr-filter-panel');
11747
11712
  this.revogrid.registerVNode = [
11748
11713
  ...existingNodes,
11749
- hAsync("revogr-filter-panel", { uuid: `filter-${uiid}`, filterItems: this.multiFilterItems, filterNames: this.possibleFilterNames, filterEntities: this.possibleFilterEntities, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, ref: e => (this.pop = e) }),
11714
+ hAsync("revogr-filter-panel", { filterItems: this.multiFilterItems, filterNames: this.possibleFilterNames, filterEntities: this.possibleFilterEntities, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, ref: e => (this.pop = e) }),
11750
11715
  ];
11751
11716
  }
11752
11717
  initConfig(config) {
@@ -11985,6 +11950,37 @@ class FilterPlugin extends BasePlugin {
11985
11950
  }
11986
11951
  }
11987
11952
 
11953
+ var baseGetTag = _baseGetTag,
11954
+ isArray$1 = isArray_1,
11955
+ isObjectLike = isObjectLike_1;
11956
+
11957
+ /** `Object#toString` result references. */
11958
+ var stringTag = '[object String]';
11959
+
11960
+ /**
11961
+ * Checks if `value` is classified as a `String` primitive or object.
11962
+ *
11963
+ * @static
11964
+ * @since 0.1.0
11965
+ * @memberOf _
11966
+ * @category Lang
11967
+ * @param {*} value The value to check.
11968
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
11969
+ * @example
11970
+ *
11971
+ * _.isString('abc');
11972
+ * // => true
11973
+ *
11974
+ * _.isString(1);
11975
+ * // => false
11976
+ */
11977
+ function isString$1(value) {
11978
+ return typeof value == 'string' ||
11979
+ (!isArray$1(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
11980
+ }
11981
+
11982
+ var isString_1 = isString$1;
11983
+
11988
11984
  var baseProperty = _baseProperty;
11989
11985
 
11990
11986
  /**
@@ -13584,29 +13580,31 @@ function isStretchPlugin(plugin) {
13584
13580
  }
13585
13581
 
13586
13582
  const rowDefinitionByType = (newVal = []) => {
13587
- return reduce_1(newVal, (r, v) => {
13588
- if (!r[v.type]) {
13589
- r[v.type] = {};
13583
+ const result = {};
13584
+ for (const v of newVal) {
13585
+ if (!result[v.type]) {
13586
+ result[v.type] = {};
13590
13587
  }
13591
13588
  if (v.size) {
13592
- if (!r[v.type].sizes) {
13593
- r[v.type].sizes = {};
13589
+ if (!result[v.type].sizes) {
13590
+ result[v.type].sizes = {};
13594
13591
  }
13595
- r[v.type].sizes[v.index] = v.size;
13592
+ result[v.type].sizes[v.index] = v.size;
13596
13593
  }
13597
- return r;
13598
- }, {});
13594
+ }
13595
+ return result;
13599
13596
  };
13600
13597
  const rowDefinitionRemoveByType = (oldVal = []) => {
13601
- return reduce_1(oldVal, (r, v) => {
13602
- if (!r[v.type]) {
13603
- r[v.type] = [];
13598
+ const result = {};
13599
+ for (const v of oldVal) {
13600
+ if (!result[v.type]) {
13601
+ result[v.type] = [];
13604
13602
  }
13605
13603
  if (v.size) {
13606
- r[v.type].push(v.index);
13604
+ result[v.type].push(v.index);
13607
13605
  }
13608
- return r;
13609
- }, {});
13606
+ }
13607
+ return result;
13610
13608
  };
13611
13609
 
13612
13610
  const COLUMN_DRAG_CLASS = 'column-drag-start';
@@ -14209,8 +14207,6 @@ class RevoGridComponent {
14209
14207
  // #region Listeners outside scope
14210
14208
  this.clickTrackForFocusClear = null;
14211
14209
  this.extraElements = [];
14212
- // UUID required to support multiple grids in one page and avoid collision
14213
- this.uuid = null;
14214
14210
  this.viewport = null;
14215
14211
  this.isInited = false;
14216
14212
  /**
@@ -14457,19 +14453,19 @@ class RevoGridComponent {
14457
14453
  if (event.defaultPrevented) {
14458
14454
  return;
14459
14455
  }
14460
- const target = event.target;
14461
14456
  const pos = screenX + screenY;
14462
14457
  // detect if mousemove then do nothing
14463
14458
  if (Math.abs(this.clickTrackForFocusClear - pos) > 10) {
14464
14459
  return;
14465
14460
  }
14466
- // check if action finished inside of the document
14467
- // clear data which is outside of grid
14461
+ // Check if action finished inside of the document
14468
14462
  // if event prevented or it is current table don't clear focus
14469
- if (target === null || target === void 0 ? void 0 : target.closest(`[${UUID}="${this.uuid}"]`)) {
14470
- return;
14463
+ const path = event.composedPath();
14464
+ if (!path.includes(this.element) &&
14465
+ !path.includes(this.element.shadowRoot)) {
14466
+ // Perform actions if the click is outside the component
14467
+ this.clearFocus();
14471
14468
  }
14472
- this.clearFocus();
14473
14469
  }
14474
14470
  // #endregion
14475
14471
  // #region Listeners
@@ -14753,7 +14749,7 @@ class RevoGridComponent {
14753
14749
  }
14754
14750
  // register filter plugin
14755
14751
  if (this.filter) {
14756
- this.internalPlugins.push(new FilterPlugin(this.element, pluginData, this.uuid, typeof this.filter === 'object' ? this.filter : undefined));
14752
+ this.internalPlugins.push(new FilterPlugin(this.element, pluginData, typeof this.filter === 'object' ? this.filter : undefined));
14757
14753
  }
14758
14754
  // register export plugin
14759
14755
  if (this.exporting) {
@@ -14800,8 +14796,6 @@ class RevoGridComponent {
14800
14796
  this.selectionStoreConnector = new SelectionStoreConnector();
14801
14797
  this.dataProvider = new DataProvider(this.dimensionProvider);
14802
14798
  // #endregion
14803
- // generate uuid for this grid
14804
- this.uuid = `rv--${Math.random().toString(36).slice(2, 6)}-${Date.now()}`;
14805
14799
  this.registerOutsideVNodes(this.registerVNode);
14806
14800
  // init plugins
14807
14801
  this.setPlugins();
@@ -14872,7 +14866,7 @@ class RevoGridComponent {
14872
14866
  const headerProperties = Object.assign(Object.assign({}, view.headerProp), { type: view.type, additionalData: this.additionalData, viewportCol: view.viewportCol, selectionStore: view.columnSelectionStore, canResize: this.resize, readonly: this.readonly, columnFilter: !!this.filter });
14873
14867
  // Column headers
14874
14868
  const dataViews = [
14875
- hAsync("revogr-header", Object.assign({ key: '83382de99ec784ec1b049ccd6fe4bdcc332cabed' }, headerProperties, { slot: HEADER_SLOT })),
14869
+ hAsync("revogr-header", Object.assign({ key: 'ff8eefd6db3baf494c015a2ea573160d27739aa9' }, headerProperties, { slot: HEADER_SLOT })),
14876
14870
  ];
14877
14871
  // Render viewport data (vertical sections)
14878
14872
  view.dataPorts.forEach(data => {
@@ -14894,11 +14888,11 @@ class RevoGridComponent {
14894
14888
  const typeCol = 'rgCol';
14895
14889
  const viewports = this.viewportProvider.stores;
14896
14890
  const dimensions = this.dimensionProvider.stores;
14897
- return (hAsync(Host, { key: 'd0d2bbed64b64c9b6ca791a53f3a3c8ef3c4005e', [`${UUID}`]: this.uuid }, this.hideAttribution ? null : (hAsync("revogr-attribution", { class: "attribution" })), hAsync("div", { key: 'bb8dd42f87d5bd0b7077de213512d05ceb8b6fca', class: "main-viewport", onClick: (e) => {
14891
+ return (hAsync(Host, { key: '21bbe81595f20f7bcb271f28c9c86feef472efec' }, this.hideAttribution ? null : (hAsync("revogr-attribution", { class: "attribution" })), hAsync("div", { key: '7a3092cd02305a0dfaa3b3d3160164001f0ed08b', class: "main-viewport", onClick: (e) => {
14898
14892
  if (e.currentTarget === e.target) {
14899
14893
  this.viewport.clearEdit();
14900
14894
  }
14901
- } }, hAsync("div", { key: 'd8e40dd546ba1448b0e337c4f52a5bfc2ad0cacd', class: "viewports" }, hAsync("slot", { key: '2081bc7165ac469f4ff43be97519a3a1b960e105', name: "viewport" }), viewportSections, hAsync("revogr-scroll-virtual", { key: '4ba3abc9197c7f5062166b5fff21eef258ee49df', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), hAsync(OrderRenderer, { key: '3c52006a7d1c846baeac3892d6804b56f47aebbd', ref: e => (this.orderService = e) }))), hAsync("revogr-scroll-virtual", { key: 'e0ff22ae142089d9d4a66e074a03e41463fe4f01', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
14895
+ } }, hAsync("div", { key: 'ae1dfccbb72cc2a9f7fa370889746c702d106045', class: "viewports" }, hAsync("slot", { key: '0725b46d877fbb63fb513845cc1c7b86d0f856b8', name: "viewport" }), viewportSections, hAsync("revogr-scroll-virtual", { key: 'd41771f6ff459f1f6747ce496c8165b1dab44963', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), hAsync(OrderRenderer, { key: '2914421478450c9b198e0aade898ed342e4d7f6a', ref: e => (this.orderService = e) }))), hAsync("revogr-scroll-virtual", { key: 'bc1812c5ce54cda01e81cc06e28c69dc8e36fdf3', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
14902
14896
  }
14903
14897
  disconnectedCallback() {
14904
14898
  // Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
@@ -16456,7 +16450,7 @@ class RevogrViewportScroll {
16456
16450
  // track horizontal viewport resize
16457
16451
  this.resizeService = new GridResizeService(this.horizontalScroll, {
16458
16452
  resize: entries => {
16459
- var _a, _b;
16453
+ var _a, _b, _c;
16460
16454
  let height = ((_a = entries[0]) === null || _a === void 0 ? void 0 : _a.contentRect.height) || 0;
16461
16455
  if (height) {
16462
16456
  height -= this.header.clientHeight + this.footer.clientHeight;
@@ -16475,16 +16469,16 @@ class RevogrViewportScroll {
16475
16469
  noScroll: this.colType !== 'rgCol' ? true : false,
16476
16470
  },
16477
16471
  };
16478
- each(els, (item, dimension) => {
16479
- var _a;
16472
+ for (const [dim, item] of Object.entries(els)) {
16473
+ const dimension = dim;
16480
16474
  this.resizeViewport.emit({ dimension, size: item.size, rowHeader: this.rowHeader });
16481
16475
  if (item.noScroll) {
16482
- return;
16476
+ continue;
16483
16477
  }
16484
- (_a = this.localScrollService) === null || _a === void 0 ? void 0 : _a.scroll(item.scroll, dimension, true);
16478
+ (_c = this.localScrollService) === null || _c === void 0 ? void 0 : _c.scroll(item.scroll, dimension, true);
16485
16479
  // track scroll visibility on outer element change
16486
16480
  this.setScrollVisibility(dimension, item.size, item.contentSize);
16487
- });
16481
+ }
16488
16482
  },
16489
16483
  });
16490
16484
  }
@@ -16546,7 +16540,7 @@ class RevogrViewportScroll {
16546
16540
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
16547
16541
  }
16548
16542
  render() {
16549
- return (hAsync(Host, { key: 'f7bd78e3f05aae8d8d8a6a93502f99ace0f35823', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: '2d7aa9dbbcf2003aec46c6c127e172e45f2ffe1f', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, hAsync("div", { key: 'ba3d83de41d30c58ba6bc4c167e45ccbb36bb9a7', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: '857a54cba6e79dac4d1ff93246c839e661f69977', name: HEADER_SLOT })), hAsync("div", { key: '47b20a22b88fdbdc82e12d4a4fb649410fd24d6d', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'ee01a566cc1f8a688d329cbb68f87ca2db480dcf', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, hAsync("slot", { key: '9c23e4a846eda6a5edd21bc7e5fda04d118008a2', name: CONTENT_SLOT }))), hAsync("div", { key: '48fceef2ad3b425b1c37ff51f7774094ef7a40b4', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'eb71ecef7b1ca911e25360082d0f7706f67e3c9f', name: FOOTER_SLOT })))));
16543
+ return (hAsync(Host, { key: '485d211d22fd720192de2206afef46545339902e', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, hAsync("div", { key: 'e3d17c747ec3f525c2947a6fa2e4652ed0f498d9', class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, hAsync("div", { key: 'f8fb5652593c76f676d57762911af866f46ce31d', class: "header-wrapper", ref: e => (this.header = e) }, hAsync("slot", { key: '6d96653adf4d23208a6091dab42000235d696b48', name: HEADER_SLOT })), hAsync("div", { key: 'afcfcdaeacfe01fa3d8fabc30db36f5aecb24ad3', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, hAsync("div", { key: 'f6ba7b1d8621fcb2ea8565cdea6a75e6abca9d35', class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, hAsync("slot", { key: 'e5377e124212312859b05431053bcd81543d8193', name: CONTENT_SLOT }))), hAsync("div", { key: '3e990a197388391d393c607c18441b363d60ab53', class: "footer-wrapper", ref: e => (this.footer = e) }, hAsync("slot", { key: 'ae7eb7bde5e8798247b4d2a67ae622ba496c44f9', name: FOOTER_SLOT })))));
16550
16544
  }
16551
16545
  /**
16552
16546
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing