handsontable 0.0.0-next-442dd51-20240422 → 0.0.0-next-499b821-20240423

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (123) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +2 -2
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +2 -2
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/overlay/_base.js +24 -20
  6. package/3rdparty/walkontable/src/overlay/_base.mjs +24 -20
  7. package/3rdparty/walkontable/src/overlay/bottom.js +3 -6
  8. package/3rdparty/walkontable/src/overlay/bottom.mjs +3 -6
  9. package/3rdparty/walkontable/src/overlay/inlineStart.js +3 -6
  10. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +3 -6
  11. package/3rdparty/walkontable/src/overlay/top.js +3 -6
  12. package/3rdparty/walkontable/src/overlay/top.mjs +3 -6
  13. package/3rdparty/walkontable/src/overlays.js +46 -24
  14. package/3rdparty/walkontable/src/overlays.mjs +46 -24
  15. package/3rdparty/walkontable/src/selection/manager.js +7 -0
  16. package/3rdparty/walkontable/src/selection/manager.mjs +7 -0
  17. package/3rdparty/walkontable/src/selection/scanner.js +7 -0
  18. package/3rdparty/walkontable/src/selection/scanner.mjs +7 -0
  19. package/3rdparty/walkontable/src/table.js +10 -11
  20. package/3rdparty/walkontable/src/table.mjs +10 -11
  21. package/base.js +2 -2
  22. package/base.mjs +2 -2
  23. package/core.js +7 -2
  24. package/core.mjs +7 -2
  25. package/dataMap/metaManager/lazyFactoryMap.js +7 -0
  26. package/dataMap/metaManager/lazyFactoryMap.mjs +7 -0
  27. package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -0
  28. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -0
  29. package/dataMap/metaManager/mods/extendMetaProperties.js +44 -31
  30. package/dataMap/metaManager/mods/extendMetaProperties.mjs +44 -31
  31. package/dataMap/metaManager/utils.js +7 -0
  32. package/dataMap/metaManager/utils.mjs +7 -0
  33. package/dist/handsontable.css +3 -3
  34. package/dist/handsontable.full.css +3 -3
  35. package/dist/handsontable.full.js +10147 -3789
  36. package/dist/handsontable.full.min.css +3 -3
  37. package/dist/handsontable.full.min.js +276 -84
  38. package/dist/handsontable.js +3370 -2531
  39. package/dist/handsontable.min.css +3 -3
  40. package/dist/handsontable.min.js +18 -18
  41. package/focusManager.js +2 -4
  42. package/focusManager.mjs +2 -4
  43. package/helpers/array.js +7 -0
  44. package/helpers/array.mjs +7 -0
  45. package/helpers/mixed.js +1 -1
  46. package/helpers/mixed.mjs +1 -1
  47. package/helpers/number.js +12 -2
  48. package/helpers/number.mjs +12 -2
  49. package/package.json +5 -7
  50. package/plugins/autoColumnSize/autoColumnSize.js +7 -0
  51. package/plugins/autoColumnSize/autoColumnSize.mjs +7 -0
  52. package/plugins/autoRowSize/autoRowSize.js +2 -2
  53. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  54. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -1
  55. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -1
  56. package/plugins/columnSorting/utils.js +7 -0
  57. package/plugins/columnSorting/utils.mjs +7 -0
  58. package/plugins/comments/comments.js +2 -8
  59. package/plugins/comments/comments.mjs +2 -8
  60. package/plugins/comments/contextMenuItem/addEditComment.js +0 -1
  61. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -1
  62. package/plugins/filters/filters.js +1 -1
  63. package/plugins/filters/filters.mjs +1 -1
  64. package/plugins/filters/ui/multipleSelect.js +22 -14
  65. package/plugins/filters/ui/multipleSelect.mjs +22 -14
  66. package/plugins/filters/utils.js +7 -0
  67. package/plugins/filters/utils.mjs +7 -0
  68. package/plugins/formulas/formulas.js +7 -0
  69. package/plugins/formulas/formulas.mjs +7 -0
  70. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  71. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -1
  72. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  73. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -1
  74. package/plugins/hiddenColumns/hiddenColumns.js +7 -0
  75. package/plugins/hiddenColumns/hiddenColumns.mjs +7 -0
  76. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  77. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -1
  78. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  79. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -1
  80. package/plugins/hiddenRows/hiddenRows.js +7 -0
  81. package/plugins/hiddenRows/hiddenRows.mjs +7 -0
  82. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  83. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  84. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  85. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  86. package/plugins/manualColumnMove/manualColumnMove.js +1 -1
  87. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -1
  88. package/plugins/manualColumnResize/manualColumnResize.js +2 -2
  89. package/plugins/manualColumnResize/manualColumnResize.mjs +2 -2
  90. package/plugins/manualRowMove/manualRowMove.js +1 -1
  91. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  92. package/plugins/manualRowResize/manualRowResize.js +2 -2
  93. package/plugins/manualRowResize/manualRowResize.mjs +2 -2
  94. package/plugins/mergeCells/cellsCollection.js +7 -0
  95. package/plugins/mergeCells/cellsCollection.mjs +7 -0
  96. package/plugins/mergeCells/mergeCells.js +7 -0
  97. package/plugins/mergeCells/mergeCells.mjs +7 -0
  98. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +7 -0
  99. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +7 -0
  100. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +7 -0
  101. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +7 -0
  102. package/plugins/nestedRows/nestedRows.js +7 -0
  103. package/plugins/nestedRows/nestedRows.mjs +7 -0
  104. package/plugins/trimRows/trimRows.js +7 -0
  105. package/plugins/trimRows/trimRows.mjs +7 -0
  106. package/selection/selection.js +7 -0
  107. package/selection/selection.mjs +7 -0
  108. package/selection/utils.js +7 -0
  109. package/selection/utils.mjs +7 -0
  110. package/shortcuts/keyObserver.js +7 -0
  111. package/shortcuts/keyObserver.mjs +7 -0
  112. package/shortcuts/utils.js +7 -0
  113. package/shortcuts/utils.mjs +7 -0
  114. package/tableView.js +1 -4
  115. package/tableView.mjs +1 -4
  116. package/translations/changesObservable/observable.js +7 -0
  117. package/translations/changesObservable/observable.mjs +7 -0
  118. package/translations/indexMapper.js +7 -0
  119. package/translations/indexMapper.mjs +8 -1
  120. package/utils/dataStructures/uniqueSet.js +7 -0
  121. package/utils/dataStructures/uniqueSet.mjs +7 -0
  122. package/utils/paginator.js +7 -0
  123. package/utils/paginator.mjs +7 -0
package/focusManager.js CHANGED
@@ -274,9 +274,7 @@ function _focusEditorElement() {
274
274
  * @param {object} newSettings The new settings passed to the `updateSettings` method.
275
275
  */
276
276
  function _onUpdateSettings(newSettings) {
277
- if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
278
- this.setFocusMode(FOCUS_MODES.MIXED);
279
- } else if (!newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.CELL) {
280
- this.setFocusMode(FOCUS_MODES.CELL);
277
+ if (typeof newSettings.imeFastEdit === 'boolean') {
278
+ this.setFocusMode(newSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
281
279
  }
282
280
  }
package/focusManager.mjs CHANGED
@@ -270,9 +270,7 @@ function _focusEditorElement() {
270
270
  * @param {object} newSettings The new settings passed to the `updateSettings` method.
271
271
  */
272
272
  function _onUpdateSettings(newSettings) {
273
- if (newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.MIXED) {
274
- this.setFocusMode(FOCUS_MODES.MIXED);
275
- } else if (!newSettings.imeFastEdit && this.getFocusMode() !== FOCUS_MODES.CELL) {
276
- this.setFocusMode(FOCUS_MODES.CELL);
273
+ if (typeof newSettings.imeFastEdit === 'boolean') {
274
+ this.setFocusMode(newSettings.imeFastEdit ? FOCUS_MODES.MIXED : FOCUS_MODES.CELL);
277
275
  }
278
276
  }
package/helpers/array.js CHANGED
@@ -19,6 +19,13 @@ exports.pivot = pivot;
19
19
  exports.stringToArray = stringToArray;
20
20
  exports.to2dArray = to2dArray;
21
21
  require("core-js/modules/es.array.push.js");
22
+ require("core-js/modules/esnext.set.difference.v2.js");
23
+ require("core-js/modules/esnext.set.intersection.v2.js");
24
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
25
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
26
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
27
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
28
+ require("core-js/modules/esnext.set.union.v2.js");
22
29
  /**
23
30
  * @param {Array} arr An array to process.
24
31
  */
package/helpers/array.mjs CHANGED
@@ -1,4 +1,11 @@
1
1
  import "core-js/modules/es.array.push.js";
2
+ import "core-js/modules/esnext.set.difference.v2.js";
3
+ import "core-js/modules/esnext.set.intersection.v2.js";
4
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
5
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
6
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
7
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
8
+ import "core-js/modules/esnext.set.union.v2.js";
2
9
  /**
3
10
  * @param {Array} arr An array to process.
4
11
  */
package/helpers/mixed.js CHANGED
@@ -134,7 +134,7 @@ const domMessages = {
134
134
  function _injectProductInfo(key, element) {
135
135
  const hasValidType = !isEmpty(key);
136
136
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
137
- const hotVersion = "0.0.0-next-442dd51-20240422";
137
+ const hotVersion = "0.0.0-next-499b821-20240423";
138
138
  let keyValidityDate;
139
139
  let consoleMessageState = 'invalid';
140
140
  let domMessageState = 'invalid';
package/helpers/mixed.mjs CHANGED
@@ -124,7 +124,7 @@ const domMessages = {
124
124
  export function _injectProductInfo(key, element) {
125
125
  const hasValidType = !isEmpty(key);
126
126
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
127
- const hotVersion = "0.0.0-next-442dd51-20240422";
127
+ const hotVersion = "0.0.0-next-499b821-20240423";
128
128
  let keyValidityDate;
129
129
  let consoleMessageState = 'invalid';
130
130
  let domMessageState = 'invalid';
package/helpers/number.js CHANGED
@@ -7,13 +7,19 @@ exports.isNumericLike = isNumericLike;
7
7
  exports.rangeEach = rangeEach;
8
8
  exports.rangeEachReverse = rangeEachReverse;
9
9
  exports.valueAccordingPercent = valueAccordingPercent;
10
+ require("core-js/modules/esnext.set.difference.v2.js");
11
+ require("core-js/modules/esnext.set.intersection.v2.js");
12
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
13
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
14
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
15
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
16
+ require("core-js/modules/esnext.set.union.v2.js");
10
17
  /* eslint-disable jsdoc/require-description-complete-sentence */
11
18
  /**
12
19
  * Checks if the passed value is numeric one. For example these values (passed as string or number)
13
20
  * are considered as numeric values:
14
21
  * - 0.001
15
22
  * - .001
16
- * - - 10000
17
23
  * - 10000
18
24
  * - 1e+26
19
25
  * - 22e-26
@@ -21,6 +27,10 @@ exports.valueAccordingPercent = valueAccordingPercent;
21
27
  * - 0xabcdef (hex)
22
28
  * - 0x1 (hex)
23
29
  *
30
+ * these values are not considered as numeric:
31
+ * - - 1000
32
+ * - 100 000
33
+ *
24
34
  * @param {*} value The value to check.
25
35
  * @param {string[]} additionalDelimiters An additional delimiters to be used while checking the numeric value.
26
36
  * @returns {boolean}
@@ -37,7 +47,7 @@ function isNumeric(value) {
37
47
  return /\d/.test(value);
38
48
  }
39
49
  const delimiter = Array.from(new Set(['.', ...additionalDelimiters])).map(d => `\\${d}`).join('|');
40
- return new RegExp(`^[+-]?\\s*(((${delimiter})?\\d+((${delimiter})\\d+)?(e[+-]?\\d+)?)|(0x[a-f\\d]+))$`, 'i').test(value.trim());
50
+ return new RegExp(`^[+-]?(((${delimiter})?\\d+((${delimiter})\\d+)?(e[+-]?\\d+)?)|(0x[a-f\\d]+))$`, 'i').test(value.trim());
41
51
  } else if (type === 'object') {
42
52
  return !!value && typeof value.valueOf() === 'number' && !(value instanceof Date);
43
53
  }
@@ -1,10 +1,16 @@
1
+ import "core-js/modules/esnext.set.difference.v2.js";
2
+ import "core-js/modules/esnext.set.intersection.v2.js";
3
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
4
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
5
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
6
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
7
+ import "core-js/modules/esnext.set.union.v2.js";
1
8
  /* eslint-disable jsdoc/require-description-complete-sentence */
2
9
  /**
3
10
  * Checks if the passed value is numeric one. For example these values (passed as string or number)
4
11
  * are considered as numeric values:
5
12
  * - 0.001
6
13
  * - .001
7
- * - - 10000
8
14
  * - 10000
9
15
  * - 1e+26
10
16
  * - 22e-26
@@ -12,6 +18,10 @@
12
18
  * - 0xabcdef (hex)
13
19
  * - 0x1 (hex)
14
20
  *
21
+ * these values are not considered as numeric:
22
+ * - - 1000
23
+ * - 100 000
24
+ *
15
25
  * @param {*} value The value to check.
16
26
  * @param {string[]} additionalDelimiters An additional delimiters to be used while checking the numeric value.
17
27
  * @returns {boolean}
@@ -28,7 +38,7 @@ export function isNumeric(value) {
28
38
  return /\d/.test(value);
29
39
  }
30
40
  const delimiter = Array.from(new Set(['.', ...additionalDelimiters])).map(d => `\\${d}`).join('|');
31
- return new RegExp(`^[+-]?\\s*(((${delimiter})?\\d+((${delimiter})\\d+)?(e[+-]?\\d+)?)|(0x[a-f\\d]+))$`, 'i').test(value.trim());
41
+ return new RegExp(`^[+-]?(((${delimiter})?\\d+((${delimiter})\\d+)?(e[+-]?\\d+)?)|(0x[a-f\\d]+))$`, 'i').test(value.trim());
32
42
  } else if (type === 'object') {
33
43
  return !!value && typeof value.valueOf() === 'number' && !(value instanceof Date);
34
44
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "0.0.0-next-442dd51-20240422",
13
+ "version": "0.0.0-next-499b821-20240423",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -33,12 +33,10 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "@handsontable/pikaday": "^1.0.0",
36
- "@types/pikaday": "1.7.4",
37
- "core-js": "^3.31.1",
38
- "dompurify": "^2.1.1",
39
- "moment": "2.29.4",
40
- "numbro": "2.1.2",
41
- "pikaday": "1.8.2"
36
+ "core-js": "^3.37.0",
37
+ "dompurify": "^3.1.0",
38
+ "moment": "2.30.1",
39
+ "numbro": "2.5.0"
42
40
  },
43
41
  "devDependencies": {
44
42
  "@babel/cli": "^7.8.3",
@@ -3,6 +3,13 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/esnext.set.difference.v2.js");
7
+ require("core-js/modules/esnext.set.intersection.v2.js");
8
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
9
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
10
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
11
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
12
+ require("core-js/modules/esnext.set.union.v2.js");
6
13
  var _base = require("../base");
7
14
  var _array = require("../../helpers/array");
8
15
  var _feature = require("../../helpers/feature");
@@ -1,5 +1,12 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
+ import "core-js/modules/esnext.set.difference.v2.js";
4
+ import "core-js/modules/esnext.set.intersection.v2.js";
5
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
6
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
7
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
8
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
9
+ import "core-js/modules/esnext.set.union.v2.js";
3
10
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
4
11
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
12
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
@@ -344,7 +344,7 @@ class AutoRowSize extends _base.BasePlugin {
344
344
  this.inProgress = false;
345
345
 
346
346
  // @TODO Should call once per render cycle, currently fired separately in different plugins
347
- this.hot.view.adjustElementsSize(true);
347
+ this.hot.view.adjustElementsSize();
348
348
 
349
349
  // tmp
350
350
  if (this.hot.view._wt.wtOverlays.inlineStartOverlay.needFullRender) {
@@ -368,7 +368,7 @@ class AutoRowSize extends _base.BasePlugin {
368
368
  loop();
369
369
  } else {
370
370
  this.inProgress = false;
371
- this.hot.view.adjustElementsSize(false);
371
+ this.hot.view.adjustElementsSize();
372
372
  }
373
373
  }
374
374
 
@@ -340,7 +340,7 @@ export class AutoRowSize extends BasePlugin {
340
340
  this.inProgress = false;
341
341
 
342
342
  // @TODO Should call once per render cycle, currently fired separately in different plugins
343
- this.hot.view.adjustElementsSize(true);
343
+ this.hot.view.adjustElementsSize();
344
344
 
345
345
  // tmp
346
346
  if (this.hot.view._wt.wtOverlays.inlineStartOverlay.needFullRender) {
@@ -364,7 +364,7 @@ export class AutoRowSize extends BasePlugin {
364
364
  loop();
365
365
  } else {
366
366
  this.inProgress = false;
367
- this.hot.view.adjustElementsSize(false);
367
+ this.hot.view.adjustElementsSize();
368
368
  }
369
369
  }
370
370
 
@@ -496,7 +496,7 @@ class CollapsibleColumns extends _base.BasePlugin {
496
496
  }
497
497
  this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);
498
498
  this.hot.render();
499
- this.hot.view.adjustElementsSize(true);
499
+ this.hot.view.adjustElementsSize();
500
500
  }
501
501
 
502
502
  /**
@@ -493,7 +493,7 @@ export class CollapsibleColumns extends BasePlugin {
493
493
  }
494
494
  this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);
495
495
  this.hot.render();
496
- this.hot.view.adjustElementsSize(true);
496
+ this.hot.view.adjustElementsSize();
497
497
  }
498
498
 
499
499
  /**
@@ -6,6 +6,13 @@ exports.getHeaderSpanElement = getHeaderSpanElement;
6
6
  exports.getNextSortOrder = getNextSortOrder;
7
7
  exports.isFirstLevelColumnHeader = isFirstLevelColumnHeader;
8
8
  exports.wasHeaderClickedProperly = wasHeaderClickedProperly;
9
+ require("core-js/modules/esnext.set.difference.v2.js");
10
+ require("core-js/modules/esnext.set.intersection.v2.js");
11
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
12
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
13
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
14
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
15
+ require("core-js/modules/esnext.set.union.v2.js");
9
16
  var _object = require("../../helpers/object");
10
17
  var _event = require("../../helpers/dom/event");
11
18
  const ASC_SORT_STATE = exports.ASC_SORT_STATE = 'asc';
@@ -1,3 +1,10 @@
1
+ import "core-js/modules/esnext.set.difference.v2.js";
2
+ import "core-js/modules/esnext.set.intersection.v2.js";
3
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
4
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
5
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
6
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
7
+ import "core-js/modules/esnext.set.union.v2.js";
1
8
  import { isObject } from "../../helpers/object.mjs";
2
9
  import { isRightClick } from "../../helpers/dom/event.mjs";
3
10
  export const ASC_SORT_STATE = 'asc';
@@ -294,10 +294,7 @@ class Comments extends _base.BasePlugin {
294
294
  this.hide();
295
295
  manager.setActiveContextName('grid');
296
296
  },
297
- runOnlyIf: () => {
298
- var _this$hot$getSelected2;
299
- return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
300
- },
297
+ runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),
301
298
  group: SHORTCUTS_GROUP
302
299
  });
303
300
  pluginContext.addShortcut({
@@ -306,10 +303,7 @@ class Comments extends _base.BasePlugin {
306
303
  this.hide();
307
304
  manager.setActiveContextName('grid');
308
305
  },
309
- runOnlyIf: () => {
310
- var _this$hot$getSelected3;
311
- return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
312
- },
306
+ runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),
313
307
  group: SHORTCUTS_GROUP
314
308
  });
315
309
  }
@@ -290,10 +290,7 @@ export class Comments extends BasePlugin {
290
290
  this.hide();
291
291
  manager.setActiveContextName('grid');
292
292
  },
293
- runOnlyIf: () => {
294
- var _this$hot$getSelected2;
295
- return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
296
- },
293
+ runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),
297
294
  group: SHORTCUTS_GROUP
298
295
  });
299
296
  pluginContext.addShortcut({
@@ -302,10 +299,7 @@ export class Comments extends BasePlugin {
302
299
  this.hide();
303
300
  manager.setActiveContextName('grid');
304
301
  },
305
- runOnlyIf: () => {
306
- var _this$hot$getSelected3;
307
- return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
308
- },
302
+ runOnlyIf: () => _classPrivateFieldGet(_editor, this).isVisible() && _classPrivateFieldGet(_editor, this).isFocused(),
309
303
  group: SHORTCUTS_GROUP
310
304
  });
311
305
  }
@@ -22,7 +22,6 @@ function addEditCommentItem(plugin) {
22
22
  },
23
23
  callback() {
24
24
  const range = this.getSelectedRangeLast();
25
- this.deselectCell();
26
25
  plugin.setRange(range);
27
26
  plugin.show();
28
27
  plugin.focusEditor();
@@ -16,7 +16,6 @@ export default function addEditCommentItem(plugin) {
16
16
  },
17
17
  callback() {
18
18
  const range = this.getSelectedRangeLast();
19
- this.deselectCell();
20
19
  plugin.setRange(range);
21
20
  plugin.show();
22
21
  plugin.focusEditor();
@@ -508,7 +508,7 @@ class Filters extends _base.BasePlugin {
508
508
  }
509
509
  }
510
510
  this.hot.runHooks('afterFilter', conditions);
511
- this.hot.view.adjustElementsSize(true);
511
+ this.hot.view.adjustElementsSize();
512
512
  this.hot.render();
513
513
  if (this.hot.selection.isSelected()) {
514
514
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
@@ -502,7 +502,7 @@ export class Filters extends BasePlugin {
502
502
  }
503
503
  }
504
504
  this.hot.runHooks('afterFilter', conditions);
505
- this.hot.view.adjustElementsSize(true);
505
+ this.hot.view.adjustElementsSize();
506
506
  this.hot.render();
507
507
  if (this.hot.selection.isSelected()) {
508
508
  this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
@@ -5,7 +5,6 @@ require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  var _element = require("../../../helpers/dom/element");
7
7
  var _object = require("../../../helpers/object");
8
- var _array = require("../../../helpers/array");
9
8
  var _unicode = require("../../../helpers/unicode");
10
9
  var _function = require("../../../helpers/function");
11
10
  var _data = require("../../../helpers/data");
@@ -251,11 +250,17 @@ class MultipleSelectUI extends _base.BaseUI {
251
250
  beforeOnCellMouseUp: () => {
252
251
  _classPrivateFieldGet(_itemsBox, this).listen();
253
252
  },
253
+ modifyColWidth: width => {
254
+ const minWidth = _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - (0, _element.getScrollbarWidth)(rootDocument);
255
+ if (width !== undefined && width < minWidth) {
256
+ return minWidth;
257
+ }
258
+ return width;
259
+ },
260
+ hiddenRows: true,
254
261
  maxCols: 1,
255
262
  autoWrapCol: true,
256
263
  height: 110,
257
- // Workaround for #151.
258
- colWidths: () => _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - (0, _element.getScrollbarWidth)(rootDocument),
259
264
  copyPaste: false,
260
265
  disableVisualSelection: 'area',
261
266
  fillHandle: false,
@@ -342,13 +347,16 @@ class MultipleSelectUI extends _base.BaseUI {
342
347
  exports.MultipleSelectUI = MultipleSelectUI;
343
348
  function _onInput(event) {
344
349
  const value = event.target.value.toLocaleLowerCase(this.getLocale());
345
- let filteredItems;
346
- if (value === '') {
347
- filteredItems = [..._classPrivateFieldGet(_items, this)];
348
- } else {
349
- filteredItems = (0, _array.arrayFilter)(_classPrivateFieldGet(_items, this), item => `${item.value}`.toLocaleLowerCase(this.getLocale()).indexOf(value) >= 0);
350
- }
351
- _classPrivateFieldGet(_itemsBox, this).loadData(filteredItems);
350
+ const hiddenRows = _classPrivateFieldGet(_itemsBox, this).getPlugin('hiddenRows');
351
+ hiddenRows.showRows(hiddenRows.getHiddenRows());
352
+ _classPrivateFieldGet(_items, this).forEach((item, index) => {
353
+ item.checked = `${item.value}`.toLocaleLowerCase(this.getLocale()).indexOf(value) >= 0;
354
+ if (!item.checked) {
355
+ hiddenRows.hideRow(index);
356
+ }
357
+ });
358
+ _classPrivateFieldGet(_itemsBox, this).view.adjustElementsSize();
359
+ _classPrivateFieldGet(_itemsBox, this).render();
352
360
  }
353
361
  /**
354
362
  * 'keydown' event listener for input element.
@@ -373,7 +381,7 @@ function _onInputKeyDown(event) {
373
381
  function _onSelectAllClick(event) {
374
382
  const changes = [];
375
383
  event.preventDefault();
376
- (0, _array.arrayEach)(_classPrivateFieldGet(_itemsBox, this).getSourceData(), (row, rowIndex) => {
384
+ _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {
377
385
  row.checked = true;
378
386
  changes.push((0, _data.dataRowToChangesArray)(row, rowIndex)[0]);
379
387
  });
@@ -387,7 +395,7 @@ function _onSelectAllClick(event) {
387
395
  function _onClearAllClick(event) {
388
396
  const changes = [];
389
397
  event.preventDefault();
390
- (0, _array.arrayEach)(_classPrivateFieldGet(_itemsBox, this).getSourceData(), (row, rowIndex) => {
398
+ _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {
391
399
  row.checked = false;
392
400
  changes.push((0, _data.dataRowToChangesArray)(row, rowIndex)[0]);
393
401
  });
@@ -403,7 +411,7 @@ var _default = exports.default = MultipleSelectUI;
403
411
  */
404
412
  function valueToItems(availableItems, selectedValue) {
405
413
  const arrayAssertion = (0, _utils.createArrayAssertion)(selectedValue);
406
- return (0, _array.arrayMap)(availableItems, item => {
414
+ return availableItems.map(item => {
407
415
  item.checked = arrayAssertion(item.value);
408
416
  return item;
409
417
  });
@@ -417,7 +425,7 @@ function valueToItems(availableItems, selectedValue) {
417
425
  */
418
426
  function itemsToValue(availableItems) {
419
427
  const items = [];
420
- (0, _array.arrayEach)(availableItems, item => {
428
+ availableItems.forEach(item => {
421
429
  if (item.checked) {
422
430
  items.push(item.value);
423
431
  }
@@ -8,7 +8,6 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
8
8
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
9
9
  import { addClass, getScrollbarWidth } from "../../../helpers/dom/element.mjs";
10
10
  import { clone, extend } from "../../../helpers/object.mjs";
11
- import { arrayFilter, arrayMap, arrayEach } from "../../../helpers/array.mjs";
12
11
  import { isKey } from "../../../helpers/unicode.mjs";
13
12
  import { partial } from "../../../helpers/function.mjs";
14
13
  import { dataRowToChangesArray } from "../../../helpers/data.mjs";
@@ -246,11 +245,17 @@ export class MultipleSelectUI extends BaseUI {
246
245
  beforeOnCellMouseUp: () => {
247
246
  _classPrivateFieldGet(_itemsBox, this).listen();
248
247
  },
248
+ modifyColWidth: width => {
249
+ const minWidth = _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - getScrollbarWidth(rootDocument);
250
+ if (width !== undefined && width < minWidth) {
251
+ return minWidth;
252
+ }
253
+ return width;
254
+ },
255
+ hiddenRows: true,
249
256
  maxCols: 1,
250
257
  autoWrapCol: true,
251
258
  height: 110,
252
- // Workaround for #151.
253
- colWidths: () => _classPrivateFieldGet(_itemsBox, this).container.scrollWidth - getScrollbarWidth(rootDocument),
254
259
  copyPaste: false,
255
260
  disableVisualSelection: 'area',
256
261
  fillHandle: false,
@@ -336,13 +341,16 @@ export class MultipleSelectUI extends BaseUI {
336
341
  }
337
342
  function _onInput(event) {
338
343
  const value = event.target.value.toLocaleLowerCase(this.getLocale());
339
- let filteredItems;
340
- if (value === '') {
341
- filteredItems = [..._classPrivateFieldGet(_items, this)];
342
- } else {
343
- filteredItems = arrayFilter(_classPrivateFieldGet(_items, this), item => `${item.value}`.toLocaleLowerCase(this.getLocale()).indexOf(value) >= 0);
344
- }
345
- _classPrivateFieldGet(_itemsBox, this).loadData(filteredItems);
344
+ const hiddenRows = _classPrivateFieldGet(_itemsBox, this).getPlugin('hiddenRows');
345
+ hiddenRows.showRows(hiddenRows.getHiddenRows());
346
+ _classPrivateFieldGet(_items, this).forEach((item, index) => {
347
+ item.checked = `${item.value}`.toLocaleLowerCase(this.getLocale()).indexOf(value) >= 0;
348
+ if (!item.checked) {
349
+ hiddenRows.hideRow(index);
350
+ }
351
+ });
352
+ _classPrivateFieldGet(_itemsBox, this).view.adjustElementsSize();
353
+ _classPrivateFieldGet(_itemsBox, this).render();
346
354
  }
347
355
  /**
348
356
  * 'keydown' event listener for input element.
@@ -367,7 +375,7 @@ function _onInputKeyDown(event) {
367
375
  function _onSelectAllClick(event) {
368
376
  const changes = [];
369
377
  event.preventDefault();
370
- arrayEach(_classPrivateFieldGet(_itemsBox, this).getSourceData(), (row, rowIndex) => {
378
+ _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {
371
379
  row.checked = true;
372
380
  changes.push(dataRowToChangesArray(row, rowIndex)[0]);
373
381
  });
@@ -381,7 +389,7 @@ function _onSelectAllClick(event) {
381
389
  function _onClearAllClick(event) {
382
390
  const changes = [];
383
391
  event.preventDefault();
384
- arrayEach(_classPrivateFieldGet(_itemsBox, this).getSourceData(), (row, rowIndex) => {
392
+ _classPrivateFieldGet(_itemsBox, this).getSourceData().forEach((row, rowIndex) => {
385
393
  row.checked = false;
386
394
  changes.push(dataRowToChangesArray(row, rowIndex)[0]);
387
395
  });
@@ -398,7 +406,7 @@ export default MultipleSelectUI;
398
406
  */
399
407
  function valueToItems(availableItems, selectedValue) {
400
408
  const arrayAssertion = createArrayAssertion(selectedValue);
401
- return arrayMap(availableItems, item => {
409
+ return availableItems.map(item => {
402
410
  item.checked = arrayAssertion(item.value);
403
411
  return item;
404
412
  });
@@ -412,7 +420,7 @@ function valueToItems(availableItems, selectedValue) {
412
420
  */
413
421
  function itemsToValue(availableItems) {
414
422
  const items = [];
415
- arrayEach(availableItems, item => {
423
+ availableItems.forEach(item => {
416
424
  if (item.checked) {
417
425
  items.push(item.value);
418
426
  }
@@ -8,6 +8,13 @@ exports.toEmptyString = toEmptyString;
8
8
  exports.toVisualValue = toVisualValue;
9
9
  exports.unifyColumnValues = unifyColumnValues;
10
10
  require("core-js/modules/es.array.push.js");
11
+ require("core-js/modules/esnext.set.difference.v2.js");
12
+ require("core-js/modules/esnext.set.intersection.v2.js");
13
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
14
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
15
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
16
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
17
+ require("core-js/modules/esnext.set.union.v2.js");
11
18
  var _feature = require("../../helpers/feature");
12
19
  var _array = require("../../helpers/array");
13
20
  const sortCompare = (0, _feature.getComparisonFunction)();
@@ -1,4 +1,11 @@
1
1
  import "core-js/modules/es.array.push.js";
2
+ import "core-js/modules/esnext.set.difference.v2.js";
3
+ import "core-js/modules/esnext.set.intersection.v2.js";
4
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
5
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
6
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
7
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
8
+ import "core-js/modules/esnext.set.union.v2.js";
2
9
  import { getComparisonFunction } from "../../helpers/feature.mjs";
3
10
  import { arrayUnique, arrayEach } from "../../helpers/array.mjs";
4
11
  const sortCompare = getComparisonFunction();
@@ -4,6 +4,13 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  require("core-js/modules/es.json.stringify.js");
7
+ require("core-js/modules/esnext.set.difference.v2.js");
8
+ require("core-js/modules/esnext.set.intersection.v2.js");
9
+ require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
10
+ require("core-js/modules/esnext.set.is-subset-of.v2.js");
11
+ require("core-js/modules/esnext.set.is-superset-of.v2.js");
12
+ require("core-js/modules/esnext.set.symmetric-difference.v2.js");
13
+ require("core-js/modules/esnext.set.union.v2.js");
7
14
  var _base = require("../base");
8
15
  var _staticRegister = _interopRequireDefault(require("../../utils/staticRegister"));
9
16
  var _console = require("../../helpers/console");
@@ -1,6 +1,13 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
3
  import "core-js/modules/es.json.stringify.js";
4
+ import "core-js/modules/esnext.set.difference.v2.js";
5
+ import "core-js/modules/esnext.set.intersection.v2.js";
6
+ import "core-js/modules/esnext.set.is-disjoint-from.v2.js";
7
+ import "core-js/modules/esnext.set.is-subset-of.v2.js";
8
+ import "core-js/modules/esnext.set.is-superset-of.v2.js";
9
+ import "core-js/modules/esnext.set.symmetric-difference.v2.js";
10
+ import "core-js/modules/esnext.set.union.v2.js";
4
11
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
5
12
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -44,7 +44,7 @@ function hideColumnItem(hiddenColumnsPlugin) {
44
44
  this.deselectCell();
45
45
  }
46
46
  this.render();
47
- this.view.adjustElementsSize(true);
47
+ this.view.adjustElementsSize();
48
48
  },
49
49
  disabled: false,
50
50
  hidden() {
@@ -38,7 +38,7 @@ export default function hideColumnItem(hiddenColumnsPlugin) {
38
38
  this.deselectCell();
39
39
  }
40
40
  this.render();
41
- this.view.adjustElementsSize(true);
41
+ this.view.adjustElementsSize();
42
42
  },
43
43
  disabled: false,
44
44
  hidden() {