handsontable 14.0.0-next-c080457-20231107 → 14.0.0-next-7ee54cb-20231108
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.
- package/3rdparty/SheetClip/SheetClip.js +2 -2
- package/3rdparty/SheetClip/SheetClip.mjs +2 -2
- package/3rdparty/autoResize/autoResize.js +2 -2
- package/3rdparty/autoResize/autoResize.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
- package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
- package/3rdparty/walkontable/src/cell/coords.js +7 -5
- package/3rdparty/walkontable/src/cell/coords.mjs +7 -5
- package/3rdparty/walkontable/src/core/clone.js +6 -0
- package/3rdparty/walkontable/src/core/clone.mjs +6 -0
- package/3rdparty/walkontable/src/event.js +125 -74
- package/3rdparty/walkontable/src/event.mjs +125 -74
- package/3rdparty/walkontable/src/filter/column.js +16 -0
- package/3rdparty/walkontable/src/filter/column.mjs +16 -0
- package/3rdparty/walkontable/src/filter/row.js +16 -0
- package/3rdparty/walkontable/src/filter/row.mjs +16 -0
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/_base.js +12 -5
- package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
- package/3rdparty/walkontable/src/renderer/cells.js +6 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rows.js +5 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/table.js +24 -17
- package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
- package/3rdparty/walkontable/src/scroll.js +2 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -2
- package/3rdparty/walkontable/src/selection/border/border.js +1 -1
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +10 -10
- package/3rdparty/walkontable/src/settings.mjs +10 -10
- package/3rdparty/walkontable/src/table.js +3 -3
- package/3rdparty/walkontable/src/table.mjs +3 -3
- package/3rdparty/walkontable/src/utils/column.js +19 -4
- package/3rdparty/walkontable/src/utils/column.mjs +19 -4
- package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
- package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
- package/3rdparty/walkontable/src/utils/row.js +14 -2
- package/3rdparty/walkontable/src/utils/row.mjs +14 -2
- package/3rdparty/walkontable/src/viewport.js +9 -9
- package/3rdparty/walkontable/src/viewport.mjs +9 -9
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +25 -25
- package/core.mjs +25 -25
- package/dataMap/dataMap.js +99 -90
- package/dataMap/dataMap.mjs +99 -90
- package/dataMap/dataSource.js +14 -8
- package/dataMap/dataSource.mjs +14 -8
- package/dataMap/metaManager/lazyFactoryMap.js +19 -7
- package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
- package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
- package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
- package/dataMap/metaManager/metaSchema.js +55 -55
- package/dataMap/metaManager/metaSchema.mjs +55 -55
- package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
- package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
- package/dataMap/metaManager/utils.js +2 -2
- package/dataMap/metaManager/utils.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +7330 -6389
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +154 -154
- package/dist/handsontable.js +7329 -6388
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +28 -28
- package/editorManager.js +105 -95
- package/editorManager.mjs +105 -95
- package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
- package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
- package/editors/baseEditor/baseEditor.js +23 -26
- package/editors/baseEditor/baseEditor.mjs +23 -26
- package/editors/dateEditor/dateEditor.js +24 -15
- package/editors/dateEditor/dateEditor.mjs +24 -15
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
- package/editors/handsontableEditor/handsontableEditor.js +4 -4
- package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
- package/editors/textEditor/textEditor.js +23 -17
- package/editors/textEditor/textEditor.mjs +24 -18
- package/eventManager.js +8 -0
- package/eventManager.mjs +8 -0
- package/helpers/array.js +2 -2
- package/helpers/array.mjs +2 -2
- package/helpers/dom/element.js +7 -7
- package/helpers/dom/element.mjs +7 -7
- package/helpers/function.js +1 -1
- package/helpers/function.mjs +1 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +4 -4
- package/helpers/object.mjs +4 -4
- package/helpers/string.js +1 -1
- package/helpers/string.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.d.ts +0 -2
- package/pluginHooks.js +12 -3
- package/pluginHooks.mjs +12 -3
- package/plugins/autoColumnSize/autoColumnSize.js +141 -130
- package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
- package/plugins/autoRowSize/autoRowSize.js +112 -125
- package/plugins/autoRowSize/autoRowSize.mjs +110 -123
- package/plugins/autofill/autofill.js +98 -102
- package/plugins/autofill/autofill.mjs +97 -101
- package/plugins/base/base.js +61 -28
- package/plugins/base/base.mjs +60 -28
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
- package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
- package/plugins/columnSorting/columnSorting.js +107 -99
- package/plugins/columnSorting/columnSorting.mjs +106 -98
- package/plugins/columnSorting/columnStatesManager.js +12 -6
- package/plugins/columnSorting/columnStatesManager.mjs +12 -6
- package/plugins/columnSummary/columnSummary.js +71 -58
- package/plugins/columnSummary/columnSummary.mjs +70 -57
- package/plugins/columnSummary/endpoints.js +20 -14
- package/plugins/columnSummary/endpoints.mjs +20 -14
- package/plugins/comments/commentEditor.js +30 -2
- package/plugins/comments/commentEditor.mjs +30 -2
- package/plugins/comments/comments.js +158 -169
- package/plugins/comments/comments.mjs +157 -168
- package/plugins/comments/displaySwitch.js +7 -3
- package/plugins/comments/displaySwitch.mjs +7 -3
- package/plugins/contextMenu/commandExecutor.js +15 -2
- package/plugins/contextMenu/commandExecutor.mjs +15 -2
- package/plugins/contextMenu/contextMenu.js +96 -102
- package/plugins/contextMenu/contextMenu.mjs +95 -101
- package/plugins/contextMenu/itemsFactory.js +19 -4
- package/plugins/contextMenu/itemsFactory.mjs +19 -4
- package/plugins/contextMenu/menu/cursor.js +36 -0
- package/plugins/contextMenu/menu/cursor.mjs +36 -0
- package/plugins/contextMenu/menu/menu.js +57 -5
- package/plugins/contextMenu/menu/menu.mjs +57 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +57 -50
- package/plugins/customBorders/customBorders.mjs +56 -49
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +136 -131
- package/plugins/dropdownMenu/dropdownMenu.mjs +136 -131
- package/plugins/exportFile/dataProvider.js +7 -2
- package/plugins/exportFile/dataProvider.mjs +7 -2
- package/plugins/exportFile/exportFile.js +1 -1
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +14 -6
- package/plugins/exportFile/types/_base.mjs +14 -6
- package/plugins/filters/component/actionBar.js +9 -0
- package/plugins/filters/component/actionBar.mjs +9 -0
- package/plugins/filters/component/condition.js +13 -0
- package/plugins/filters/component/condition.mjs +13 -0
- package/plugins/filters/component/operators.js +9 -0
- package/plugins/filters/component/operators.mjs +9 -0
- package/plugins/filters/component/value.js +9 -0
- package/plugins/filters/component/value.mjs +9 -0
- package/plugins/filters/conditionCollection.js +9 -4
- package/plugins/filters/conditionCollection.mjs +9 -4
- package/plugins/filters/conditionUpdateObserver.js +53 -42
- package/plugins/filters/conditionUpdateObserver.mjs +53 -42
- package/plugins/filters/dataFilter.js +9 -3
- package/plugins/filters/dataFilter.mjs +9 -3
- package/plugins/filters/filters.js +184 -189
- package/plugins/filters/filters.mjs +182 -187
- package/plugins/filters/ui/_base.js +1 -1
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/utils.js +1 -1
- package/plugins/filters/utils.mjs +1 -1
- package/plugins/formulas/engine/settings.js +1 -1
- package/plugins/formulas/engine/settings.mjs +1 -1
- package/plugins/formulas/formulas.js +684 -602
- package/plugins/formulas/formulas.mjs +682 -600
- package/plugins/hiddenColumns/hiddenColumns.js +174 -169
- package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
- package/plugins/hiddenRows/hiddenRows.js +170 -165
- package/plugins/hiddenRows/hiddenRows.mjs +169 -164
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +66 -53
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
- package/plugins/manualColumnMove/manualColumnMove.js +287 -232
- package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
- package/plugins/manualColumnMove/ui/_base.js +9 -3
- package/plugins/manualColumnMove/ui/_base.mjs +9 -3
- package/plugins/manualColumnResize/manualColumnResize.js +291 -246
- package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
- package/plugins/manualRowMove/manualRowMove.js +223 -208
- package/plugins/manualRowMove/manualRowMove.mjs +222 -207
- package/plugins/manualRowMove/ui/_base.js +10 -5
- package/plugins/manualRowMove/ui/_base.mjs +10 -5
- package/plugins/manualRowResize/manualRowResize.js +254 -209
- package/plugins/manualRowResize/manualRowResize.mjs +253 -207
- package/plugins/mergeCells/calculations/autofill.js +9 -3
- package/plugins/mergeCells/calculations/autofill.mjs +9 -3
- package/plugins/mergeCells/calculations/selection.js +10 -4
- package/plugins/mergeCells/calculations/selection.mjs +10 -4
- package/plugins/mergeCells/cellCoords.js +16 -6
- package/plugins/mergeCells/cellCoords.mjs +16 -6
- package/plugins/mergeCells/cellsCollection.js +10 -4
- package/plugins/mergeCells/cellsCollection.mjs +10 -4
- package/plugins/mergeCells/mergeCells.js +582 -502
- package/plugins/mergeCells/mergeCells.mjs +580 -500
- package/plugins/multiColumnSorting/multiColumnSorting.js +15 -11
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +15 -11
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
- package/plugins/nestedHeaders/nestedHeaders.js +542 -499
- package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
- package/plugins/nestedHeaders/stateManager/index.js +1 -1
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +21 -15
- package/plugins/nestedRows/data/dataManager.mjs +21 -15
- package/plugins/nestedRows/nestedRows.js +328 -279
- package/plugins/nestedRows/nestedRows.mjs +327 -278
- package/plugins/nestedRows/ui/_base.js +7 -1
- package/plugins/nestedRows/ui/_base.mjs +7 -1
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +28 -18
- package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
- package/plugins/nestedRows/utils/rowMoveController.js +12 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
- package/plugins/persistentState/persistentState.js +14 -11
- package/plugins/persistentState/persistentState.mjs +14 -11
- package/plugins/persistentState/storage.js +11 -6
- package/plugins/persistentState/storage.mjs +11 -6
- package/plugins/registry.js +2 -2
- package/plugins/registry.mjs +2 -2
- package/plugins/search/search.js +57 -46
- package/plugins/search/search.mjs +56 -45
- package/plugins/touchScroll/touchScroll.js +102 -100
- package/plugins/touchScroll/touchScroll.mjs +100 -98
- package/plugins/trimRows/trimRows.js +33 -28
- package/plugins/trimRows/trimRows.mjs +32 -27
- package/plugins/undoRedo/undoRedo.js +2 -2
- package/plugins/undoRedo/undoRedo.mjs +2 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
- package/renderers/baseRenderer/baseRenderer.js +2 -2
- package/renderers/baseRenderer/baseRenderer.mjs +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
- package/renderers/dateRenderer/dateRenderer.js +4 -4
- package/renderers/dateRenderer/dateRenderer.mjs +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
- package/renderers/htmlRenderer/htmlRenderer.js +4 -4
- package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
- package/renderers/numericRenderer/numericRenderer.js +3 -3
- package/renderers/numericRenderer/numericRenderer.mjs +3 -3
- package/renderers/passwordRenderer/passwordRenderer.js +3 -3
- package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
- package/renderers/selectRenderer/selectRenderer.js +4 -4
- package/renderers/selectRenderer/selectRenderer.mjs +4 -4
- package/renderers/textRenderer/textRenderer.js +5 -5
- package/renderers/textRenderer/textRenderer.mjs +5 -5
- package/renderers/timeRenderer/timeRenderer.js +3 -3
- package/renderers/timeRenderer/timeRenderer.mjs +3 -3
- package/selection/range.js +12 -2
- package/selection/range.mjs +12 -2
- package/selection/selection.js +28 -10
- package/selection/selection.mjs +28 -10
- package/selection/utils.js +24 -14
- package/selection/utils.mjs +25 -15
- package/shortcuts/manager.js +1 -1
- package/shortcuts/manager.mjs +1 -1
- package/tableView.js +208 -200
- package/tableView.mjs +208 -200
- package/translations/changesObservable/utils.js +2 -2
- package/translations/changesObservable/utils.mjs +2 -2
- package/translations/indexMapper.js +25 -22
- package/translations/indexMapper.mjs +25 -22
- package/translations/mapCollections/aggregatedCollection.js +8 -2
- package/translations/mapCollections/aggregatedCollection.mjs +8 -2
- package/translations/mapCollections/mapCollection.js +5 -2
- package/translations/mapCollections/mapCollection.mjs +5 -2
- package/translations/maps/indexMap.js +6 -1
- package/translations/maps/indexMap.mjs +6 -1
- package/translations/maps/utils/physicallyIndexed.js +2 -2
- package/translations/maps/utils/physicallyIndexed.mjs +2 -2
- package/utils/dataStructures/linkedList.js +10 -6
- package/utils/dataStructures/linkedList.mjs +10 -6
- package/utils/dataStructures/queue.js +1 -1
- package/utils/dataStructures/queue.mjs +1 -1
- package/utils/dataStructures/stack.js +1 -1
- package/utils/dataStructures/stack.mjs +1 -1
- package/utils/ghostTable.js +2 -2
- package/utils/ghostTable.mjs +2 -2
- package/utils/interval.js +73 -36
- package/utils/interval.mjs +73 -36
- package/utils/parseTable.js +1 -1
- package/utils/parseTable.mjs +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
- package/validators/dateValidator/dateValidator.js +1 -1
- package/validators/dateValidator/dateValidator.mjs +1 -1
- package/validators/numericValidator/numericValidator.js +1 -1
- package/validators/numericValidator/numericValidator.mjs +1 -1
package/helpers/object.js
CHANGED
@@ -157,7 +157,7 @@ function mixin(Base) {
|
|
157
157
|
(0, _array.arrayEach)(mixins, mixinItem => {
|
158
158
|
Base.MIXINS.push(mixinItem.MIXIN_NAME);
|
159
159
|
objectEach(mixinItem, (value, key) => {
|
160
|
-
if (Base.prototype[key] !==
|
160
|
+
if (Base.prototype[key] !== undefined) {
|
161
161
|
throw new Error(`Mixin conflict. Property '${key}' already exist and cannot be overwritten.`);
|
162
162
|
}
|
163
163
|
if (typeof value === 'function') {
|
@@ -173,7 +173,7 @@ function mixin(Base) {
|
|
173
173
|
return result;
|
174
174
|
};
|
175
175
|
return function () {
|
176
|
-
if (this[propertyName] ===
|
176
|
+
if (this[propertyName] === undefined) {
|
177
177
|
this[propertyName] = initValue(initialValue);
|
178
178
|
}
|
179
179
|
return this[propertyName];
|
@@ -263,8 +263,8 @@ function getProperty(object, name) {
|
|
263
263
|
let result = object;
|
264
264
|
objectEach(names, nameItem => {
|
265
265
|
result = result[nameItem];
|
266
|
-
if (result ===
|
267
|
-
result =
|
266
|
+
if (result === undefined) {
|
267
|
+
result = undefined;
|
268
268
|
return false;
|
269
269
|
}
|
270
270
|
});
|
package/helpers/object.mjs
CHANGED
@@ -138,7 +138,7 @@ export function mixin(Base) {
|
|
138
138
|
arrayEach(mixins, mixinItem => {
|
139
139
|
Base.MIXINS.push(mixinItem.MIXIN_NAME);
|
140
140
|
objectEach(mixinItem, (value, key) => {
|
141
|
-
if (Base.prototype[key] !==
|
141
|
+
if (Base.prototype[key] !== undefined) {
|
142
142
|
throw new Error(`Mixin conflict. Property '${key}' already exist and cannot be overwritten.`);
|
143
143
|
}
|
144
144
|
if (typeof value === 'function') {
|
@@ -154,7 +154,7 @@ export function mixin(Base) {
|
|
154
154
|
return result;
|
155
155
|
};
|
156
156
|
return function () {
|
157
|
-
if (this[propertyName] ===
|
157
|
+
if (this[propertyName] === undefined) {
|
158
158
|
this[propertyName] = initValue(initialValue);
|
159
159
|
}
|
160
160
|
return this[propertyName];
|
@@ -244,8 +244,8 @@ export function getProperty(object, name) {
|
|
244
244
|
let result = object;
|
245
245
|
objectEach(names, nameItem => {
|
246
246
|
result = result[nameItem];
|
247
|
-
if (result ===
|
248
|
-
result =
|
247
|
+
if (result === undefined) {
|
248
|
+
result = undefined;
|
249
249
|
return false;
|
250
250
|
}
|
251
251
|
});
|
package/helpers/string.js
CHANGED
package/helpers/string.mjs
CHANGED
@@ -72,7 +72,7 @@ export function substitute(template) {
|
|
72
72
|
if (match.charAt(0) === '\\') {
|
73
73
|
return match.substr(1, match.length - 1);
|
74
74
|
}
|
75
|
-
return variables[name] ===
|
75
|
+
return variables[name] === undefined ? '' : variables[name];
|
76
76
|
});
|
77
77
|
}
|
78
78
|
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"url": "https://github.com/handsontable/handsontable/issues"
|
11
11
|
},
|
12
12
|
"author": "Handsoncode <hello@handsontable.com>",
|
13
|
-
"version": "14.0.0-next-
|
13
|
+
"version": "14.0.0-next-7ee54cb-20231108",
|
14
14
|
"main": "index",
|
15
15
|
"module": "index.mjs",
|
16
16
|
"jsnext:main": "index.mjs",
|
package/pluginHooks.d.ts
CHANGED
@@ -47,13 +47,11 @@ interface HookHighlightRowHeaderMeta {
|
|
47
47
|
selectionType: string;
|
48
48
|
rowCursor: number;
|
49
49
|
selectionHeight: number;
|
50
|
-
classNames: string[];
|
51
50
|
}
|
52
51
|
interface HookHighlightColumnHeaderMeta {
|
53
52
|
selectionType: string;
|
54
53
|
columnCursor: number;
|
55
54
|
selectionWidth: number;
|
56
|
-
classNames: string[];
|
57
55
|
}
|
58
56
|
|
59
57
|
export interface Events {
|
package/pluginHooks.js
CHANGED
@@ -2,12 +2,16 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
|
+
require("core-js/modules/es.error.cause.js");
|
5
6
|
var _array = require("./helpers/array");
|
6
7
|
var _object = require("./helpers/object");
|
7
8
|
var _string = require("./helpers/string");
|
8
9
|
var _console = require("./helpers/console");
|
9
10
|
var _templateLiteralTag = require("./helpers/templateLiteralTag");
|
10
11
|
var _function = require("./helpers/function");
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
14
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
11
15
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
12
16
|
/**
|
13
17
|
* @description
|
@@ -2571,10 +2575,15 @@ class Hooks {
|
|
2571
2575
|
return getGlobalSingleton();
|
2572
2576
|
}
|
2573
2577
|
|
2578
|
+
/**
|
2579
|
+
* @type {object}
|
2580
|
+
*/
|
2581
|
+
|
2574
2582
|
/**
|
2575
2583
|
*
|
2576
2584
|
*/
|
2577
2585
|
constructor() {
|
2586
|
+
_defineProperty(this, "globalBucket", void 0);
|
2578
2587
|
this.globalBucket = this.createEmptyBucket();
|
2579
2588
|
}
|
2580
2589
|
|
@@ -2749,7 +2758,7 @@ class Hooks {
|
|
2749
2758
|
has(key) {
|
2750
2759
|
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
2751
2760
|
const bucket = this.getBucket(context);
|
2752
|
-
return !!(bucket[key] !==
|
2761
|
+
return !!(bucket[key] !== undefined && bucket[key].length);
|
2753
2762
|
}
|
2754
2763
|
|
2755
2764
|
/**
|
@@ -2786,7 +2795,7 @@ class Hooks {
|
|
2786
2795
|
continue;
|
2787
2796
|
}
|
2788
2797
|
const res = (0, _function.fastCall)(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
|
2789
|
-
if (res !==
|
2798
|
+
if (res !== undefined) {
|
2790
2799
|
// eslint-disable-next-line no-param-reassign
|
2791
2800
|
p1 = res;
|
2792
2801
|
}
|
@@ -2810,7 +2819,7 @@ class Hooks {
|
|
2810
2819
|
continue;
|
2811
2820
|
}
|
2812
2821
|
const res = (0, _function.fastCall)(localHandlers[index], context, p1, p2, p3, p4, p5, p6);
|
2813
|
-
if (res !==
|
2822
|
+
if (res !== undefined) {
|
2814
2823
|
// eslint-disable-next-line no-param-reassign
|
2815
2824
|
p1 = res;
|
2816
2825
|
}
|
package/pluginHooks.mjs
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/es.error.cause.js";
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
4
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
5
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
2
6
|
import { arrayEach } from "./helpers/array.mjs";
|
3
7
|
import { objectEach } from "./helpers/object.mjs";
|
4
8
|
import { substitute } from "./helpers/string.mjs";
|
@@ -2569,10 +2573,15 @@ class Hooks {
|
|
2569
2573
|
return getGlobalSingleton();
|
2570
2574
|
}
|
2571
2575
|
|
2576
|
+
/**
|
2577
|
+
* @type {object}
|
2578
|
+
*/
|
2579
|
+
|
2572
2580
|
/**
|
2573
2581
|
*
|
2574
2582
|
*/
|
2575
2583
|
constructor() {
|
2584
|
+
_defineProperty(this, "globalBucket", void 0);
|
2576
2585
|
this.globalBucket = this.createEmptyBucket();
|
2577
2586
|
}
|
2578
2587
|
|
@@ -2747,7 +2756,7 @@ class Hooks {
|
|
2747
2756
|
has(key) {
|
2748
2757
|
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
2749
2758
|
const bucket = this.getBucket(context);
|
2750
|
-
return !!(bucket[key] !==
|
2759
|
+
return !!(bucket[key] !== undefined && bucket[key].length);
|
2751
2760
|
}
|
2752
2761
|
|
2753
2762
|
/**
|
@@ -2784,7 +2793,7 @@ class Hooks {
|
|
2784
2793
|
continue;
|
2785
2794
|
}
|
2786
2795
|
const res = fastCall(globalHandlers[index], context, p1, p2, p3, p4, p5, p6);
|
2787
|
-
if (res !==
|
2796
|
+
if (res !== undefined) {
|
2788
2797
|
// eslint-disable-next-line no-param-reassign
|
2789
2798
|
p1 = res;
|
2790
2799
|
}
|
@@ -2808,7 +2817,7 @@ class Hooks {
|
|
2808
2817
|
continue;
|
2809
2818
|
}
|
2810
2819
|
const res = fastCall(localHandlers[index], context, p1, p2, p3, p4, p5, p6);
|
2811
|
-
if (res !==
|
2820
|
+
if (res !== undefined) {
|
2812
2821
|
// eslint-disable-next-line no-param-reassign
|
2813
2822
|
p1 = res;
|
2814
2823
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
|
+
require("core-js/modules/es.error.cause.js");
|
5
6
|
var _base = require("../base");
|
6
7
|
var _array = require("../../helpers/array");
|
7
8
|
var _feature = require("../../helpers/feature");
|
@@ -15,10 +16,21 @@ var _src = require("../../3rdparty/walkontable/src");
|
|
15
16
|
var _translations = require("../../translations");
|
16
17
|
var _mixed = require("../../helpers/mixed");
|
17
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
20
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
21
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
22
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
24
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
25
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
26
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
27
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
28
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
29
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
30
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
18
31
|
_pluginHooks.default.getSingleton().register('modifyAutoColumnSizeSeed');
|
19
32
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoColumnSize';
|
20
33
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 10;
|
21
|
-
const privatePool = new WeakMap();
|
22
34
|
const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
|
23
35
|
|
24
36
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -118,6 +130,13 @@ const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
|
|
118
130
|
* :::
|
119
131
|
*/
|
120
132
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
133
|
+
var _cachedColumnHeaders = /*#__PURE__*/new WeakMap();
|
134
|
+
var _onBeforeViewRender = /*#__PURE__*/new WeakSet();
|
135
|
+
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
136
|
+
var _onBeforeChange = /*#__PURE__*/new WeakSet();
|
137
|
+
var _onBeforeColumnResize = /*#__PURE__*/new WeakSet();
|
138
|
+
var _onAfterInit = /*#__PURE__*/new WeakSet();
|
139
|
+
var _onAfterFormulasValuesUpdate = /*#__PURE__*/new WeakSet();
|
121
140
|
class AutoColumnSize extends _base.BasePlugin {
|
122
141
|
static get PLUGIN_KEY() {
|
123
142
|
return PLUGIN_KEY;
|
@@ -134,25 +153,50 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
134
153
|
static get SYNC_CALCULATION_LIMIT() {
|
135
154
|
return 50;
|
136
155
|
}
|
156
|
+
|
157
|
+
/**
|
158
|
+
* Instance of {@link GhostTable} for rows and columns size calculations.
|
159
|
+
*
|
160
|
+
* @private
|
161
|
+
* @type {GhostTable}
|
162
|
+
*/
|
163
|
+
|
137
164
|
constructor(hotInstance) {
|
138
165
|
super(hotInstance);
|
139
|
-
privatePool.set(this, {
|
140
|
-
/**
|
141
|
-
* Cached column header names. It is used to diff current column headers with previous state and detect which
|
142
|
-
* columns width should be updated.
|
143
|
-
*
|
144
|
-
* @private
|
145
|
-
* @type {Array}
|
146
|
-
*/
|
147
|
-
cachedColumnHeaders: []
|
148
|
-
});
|
149
166
|
/**
|
150
|
-
*
|
167
|
+
* After formulas values updated listener.
|
151
168
|
*
|
152
|
-
* @
|
153
|
-
|
169
|
+
* @param {Array} changes An array of modified data.
|
170
|
+
*/
|
171
|
+
_classPrivateMethodInitSpec(this, _onAfterFormulasValuesUpdate);
|
172
|
+
/**
|
173
|
+
* On after Handsontable init fill plugin with all necessary values.
|
174
|
+
*/
|
175
|
+
_classPrivateMethodInitSpec(this, _onAfterInit);
|
176
|
+
/**
|
177
|
+
* On before column resize listener.
|
178
|
+
*
|
179
|
+
* @param {number} size Calculated new column width.
|
180
|
+
* @param {number} column Visual index of the resized column.
|
181
|
+
* @param {boolean} isDblClick Flag that determines whether there was a double-click.
|
182
|
+
* @returns {number}
|
183
|
+
*/
|
184
|
+
_classPrivateMethodInitSpec(this, _onBeforeColumnResize);
|
185
|
+
/**
|
186
|
+
* On before change listener.
|
187
|
+
*
|
188
|
+
* @param {Array} changes An array of modified data.
|
189
|
+
*/
|
190
|
+
_classPrivateMethodInitSpec(this, _onBeforeChange);
|
191
|
+
/**
|
192
|
+
* On after load data listener.
|
193
|
+
*/
|
194
|
+
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
195
|
+
/**
|
196
|
+
* On before view render listener.
|
154
197
|
*/
|
155
|
-
this
|
198
|
+
_classPrivateMethodInitSpec(this, _onBeforeViewRender);
|
199
|
+
_defineProperty(this, "ghostTable", new _ghostTable.default(this.hot));
|
156
200
|
/**
|
157
201
|
* Instance of {@link SamplesGenerator} for generating samples necessary for columns width calculations.
|
158
202
|
*
|
@@ -160,7 +204,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
160
204
|
* @type {SamplesGenerator}
|
161
205
|
* @fires Hooks#modifyAutoColumnSizeSeed
|
162
206
|
*/
|
163
|
-
this
|
207
|
+
_defineProperty(this, "samplesGenerator", new _samplesGenerator.default((row, column) => {
|
164
208
|
const cellMeta = this.hot.getCellMeta(row, column);
|
165
209
|
let cellValue = '';
|
166
210
|
if (!cellMeta.spanned) {
|
@@ -174,38 +218,48 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
174
218
|
value: cellValue,
|
175
219
|
bundleSeed
|
176
220
|
};
|
177
|
-
});
|
221
|
+
}));
|
178
222
|
/**
|
179
223
|
* `true` only if the first calculation was performed.
|
180
224
|
*
|
181
225
|
* @private
|
182
226
|
* @type {boolean}
|
183
227
|
*/
|
184
|
-
this
|
228
|
+
_defineProperty(this, "firstCalculation", true);
|
185
229
|
/**
|
186
230
|
* `true` if the size calculation is in progress.
|
187
231
|
*
|
188
232
|
* @type {boolean}
|
189
233
|
*/
|
190
|
-
this
|
234
|
+
_defineProperty(this, "inProgress", false);
|
191
235
|
/**
|
192
236
|
* Number of already measured columns (we already know their sizes).
|
193
237
|
*
|
194
238
|
* @type {number}
|
195
239
|
*/
|
196
|
-
this
|
240
|
+
_defineProperty(this, "measuredColumns", 0);
|
197
241
|
/**
|
198
242
|
* PhysicalIndexToValueMap to keep and track widths for physical column indexes.
|
199
243
|
*
|
200
244
|
* @private
|
201
245
|
* @type {PhysicalIndexToValueMap}
|
202
246
|
*/
|
203
|
-
this
|
247
|
+
_defineProperty(this, "columnWidthsMap", new _translations.PhysicalIndexToValueMap());
|
248
|
+
/**
|
249
|
+
* Cached column header names. It is used to diff current column headers with previous state and detect which
|
250
|
+
* columns width should be updated.
|
251
|
+
*
|
252
|
+
* @type {Array}
|
253
|
+
*/
|
254
|
+
_classPrivateFieldInitSpec(this, _cachedColumnHeaders, {
|
255
|
+
writable: true,
|
256
|
+
value: []
|
257
|
+
});
|
204
258
|
this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);
|
205
259
|
|
206
260
|
// Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
|
207
261
|
// This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).
|
208
|
-
this.addHook('beforeColumnResize', (size, column, isDblClick) => this.
|
262
|
+
this.addHook('beforeColumnResize', (size, column, isDblClick) => _classPrivateMethodGet(this, _onBeforeColumnResize, _onBeforeColumnResize2).call(this, size, column, isDblClick));
|
209
263
|
}
|
210
264
|
|
211
265
|
/**
|
@@ -227,18 +281,21 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
227
281
|
return;
|
228
282
|
}
|
229
283
|
const setting = this.hot.getSettings()[PLUGIN_KEY];
|
230
|
-
if (setting && setting.useHeaders !== null && setting.useHeaders !==
|
284
|
+
if (setting && setting.useHeaders !== null && setting.useHeaders !== undefined) {
|
231
285
|
this.ghostTable.setSetting('useHeaders', setting.useHeaders);
|
232
286
|
}
|
233
287
|
this.setSamplingOptions();
|
234
288
|
this.addHook('afterLoadData', function () {
|
235
|
-
|
289
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
290
|
+
args[_key] = arguments[_key];
|
291
|
+
}
|
292
|
+
return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
|
236
293
|
});
|
237
|
-
this.addHook('beforeChangeRender', changes => this.
|
238
|
-
this.addHook('afterFormulasValuesUpdate', changes => this.
|
239
|
-
this.addHook('beforeViewRender', force => this.
|
294
|
+
this.addHook('beforeChangeRender', changes => _classPrivateMethodGet(this, _onBeforeChange, _onBeforeChange2).call(this, changes));
|
295
|
+
this.addHook('afterFormulasValuesUpdate', changes => _classPrivateMethodGet(this, _onAfterFormulasValuesUpdate, _onAfterFormulasValuesUpdate2).call(this, changes));
|
296
|
+
this.addHook('beforeViewRender', force => _classPrivateMethodGet(this, _onBeforeViewRender, _onBeforeViewRender2).call(this, force));
|
240
297
|
this.addHook('modifyColWidth', (width, col) => this.getColumnWidth(col, width));
|
241
|
-
this.addHook('afterInit', () => this.
|
298
|
+
this.addHook('afterInit', () => _classPrivateMethodGet(this, _onAfterInit, _onAfterInit2).call(this));
|
242
299
|
super.enablePlugin();
|
243
300
|
}
|
244
301
|
|
@@ -262,7 +319,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
262
319
|
|
263
320
|
// Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
|
264
321
|
// This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).
|
265
|
-
this.addHook('beforeColumnResize', (size, column, isDblClick) => this.
|
322
|
+
this.addHook('beforeColumnResize', (size, column, isDblClick) => _classPrivateMethodGet(this, _onBeforeColumnResize, _onBeforeColumnResize2).call(this, size, column, isDblClick));
|
266
323
|
}
|
267
324
|
|
268
325
|
/**
|
@@ -284,7 +341,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
284
341
|
this.calculateColumnsWidth({
|
285
342
|
from: firstVisibleColumn,
|
286
343
|
to: lastVisibleColumn
|
287
|
-
},
|
344
|
+
}, undefined, force);
|
288
345
|
}
|
289
346
|
|
290
347
|
/**
|
@@ -340,7 +397,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
340
397
|
|
341
398
|
/**
|
342
399
|
* Calculates all columns width. The calculated column will be cached in the {@link AutoColumnSize#widths} property.
|
343
|
-
* To retrieve width for specified column use {@link AutoColumnSize
|
400
|
+
* To retrieve width for specified column use {@link AutoColumnSize##getColumnWidth} method.
|
344
401
|
*
|
345
402
|
* @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
|
346
403
|
*/
|
@@ -401,8 +458,8 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
401
458
|
*/
|
402
459
|
setSamplingOptions() {
|
403
460
|
const setting = this.hot.getSettings()[PLUGIN_KEY];
|
404
|
-
const samplingRatio = setting && (0, _object.hasOwnProperty)(setting, 'samplingRatio') ? setting.samplingRatio :
|
405
|
-
const allowSampleDuplicates = setting && (0, _object.hasOwnProperty)(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates :
|
461
|
+
const samplingRatio = setting && (0, _object.hasOwnProperty)(setting, 'samplingRatio') ? setting.samplingRatio : undefined;
|
462
|
+
const allowSampleDuplicates = setting && (0, _object.hasOwnProperty)(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;
|
406
463
|
if (samplingRatio && !isNaN(samplingRatio)) {
|
407
464
|
this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
|
408
465
|
}
|
@@ -453,10 +510,10 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
453
510
|
* @returns {number}
|
454
511
|
*/
|
455
512
|
getColumnWidth(column) {
|
456
|
-
let defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
513
|
+
let defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
457
514
|
let keepMinimum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
458
515
|
let width = defaultWidth;
|
459
|
-
if (width ===
|
516
|
+
if (width === undefined) {
|
460
517
|
width = this.columnWidthsMap.getValueAtIndex(this.hot.toPhysicalColumn(column));
|
461
518
|
if (keepMinimum && typeof width === 'number') {
|
462
519
|
width = Math.max(width, _src.ViewportColumnsCalculator.DEFAULT_WIDTH);
|
@@ -524,18 +581,15 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
524
581
|
*/
|
525
582
|
findColumnsWhereHeaderWasChanged() {
|
526
583
|
const columnHeaders = this.hot.getColHeader();
|
527
|
-
const {
|
528
|
-
cachedColumnHeaders
|
529
|
-
} = privatePool.get(this);
|
530
584
|
const changedColumns = (0, _array.arrayReduce)(columnHeaders, (acc, columnTitle, physicalColumn) => {
|
531
|
-
const cachedColumnsLength =
|
532
|
-
if (cachedColumnsLength - 1 < physicalColumn ||
|
585
|
+
const cachedColumnsLength = _classPrivateFieldGet(this, _cachedColumnHeaders).length;
|
586
|
+
if (cachedColumnsLength - 1 < physicalColumn || _classPrivateFieldGet(this, _cachedColumnHeaders)[physicalColumn] !== columnTitle) {
|
533
587
|
acc.push(physicalColumn);
|
534
588
|
}
|
535
589
|
if (cachedColumnsLength - 1 < physicalColumn) {
|
536
|
-
|
590
|
+
_classPrivateFieldGet(this, _cachedColumnHeaders).push(columnTitle);
|
537
591
|
} else {
|
538
|
-
|
592
|
+
_classPrivateFieldGet(this, _cachedColumnHeaders)[physicalColumn] = columnTitle;
|
539
593
|
}
|
540
594
|
return acc;
|
541
595
|
}, []);
|
@@ -569,93 +623,6 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
569
623
|
isNeedRecalculate() {
|
570
624
|
return !!(0, _array.arrayFilter)(this.columnWidthsMap.getValues().slice(0, this.measuredColumns), item => item === null).length;
|
571
625
|
}
|
572
|
-
|
573
|
-
/**
|
574
|
-
* On before view render listener.
|
575
|
-
*
|
576
|
-
* @private
|
577
|
-
*/
|
578
|
-
onBeforeViewRender() {
|
579
|
-
this.calculateVisibleColumnsWidth();
|
580
|
-
if (this.isNeedRecalculate() && !this.inProgress) {
|
581
|
-
this.calculateAllColumnsWidth();
|
582
|
-
}
|
583
|
-
}
|
584
|
-
|
585
|
-
/**
|
586
|
-
* On after load data listener.
|
587
|
-
*
|
588
|
-
* @private
|
589
|
-
*/
|
590
|
-
onAfterLoadData() {
|
591
|
-
if (this.hot.view) {
|
592
|
-
this.recalculateAllColumnsWidth();
|
593
|
-
} else {
|
594
|
-
// first load - initialization
|
595
|
-
setTimeout(() => {
|
596
|
-
if (this.hot) {
|
597
|
-
this.recalculateAllColumnsWidth();
|
598
|
-
}
|
599
|
-
}, 0);
|
600
|
-
}
|
601
|
-
}
|
602
|
-
|
603
|
-
/**
|
604
|
-
* On before change listener.
|
605
|
-
*
|
606
|
-
* @private
|
607
|
-
* @param {Array} changes An array of modified data.
|
608
|
-
*/
|
609
|
-
onBeforeChange(changes) {
|
610
|
-
const changedColumns = (0, _array.arrayMap)(changes, _ref2 => {
|
611
|
-
let [, columnProperty] = _ref2;
|
612
|
-
return this.hot.toPhysicalColumn(this.hot.propToCol(columnProperty));
|
613
|
-
});
|
614
|
-
this.clearCache(Array.from(new Set(changedColumns)));
|
615
|
-
}
|
616
|
-
|
617
|
-
/**
|
618
|
-
* On before column resize listener.
|
619
|
-
*
|
620
|
-
* @private
|
621
|
-
* @param {number} size Calculated new column width.
|
622
|
-
* @param {number} column Visual index of the resized column.
|
623
|
-
* @param {boolean} isDblClick Flag that determines whether there was a double-click.
|
624
|
-
* @returns {number}
|
625
|
-
*/
|
626
|
-
onBeforeColumnResize(size, column, isDblClick) {
|
627
|
-
let newSize = size;
|
628
|
-
if (isDblClick) {
|
629
|
-
this.calculateColumnsWidth(column, void 0, true);
|
630
|
-
newSize = this.getColumnWidth(column, void 0, false);
|
631
|
-
}
|
632
|
-
return newSize;
|
633
|
-
}
|
634
|
-
|
635
|
-
/**
|
636
|
-
* On after Handsontable init fill plugin with all necessary values.
|
637
|
-
*
|
638
|
-
* @private
|
639
|
-
*/
|
640
|
-
onAfterInit() {
|
641
|
-
privatePool.get(this).cachedColumnHeaders = this.hot.getColHeader();
|
642
|
-
}
|
643
|
-
|
644
|
-
/**
|
645
|
-
* After formulas values updated listener.
|
646
|
-
*
|
647
|
-
* @private
|
648
|
-
* @param {Array} changes An array of modified data.
|
649
|
-
*/
|
650
|
-
onAfterFormulasValuesUpdate(changes) {
|
651
|
-
const filteredChanges = (0, _array.arrayFilter)(changes, change => {
|
652
|
-
var _change$address;
|
653
|
-
return (0, _mixed.isDefined)((_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col);
|
654
|
-
});
|
655
|
-
const changedColumns = (0, _array.arrayMap)(filteredChanges, change => change.address.col);
|
656
|
-
this.clearCache(Array.from(new Set(changedColumns)));
|
657
|
-
}
|
658
|
-
|
659
626
|
/**
|
660
627
|
* Destroys the plugin instance.
|
661
628
|
*/
|
@@ -664,4 +631,48 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
664
631
|
super.destroy();
|
665
632
|
}
|
666
633
|
}
|
667
|
-
exports.AutoColumnSize = AutoColumnSize;
|
634
|
+
exports.AutoColumnSize = AutoColumnSize;
|
635
|
+
function _onBeforeViewRender2() {
|
636
|
+
this.calculateVisibleColumnsWidth();
|
637
|
+
if (this.isNeedRecalculate() && !this.inProgress) {
|
638
|
+
this.calculateAllColumnsWidth();
|
639
|
+
}
|
640
|
+
}
|
641
|
+
function _onAfterLoadData2() {
|
642
|
+
if (this.hot.view) {
|
643
|
+
this.recalculateAllColumnsWidth();
|
644
|
+
} else {
|
645
|
+
// first load - initialization
|
646
|
+
setTimeout(() => {
|
647
|
+
if (this.hot) {
|
648
|
+
this.recalculateAllColumnsWidth();
|
649
|
+
}
|
650
|
+
}, 0);
|
651
|
+
}
|
652
|
+
}
|
653
|
+
function _onBeforeChange2(changes) {
|
654
|
+
const changedColumns = (0, _array.arrayMap)(changes, _ref2 => {
|
655
|
+
let [, columnProperty] = _ref2;
|
656
|
+
return this.hot.toPhysicalColumn(this.hot.propToCol(columnProperty));
|
657
|
+
});
|
658
|
+
this.clearCache(Array.from(new Set(changedColumns)));
|
659
|
+
}
|
660
|
+
function _onBeforeColumnResize2(size, column, isDblClick) {
|
661
|
+
let newSize = size;
|
662
|
+
if (isDblClick) {
|
663
|
+
this.calculateColumnsWidth(column, undefined, true);
|
664
|
+
newSize = this.getColumnWidth(column, undefined, false);
|
665
|
+
}
|
666
|
+
return newSize;
|
667
|
+
}
|
668
|
+
function _onAfterInit2() {
|
669
|
+
_classPrivateFieldSet(this, _cachedColumnHeaders, this.hot.getColHeader());
|
670
|
+
}
|
671
|
+
function _onAfterFormulasValuesUpdate2(changes) {
|
672
|
+
const filteredChanges = (0, _array.arrayFilter)(changes, change => {
|
673
|
+
var _change$address;
|
674
|
+
return (0, _mixed.isDefined)((_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col);
|
675
|
+
});
|
676
|
+
const changedColumns = (0, _array.arrayMap)(filteredChanges, change => change.address.col);
|
677
|
+
this.clearCache(Array.from(new Set(changedColumns)));
|
678
|
+
}
|