@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.mjs CHANGED
@@ -3042,7 +3042,7 @@ class FilterPanel {
3042
3042
  title: 'Filter by',
3043
3043
  save: 'Save',
3044
3044
  // drops the filter
3045
- reset: 'Cancel',
3045
+ reset: 'Clear changes',
3046
3046
  cancel: 'Close',
3047
3047
  add: 'Add more condition...',
3048
3048
  placeholder: 'Enter value...',
@@ -3057,7 +3057,6 @@ class FilterPanel {
3057
3057
  this.currentFilterId = -1;
3058
3058
  this.currentFilterType = defaultType;
3059
3059
  this.changes = undefined;
3060
- this.uuid = undefined;
3061
3060
  this.filterItems = {};
3062
3061
  this.filterTypes = {};
3063
3062
  this.filterNames = {};
@@ -3068,7 +3067,18 @@ class FilterPanel {
3068
3067
  onMouseDown(e) {
3069
3068
  if (this.changes && !e.defaultPrevented) {
3070
3069
  const el = e.target;
3071
- if (this.isOutside(el) && !isFilterBtn(el)) {
3070
+ const select = document.getElementById('add-filter');
3071
+ if (select) {
3072
+ select.value = defaultType;
3073
+ }
3074
+ this.currentFilterType = defaultType;
3075
+ if (this.changes) {
3076
+ this.changes.type = defaultType;
3077
+ }
3078
+ this.currentFilterId = -1;
3079
+ const path = e.composedPath();
3080
+ const isOutside = !path.includes(this.element);
3081
+ if (isOutside && !isFilterBtn(el)) {
3072
3082
  this.changes = undefined;
3073
3083
  }
3074
3084
  }
@@ -3281,26 +3291,12 @@ class FilterPanel {
3281
3291
  throw new Error('Changes required per edit');
3282
3292
  }
3283
3293
  }
3284
- isOutside(e) {
3285
- const select = document.getElementById('add-filter');
3286
- if (select)
3287
- select.value = defaultType;
3288
- this.currentFilterType = defaultType;
3289
- if (this.changes) {
3290
- this.changes.type = defaultType;
3291
- }
3292
- this.currentFilterId = -1;
3293
- if (e === null || e === void 0 ? void 0 : e.classList.contains(`[uuid="${this.uuid}"]`)) {
3294
- return false;
3295
- }
3296
- return !(e === null || e === void 0 ? void 0 : e.closest(`[uuid="${this.uuid}"]`));
3297
- }
3294
+ get element() { return getElement(this); }
3298
3295
  static get style() { return RevogrFilterPanelStyle0; }
3299
3296
  static get cmpMeta() { return {
3300
3297
  "$flags$": 0,
3301
3298
  "$tagName$": "revogr-filter-panel",
3302
3299
  "$members$": {
3303
- "uuid": [1537],
3304
3300
  "filterItems": [16],
3305
3301
  "filterTypes": [16],
3306
3302
  "filterNames": [16],
@@ -3317,7 +3313,7 @@ class FilterPanel {
3317
3313
  },
3318
3314
  "$listeners$": [[5, "mousedown", "onMouseDown"]],
3319
3315
  "$lazyBundleId$": "-",
3320
- "$attrsToReflect$": [["uuid", "uuid"]]
3316
+ "$attrsToReflect$": []
3321
3317
  }; }
3322
3318
  }
3323
3319
 
@@ -7491,12 +7487,13 @@ const trimmedPlugin = (store) => {
7491
7487
  const setTrimmed = (sizes, trimmed) => {
7492
7488
  const newSize = Object.assign({}, sizes);
7493
7489
  trimmedSize = {};
7494
- each(trimmed, (v, index) => {
7495
- if (v && newSize[index]) {
7496
- trimmedSize[index] = newSize[index];
7497
- delete newSize[index];
7490
+ for (const [index, v] of Object.entries(trimmed)) {
7491
+ const i = index;
7492
+ if (v && newSize[i]) {
7493
+ trimmedSize[i] = newSize[i];
7494
+ delete newSize[i];
7498
7495
  }
7499
- });
7496
+ }
7500
7497
  store.setDimensionSize(newSize);
7501
7498
  };
7502
7499
  return {
@@ -8421,7 +8418,6 @@ const MIN_COL_SIZE = 30;
8421
8418
  const RESIZE_INTERVAL = 40;
8422
8419
  const DATA_COL = 'data-rgCol';
8423
8420
  const DATA_ROW = 'data-rgRow';
8424
- const UUID = 'grid-uuid';
8425
8421
  const DISABLED_CLASS = 'disabled';
8426
8422
  const CELL_CLASS = 'rgCell';
8427
8423
  const ROW_HEADER_TYPE = 'rowHeaders';
@@ -9381,37 +9377,6 @@ var osPlatform;
9381
9377
  osPlatform["mac"] = "Mac";
9382
9378
  })(osPlatform || (osPlatform = {}));
9383
9379
 
9384
- var baseGetTag = _baseGetTag,
9385
- isArray$2 = isArray_1,
9386
- isObjectLike = isObjectLike_1;
9387
-
9388
- /** `Object#toString` result references. */
9389
- var stringTag = '[object String]';
9390
-
9391
- /**
9392
- * Checks if `value` is classified as a `String` primitive or object.
9393
- *
9394
- * @static
9395
- * @since 0.1.0
9396
- * @memberOf _
9397
- * @category Lang
9398
- * @param {*} value The value to check.
9399
- * @returns {boolean} Returns `true` if `value` is a string, else `false`.
9400
- * @example
9401
- *
9402
- * _.isString('abc');
9403
- * // => true
9404
- *
9405
- * _.isString(1);
9406
- * // => false
9407
- */
9408
- function isString$1(value) {
9409
- return typeof value == 'string' ||
9410
- (!isArray$2(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
9411
- }
9412
-
9413
- var isString_1 = isString$1;
9414
-
9415
9380
  function isLetterKey(code) {
9416
9381
  return (code === 32 || // space
9417
9382
  (code >= 48 && code <= 57) ||
@@ -10678,7 +10643,7 @@ var _baseMap = baseMap$1;
10678
10643
  var arrayMap = _arrayMap,
10679
10644
  baseIteratee$1 = _baseIteratee,
10680
10645
  baseMap = _baseMap,
10681
- isArray$1 = isArray_1;
10646
+ isArray$2 = isArray_1;
10682
10647
 
10683
10648
  /**
10684
10649
  * Creates an array of values by running each element in `collection` thru
@@ -10723,7 +10688,7 @@ var arrayMap = _arrayMap,
10723
10688
  * // => ['barney', 'fred']
10724
10689
  */
10725
10690
  function map(collection, iteratee) {
10726
- var func = isArray$1(collection) ? arrayMap : baseMap;
10691
+ var func = isArray$2(collection) ? arrayMap : baseMap;
10727
10692
  return func(collection, baseIteratee$1(iteratee));
10728
10693
  }
10729
10694
 
@@ -11693,7 +11658,7 @@ const filterTypes = {
11693
11658
  const FILTER_TRIMMED_TYPE = 'filter';
11694
11659
  const FILTER_CONFIG_CHANGED_EVENT = 'filterconfigchanged';
11695
11660
  class FilterPlugin extends BasePlugin {
11696
- constructor(revogrid, providers, uiid, config) {
11661
+ constructor(revogrid, providers, config) {
11697
11662
  var _a;
11698
11663
  super(revogrid, providers);
11699
11664
  this.revogrid = revogrid;
@@ -11742,7 +11707,7 @@ class FilterPlugin extends BasePlugin {
11742
11707
  const existingNodes = this.revogrid.registerVNode.filter((n) => n.$tag$ !== 'revogr-filter-panel');
11743
11708
  this.revogrid.registerVNode = [
11744
11709
  ...existingNodes,
11745
- 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) }),
11710
+ 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) }),
11746
11711
  ];
11747
11712
  }
11748
11713
  initConfig(config) {
@@ -11981,6 +11946,37 @@ class FilterPlugin extends BasePlugin {
11981
11946
  }
11982
11947
  }
11983
11948
 
11949
+ var baseGetTag = _baseGetTag,
11950
+ isArray$1 = isArray_1,
11951
+ isObjectLike = isObjectLike_1;
11952
+
11953
+ /** `Object#toString` result references. */
11954
+ var stringTag = '[object String]';
11955
+
11956
+ /**
11957
+ * Checks if `value` is classified as a `String` primitive or object.
11958
+ *
11959
+ * @static
11960
+ * @since 0.1.0
11961
+ * @memberOf _
11962
+ * @category Lang
11963
+ * @param {*} value The value to check.
11964
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
11965
+ * @example
11966
+ *
11967
+ * _.isString('abc');
11968
+ * // => true
11969
+ *
11970
+ * _.isString(1);
11971
+ * // => false
11972
+ */
11973
+ function isString$1(value) {
11974
+ return typeof value == 'string' ||
11975
+ (!isArray$1(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
11976
+ }
11977
+
11978
+ var isString_1 = isString$1;
11979
+
11984
11980
  var baseProperty = _baseProperty;
11985
11981
 
11986
11982
  /**
@@ -13580,29 +13576,31 @@ function isStretchPlugin(plugin) {
13580
13576
  }
13581
13577
 
13582
13578
  const rowDefinitionByType = (newVal = []) => {
13583
- return reduce_1(newVal, (r, v) => {
13584
- if (!r[v.type]) {
13585
- r[v.type] = {};
13579
+ const result = {};
13580
+ for (const v of newVal) {
13581
+ if (!result[v.type]) {
13582
+ result[v.type] = {};
13586
13583
  }
13587
13584
  if (v.size) {
13588
- if (!r[v.type].sizes) {
13589
- r[v.type].sizes = {};
13585
+ if (!result[v.type].sizes) {
13586
+ result[v.type].sizes = {};
13590
13587
  }
13591
- r[v.type].sizes[v.index] = v.size;
13588
+ result[v.type].sizes[v.index] = v.size;
13592
13589
  }
13593
- return r;
13594
- }, {});
13590
+ }
13591
+ return result;
13595
13592
  };
13596
13593
  const rowDefinitionRemoveByType = (oldVal = []) => {
13597
- return reduce_1(oldVal, (r, v) => {
13598
- if (!r[v.type]) {
13599
- r[v.type] = [];
13594
+ const result = {};
13595
+ for (const v of oldVal) {
13596
+ if (!result[v.type]) {
13597
+ result[v.type] = [];
13600
13598
  }
13601
13599
  if (v.size) {
13602
- r[v.type].push(v.index);
13600
+ result[v.type].push(v.index);
13603
13601
  }
13604
- return r;
13605
- }, {});
13602
+ }
13603
+ return result;
13606
13604
  };
13607
13605
 
13608
13606
  const COLUMN_DRAG_CLASS = 'column-drag-start';
@@ -14205,8 +14203,6 @@ class RevoGridComponent {
14205
14203
  // #region Listeners outside scope
14206
14204
  this.clickTrackForFocusClear = null;
14207
14205
  this.extraElements = [];
14208
- // UUID required to support multiple grids in one page and avoid collision
14209
- this.uuid = null;
14210
14206
  this.viewport = null;
14211
14207
  this.isInited = false;
14212
14208
  /**
@@ -14453,19 +14449,19 @@ class RevoGridComponent {
14453
14449
  if (event.defaultPrevented) {
14454
14450
  return;
14455
14451
  }
14456
- const target = event.target;
14457
14452
  const pos = screenX + screenY;
14458
14453
  // detect if mousemove then do nothing
14459
14454
  if (Math.abs(this.clickTrackForFocusClear - pos) > 10) {
14460
14455
  return;
14461
14456
  }
14462
- // check if action finished inside of the document
14463
- // clear data which is outside of grid
14457
+ // Check if action finished inside of the document
14464
14458
  // if event prevented or it is current table don't clear focus
14465
- if (target === null || target === void 0 ? void 0 : target.closest(`[${UUID}="${this.uuid}"]`)) {
14466
- return;
14459
+ const path = event.composedPath();
14460
+ if (!path.includes(this.element) &&
14461
+ !path.includes(this.element.shadowRoot)) {
14462
+ // Perform actions if the click is outside the component
14463
+ this.clearFocus();
14467
14464
  }
14468
- this.clearFocus();
14469
14465
  }
14470
14466
  // #endregion
14471
14467
  // #region Listeners
@@ -14749,7 +14745,7 @@ class RevoGridComponent {
14749
14745
  }
14750
14746
  // register filter plugin
14751
14747
  if (this.filter) {
14752
- this.internalPlugins.push(new FilterPlugin(this.element, pluginData, this.uuid, typeof this.filter === 'object' ? this.filter : undefined));
14748
+ this.internalPlugins.push(new FilterPlugin(this.element, pluginData, typeof this.filter === 'object' ? this.filter : undefined));
14753
14749
  }
14754
14750
  // register export plugin
14755
14751
  if (this.exporting) {
@@ -14796,8 +14792,6 @@ class RevoGridComponent {
14796
14792
  this.selectionStoreConnector = new SelectionStoreConnector();
14797
14793
  this.dataProvider = new DataProvider(this.dimensionProvider);
14798
14794
  // #endregion
14799
- // generate uuid for this grid
14800
- this.uuid = `rv--${Math.random().toString(36).slice(2, 6)}-${Date.now()}`;
14801
14795
  this.registerOutsideVNodes(this.registerVNode);
14802
14796
  // init plugins
14803
14797
  this.setPlugins();
@@ -14868,7 +14862,7 @@ class RevoGridComponent {
14868
14862
  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 });
14869
14863
  // Column headers
14870
14864
  const dataViews = [
14871
- hAsync("revogr-header", Object.assign({ key: '83382de99ec784ec1b049ccd6fe4bdcc332cabed' }, headerProperties, { slot: HEADER_SLOT })),
14865
+ hAsync("revogr-header", Object.assign({ key: 'ff8eefd6db3baf494c015a2ea573160d27739aa9' }, headerProperties, { slot: HEADER_SLOT })),
14872
14866
  ];
14873
14867
  // Render viewport data (vertical sections)
14874
14868
  view.dataPorts.forEach(data => {
@@ -14890,11 +14884,11 @@ class RevoGridComponent {
14890
14884
  const typeCol = 'rgCol';
14891
14885
  const viewports = this.viewportProvider.stores;
14892
14886
  const dimensions = this.dimensionProvider.stores;
14893
- 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) => {
14887
+ return (hAsync(Host, { key: '21bbe81595f20f7bcb271f28c9c86feef472efec' }, this.hideAttribution ? null : (hAsync("revogr-attribution", { class: "attribution" })), hAsync("div", { key: '7a3092cd02305a0dfaa3b3d3160164001f0ed08b', class: "main-viewport", onClick: (e) => {
14894
14888
  if (e.currentTarget === e.target) {
14895
14889
  this.viewport.clearEdit();
14896
14890
  }
14897
- } }, 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));
14891
+ } }, 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));
14898
14892
  }
14899
14893
  disconnectedCallback() {
14900
14894
  // Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
@@ -16452,7 +16446,7 @@ class RevogrViewportScroll {
16452
16446
  // track horizontal viewport resize
16453
16447
  this.resizeService = new GridResizeService(this.horizontalScroll, {
16454
16448
  resize: entries => {
16455
- var _a, _b;
16449
+ var _a, _b, _c;
16456
16450
  let height = ((_a = entries[0]) === null || _a === void 0 ? void 0 : _a.contentRect.height) || 0;
16457
16451
  if (height) {
16458
16452
  height -= this.header.clientHeight + this.footer.clientHeight;
@@ -16471,16 +16465,16 @@ class RevogrViewportScroll {
16471
16465
  noScroll: this.colType !== 'rgCol' ? true : false,
16472
16466
  },
16473
16467
  };
16474
- each(els, (item, dimension) => {
16475
- var _a;
16468
+ for (const [dim, item] of Object.entries(els)) {
16469
+ const dimension = dim;
16476
16470
  this.resizeViewport.emit({ dimension, size: item.size, rowHeader: this.rowHeader });
16477
16471
  if (item.noScroll) {
16478
- return;
16472
+ continue;
16479
16473
  }
16480
- (_a = this.localScrollService) === null || _a === void 0 ? void 0 : _a.scroll(item.scroll, dimension, true);
16474
+ (_c = this.localScrollService) === null || _c === void 0 ? void 0 : _c.scroll(item.scroll, dimension, true);
16481
16475
  // track scroll visibility on outer element change
16482
16476
  this.setScrollVisibility(dimension, item.size, item.contentSize);
16483
- });
16477
+ }
16484
16478
  },
16485
16479
  });
16486
16480
  }
@@ -16542,7 +16536,7 @@ class RevogrViewportScroll {
16542
16536
  this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
16543
16537
  }
16544
16538
  render() {
16545
- 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 })))));
16539
+ 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 })))));
16546
16540
  }
16547
16541
  /**
16548
16542
  * Extra layer for scroll event monitoring, where MouseWheel event is not passing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.8.18",
3
+ "version": "4.9.0",
4
4
  "type": "module",
5
5
  "description": "Virtual reactive data grid spreadsheet component - RevoGrid.",
6
6
  "license": "MIT",
@@ -125,7 +125,7 @@
125
125
  "fs": "^0.0.1-security",
126
126
  "jest": "26.0.1",
127
127
  "jest-cli": "26.0.1",
128
- "lodash": "^4.17.21",
128
+ "lodash": "npm:lodash-es@4.17.21",
129
129
  "path": "^0.12.7",
130
130
  "prettier": "3.3.2",
131
131
  "react": "^18.3.1",