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.

Files changed (55) hide show
  1. package/base.js +2 -2
  2. package/base.mjs +2 -2
  3. package/core/hooks/constants.js +0 -258
  4. package/core/hooks/constants.mjs +0 -258
  5. package/core.js +38 -68
  6. package/core.mjs +38 -68
  7. package/dataMap/metaManager/metaSchema.js +0 -27
  8. package/dataMap/metaManager/metaSchema.mjs +0 -27
  9. package/dist/handsontable.css +2 -2
  10. package/dist/handsontable.full.css +2 -2
  11. package/dist/handsontable.full.js +3609 -4538
  12. package/dist/handsontable.full.min.css +2 -2
  13. package/dist/handsontable.full.min.js +4 -4
  14. package/dist/handsontable.js +3329 -4258
  15. package/dist/handsontable.min.css +2 -2
  16. package/dist/handsontable.min.js +5 -5
  17. package/helpers/mixed.js +1 -1
  18. package/helpers/mixed.mjs +1 -1
  19. package/package.json +1 -1
  20. package/plugins/autoColumnSize/autoColumnSize.js +0 -47
  21. package/plugins/autoColumnSize/autoColumnSize.mjs +0 -47
  22. package/plugins/autoRowSize/autoRowSize.js +0 -45
  23. package/plugins/autoRowSize/autoRowSize.mjs +0 -45
  24. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +0 -13
  25. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +0 -13
  26. package/plugins/collapsibleColumns/collapsibleColumns.js +0 -31
  27. package/plugins/collapsibleColumns/collapsibleColumns.mjs +0 -31
  28. package/plugins/columnSummary/columnSummary.js +0 -33
  29. package/plugins/columnSummary/columnSummary.mjs +0 -33
  30. package/plugins/comments/comments.js +0 -53
  31. package/plugins/comments/comments.mjs +0 -53
  32. package/plugins/dropdownMenu/dropdownMenu.js +0 -15
  33. package/plugins/dropdownMenu/dropdownMenu.mjs +0 -15
  34. package/plugins/exportFile/exportFile.js +0 -58
  35. package/plugins/exportFile/exportFile.mjs +0 -58
  36. package/plugins/filters/filters.js +0 -74
  37. package/plugins/filters/filters.mjs +0 -74
  38. package/plugins/hiddenColumns/hiddenColumns.js +0 -64
  39. package/plugins/hiddenColumns/hiddenColumns.mjs +0 -64
  40. package/plugins/hiddenRows/hiddenRows.js +0 -64
  41. package/plugins/hiddenRows/hiddenRows.mjs +0 -64
  42. package/plugins/mergeCells/mergeCells.js +0 -18
  43. package/plugins/mergeCells/mergeCells.mjs +0 -18
  44. package/plugins/nestedHeaders/nestedHeaders.js +0 -25
  45. package/plugins/nestedHeaders/nestedHeaders.mjs +0 -25
  46. package/plugins/stretchColumns/stretchColumns.js +0 -13
  47. package/plugins/stretchColumns/stretchColumns.mjs +0 -13
  48. package/plugins/trimRows/trimRows.js +0 -61
  49. package/plugins/trimRows/trimRows.mjs +0 -61
  50. package/styles/handsontable.css +2 -2
  51. package/styles/handsontable.min.css +2 -2
  52. package/styles/ht-theme-horizon.css +2 -2
  53. package/styles/ht-theme-horizon.min.css +2 -2
  54. package/styles/ht-theme-main.css +2 -2
  55. 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 metaManager = new _dataMap.MetaManager(instance, userSettings, [_dataMap.DynamicCellMetaMod, _dataMap.ExtendMetaPropertiesMod]);
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 = _ref => {
348
+ const onIndexMapperCacheUpdate = _ref2 => {
383
349
  let {
384
350
  hiddenIndexesChanged
385
- } = _ref;
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((_ref2, _ref3) => {
566
- let [indexA] = _ref2;
567
- let [indexB] = _ref3;
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, _ref4) => {
576
- let [groupIndex, groupAmount] = _ref4;
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, _ref5 => {
645
- let [groupIndex, groupAmount] = _ref5;
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, _ref6 => {
700
- let [groupIndex, groupAmount] = _ref6;
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(tableMeta, true);
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(), _ref7 => {
1635
+ return (0, _array.arrayMap)(selection.getSelectedRange(), _ref8 => {
1670
1636
  let {
1671
1637
  from,
1672
1638
  to
1673
- } = _ref7;
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
- if ((0, _function.isFunction)(settings[i])) {
2371
- _hooks.Hooks.getSingleton().addAsFixed(i, settings[i], instance);
2372
- } else if (Array.isArray(settings[i])) {
2373
- _hooks.Hooks.getSingleton().add(i, settings[i], instance);
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, _ref8 => {
2907
- let [changeRow, changeProp, changeValue] = _ref8;
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, _ref9 => {
2914
- let [changeRow, changeProp, changeValue] = _ref9;
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(_ref10 => {
4268
- let [, plugin] = _ref10;
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 metaManager = new MetaManager(instance, userSettings, [DynamicCellMetaMod, ExtendMetaPropertiesMod]);
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 = _ref => {
343
+ const onIndexMapperCacheUpdate = _ref2 => {
378
344
  let {
379
345
  hiddenIndexesChanged
380
- } = _ref;
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((_ref2, _ref3) => {
561
- let [indexA] = _ref2;
562
- let [indexB] = _ref3;
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, _ref4) => {
571
- let [groupIndex, groupAmount] = _ref4;
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, _ref5 => {
640
- let [groupIndex, groupAmount] = _ref5;
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, _ref6 => {
695
- let [groupIndex, groupAmount] = _ref6;
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(tableMeta, true);
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(), _ref7 => {
1630
+ return arrayMap(selection.getSelectedRange(), _ref8 => {
1665
1631
  let {
1666
1632
  from,
1667
1633
  to
1668
- } = _ref7;
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
- if (isFunction(settings[i])) {
2366
- Hooks.getSingleton().addAsFixed(i, settings[i], instance);
2367
- } else if (Array.isArray(settings[i])) {
2368
- Hooks.getSingleton().add(i, settings[i], instance);
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, _ref8 => {
2902
- let [changeRow, changeProp, changeValue] = _ref8;
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, _ref9 => {
2909
- let [changeRow, changeProp, changeValue] = _ref9;
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(_ref10 => {
4263
- let [, plugin] = _ref10;
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)
@@ -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-d9b3885-20250415
29
- * Release date: 19/03/2025 (built at 15/04/2025 10:07:06)
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-d9b3885-20250415
29
- * Release date: 19/03/2025 (built at 15/04/2025 10:07:06)
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