handsontable 12.4.0 → 13.0.0-next-900887e-20230613

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 (177) hide show
  1. package/3rdparty/walkontable/src/border.js +1 -0
  2. package/3rdparty/walkontable/src/border.mjs +1 -0
  3. package/3rdparty/walkontable/src/selection.js +1 -0
  4. package/3rdparty/walkontable/src/selection.mjs +1 -0
  5. package/3rdparty/walkontable/src/table.js +1 -0
  6. package/3rdparty/walkontable/src/table.mjs +1 -0
  7. package/CHANGELOG.md +15 -1
  8. package/base.js +2 -2
  9. package/base.mjs +2 -2
  10. package/core.d.ts +3 -4
  11. package/core.js +90 -107
  12. package/core.mjs +94 -111
  13. package/dataMap/dataMap.js +1 -0
  14. package/dataMap/dataMap.mjs +1 -0
  15. package/dataMap/metaManager/lazyFactoryMap.js +1 -0
  16. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
  17. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
  18. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  19. package/dataMap/metaManager/metaSchema.js +6 -6
  20. package/dataMap/metaManager/metaSchema.mjs +6 -6
  21. package/dist/handsontable.css +24 -2
  22. package/dist/handsontable.full.css +24 -2
  23. package/dist/handsontable.full.js +3294 -3169
  24. package/dist/handsontable.full.min.css +4 -4
  25. package/dist/handsontable.full.min.js +96 -92
  26. package/dist/handsontable.js +856 -952
  27. package/dist/handsontable.min.css +4 -4
  28. package/dist/handsontable.min.js +4 -4
  29. package/editorManager.js +1 -0
  30. package/editorManager.mjs +1 -0
  31. package/editors/baseEditor/baseEditor.js +1 -0
  32. package/editors/baseEditor/baseEditor.mjs +1 -0
  33. package/editors/textEditor/textEditor.js +1 -0
  34. package/editors/textEditor/textEditor.mjs +1 -0
  35. package/helpers/mixed.js +2 -2
  36. package/helpers/mixed.mjs +2 -2
  37. package/helpers/object.js +2 -0
  38. package/helpers/object.mjs +2 -0
  39. package/package.json +1 -1
  40. package/pluginHooks.d.ts +0 -1
  41. package/pluginHooks.js +1 -12
  42. package/pluginHooks.mjs +1 -12
  43. package/plugins/autoColumnSize/autoColumnSize.js +1 -0
  44. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
  45. package/plugins/autoRowSize/autoRowSize.js +1 -0
  46. package/plugins/autoRowSize/autoRowSize.mjs +1 -0
  47. package/plugins/autofill/autofill.js +2 -2
  48. package/plugins/autofill/autofill.mjs +3 -3
  49. package/plugins/autofill/utils.js +1 -39
  50. package/plugins/autofill/utils.mjs +0 -37
  51. package/plugins/base/base.js +1 -0
  52. package/plugins/base/base.mjs +1 -0
  53. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
  54. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
  55. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -0
  56. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -0
  57. package/plugins/columnSorting/columnSorting.js +1 -0
  58. package/plugins/columnSorting/columnSorting.mjs +1 -0
  59. package/plugins/columnSorting/columnStatesManager.js +1 -0
  60. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  61. package/plugins/columnSorting/rootComparator.js +1 -0
  62. package/plugins/columnSorting/rootComparator.mjs +1 -0
  63. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -0
  64. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -0
  65. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -0
  66. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -0
  67. package/plugins/copyPaste/copyPaste.js +1 -0
  68. package/plugins/copyPaste/copyPaste.mjs +1 -0
  69. package/plugins/customBorders/customBorders.js +1 -0
  70. package/plugins/customBorders/customBorders.mjs +1 -0
  71. package/plugins/exportFile/dataProvider.js +1 -0
  72. package/plugins/exportFile/dataProvider.mjs +1 -0
  73. package/plugins/filters/component/value.js +1 -0
  74. package/plugins/filters/component/value.mjs +1 -0
  75. package/plugins/filters/condition/beginsWith.js +1 -0
  76. package/plugins/filters/condition/beginsWith.mjs +1 -0
  77. package/plugins/filters/condition/between.js +1 -0
  78. package/plugins/filters/condition/between.mjs +1 -0
  79. package/plugins/filters/condition/byValue.js +1 -0
  80. package/plugins/filters/condition/byValue.mjs +1 -0
  81. package/plugins/filters/condition/contains.js +1 -0
  82. package/plugins/filters/condition/contains.mjs +1 -0
  83. package/plugins/filters/condition/date/after.js +1 -0
  84. package/plugins/filters/condition/date/after.mjs +1 -0
  85. package/plugins/filters/condition/date/before.js +1 -0
  86. package/plugins/filters/condition/date/before.mjs +1 -0
  87. package/plugins/filters/condition/endsWith.js +1 -0
  88. package/plugins/filters/condition/endsWith.mjs +1 -0
  89. package/plugins/filters/condition/equal.js +1 -0
  90. package/plugins/filters/condition/equal.mjs +1 -0
  91. package/plugins/filters/condition/greaterThan.js +1 -0
  92. package/plugins/filters/condition/greaterThan.mjs +1 -0
  93. package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
  94. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
  95. package/plugins/filters/condition/lessThan.js +1 -0
  96. package/plugins/filters/condition/lessThan.mjs +1 -0
  97. package/plugins/filters/condition/lessThanOrEqual.js +1 -0
  98. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
  99. package/plugins/filters/conditionCollection.js +1 -0
  100. package/plugins/filters/conditionCollection.mjs +1 -0
  101. package/plugins/filters/filters.js +1 -0
  102. package/plugins/filters/filters.mjs +1 -0
  103. package/plugins/filters/ui/multipleSelect.js +1 -0
  104. package/plugins/filters/ui/multipleSelect.mjs +1 -0
  105. package/plugins/formulas/formulas.js +1 -0
  106. package/plugins/formulas/formulas.mjs +1 -0
  107. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
  108. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
  109. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
  110. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
  111. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
  112. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
  113. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
  114. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
  115. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
  116. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
  117. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
  118. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
  119. package/plugins/manualRowMove/manualRowMove.js +5 -1
  120. package/plugins/manualRowMove/manualRowMove.mjs +5 -1
  121. package/plugins/mergeCells/calculations/autofill.js +1 -0
  122. package/plugins/mergeCells/calculations/autofill.mjs +1 -0
  123. package/plugins/mergeCells/cellsCollection.js +1 -0
  124. package/plugins/mergeCells/cellsCollection.mjs +1 -0
  125. package/plugins/mergeCells/mergeCells.js +1 -0
  126. package/plugins/mergeCells/mergeCells.mjs +1 -0
  127. package/plugins/multiColumnSorting/rootComparator.js +1 -0
  128. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  129. package/plugins/nestedHeaders/stateManager/headersTree.js +1 -0
  130. package/plugins/nestedHeaders/stateManager/headersTree.mjs +1 -0
  131. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +1 -0
  132. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  133. package/plugins/nestedRows/data/dataManager.js +1 -0
  134. package/plugins/nestedRows/data/dataManager.mjs +1 -0
  135. package/plugins/nestedRows/nestedRows.js +1 -0
  136. package/plugins/nestedRows/nestedRows.mjs +1 -0
  137. package/plugins/nestedRows/ui/collapsing.js +1 -0
  138. package/plugins/nestedRows/ui/collapsing.mjs +1 -0
  139. package/plugins/nestedRows/utils/rowMoveController.js +1 -0
  140. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
  141. package/plugins/persistentState/storage.js +1 -0
  142. package/plugins/persistentState/storage.mjs +1 -0
  143. package/plugins/registry.js +1 -0
  144. package/plugins/registry.mjs +1 -0
  145. package/plugins/undoRedo/undoRedo.js +1 -0
  146. package/plugins/undoRedo/undoRedo.mjs +1 -0
  147. package/selection/highlight/highlight.js +1 -0
  148. package/selection/highlight/highlight.mjs +1 -0
  149. package/selection/selection.js +1 -0
  150. package/selection/selection.mjs +1 -0
  151. package/selection/utils.js +1 -0
  152. package/selection/utils.mjs +1 -0
  153. package/settings.d.ts +1 -0
  154. package/shortcuts/context.js +1 -0
  155. package/shortcuts/context.mjs +1 -0
  156. package/tableView.js +1 -0
  157. package/tableView.mjs +1 -0
  158. package/translations/indexMapper.js +8 -56
  159. package/translations/indexMapper.mjs +9 -56
  160. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  161. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  162. package/translations/maps/utils/indexesSequence.js +1 -0
  163. package/translations/maps/utils/indexesSequence.mjs +1 -0
  164. package/translations/maps/utils/physicallyIndexed.js +1 -0
  165. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  166. package/utils/dataStructures/priorityMap.js +1 -0
  167. package/utils/dataStructures/priorityMap.mjs +1 -0
  168. package/utils/dataStructures/tree.js +1 -0
  169. package/utils/dataStructures/tree.mjs +1 -0
  170. package/utils/dataStructures/uniqueMap.js +1 -0
  171. package/utils/dataStructures/uniqueMap.mjs +1 -0
  172. package/utils/dataStructures/uniqueSet.js +1 -0
  173. package/utils/dataStructures/uniqueSet.mjs +1 -0
  174. package/utils/ghostTable.js +1 -0
  175. package/utils/ghostTable.mjs +1 -0
  176. package/utils/staticRegister.js +1 -0
  177. package/utils/staticRegister.mjs +1 -0
@@ -13,6 +13,7 @@ require("core-js/modules/es.array.iterator.js");
13
13
  require("core-js/modules/es.string.iterator.js");
14
14
  require("core-js/modules/web.dom-collections.iterator.js");
15
15
  require("core-js/modules/es.array.from.js");
16
+ require("core-js/modules/es.regexp.to-string.js");
16
17
  require("core-js/modules/es.function.name.js");
17
18
  require("core-js/modules/es.regexp.exec.js");
18
19
  exports.__esModule = true;
@@ -22,6 +22,7 @@ import "core-js/modules/es.array.iterator.js";
22
22
  import "core-js/modules/es.string.iterator.js";
23
23
  import "core-js/modules/web.dom-collections.iterator.js";
24
24
  import "core-js/modules/es.array.from.js";
25
+ import "core-js/modules/es.regexp.to-string.js";
25
26
  import "core-js/modules/es.function.name.js";
26
27
  import "core-js/modules/es.regexp.exec.js";
27
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -7,6 +7,7 @@ require("core-js/modules/es.array.iterator.js");
7
7
  require("core-js/modules/es.string.iterator.js");
8
8
  require("core-js/modules/web.dom-collections.iterator.js");
9
9
  require("core-js/modules/es.array.from.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
10
11
  require("core-js/modules/es.function.name.js");
11
12
  require("core-js/modules/es.regexp.exec.js");
12
13
  exports.__esModule = true;
@@ -24,6 +24,7 @@ import "core-js/modules/es.array.iterator.js";
24
24
  import "core-js/modules/es.string.iterator.js";
25
25
  import "core-js/modules/web.dom-collections.iterator.js";
26
26
  import "core-js/modules/es.array.from.js";
27
+ import "core-js/modules/es.regexp.to-string.js";
27
28
  import "core-js/modules/es.function.name.js";
28
29
  import "core-js/modules/es.regexp.exec.js";
29
30
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -8,6 +8,7 @@ exports.__esModule = true;
8
8
  exports.default = void 0;
9
9
  require("core-js/modules/es.array.concat.js");
10
10
  require("core-js/modules/es.array.index-of.js");
11
+ require("core-js/modules/es.object.keys.js");
11
12
  require("core-js/modules/es.symbol.to-primitive.js");
12
13
  require("core-js/modules/es.date.to-primitive.js");
13
14
  require("core-js/modules/es.symbol.js");
@@ -1,6 +1,7 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
  import "core-js/modules/es.array.concat.js";
3
3
  import "core-js/modules/es.array.index-of.js";
4
+ import "core-js/modules/es.object.keys.js";
4
5
  import "core-js/modules/es.symbol.to-primitive.js";
5
6
  import "core-js/modules/es.date.to-primitive.js";
6
7
  import "core-js/modules/es.symbol.js";
@@ -9,6 +9,7 @@ require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
11
  require("core-js/modules/es.array.slice.js");
12
+ require("core-js/modules/es.regexp.to-string.js");
12
13
  require("core-js/modules/es.function.name.js");
13
14
  require("core-js/modules/es.regexp.exec.js");
14
15
  exports.__esModule = true;
@@ -12,6 +12,7 @@ import "core-js/modules/es.string.iterator.js";
12
12
  import "core-js/modules/web.dom-collections.iterator.js";
13
13
  import "core-js/modules/es.array.from.js";
14
14
  import "core-js/modules/es.array.slice.js";
15
+ import "core-js/modules/es.regexp.to-string.js";
15
16
  import "core-js/modules/es.function.name.js";
16
17
  import "core-js/modules/es.regexp.exec.js";
17
18
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -7,6 +7,7 @@ require("core-js/modules/es.symbol.iterator.js");
7
7
  require("core-js/modules/es.array.iterator.js");
8
8
  require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
10
11
  require("core-js/modules/es.function.name.js");
11
12
  require("core-js/modules/es.array.from.js");
12
13
  require("core-js/modules/es.regexp.exec.js");
@@ -38,6 +38,7 @@ import "core-js/modules/es.symbol.iterator.js";
38
38
  import "core-js/modules/es.array.iterator.js";
39
39
  import "core-js/modules/es.string.iterator.js";
40
40
  import "core-js/modules/web.dom-collections.iterator.js";
41
+ import "core-js/modules/es.regexp.to-string.js";
41
42
  import "core-js/modules/es.function.name.js";
42
43
  import "core-js/modules/es.array.from.js";
43
44
  import "core-js/modules/es.regexp.exec.js";
@@ -7,6 +7,7 @@ require("core-js/modules/web.dom-collections.for-each.js");
7
7
  require("core-js/modules/es.object.get-own-property-descriptors.js");
8
8
  require("core-js/modules/es.array.from.js");
9
9
  require("core-js/modules/es.array.slice.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
10
11
  require("core-js/modules/es.function.name.js");
11
12
  require("core-js/modules/es.regexp.exec.js");
12
13
  exports.__esModule = true;
@@ -30,6 +30,7 @@ import "core-js/modules/web.dom-collections.for-each.js";
30
30
  import "core-js/modules/es.object.get-own-property-descriptors.js";
31
31
  import "core-js/modules/es.array.from.js";
32
32
  import "core-js/modules/es.array.slice.js";
33
+ import "core-js/modules/es.regexp.to-string.js";
33
34
  import "core-js/modules/es.function.name.js";
34
35
  import "core-js/modules/es.regexp.exec.js";
35
36
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -3,6 +3,7 @@
3
3
  require("core-js/modules/es.array.slice.js");
4
4
  require("core-js/modules/es.object.freeze.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
+ require("core-js/modules/es.regexp.to-string.js");
6
7
  require("core-js/modules/es.function.name.js");
7
8
  require("core-js/modules/es.regexp.exec.js");
8
9
  exports.__esModule = true;
@@ -26,6 +26,7 @@ import "core-js/modules/es.symbol.description.js";
26
26
  import "core-js/modules/es.array.slice.js";
27
27
  import "core-js/modules/es.object.freeze.js";
28
28
  import "core-js/modules/es.symbol.iterator.js";
29
+ import "core-js/modules/es.regexp.to-string.js";
29
30
  import "core-js/modules/es.function.name.js";
30
31
  import "core-js/modules/es.regexp.exec.js";
31
32
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -2,6 +2,7 @@
2
2
 
3
3
  require("core-js/modules/es.symbol.iterator.js");
4
4
  require("core-js/modules/es.array.slice.js");
5
+ require("core-js/modules/es.regexp.to-string.js");
5
6
  require("core-js/modules/es.function.name.js");
6
7
  require("core-js/modules/es.regexp.exec.js");
7
8
  exports.__esModule = true;
@@ -18,6 +18,7 @@ import "core-js/modules/es.array.from.js";
18
18
  import "core-js/modules/es.array.sort.js";
19
19
  import "core-js/modules/es.symbol.iterator.js";
20
20
  import "core-js/modules/es.array.slice.js";
21
+ import "core-js/modules/es.regexp.to-string.js";
21
22
  import "core-js/modules/es.function.name.js";
22
23
  import "core-js/modules/es.regexp.exec.js";
23
24
  import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
package/settings.d.ts CHANGED
@@ -148,6 +148,7 @@ export interface GridSettings extends Events {
148
148
  isEmptyRow?: (this: Core, row: number) => boolean;
149
149
  label?: LabelOptions;
150
150
  language?: string;
151
+ locale?: string;
151
152
  layoutDirection?: 'ltr' | 'rtl' | 'inherit';
152
153
  licenseKey?: string | 'non-commercial-and-evaluation';
153
154
  manualColumnFreeze?: boolean;
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.js");
5
5
  require("core-js/modules/es.symbol.description.js");
6
6
  require("core-js/modules/es.symbol.iterator.js");
7
7
  require("core-js/modules/es.string.iterator.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.array.from.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
@@ -3,6 +3,7 @@ import "core-js/modules/es.symbol.js";
3
3
  import "core-js/modules/es.symbol.description.js";
4
4
  import "core-js/modules/es.symbol.iterator.js";
5
5
  import "core-js/modules/es.string.iterator.js";
6
+ import "core-js/modules/es.regexp.to-string.js";
6
7
  import "core-js/modules/es.function.name.js";
7
8
  import "core-js/modules/es.array.from.js";
8
9
  import "core-js/modules/es.regexp.exec.js";
package/tableView.js CHANGED
@@ -7,6 +7,7 @@ require("core-js/modules/es.symbol.description.js");
7
7
  require("core-js/modules/es.symbol.iterator.js");
8
8
  require("core-js/modules/es.array.from.js");
9
9
  require("core-js/modules/es.array.slice.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
10
11
  require("core-js/modules/es.function.name.js");
11
12
  require("core-js/modules/es.regexp.exec.js");
12
13
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
package/tableView.mjs CHANGED
@@ -36,6 +36,7 @@ import "core-js/modules/es.symbol.description.js";
36
36
  import "core-js/modules/es.symbol.iterator.js";
37
37
  import "core-js/modules/es.array.from.js";
38
38
  import "core-js/modules/es.array.slice.js";
39
+ import "core-js/modules/es.regexp.to-string.js";
39
40
  import "core-js/modules/es.function.name.js";
40
41
  import "core-js/modules/es.regexp.exec.js";
41
42
  import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput } from "./helpers/dom/element.mjs";
@@ -5,9 +5,9 @@ require("core-js/modules/es.date.to-primitive.js");
5
5
  require("core-js/modules/es.symbol.js");
6
6
  require("core-js/modules/es.symbol.description.js");
7
7
  require("core-js/modules/es.number.constructor.js");
8
- require("core-js/modules/es.array.slice.js");
9
- require("core-js/modules/es.object.freeze.js");
10
8
  require("core-js/modules/es.symbol.iterator.js");
9
+ require("core-js/modules/es.array.slice.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
11
11
  require("core-js/modules/es.function.name.js");
12
12
  require("core-js/modules/es.regexp.exec.js");
13
13
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -29,15 +29,12 @@ require("core-js/modules/es.array.includes.js");
29
29
  require("core-js/modules/es.string.includes.js");
30
30
  require("core-js/modules/es.array.fill.js");
31
31
  var _array = require("../helpers/array");
32
- var _templateLiteralTag = require("../helpers/templateLiteralTag");
33
- var _console = require("../helpers/console");
34
32
  var _maps = require("./maps");
35
33
  var _mapCollections = require("./mapCollections");
36
34
  var _localHooks = _interopRequireDefault(require("../mixins/localHooks"));
37
35
  var _object = require("../helpers/object");
38
36
  var _mixed = require("../helpers/mixed");
39
37
  var _observable = require("./changesObservable/observable");
40
- var _templateObject;
41
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
39
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
43
40
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -45,13 +42,17 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
45
42
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
46
43
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
47
44
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
48
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
49
45
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
50
46
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
51
47
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
52
48
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
53
49
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
54
- var deprecationWarns = new Set(['getFirstNotHiddenIndex']);
50
+ /**
51
+ * A set of deprecated feature names.
52
+ *
53
+ * @type {Set<string>}
54
+ */ // eslint-disable-next-line no-unused-vars
55
+ var deprecationWarns = new Set();
55
56
 
56
57
  /**
57
58
  * @class IndexMapper
@@ -423,55 +424,6 @@ var IndexMapper = /*#__PURE__*/function () {
423
424
  return null;
424
425
  }
425
426
 
426
- /**
427
- * Search for the first visible, not hidden index (represented by a visual index).
428
- *
429
- * This method is deprecated and will be removed in a next major version of Handsontable.
430
- * Use the {@link IndexMapper#getNearestNotHiddenIndex} method instead.
431
- *
432
- * @deprecated
433
- * @param {number} fromVisualIndex Visual start index. Starting point for finding destination index. Start point may be destination
434
- * point when handled index is NOT hidden.
435
- * @param {number} incrementBy We are searching for a next visible indexes by increasing (to be precise, or decreasing) indexes.
436
- * This variable represent indexes shift. We are looking for an index:
437
- * - for rows: from the top to the bottom (increasing indexes, then variable should have value 1) or
438
- * other way around (decreasing indexes, then variable should have the value -1)
439
- * - for columns: from the left to the right (increasing indexes, then variable should have value 1)
440
- * or other way around (decreasing indexes, then variable should have the value -1).
441
- * @param {boolean} searchAlsoOtherWayAround The argument determine if an additional other way around search should be
442
- * performed, when the search in the first direction had no effect in finding visual index.
443
- * @param {number} indexForNextSearch Visual index for next search, when the flag is truthy.
444
- *
445
- * @returns {number|null} Visual column index or `null`.
446
- */
447
- }, {
448
- key: "getFirstNotHiddenIndex",
449
- value: function getFirstNotHiddenIndex(fromVisualIndex, incrementBy) {
450
- var searchAlsoOtherWayAround = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
451
- var indexForNextSearch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : fromVisualIndex - incrementBy;
452
- if (deprecationWarns.has('getFirstNotHiddenIndex')) {
453
- deprecationWarns.delete('getFirstNotHiddenIndex');
454
- (0, _console.warn)((0, _templateLiteralTag.toSingleLine)(_templateObject || (_templateObject = _taggedTemplateLiteral(["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next \n major release. Please use \"getNearestNotHiddenIndex\" instead."], ["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next\\x20\n major release. Please use \"getNearestNotHiddenIndex\" instead."]))));
455
- }
456
- var physicalIndex = this.getPhysicalFromVisualIndex(fromVisualIndex);
457
-
458
- // First or next (it may be end of the table) index is beyond the table boundaries.
459
- if (physicalIndex === null) {
460
- // Looking for the next index in the opposite direction. This conditional won't be fulfilled when we STARTED
461
- // the search from the index beyond the table boundaries.
462
- if (searchAlsoOtherWayAround === true && indexForNextSearch !== fromVisualIndex - incrementBy) {
463
- return this.getFirstNotHiddenIndex(indexForNextSearch, -incrementBy, false, indexForNextSearch);
464
- }
465
- return null;
466
- }
467
- if (this.isHidden(physicalIndex) === false) {
468
- return fromVisualIndex;
469
- }
470
-
471
- // Looking for the next index, as the current isn't visible.
472
- return this.getFirstNotHiddenIndex(fromVisualIndex + incrementBy, incrementBy, searchAlsoOtherWayAround, indexForNextSearch);
473
- }
474
-
475
427
  /**
476
428
  * Search for the nearest not-hidden row or column.
477
429
  *
@@ -1,12 +1,10 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _templateObject;
3
2
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
3
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
7
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
10
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
9
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
12
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -32,21 +30,25 @@ import "core-js/modules/es.date.to-primitive.js";
32
30
  import "core-js/modules/es.symbol.js";
33
31
  import "core-js/modules/es.symbol.description.js";
34
32
  import "core-js/modules/es.number.constructor.js";
35
- import "core-js/modules/es.array.slice.js";
36
- import "core-js/modules/es.object.freeze.js";
37
33
  import "core-js/modules/es.symbol.iterator.js";
34
+ import "core-js/modules/es.array.slice.js";
35
+ import "core-js/modules/es.regexp.to-string.js";
38
36
  import "core-js/modules/es.function.name.js";
39
37
  import "core-js/modules/es.regexp.exec.js";
40
38
  import { arrayMap } from "../helpers/array.mjs";
41
- import { toSingleLine } from "../helpers/templateLiteralTag.mjs";
42
- import { warn } from "../helpers/console.mjs";
43
39
  import { createIndexMap, getListWithInsertedItems, getListWithRemovedItems, HidingMap, IndexesSequence, TrimmingMap } from "./maps/index.mjs";
44
40
  import { AggregatedCollection, MapCollection } from "./mapCollections/index.mjs";
45
41
  import localHooks from "../mixins/localHooks.mjs";
46
42
  import { mixin } from "../helpers/object.mjs";
47
43
  import { isDefined } from "../helpers/mixed.mjs";
48
44
  import { ChangesObservable } from "./changesObservable/observable.mjs";
49
- var deprecationWarns = new Set(['getFirstNotHiddenIndex']);
45
+ /**
46
+ * A set of deprecated feature names.
47
+ *
48
+ * @type {Set<string>}
49
+ */
50
+ // eslint-disable-next-line no-unused-vars
51
+ var deprecationWarns = new Set();
50
52
 
51
53
  /**
52
54
  * @class IndexMapper
@@ -418,55 +420,6 @@ export var IndexMapper = /*#__PURE__*/function () {
418
420
  return null;
419
421
  }
420
422
 
421
- /**
422
- * Search for the first visible, not hidden index (represented by a visual index).
423
- *
424
- * This method is deprecated and will be removed in a next major version of Handsontable.
425
- * Use the {@link IndexMapper#getNearestNotHiddenIndex} method instead.
426
- *
427
- * @deprecated
428
- * @param {number} fromVisualIndex Visual start index. Starting point for finding destination index. Start point may be destination
429
- * point when handled index is NOT hidden.
430
- * @param {number} incrementBy We are searching for a next visible indexes by increasing (to be precise, or decreasing) indexes.
431
- * This variable represent indexes shift. We are looking for an index:
432
- * - for rows: from the top to the bottom (increasing indexes, then variable should have value 1) or
433
- * other way around (decreasing indexes, then variable should have the value -1)
434
- * - for columns: from the left to the right (increasing indexes, then variable should have value 1)
435
- * or other way around (decreasing indexes, then variable should have the value -1).
436
- * @param {boolean} searchAlsoOtherWayAround The argument determine if an additional other way around search should be
437
- * performed, when the search in the first direction had no effect in finding visual index.
438
- * @param {number} indexForNextSearch Visual index for next search, when the flag is truthy.
439
- *
440
- * @returns {number|null} Visual column index or `null`.
441
- */
442
- }, {
443
- key: "getFirstNotHiddenIndex",
444
- value: function getFirstNotHiddenIndex(fromVisualIndex, incrementBy) {
445
- var searchAlsoOtherWayAround = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
446
- var indexForNextSearch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : fromVisualIndex - incrementBy;
447
- if (deprecationWarns.has('getFirstNotHiddenIndex')) {
448
- deprecationWarns.delete('getFirstNotHiddenIndex');
449
- warn(toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next \n major release. Please use \"getNearestNotHiddenIndex\" instead."], ["The method \"getFirstNotHiddenIndex\" is deprecated and will be removed in the next\\x20\n major release. Please use \"getNearestNotHiddenIndex\" instead."]))));
450
- }
451
- var physicalIndex = this.getPhysicalFromVisualIndex(fromVisualIndex);
452
-
453
- // First or next (it may be end of the table) index is beyond the table boundaries.
454
- if (physicalIndex === null) {
455
- // Looking for the next index in the opposite direction. This conditional won't be fulfilled when we STARTED
456
- // the search from the index beyond the table boundaries.
457
- if (searchAlsoOtherWayAround === true && indexForNextSearch !== fromVisualIndex - incrementBy) {
458
- return this.getFirstNotHiddenIndex(indexForNextSearch, -incrementBy, false, indexForNextSearch);
459
- }
460
- return null;
461
- }
462
- if (this.isHidden(physicalIndex) === false) {
463
- return fromVisualIndex;
464
- }
465
-
466
- // Looking for the next index, as the current isn't visible.
467
- return this.getFirstNotHiddenIndex(fromVisualIndex + incrementBy, incrementBy, searchAlsoOtherWayAround, indexForNextSearch);
468
- }
469
-
470
423
  /**
471
424
  * Search for the nearest not-hidden row or column.
472
425
  *
@@ -9,6 +9,7 @@ require("core-js/modules/es.symbol.iterator.js");
9
9
  require("core-js/modules/es.string.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
11
  require("core-js/modules/es.array.slice.js");
12
+ require("core-js/modules/es.regexp.to-string.js");
12
13
  require("core-js/modules/es.function.name.js");
13
14
  require("core-js/modules/es.regexp.exec.js");
14
15
  exports.__esModule = true;
@@ -27,6 +27,7 @@ import "core-js/modules/es.symbol.iterator.js";
27
27
  import "core-js/modules/es.string.iterator.js";
28
28
  import "core-js/modules/es.array.from.js";
29
29
  import "core-js/modules/es.array.slice.js";
30
+ import "core-js/modules/es.regexp.to-string.js";
30
31
  import "core-js/modules/es.function.name.js";
31
32
  import "core-js/modules/es.regexp.exec.js";
32
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -8,6 +8,7 @@ require("core-js/modules/es.array.iterator.js");
8
8
  require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
+ require("core-js/modules/es.regexp.to-string.js");
11
12
  require("core-js/modules/es.function.name.js");
12
13
  require("core-js/modules/es.regexp.exec.js");
13
14
  exports.__esModule = true;
@@ -10,6 +10,7 @@ import "core-js/modules/es.array.iterator.js";
10
10
  import "core-js/modules/es.string.iterator.js";
11
11
  import "core-js/modules/web.dom-collections.iterator.js";
12
12
  import "core-js/modules/es.array.from.js";
13
+ import "core-js/modules/es.regexp.to-string.js";
13
14
  import "core-js/modules/es.function.name.js";
14
15
  import "core-js/modules/es.regexp.exec.js";
15
16
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -8,6 +8,7 @@ require("core-js/modules/es.array.iterator.js");
8
8
  require("core-js/modules/es.string.iterator.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  require("core-js/modules/es.array.from.js");
11
+ require("core-js/modules/es.regexp.to-string.js");
11
12
  require("core-js/modules/es.function.name.js");
12
13
  require("core-js/modules/es.regexp.exec.js");
13
14
  exports.__esModule = true;
@@ -11,6 +11,7 @@ import "core-js/modules/es.array.iterator.js";
11
11
  import "core-js/modules/es.string.iterator.js";
12
12
  import "core-js/modules/web.dom-collections.iterator.js";
13
13
  import "core-js/modules/es.array.from.js";
14
+ import "core-js/modules/es.regexp.to-string.js";
14
15
  import "core-js/modules/es.function.name.js";
15
16
  import "core-js/modules/es.regexp.exec.js";
16
17
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -4,6 +4,7 @@ require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.slice.js");
7
+ require("core-js/modules/es.regexp.to-string.js");
7
8
  require("core-js/modules/es.function.name.js");
8
9
  require("core-js/modules/es.array.from.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
@@ -19,6 +19,7 @@ import "core-js/modules/es.symbol.js";
19
19
  import "core-js/modules/es.symbol.description.js";
20
20
  import "core-js/modules/es.symbol.iterator.js";
21
21
  import "core-js/modules/es.array.slice.js";
22
+ import "core-js/modules/es.regexp.to-string.js";
22
23
  import "core-js/modules/es.function.name.js";
23
24
  import "core-js/modules/es.array.from.js";
24
25
  import "core-js/modules/es.regexp.exec.js";
@@ -6,6 +6,7 @@ require("core-js/modules/es.symbol.description.js");
6
6
  require("core-js/modules/es.symbol.iterator.js");
7
7
  require("core-js/modules/es.array.from.js");
8
8
  require("core-js/modules/es.array.slice.js");
9
+ require("core-js/modules/es.regexp.to-string.js");
9
10
  require("core-js/modules/es.function.name.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
11
12
  require("core-js/modules/es.symbol.to-primitive.js");
@@ -17,6 +17,7 @@ import "core-js/modules/es.symbol.description.js";
17
17
  import "core-js/modules/es.symbol.iterator.js";
18
18
  import "core-js/modules/es.array.from.js";
19
19
  import "core-js/modules/es.array.slice.js";
20
+ import "core-js/modules/es.regexp.to-string.js";
20
21
  import "core-js/modules/es.function.name.js";
21
22
  import "core-js/modules/es.regexp.exec.js";
22
23
  import "core-js/modules/es.symbol.to-primitive.js";
@@ -4,6 +4,7 @@ require("core-js/modules/es.symbol.js");
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.slice.js");
7
+ require("core-js/modules/es.regexp.to-string.js");
7
8
  require("core-js/modules/es.function.name.js");
8
9
  require("core-js/modules/es.array.from.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
@@ -18,6 +18,7 @@ import "core-js/modules/es.symbol.js";
18
18
  import "core-js/modules/es.symbol.description.js";
19
19
  import "core-js/modules/es.symbol.iterator.js";
20
20
  import "core-js/modules/es.array.slice.js";
21
+ import "core-js/modules/es.regexp.to-string.js";
21
22
  import "core-js/modules/es.function.name.js";
22
23
  import "core-js/modules/es.array.from.js";
23
24
  import "core-js/modules/es.regexp.exec.js";
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.from.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
10
11
  exports.__esModule = true;
@@ -14,6 +14,7 @@ import "core-js/modules/es.symbol.description.js";
14
14
  import "core-js/modules/es.symbol.iterator.js";
15
15
  import "core-js/modules/es.array.from.js";
16
16
  import "core-js/modules/es.array.slice.js";
17
+ import "core-js/modules/es.regexp.to-string.js";
17
18
  import "core-js/modules/es.function.name.js";
18
19
  import "core-js/modules/es.regexp.exec.js";
19
20
  import { isFunction } from "../../helpers/function.mjs";
@@ -5,6 +5,7 @@ require("core-js/modules/es.array.iterator.js");
5
5
  require("core-js/modules/es.string.iterator.js");
6
6
  require("core-js/modules/web.dom-collections.iterator.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.array.from.js");
10
11
  require("core-js/modules/es.regexp.exec.js");
@@ -18,6 +18,7 @@ import "core-js/modules/es.array.iterator.js";
18
18
  import "core-js/modules/es.string.iterator.js";
19
19
  import "core-js/modules/web.dom-collections.iterator.js";
20
20
  import "core-js/modules/es.array.slice.js";
21
+ import "core-js/modules/es.regexp.to-string.js";
21
22
  import "core-js/modules/es.function.name.js";
22
23
  import "core-js/modules/es.array.from.js";
23
24
  import "core-js/modules/es.regexp.exec.js";
@@ -5,6 +5,7 @@ require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.symbol.iterator.js");
6
6
  require("core-js/modules/es.array.from.js");
7
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.regexp.to-string.js");
8
9
  require("core-js/modules/es.function.name.js");
9
10
  require("core-js/modules/es.regexp.exec.js");
10
11
  exports.__esModule = true;
@@ -14,6 +14,7 @@ import "core-js/modules/es.symbol.description.js";
14
14
  import "core-js/modules/es.symbol.iterator.js";
15
15
  import "core-js/modules/es.array.from.js";
16
16
  import "core-js/modules/es.array.slice.js";
17
+ import "core-js/modules/es.regexp.to-string.js";
17
18
  import "core-js/modules/es.function.name.js";
18
19
  import "core-js/modules/es.regexp.exec.js";
19
20
  export var collection = new Map();