handsontable 0.0.0-next-98f6377-20250108 → 0.0.0-next-514c2a4-20250109

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.

package/README.md CHANGED
@@ -256,4 +256,4 @@ Created and maintained by the [Handsontable Team](https://handsontable.com/team)
256
256
 
257
257
  ---
258
258
 
259
- © 2012 - 2024 Handsoncode
259
+ © 2012 - 2025 Handsoncode
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "08/01/2025 06:31:37";
49
- Handsontable.version = "0.0.0-next-98f6377-20250108";
48
+ Handsontable.buildDate = "09/01/2025 06:46:14";
49
+ Handsontable.version = "0.0.0-next-514c2a4-20250109";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "08/01/2025 06:31:43";
39
- Handsontable.version = "0.0.0-next-98f6377-20250108";
38
+ Handsontable.buildDate = "09/01/2025 06:46:19";
39
+ Handsontable.version = "0.0.0-next-514c2a4-20250109";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -1135,7 +1135,7 @@ function Core(rootElement, userSettings) {
1135
1135
  callback(); // called when async validators are resolved and beforeChange was not async
1136
1136
  };
1137
1137
  for (let i = changes.length - 1; i >= 0; i--) {
1138
- const [row, prop,, newValue] = changes[i];
1138
+ const [row, prop] = changes[i];
1139
1139
  const visualCol = datamap.propToCol(prop);
1140
1140
  let cellProperties;
1141
1141
  if (Number.isInteger(visualCol)) {
@@ -1148,9 +1148,6 @@ function Core(rootElement, userSettings) {
1148
1148
  ...tableMeta
1149
1149
  };
1150
1150
  }
1151
- if (cellProperties.type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
1152
- changes[i][3] = getParsedNumber(newValue);
1153
- }
1154
1151
 
1155
1152
  /* eslint-disable no-loop-func */
1156
1153
  if (instance.getCellValidator(cellProperties)) {
@@ -1371,16 +1368,31 @@ function Core(rootElement, userSettings) {
1371
1368
  * @returns {Array} List of changes finally applied to the dataset.
1372
1369
  */
1373
1370
  function processChanges(changes, source) {
1374
- const activeEditor = instance.getActiveEditor();
1375
1371
  const beforeChangeResult = instance.runHooks('beforeChange', changes, source || 'edit');
1376
1372
  // The `beforeChange` hook could add a `null` for purpose of cancelling some dataset's change.
1377
1373
  const filteredChanges = changes.filter(change => change !== null);
1378
1374
  if (beforeChangeResult === false || filteredChanges.length === 0) {
1379
- if (activeEditor) {
1380
- activeEditor.cancelChanges();
1381
- }
1375
+ var _instance$getActiveEd;
1376
+ (_instance$getActiveEd = instance.getActiveEditor()) === null || _instance$getActiveEd === void 0 || _instance$getActiveEd.cancelChanges();
1382
1377
  return [];
1383
1378
  }
1379
+ for (let i = filteredChanges.length - 1; i >= 0; i--) {
1380
+ const [row, prop,, newValue] = filteredChanges[i];
1381
+ const visualColumn = datamap.propToCol(prop);
1382
+ let cellProperties;
1383
+ if (Number.isInteger(visualColumn)) {
1384
+ cellProperties = instance.getCellMeta(row, visualColumn);
1385
+ } else {
1386
+ // If there's no requested visual column, we can use the table meta as the cell properties
1387
+ cellProperties = {
1388
+ ...Object.getPrototypeOf(tableMeta),
1389
+ ...tableMeta
1390
+ };
1391
+ }
1392
+ if (cellProperties.type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
1393
+ filteredChanges[i][3] = getParsedNumber(newValue);
1394
+ }
1395
+ }
1384
1396
  return filteredChanges;
1385
1397
  }
1386
1398
 
package/core.mjs CHANGED
@@ -1130,7 +1130,7 @@ export default function Core(rootElement, userSettings) {
1130
1130
  callback(); // called when async validators are resolved and beforeChange was not async
1131
1131
  };
1132
1132
  for (let i = changes.length - 1; i >= 0; i--) {
1133
- const [row, prop,, newValue] = changes[i];
1133
+ const [row, prop] = changes[i];
1134
1134
  const visualCol = datamap.propToCol(prop);
1135
1135
  let cellProperties;
1136
1136
  if (Number.isInteger(visualCol)) {
@@ -1143,9 +1143,6 @@ export default function Core(rootElement, userSettings) {
1143
1143
  ...tableMeta
1144
1144
  };
1145
1145
  }
1146
- if (cellProperties.type === 'numeric' && typeof newValue === 'string' && isNumericLike(newValue)) {
1147
- changes[i][3] = getParsedNumber(newValue);
1148
- }
1149
1146
 
1150
1147
  /* eslint-disable no-loop-func */
1151
1148
  if (instance.getCellValidator(cellProperties)) {
@@ -1366,16 +1363,31 @@ export default function Core(rootElement, userSettings) {
1366
1363
  * @returns {Array} List of changes finally applied to the dataset.
1367
1364
  */
1368
1365
  function processChanges(changes, source) {
1369
- const activeEditor = instance.getActiveEditor();
1370
1366
  const beforeChangeResult = instance.runHooks('beforeChange', changes, source || 'edit');
1371
1367
  // The `beforeChange` hook could add a `null` for purpose of cancelling some dataset's change.
1372
1368
  const filteredChanges = changes.filter(change => change !== null);
1373
1369
  if (beforeChangeResult === false || filteredChanges.length === 0) {
1374
- if (activeEditor) {
1375
- activeEditor.cancelChanges();
1376
- }
1370
+ var _instance$getActiveEd;
1371
+ (_instance$getActiveEd = instance.getActiveEditor()) === null || _instance$getActiveEd === void 0 || _instance$getActiveEd.cancelChanges();
1377
1372
  return [];
1378
1373
  }
1374
+ for (let i = filteredChanges.length - 1; i >= 0; i--) {
1375
+ const [row, prop,, newValue] = filteredChanges[i];
1376
+ const visualColumn = datamap.propToCol(prop);
1377
+ let cellProperties;
1378
+ if (Number.isInteger(visualColumn)) {
1379
+ cellProperties = instance.getCellMeta(row, visualColumn);
1380
+ } else {
1381
+ // If there's no requested visual column, we can use the table meta as the cell properties
1382
+ cellProperties = {
1383
+ ...Object.getPrototypeOf(tableMeta),
1384
+ ...tableMeta
1385
+ };
1386
+ }
1387
+ if (cellProperties.type === 'numeric' && typeof newValue === 'string' && isNumericLike(newValue)) {
1388
+ filteredChanges[i][3] = getParsedNumber(newValue);
1389
+ }
1390
+ }
1379
1391
  return filteredChanges;
1380
1392
  }
1381
1393
 
@@ -10,7 +10,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
10
10
  require("core-js/modules/es.set.is-superset-of.v2.js");
11
11
  require("core-js/modules/es.set.symmetric-difference.v2.js");
12
12
  require("core-js/modules/es.set.union.v2.js");
13
- var _array = require("../../helpers/array");
13
+ require("core-js/modules/esnext.iterator.constructor.js");
14
+ require("core-js/modules/esnext.iterator.filter.js");
14
15
  var _utils = require("./utils");
15
16
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -208,7 +209,7 @@ class LazyFactoryMap {
208
209
  * new data.
209
210
  *
210
211
  * @param {number} key The key as volatile zero-based index at which to begin inserting space for new data.
211
- * @param {number} [amount=1] Ammount of data to insert.
212
+ * @param {number} [amount=1] Amount of data to insert.
212
213
  */
213
214
  insert(key) {
214
215
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -227,7 +228,7 @@ class LazyFactoryMap {
227
228
  * Removes (soft remove) data from "index" and according to the amount of data.
228
229
  *
229
230
  * @param {number} key The key as volatile zero-based index at which to begin removing the data.
230
- * @param {number} [amount=1] Ammount data to remove.
231
+ * @param {number} [amount=1] Amount data to remove.
231
232
  */
232
233
  remove(key) {
233
234
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -256,7 +257,9 @@ class LazyFactoryMap {
256
257
  * @returns {Iterator}
257
258
  */
258
259
  values() {
259
- return (0, _array.arrayFilter)(this.data, (_, index) => !this.holes.has(index))[Symbol.iterator]();
260
+ return this.data.filter((meta, index) => {
261
+ return meta !== undefined && !this.holes.has(index);
262
+ })[Symbol.iterator]();
260
263
  }
261
264
 
262
265
  /**
@@ -268,7 +271,7 @@ class LazyFactoryMap {
268
271
  const validEntries = [];
269
272
  for (let i = 0; i < this.data.length; i++) {
270
273
  const keyIndex = this._getKeyByStorageIndex(i);
271
- if (keyIndex !== -1) {
274
+ if (keyIndex !== -1 && this.data[i] !== undefined) {
272
275
  validEntries.push([keyIndex, this.data[i]]);
273
276
  }
274
277
  }
@@ -7,10 +7,11 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
7
7
  import "core-js/modules/es.set.is-superset-of.v2.js";
8
8
  import "core-js/modules/es.set.symmetric-difference.v2.js";
9
9
  import "core-js/modules/es.set.union.v2.js";
10
+ import "core-js/modules/esnext.iterator.constructor.js";
11
+ import "core-js/modules/esnext.iterator.filter.js";
10
12
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
14
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
- import { arrayFilter } from "../../helpers/array.mjs";
14
15
  import { assert, isUnsignedNumber, isNullish } from "./utils.mjs";
15
16
  /* eslint-disable jsdoc/require-description-complete-sentence */
16
17
  /**
@@ -205,7 +206,7 @@ export default class LazyFactoryMap {
205
206
  * new data.
206
207
  *
207
208
  * @param {number} key The key as volatile zero-based index at which to begin inserting space for new data.
208
- * @param {number} [amount=1] Ammount of data to insert.
209
+ * @param {number} [amount=1] Amount of data to insert.
209
210
  */
210
211
  insert(key) {
211
212
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -224,7 +225,7 @@ export default class LazyFactoryMap {
224
225
  * Removes (soft remove) data from "index" and according to the amount of data.
225
226
  *
226
227
  * @param {number} key The key as volatile zero-based index at which to begin removing the data.
227
- * @param {number} [amount=1] Ammount data to remove.
228
+ * @param {number} [amount=1] Amount data to remove.
228
229
  */
229
230
  remove(key) {
230
231
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -253,7 +254,9 @@ export default class LazyFactoryMap {
253
254
  * @returns {Iterator}
254
255
  */
255
256
  values() {
256
- return arrayFilter(this.data, (_, index) => !this.holes.has(index))[Symbol.iterator]();
257
+ return this.data.filter((meta, index) => {
258
+ return meta !== undefined && !this.holes.has(index);
259
+ })[Symbol.iterator]();
257
260
  }
258
261
 
259
262
  /**
@@ -265,7 +268,7 @@ export default class LazyFactoryMap {
265
268
  const validEntries = [];
266
269
  for (let i = 0; i < this.data.length; i++) {
267
270
  const keyIndex = this._getKeyByStorageIndex(i);
268
- if (keyIndex !== -1) {
271
+ if (keyIndex !== -1 && this.data[i] !== undefined) {
269
272
  validEntries.push([keyIndex, this.data[i]]);
270
273
  }
271
274
  }
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-98f6377-20250108
29
- * Release date: 16/12/2024 (built at 08/01/2025 06:32:05)
28
+ * Version: 0.0.0-next-514c2a4-20250109
29
+ * Release date: 16/12/2024 (built at 09/01/2025 06:46:41)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-98f6377-20250108
29
- * Release date: 16/12/2024 (built at 08/01/2025 06:32:05)
28
+ * Version: 0.0.0-next-514c2a4-20250109
29
+ * Release date: 16/12/2024 (built at 09/01/2025 06:46:41)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-98f6377-20250108
29
- * Release date: 16/12/2024 (built at 08/01/2025 06:31:47)
28
+ * Version: 0.0.0-next-514c2a4-20250109
29
+ * Release date: 16/12/2024 (built at 09/01/2025 06:46:24)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42676,8 +42676,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42676
42676
  Handsontable.CellCoords = _src.CellCoords;
42677
42677
  Handsontable.CellRange = _src.CellRange;
42678
42678
  Handsontable.packageName = 'handsontable';
42679
- Handsontable.buildDate = "08/01/2025 06:31:47";
42680
- Handsontable.version = "0.0.0-next-98f6377-20250108";
42679
+ Handsontable.buildDate = "09/01/2025 06:46:24";
42680
+ Handsontable.version = "0.0.0-next-514c2a4-20250109";
42681
42681
  Handsontable.languages = {
42682
42682
  dictionaryKeys: _registry.dictionaryKeys,
42683
42683
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -43835,7 +43835,7 @@ function Core(rootElement, userSettings) {
43835
43835
  callback(); // called when async validators are resolved and beforeChange was not async
43836
43836
  };
43837
43837
  for (let i = changes.length - 1; i >= 0; i--) {
43838
- const [row, prop,, newValue] = changes[i];
43838
+ const [row, prop] = changes[i];
43839
43839
  const visualCol = datamap.propToCol(prop);
43840
43840
  let cellProperties;
43841
43841
  if (Number.isInteger(visualCol)) {
@@ -43848,9 +43848,6 @@ function Core(rootElement, userSettings) {
43848
43848
  ...tableMeta
43849
43849
  };
43850
43850
  }
43851
- if (cellProperties.type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
43852
- changes[i][3] = getParsedNumber(newValue);
43853
- }
43854
43851
 
43855
43852
  /* eslint-disable no-loop-func */
43856
43853
  if (instance.getCellValidator(cellProperties)) {
@@ -44071,16 +44068,31 @@ function Core(rootElement, userSettings) {
44071
44068
  * @returns {Array} List of changes finally applied to the dataset.
44072
44069
  */
44073
44070
  function processChanges(changes, source) {
44074
- const activeEditor = instance.getActiveEditor();
44075
44071
  const beforeChangeResult = instance.runHooks('beforeChange', changes, source || 'edit');
44076
44072
  // The `beforeChange` hook could add a `null` for purpose of cancelling some dataset's change.
44077
44073
  const filteredChanges = changes.filter(change => change !== null);
44078
44074
  if (beforeChangeResult === false || filteredChanges.length === 0) {
44079
- if (activeEditor) {
44080
- activeEditor.cancelChanges();
44081
- }
44075
+ var _instance$getActiveEd;
44076
+ (_instance$getActiveEd = instance.getActiveEditor()) === null || _instance$getActiveEd === void 0 || _instance$getActiveEd.cancelChanges();
44082
44077
  return [];
44083
44078
  }
44079
+ for (let i = filteredChanges.length - 1; i >= 0; i--) {
44080
+ const [row, prop,, newValue] = filteredChanges[i];
44081
+ const visualColumn = datamap.propToCol(prop);
44082
+ let cellProperties;
44083
+ if (Number.isInteger(visualColumn)) {
44084
+ cellProperties = instance.getCellMeta(row, visualColumn);
44085
+ } else {
44086
+ // If there's no requested visual column, we can use the table meta as the cell properties
44087
+ cellProperties = {
44088
+ ...Object.getPrototypeOf(tableMeta),
44089
+ ...tableMeta
44090
+ };
44091
+ }
44092
+ if (cellProperties.type === 'numeric' && typeof newValue === 'string' && (0, _number.isNumericLike)(newValue)) {
44093
+ filteredChanges[i][3] = getParsedNumber(newValue);
44094
+ }
44095
+ }
44084
44096
  return filteredChanges;
44085
44097
  }
44086
44098
 
@@ -53961,7 +53973,7 @@ const domMessages = {
53961
53973
  function _injectProductInfo(key, element) {
53962
53974
  const hasValidType = !isEmpty(key);
53963
53975
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53964
- const hotVersion = "0.0.0-next-98f6377-20250108";
53976
+ const hotVersion = "0.0.0-next-514c2a4-20250109";
53965
53977
  let keyValidityDate;
53966
53978
  let consoleMessageState = 'invalid';
53967
53979
  let domMessageState = 'invalid';
@@ -67187,7 +67199,7 @@ function _focusCell() {
67187
67199
  */
67188
67200
  function _focusEditorElement() {
67189
67201
  _assertClassBrand(_FocusManager_brand, this, _getSelectedCell).call(this, selectedCell => {
67190
- if (this.getFocusMode() === FOCUS_MODES.MIXED && selectedCell.nodeName === 'TD') {
67202
+ if (this.getFocusMode() === FOCUS_MODES.MIXED && (selectedCell === null || selectedCell === void 0 ? void 0 : selectedCell.nodeName) === 'TD') {
67191
67203
  this.refocusToEditorTextarea();
67192
67204
  }
67193
67205
  });
@@ -96299,8 +96311,9 @@ __webpack_require__(303);
96299
96311
  __webpack_require__(305);
96300
96312
  __webpack_require__(307);
96301
96313
  __webpack_require__(309);
96314
+ __webpack_require__(311);
96315
+ __webpack_require__(323);
96302
96316
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(504));
96303
- var _array = __webpack_require__(495);
96304
96317
  var _utils = __webpack_require__(674);
96305
96318
  /* eslint-disable jsdoc/require-description-complete-sentence */
96306
96319
  /**
@@ -96495,7 +96508,7 @@ class LazyFactoryMap {
96495
96508
  * new data.
96496
96509
  *
96497
96510
  * @param {number} key The key as volatile zero-based index at which to begin inserting space for new data.
96498
- * @param {number} [amount=1] Ammount of data to insert.
96511
+ * @param {number} [amount=1] Amount of data to insert.
96499
96512
  */
96500
96513
  insert(key) {
96501
96514
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -96514,7 +96527,7 @@ class LazyFactoryMap {
96514
96527
  * Removes (soft remove) data from "index" and according to the amount of data.
96515
96528
  *
96516
96529
  * @param {number} key The key as volatile zero-based index at which to begin removing the data.
96517
- * @param {number} [amount=1] Ammount data to remove.
96530
+ * @param {number} [amount=1] Amount data to remove.
96518
96531
  */
96519
96532
  remove(key) {
96520
96533
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -96543,7 +96556,9 @@ class LazyFactoryMap {
96543
96556
  * @returns {Iterator}
96544
96557
  */
96545
96558
  values() {
96546
- return (0, _array.arrayFilter)(this.data, (_, index) => !this.holes.has(index))[Symbol.iterator]();
96559
+ return this.data.filter((meta, index) => {
96560
+ return meta !== undefined && !this.holes.has(index);
96561
+ })[Symbol.iterator]();
96547
96562
  }
96548
96563
 
96549
96564
  /**
@@ -96555,7 +96570,7 @@ class LazyFactoryMap {
96555
96570
  const validEntries = [];
96556
96571
  for (let i = 0; i < this.data.length; i++) {
96557
96572
  const keyIndex = this._getKeyByStorageIndex(i);
96558
- if (keyIndex !== -1) {
96573
+ if (keyIndex !== -1 && this.data[i] !== undefined) {
96559
96574
  validEntries.push([keyIndex, this.data[i]]);
96560
96575
  }
96561
96576
  }
@@ -134980,9 +134995,7 @@ class HiddenColumns extends _base.BasePlugin {
134980
134995
  */
134981
134996
  resetCellsMeta() {
134982
134997
  (0, _array.arrayEach)(this.hot.getCellsMeta(), meta => {
134983
- if (meta) {
134984
- meta.skipColumnOnPaste = false;
134985
- }
134998
+ meta.skipColumnOnPaste = false;
134986
134999
  });
134987
135000
  }
134988
135001
  /**
@@ -135668,9 +135681,7 @@ class HiddenRows extends _base.BasePlugin {
135668
135681
  */
135669
135682
  resetCellsMeta() {
135670
135683
  (0, _array.arrayEach)(this.hot.getCellsMeta(), meta => {
135671
- if (meta) {
135672
- meta.skipRowOnPaste = false;
135673
- }
135684
+ meta.skipRowOnPaste = false;
135674
135685
  });
135675
135686
  }
135676
135687
  /**
@@ -26,8 +26,8 @@
26
26
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
27
27
  * USE OR INABILITY TO USE THIS SOFTWARE.
28
28
  *
29
- * Version: 0.0.0-next-98f6377-20250108
30
- * Release date: 16/12/2024 (built at 08/01/2025 06:32:39)
29
+ * Version: 0.0.0-next-514c2a4-20250109
30
+ * Release date: 16/12/2024 (built at 09/01/2025 06:47:15)
31
31
  */.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{position:relative;width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;position:relative;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;box-sizing:border-box!important;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{position:absolute;select{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;box-sizing:border-box!important;height:100%;width:100%}}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{display:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr td,.handsontable.htGhostTable table tbody tr th{border-top-width:0}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:"";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}
32
32
  /*!
33
33
  * Handsontable ContextMenu