handsontable 0.0.0-next-d9b3885-20250415 → 0.0.0-next-723ad8c-20250417
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.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/hooks/constants.js +0 -258
- package/core/hooks/constants.mjs +0 -258
- package/core.js +38 -68
- package/core.mjs +38 -68
- package/dataMap/metaManager/metaSchema.js +0 -27
- package/dataMap/metaManager/metaSchema.mjs +0 -27
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +3609 -4538
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +4 -4
- package/dist/handsontable.js +3329 -4258
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +5 -5
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/autoColumnSize/autoColumnSize.js +0 -47
- package/plugins/autoColumnSize/autoColumnSize.mjs +0 -47
- package/plugins/autoRowSize/autoRowSize.js +0 -45
- package/plugins/autoRowSize/autoRowSize.mjs +0 -45
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +0 -13
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +0 -13
- package/plugins/collapsibleColumns/collapsibleColumns.js +0 -31
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +0 -31
- package/plugins/columnSummary/columnSummary.js +0 -33
- package/plugins/columnSummary/columnSummary.mjs +0 -33
- package/plugins/comments/comments.js +0 -53
- package/plugins/comments/comments.mjs +0 -53
- package/plugins/dropdownMenu/dropdownMenu.js +0 -15
- package/plugins/dropdownMenu/dropdownMenu.mjs +0 -15
- package/plugins/exportFile/exportFile.js +0 -58
- package/plugins/exportFile/exportFile.mjs +0 -58
- package/plugins/filters/filters.js +0 -74
- package/plugins/filters/filters.mjs +0 -74
- package/plugins/hiddenColumns/hiddenColumns.js +0 -64
- package/plugins/hiddenColumns/hiddenColumns.mjs +0 -64
- package/plugins/hiddenRows/hiddenRows.js +0 -64
- package/plugins/hiddenRows/hiddenRows.mjs +0 -64
- package/plugins/mergeCells/mergeCells.js +0 -18
- package/plugins/mergeCells/mergeCells.mjs +0 -18
- package/plugins/nestedHeaders/nestedHeaders.js +0 -25
- package/plugins/nestedHeaders/nestedHeaders.mjs +0 -25
- package/plugins/stretchColumns/stretchColumns.js +0 -13
- package/plugins/stretchColumns/stretchColumns.mjs +0 -13
- package/plugins/trimRows/trimRows.js +0 -61
- package/plugins/trimRows/trimRows.mjs +0 -61
- package/styles/handsontable.css +2 -2
- package/styles/handsontable.min.css +2 -2
- package/styles/ht-theme-horizon.css +2 -2
- package/styles/ht-theme-horizon.min.css +2 -2
- package/styles/ht-theme-main.css +2 -2
- package/styles/ht-theme-main.min.css +2 -2
package/core.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.default = Core;
|
|
5
5
|
require("core-js/modules/es.error.cause.js");
|
|
6
6
|
require("core-js/modules/es.array.push.js");
|
|
7
|
+
require("core-js/modules/es.object.from-entries.js");
|
|
7
8
|
require("core-js/modules/es.set.difference.v2.js");
|
|
8
9
|
require("core-js/modules/es.set.intersection.v2.js");
|
|
9
10
|
require("core-js/modules/es.set.is-disjoint-from.v2.js");
|
|
@@ -84,12 +85,6 @@ const deprecationWarns = new Set();
|
|
|
84
85
|
* by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods/react-methods.md) page).
|
|
85
86
|
* :::
|
|
86
87
|
*
|
|
87
|
-
* ::: only-for angular
|
|
88
|
-
* To use these methods, associate a Handsontable instance with your instance
|
|
89
|
-
* of the [`HotTable` component](@/guides/getting-started/installation/installation.md#5-use-the-hottable-component),
|
|
90
|
-
* by using `@ViewChild` decorator (read more on the [Instance access](@/guides/getting-started/angular-hot-instance/angular-hot-instance.md) page).
|
|
91
|
-
* :::
|
|
92
|
-
*
|
|
93
88
|
* ## How to call a method
|
|
94
89
|
*
|
|
95
90
|
* ::: only-for javascript
|
|
@@ -120,39 +115,6 @@ const deprecationWarns = new Set();
|
|
|
120
115
|
* ```
|
|
121
116
|
* :::
|
|
122
117
|
*
|
|
123
|
-
* ::: only-for angular
|
|
124
|
-
* ```ts
|
|
125
|
-
* import { Component, ViewChild, AfterViewInit } from "@angular/core";
|
|
126
|
-
* import {
|
|
127
|
-
* GridSettings,
|
|
128
|
-
* HotTableComponent,
|
|
129
|
-
* HotTableModule,
|
|
130
|
-
* } from "@handsontable/angular-wrapper";
|
|
131
|
-
*
|
|
132
|
-
* `@Component`({
|
|
133
|
-
* standalone: true,
|
|
134
|
-
* imports: [HotTableModule],
|
|
135
|
-
* template: ` <div class="ht-theme-main">
|
|
136
|
-
* <hot-table [settings]="gridSettings" />
|
|
137
|
-
* </div>`,
|
|
138
|
-
* })
|
|
139
|
-
* export class ExampleComponent implements AfterViewInit {
|
|
140
|
-
* `@ViewChild`(HotTableComponent, { static: false })
|
|
141
|
-
* readonly hotTable!: HotTableComponent;
|
|
142
|
-
*
|
|
143
|
-
* readonly gridSettings = <GridSettings>{
|
|
144
|
-
* columns: [{}],
|
|
145
|
-
* };
|
|
146
|
-
*
|
|
147
|
-
* ngAfterViewInit(): void {
|
|
148
|
-
* // Access the Handsontable instance
|
|
149
|
-
* // Call a method
|
|
150
|
-
* this.hotTable?.hotInstance?.setDataAtCell(0, 0, "new value");
|
|
151
|
-
* }
|
|
152
|
-
* }
|
|
153
|
-
* ```
|
|
154
|
-
* :::
|
|
155
|
-
*
|
|
156
118
|
* @param {HTMLElement} rootElement The element to which the Handsontable instance is injected.
|
|
157
119
|
* @param {object} userSettings The user defined options.
|
|
158
120
|
* @param {boolean} [rootInstanceSymbol=false] Indicates if the instance is root of all later instances created.
|
|
@@ -265,7 +227,11 @@ function Core(rootElement, userSettings) {
|
|
|
265
227
|
return instance.isLtr() ? 1 : -1;
|
|
266
228
|
};
|
|
267
229
|
userSettings.language = (0, _registry5.getValidLanguageCode)(userSettings.language);
|
|
268
|
-
const
|
|
230
|
+
const settingsWithoutHooks = Object.fromEntries(Object.entries(userSettings).filter(_ref => {
|
|
231
|
+
let [key] = _ref;
|
|
232
|
+
return !(_hooks.Hooks.getSingleton().isRegistered(key) || _hooks.Hooks.getSingleton().isDeprecated(key));
|
|
233
|
+
}));
|
|
234
|
+
const metaManager = new _dataMap.MetaManager(instance, settingsWithoutHooks, [_dataMap.DynamicCellMetaMod, _dataMap.ExtendMetaPropertiesMod]);
|
|
269
235
|
const tableMeta = metaManager.getTableMeta();
|
|
270
236
|
const globalMeta = metaManager.getGlobalMeta();
|
|
271
237
|
const pluginsRegistry = (0, _uniqueMap.createUniqueMap)();
|
|
@@ -379,10 +345,10 @@ function Core(rootElement, userSettings) {
|
|
|
379
345
|
}
|
|
380
346
|
});
|
|
381
347
|
this.selection = selection;
|
|
382
|
-
const onIndexMapperCacheUpdate =
|
|
348
|
+
const onIndexMapperCacheUpdate = _ref2 => {
|
|
383
349
|
let {
|
|
384
350
|
hiddenIndexesChanged
|
|
385
|
-
} =
|
|
351
|
+
} = _ref2;
|
|
386
352
|
this.forceFullRender = true;
|
|
387
353
|
if (hiddenIndexesChanged) {
|
|
388
354
|
this.selection.commit();
|
|
@@ -562,9 +528,9 @@ function Core(rootElement, userSettings) {
|
|
|
562
528
|
const sortedIndexes = [...indexes];
|
|
563
529
|
|
|
564
530
|
// Sort the indexes in ascending order.
|
|
565
|
-
sortedIndexes.sort((
|
|
566
|
-
let [indexA] =
|
|
567
|
-
let [indexB] =
|
|
531
|
+
sortedIndexes.sort((_ref3, _ref4) => {
|
|
532
|
+
let [indexA] = _ref3;
|
|
533
|
+
let [indexB] = _ref4;
|
|
568
534
|
if (indexA === indexB) {
|
|
569
535
|
return 0;
|
|
570
536
|
}
|
|
@@ -572,8 +538,8 @@ function Core(rootElement, userSettings) {
|
|
|
572
538
|
});
|
|
573
539
|
|
|
574
540
|
// Normalize the {index, amount} groups into bigger groups.
|
|
575
|
-
const normalizedIndexes = (0, _array.arrayReduce)(sortedIndexes, (acc,
|
|
576
|
-
let [groupIndex, groupAmount] =
|
|
541
|
+
const normalizedIndexes = (0, _array.arrayReduce)(sortedIndexes, (acc, _ref5) => {
|
|
542
|
+
let [groupIndex, groupAmount] = _ref5;
|
|
577
543
|
const previousItem = acc[acc.length - 1];
|
|
578
544
|
const [prevIndex, prevAmount] = previousItem;
|
|
579
545
|
const prevLastIndex = prevIndex + prevAmount;
|
|
@@ -641,8 +607,8 @@ function Core(rootElement, userSettings) {
|
|
|
641
607
|
let offset = 0;
|
|
642
608
|
|
|
643
609
|
// Normalize the {index, amount} groups into bigger groups.
|
|
644
|
-
(0, _array.arrayEach)(indexes,
|
|
645
|
-
let [groupIndex, groupAmount] =
|
|
610
|
+
(0, _array.arrayEach)(indexes, _ref6 => {
|
|
611
|
+
let [groupIndex, groupAmount] = _ref6;
|
|
646
612
|
const calcIndex = (0, _mixed.isEmpty)(groupIndex) ? instance.countRows() - 1 : Math.max(groupIndex - offset, 0);
|
|
647
613
|
|
|
648
614
|
// If the 'index' is an integer decrease it by 'offset' otherwise pass it through to make the value
|
|
@@ -696,8 +662,8 @@ function Core(rootElement, userSettings) {
|
|
|
696
662
|
let offset = 0;
|
|
697
663
|
|
|
698
664
|
// Normalize the {index, amount} groups into bigger groups.
|
|
699
|
-
(0, _array.arrayEach)(indexes,
|
|
700
|
-
let [groupIndex, groupAmount] =
|
|
665
|
+
(0, _array.arrayEach)(indexes, _ref7 => {
|
|
666
|
+
let [groupIndex, groupAmount] = _ref7;
|
|
701
667
|
const calcIndex = (0, _mixed.isEmpty)(groupIndex) ? instance.countCols() - 1 : Math.max(groupIndex - offset, 0);
|
|
702
668
|
let physicalColumnIndex = instance.toPhysicalColumn(calcIndex);
|
|
703
669
|
|
|
@@ -1075,7 +1041,7 @@ function Core(rootElement, userSettings) {
|
|
|
1075
1041
|
if ((0, _browser.isMobileBrowser)() || (0, _browser.isIpadOS)()) {
|
|
1076
1042
|
(0, _element.addClass)(instance.rootElement, 'mobile');
|
|
1077
1043
|
}
|
|
1078
|
-
this.updateSettings(
|
|
1044
|
+
this.updateSettings(userSettings, true);
|
|
1079
1045
|
this.view = new _tableView.default(this);
|
|
1080
1046
|
const themeName = tableMeta.themeName || (0, _themes.getThemeClassName)(instance.rootElement);
|
|
1081
1047
|
|
|
@@ -1666,11 +1632,11 @@ function Core(rootElement, userSettings) {
|
|
|
1666
1632
|
this.getSelected = function () {
|
|
1667
1633
|
// https://github.com/handsontable/handsontable/issues/44 //cjl
|
|
1668
1634
|
if (selection.isSelected()) {
|
|
1669
|
-
return (0, _array.arrayMap)(selection.getSelectedRange(),
|
|
1635
|
+
return (0, _array.arrayMap)(selection.getSelectedRange(), _ref8 => {
|
|
1670
1636
|
let {
|
|
1671
1637
|
from,
|
|
1672
1638
|
to
|
|
1673
|
-
} =
|
|
1639
|
+
} = _ref8;
|
|
1674
1640
|
return [from.row, from.col, to.row, to.col];
|
|
1675
1641
|
});
|
|
1676
1642
|
}
|
|
@@ -2354,23 +2320,27 @@ function Core(rootElement, userSettings) {
|
|
|
2354
2320
|
if ((0, _mixed.isDefined)(settings.ganttChart)) {
|
|
2355
2321
|
throw new Error('Since 8.0.0 the "ganttChart" setting is no longer supported.');
|
|
2356
2322
|
}
|
|
2323
|
+
if (settings.language) {
|
|
2324
|
+
setLanguage(settings.language);
|
|
2325
|
+
}
|
|
2357
2326
|
|
|
2358
2327
|
// eslint-disable-next-line no-restricted-syntax
|
|
2359
2328
|
for (i in settings) {
|
|
2360
|
-
if (i === 'data') {
|
|
2361
|
-
// Do nothing. loadData will be triggered later
|
|
2362
|
-
} else if (i === 'language') {
|
|
2363
|
-
setLanguage(settings.language);
|
|
2329
|
+
if (i === 'data' || i === 'language') {
|
|
2330
|
+
// Do nothing. loadData and language change will be triggered later
|
|
2364
2331
|
} else if (i === 'className') {
|
|
2365
2332
|
setClassName('className', settings.className);
|
|
2366
2333
|
} else if (i === 'tableClassName' && instance.table) {
|
|
2367
2334
|
setClassName('tableClassName', settings.tableClassName);
|
|
2368
2335
|
instance.view._wt.wtOverlays.syncOverlayTableClassNames();
|
|
2369
2336
|
} else if (_hooks.Hooks.getSingleton().isRegistered(i) || _hooks.Hooks.getSingleton().isDeprecated(i)) {
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2337
|
+
const hook = settings[i];
|
|
2338
|
+
if ((0, _function.isFunction)(hook)) {
|
|
2339
|
+
_hooks.Hooks.getSingleton().addAsFixed(i, hook, instance);
|
|
2340
|
+
tableMeta[i] = hook;
|
|
2341
|
+
} else if (Array.isArray(hook)) {
|
|
2342
|
+
_hooks.Hooks.getSingleton().add(i, hook, instance);
|
|
2343
|
+
tableMeta[i] = hook;
|
|
2374
2344
|
}
|
|
2375
2345
|
} else if (!init && (0, _object.hasOwnProperty)(settings, i)) {
|
|
2376
2346
|
// Update settings
|
|
@@ -2903,15 +2873,15 @@ function Core(rootElement, userSettings) {
|
|
|
2903
2873
|
const isThereAnySetSourceListener = this.hasHook('afterSetSourceDataAtCell');
|
|
2904
2874
|
const changesForHook = [];
|
|
2905
2875
|
if (isThereAnySetSourceListener) {
|
|
2906
|
-
(0, _array.arrayEach)(input,
|
|
2907
|
-
let [changeRow, changeProp, changeValue] =
|
|
2876
|
+
(0, _array.arrayEach)(input, _ref9 => {
|
|
2877
|
+
let [changeRow, changeProp, changeValue] = _ref9;
|
|
2908
2878
|
changesForHook.push([changeRow, changeProp, dataSource.getAtCell(changeRow, changeProp),
|
|
2909
2879
|
// The previous value.
|
|
2910
2880
|
changeValue]);
|
|
2911
2881
|
});
|
|
2912
2882
|
}
|
|
2913
|
-
(0, _array.arrayEach)(input,
|
|
2914
|
-
let [changeRow, changeProp, changeValue] =
|
|
2883
|
+
(0, _array.arrayEach)(input, _ref10 => {
|
|
2884
|
+
let [changeRow, changeProp, changeValue] = _ref10;
|
|
2915
2885
|
dataSource.setAtCell(changeRow, changeProp, changeValue);
|
|
2916
2886
|
});
|
|
2917
2887
|
if (isThereAnySetSourceListener) {
|
|
@@ -4264,8 +4234,8 @@ function Core(rootElement, userSettings) {
|
|
|
4264
4234
|
instance.batchExecution(() => {
|
|
4265
4235
|
instance.rowIndexMapper.unregisterAll();
|
|
4266
4236
|
instance.columnIndexMapper.unregisterAll();
|
|
4267
|
-
pluginsRegistry.getItems().forEach(
|
|
4268
|
-
let [, plugin] =
|
|
4237
|
+
pluginsRegistry.getItems().forEach(_ref11 => {
|
|
4238
|
+
let [, plugin] = _ref11;
|
|
4269
4239
|
plugin.destroy();
|
|
4270
4240
|
});
|
|
4271
4241
|
pluginsRegistry.clear();
|
package/core.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
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/es.object.from-entries.js";
|
|
3
4
|
import "core-js/modules/es.set.difference.v2.js";
|
|
4
5
|
import "core-js/modules/es.set.intersection.v2.js";
|
|
5
6
|
import "core-js/modules/es.set.is-disjoint-from.v2.js";
|
|
@@ -79,12 +80,6 @@ const deprecationWarns = new Set();
|
|
|
79
80
|
* by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods/react-methods.md) page).
|
|
80
81
|
* :::
|
|
81
82
|
*
|
|
82
|
-
* ::: only-for angular
|
|
83
|
-
* To use these methods, associate a Handsontable instance with your instance
|
|
84
|
-
* of the [`HotTable` component](@/guides/getting-started/installation/installation.md#5-use-the-hottable-component),
|
|
85
|
-
* by using `@ViewChild` decorator (read more on the [Instance access](@/guides/getting-started/angular-hot-instance/angular-hot-instance.md) page).
|
|
86
|
-
* :::
|
|
87
|
-
*
|
|
88
83
|
* ## How to call a method
|
|
89
84
|
*
|
|
90
85
|
* ::: only-for javascript
|
|
@@ -115,39 +110,6 @@ const deprecationWarns = new Set();
|
|
|
115
110
|
* ```
|
|
116
111
|
* :::
|
|
117
112
|
*
|
|
118
|
-
* ::: only-for angular
|
|
119
|
-
* ```ts
|
|
120
|
-
* import { Component, ViewChild, AfterViewInit } from "@angular/core";
|
|
121
|
-
* import {
|
|
122
|
-
* GridSettings,
|
|
123
|
-
* HotTableComponent,
|
|
124
|
-
* HotTableModule,
|
|
125
|
-
* } from "@handsontable/angular-wrapper";
|
|
126
|
-
*
|
|
127
|
-
* `@Component`({
|
|
128
|
-
* standalone: true,
|
|
129
|
-
* imports: [HotTableModule],
|
|
130
|
-
* template: ` <div class="ht-theme-main">
|
|
131
|
-
* <hot-table [settings]="gridSettings" />
|
|
132
|
-
* </div>`,
|
|
133
|
-
* })
|
|
134
|
-
* export class ExampleComponent implements AfterViewInit {
|
|
135
|
-
* `@ViewChild`(HotTableComponent, { static: false })
|
|
136
|
-
* readonly hotTable!: HotTableComponent;
|
|
137
|
-
*
|
|
138
|
-
* readonly gridSettings = <GridSettings>{
|
|
139
|
-
* columns: [{}],
|
|
140
|
-
* };
|
|
141
|
-
*
|
|
142
|
-
* ngAfterViewInit(): void {
|
|
143
|
-
* // Access the Handsontable instance
|
|
144
|
-
* // Call a method
|
|
145
|
-
* this.hotTable?.hotInstance?.setDataAtCell(0, 0, "new value");
|
|
146
|
-
* }
|
|
147
|
-
* }
|
|
148
|
-
* ```
|
|
149
|
-
* :::
|
|
150
|
-
*
|
|
151
113
|
* @param {HTMLElement} rootElement The element to which the Handsontable instance is injected.
|
|
152
114
|
* @param {object} userSettings The user defined options.
|
|
153
115
|
* @param {boolean} [rootInstanceSymbol=false] Indicates if the instance is root of all later instances created.
|
|
@@ -260,7 +222,11 @@ export default function Core(rootElement, userSettings) {
|
|
|
260
222
|
return instance.isLtr() ? 1 : -1;
|
|
261
223
|
};
|
|
262
224
|
userSettings.language = getValidLanguageCode(userSettings.language);
|
|
263
|
-
const
|
|
225
|
+
const settingsWithoutHooks = Object.fromEntries(Object.entries(userSettings).filter(_ref => {
|
|
226
|
+
let [key] = _ref;
|
|
227
|
+
return !(Hooks.getSingleton().isRegistered(key) || Hooks.getSingleton().isDeprecated(key));
|
|
228
|
+
}));
|
|
229
|
+
const metaManager = new MetaManager(instance, settingsWithoutHooks, [DynamicCellMetaMod, ExtendMetaPropertiesMod]);
|
|
264
230
|
const tableMeta = metaManager.getTableMeta();
|
|
265
231
|
const globalMeta = metaManager.getGlobalMeta();
|
|
266
232
|
const pluginsRegistry = createUniqueMap();
|
|
@@ -374,10 +340,10 @@ export default function Core(rootElement, userSettings) {
|
|
|
374
340
|
}
|
|
375
341
|
});
|
|
376
342
|
this.selection = selection;
|
|
377
|
-
const onIndexMapperCacheUpdate =
|
|
343
|
+
const onIndexMapperCacheUpdate = _ref2 => {
|
|
378
344
|
let {
|
|
379
345
|
hiddenIndexesChanged
|
|
380
|
-
} =
|
|
346
|
+
} = _ref2;
|
|
381
347
|
this.forceFullRender = true;
|
|
382
348
|
if (hiddenIndexesChanged) {
|
|
383
349
|
this.selection.commit();
|
|
@@ -557,9 +523,9 @@ export default function Core(rootElement, userSettings) {
|
|
|
557
523
|
const sortedIndexes = [...indexes];
|
|
558
524
|
|
|
559
525
|
// Sort the indexes in ascending order.
|
|
560
|
-
sortedIndexes.sort((
|
|
561
|
-
let [indexA] =
|
|
562
|
-
let [indexB] =
|
|
526
|
+
sortedIndexes.sort((_ref3, _ref4) => {
|
|
527
|
+
let [indexA] = _ref3;
|
|
528
|
+
let [indexB] = _ref4;
|
|
563
529
|
if (indexA === indexB) {
|
|
564
530
|
return 0;
|
|
565
531
|
}
|
|
@@ -567,8 +533,8 @@ export default function Core(rootElement, userSettings) {
|
|
|
567
533
|
});
|
|
568
534
|
|
|
569
535
|
// Normalize the {index, amount} groups into bigger groups.
|
|
570
|
-
const normalizedIndexes = arrayReduce(sortedIndexes, (acc,
|
|
571
|
-
let [groupIndex, groupAmount] =
|
|
536
|
+
const normalizedIndexes = arrayReduce(sortedIndexes, (acc, _ref5) => {
|
|
537
|
+
let [groupIndex, groupAmount] = _ref5;
|
|
572
538
|
const previousItem = acc[acc.length - 1];
|
|
573
539
|
const [prevIndex, prevAmount] = previousItem;
|
|
574
540
|
const prevLastIndex = prevIndex + prevAmount;
|
|
@@ -636,8 +602,8 @@ export default function Core(rootElement, userSettings) {
|
|
|
636
602
|
let offset = 0;
|
|
637
603
|
|
|
638
604
|
// Normalize the {index, amount} groups into bigger groups.
|
|
639
|
-
arrayEach(indexes,
|
|
640
|
-
let [groupIndex, groupAmount] =
|
|
605
|
+
arrayEach(indexes, _ref6 => {
|
|
606
|
+
let [groupIndex, groupAmount] = _ref6;
|
|
641
607
|
const calcIndex = isEmpty(groupIndex) ? instance.countRows() - 1 : Math.max(groupIndex - offset, 0);
|
|
642
608
|
|
|
643
609
|
// If the 'index' is an integer decrease it by 'offset' otherwise pass it through to make the value
|
|
@@ -691,8 +657,8 @@ export default function Core(rootElement, userSettings) {
|
|
|
691
657
|
let offset = 0;
|
|
692
658
|
|
|
693
659
|
// Normalize the {index, amount} groups into bigger groups.
|
|
694
|
-
arrayEach(indexes,
|
|
695
|
-
let [groupIndex, groupAmount] =
|
|
660
|
+
arrayEach(indexes, _ref7 => {
|
|
661
|
+
let [groupIndex, groupAmount] = _ref7;
|
|
696
662
|
const calcIndex = isEmpty(groupIndex) ? instance.countCols() - 1 : Math.max(groupIndex - offset, 0);
|
|
697
663
|
let physicalColumnIndex = instance.toPhysicalColumn(calcIndex);
|
|
698
664
|
|
|
@@ -1070,7 +1036,7 @@ export default function Core(rootElement, userSettings) {
|
|
|
1070
1036
|
if (isMobileBrowser() || isIpadOS()) {
|
|
1071
1037
|
addClass(instance.rootElement, 'mobile');
|
|
1072
1038
|
}
|
|
1073
|
-
this.updateSettings(
|
|
1039
|
+
this.updateSettings(userSettings, true);
|
|
1074
1040
|
this.view = new TableView(this);
|
|
1075
1041
|
const themeName = tableMeta.themeName || getThemeClassName(instance.rootElement);
|
|
1076
1042
|
|
|
@@ -1661,11 +1627,11 @@ export default function Core(rootElement, userSettings) {
|
|
|
1661
1627
|
this.getSelected = function () {
|
|
1662
1628
|
// https://github.com/handsontable/handsontable/issues/44 //cjl
|
|
1663
1629
|
if (selection.isSelected()) {
|
|
1664
|
-
return arrayMap(selection.getSelectedRange(),
|
|
1630
|
+
return arrayMap(selection.getSelectedRange(), _ref8 => {
|
|
1665
1631
|
let {
|
|
1666
1632
|
from,
|
|
1667
1633
|
to
|
|
1668
|
-
} =
|
|
1634
|
+
} = _ref8;
|
|
1669
1635
|
return [from.row, from.col, to.row, to.col];
|
|
1670
1636
|
});
|
|
1671
1637
|
}
|
|
@@ -2349,23 +2315,27 @@ export default function Core(rootElement, userSettings) {
|
|
|
2349
2315
|
if (isDefined(settings.ganttChart)) {
|
|
2350
2316
|
throw new Error('Since 8.0.0 the "ganttChart" setting is no longer supported.');
|
|
2351
2317
|
}
|
|
2318
|
+
if (settings.language) {
|
|
2319
|
+
setLanguage(settings.language);
|
|
2320
|
+
}
|
|
2352
2321
|
|
|
2353
2322
|
// eslint-disable-next-line no-restricted-syntax
|
|
2354
2323
|
for (i in settings) {
|
|
2355
|
-
if (i === 'data') {
|
|
2356
|
-
// Do nothing. loadData will be triggered later
|
|
2357
|
-
} else if (i === 'language') {
|
|
2358
|
-
setLanguage(settings.language);
|
|
2324
|
+
if (i === 'data' || i === 'language') {
|
|
2325
|
+
// Do nothing. loadData and language change will be triggered later
|
|
2359
2326
|
} else if (i === 'className') {
|
|
2360
2327
|
setClassName('className', settings.className);
|
|
2361
2328
|
} else if (i === 'tableClassName' && instance.table) {
|
|
2362
2329
|
setClassName('tableClassName', settings.tableClassName);
|
|
2363
2330
|
instance.view._wt.wtOverlays.syncOverlayTableClassNames();
|
|
2364
2331
|
} else if (Hooks.getSingleton().isRegistered(i) || Hooks.getSingleton().isDeprecated(i)) {
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2332
|
+
const hook = settings[i];
|
|
2333
|
+
if (isFunction(hook)) {
|
|
2334
|
+
Hooks.getSingleton().addAsFixed(i, hook, instance);
|
|
2335
|
+
tableMeta[i] = hook;
|
|
2336
|
+
} else if (Array.isArray(hook)) {
|
|
2337
|
+
Hooks.getSingleton().add(i, hook, instance);
|
|
2338
|
+
tableMeta[i] = hook;
|
|
2369
2339
|
}
|
|
2370
2340
|
} else if (!init && hasOwnProperty(settings, i)) {
|
|
2371
2341
|
// Update settings
|
|
@@ -2898,15 +2868,15 @@ export default function Core(rootElement, userSettings) {
|
|
|
2898
2868
|
const isThereAnySetSourceListener = this.hasHook('afterSetSourceDataAtCell');
|
|
2899
2869
|
const changesForHook = [];
|
|
2900
2870
|
if (isThereAnySetSourceListener) {
|
|
2901
|
-
arrayEach(input,
|
|
2902
|
-
let [changeRow, changeProp, changeValue] =
|
|
2871
|
+
arrayEach(input, _ref9 => {
|
|
2872
|
+
let [changeRow, changeProp, changeValue] = _ref9;
|
|
2903
2873
|
changesForHook.push([changeRow, changeProp, dataSource.getAtCell(changeRow, changeProp),
|
|
2904
2874
|
// The previous value.
|
|
2905
2875
|
changeValue]);
|
|
2906
2876
|
});
|
|
2907
2877
|
}
|
|
2908
|
-
arrayEach(input,
|
|
2909
|
-
let [changeRow, changeProp, changeValue] =
|
|
2878
|
+
arrayEach(input, _ref10 => {
|
|
2879
|
+
let [changeRow, changeProp, changeValue] = _ref10;
|
|
2910
2880
|
dataSource.setAtCell(changeRow, changeProp, changeValue);
|
|
2911
2881
|
});
|
|
2912
2882
|
if (isThereAnySetSourceListener) {
|
|
@@ -4259,8 +4229,8 @@ export default function Core(rootElement, userSettings) {
|
|
|
4259
4229
|
instance.batchExecution(() => {
|
|
4260
4230
|
instance.rowIndexMapper.unregisterAll();
|
|
4261
4231
|
instance.columnIndexMapper.unregisterAll();
|
|
4262
|
-
pluginsRegistry.getItems().forEach(
|
|
4263
|
-
let [, plugin] =
|
|
4232
|
+
pluginsRegistry.getItems().forEach(_ref11 => {
|
|
4233
|
+
let [, plugin] = _ref11;
|
|
4264
4234
|
plugin.destroy();
|
|
4265
4235
|
});
|
|
4266
4236
|
pluginsRegistry.clear();
|
|
@@ -83,33 +83,6 @@ var _object = require("../../helpers/object");
|
|
|
83
83
|
* ```
|
|
84
84
|
* :::
|
|
85
85
|
*
|
|
86
|
-
* ::: only-for angular
|
|
87
|
-
* ```ts
|
|
88
|
-
* settings = {
|
|
89
|
-
* data: [
|
|
90
|
-
* ["A1", "B1", "C1", "D1", "E1"],
|
|
91
|
-
* ["A2", "B2", "C2", "D2", "E2"],
|
|
92
|
-
* ["A3", "B3", "C3", "D3", "E3"],
|
|
93
|
-
* ["A4", "B4", "C4", "D4", "E4"],
|
|
94
|
-
* ["A5", "B5", "C5", "D5", "E5"],
|
|
95
|
-
* ],
|
|
96
|
-
* width: 400,
|
|
97
|
-
* height: 300,
|
|
98
|
-
* colHeaders: true,
|
|
99
|
-
* rowHeaders: true,
|
|
100
|
-
* customBorders: true,
|
|
101
|
-
* dropdownMenu: true,
|
|
102
|
-
* multiColumnSorting: true,
|
|
103
|
-
* filters: true,
|
|
104
|
-
* manualRowMove: true,
|
|
105
|
-
* };
|
|
106
|
-
* ```
|
|
107
|
-
*
|
|
108
|
-
* ```html
|
|
109
|
-
* <hot-table [settings]="settings" />
|
|
110
|
-
* ```
|
|
111
|
-
* :::
|
|
112
|
-
*
|
|
113
86
|
* Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:
|
|
114
87
|
* - [The entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options)
|
|
115
88
|
* - [Individual columns](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)
|
|
@@ -80,33 +80,6 @@ import { isObjectEqual } from "../../helpers/object.mjs";
|
|
|
80
80
|
* ```
|
|
81
81
|
* :::
|
|
82
82
|
*
|
|
83
|
-
* ::: only-for angular
|
|
84
|
-
* ```ts
|
|
85
|
-
* settings = {
|
|
86
|
-
* data: [
|
|
87
|
-
* ["A1", "B1", "C1", "D1", "E1"],
|
|
88
|
-
* ["A2", "B2", "C2", "D2", "E2"],
|
|
89
|
-
* ["A3", "B3", "C3", "D3", "E3"],
|
|
90
|
-
* ["A4", "B4", "C4", "D4", "E4"],
|
|
91
|
-
* ["A5", "B5", "C5", "D5", "E5"],
|
|
92
|
-
* ],
|
|
93
|
-
* width: 400,
|
|
94
|
-
* height: 300,
|
|
95
|
-
* colHeaders: true,
|
|
96
|
-
* rowHeaders: true,
|
|
97
|
-
* customBorders: true,
|
|
98
|
-
* dropdownMenu: true,
|
|
99
|
-
* multiColumnSorting: true,
|
|
100
|
-
* filters: true,
|
|
101
|
-
* manualRowMove: true,
|
|
102
|
-
* };
|
|
103
|
-
* ```
|
|
104
|
-
*
|
|
105
|
-
* ```html
|
|
106
|
-
* <hot-table [settings]="settings" />
|
|
107
|
-
* ```
|
|
108
|
-
* :::
|
|
109
|
-
*
|
|
110
83
|
* Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:
|
|
111
84
|
* - [The entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options)
|
|
112
85
|
* - [Individual columns](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)
|
package/dist/handsontable.css
CHANGED
|
@@ -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-
|
|
29
|
-
* Release date: 19/03/2025 (built at
|
|
28
|
+
* Version: 0.0.0-next-723ad8c-20250417
|
|
29
|
+
* Release date: 19/03/2025 (built at 17/04/2025 10:04:07)
|
|
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-
|
|
29
|
-
* Release date: 19/03/2025 (built at
|
|
28
|
+
* Version: 0.0.0-next-723ad8c-20250417
|
|
29
|
+
* Release date: 19/03/2025 (built at 17/04/2025 10:04:07)
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Fix for bootstrap styles
|