handsontable 0.0.0-next-7026906-20231107 → 0.0.0-next-7b93b7d-20231107
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/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/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 +7244 -6347
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +120 -120
- package/dist/handsontable.js +7243 -6346
- 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 +97 -102
- package/plugins/autofill/autofill.mjs +96 -101
- package/plugins/base/base.js +57 -22
- package/plugins/base/base.mjs +56 -22
- 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 +105 -98
- package/plugins/columnSorting/columnSorting.mjs +104 -97
- 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 +91 -101
- package/plugins/contextMenu/contextMenu.mjs +90 -100
- 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/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +49 -48
- package/plugins/customBorders/customBorders.mjs +48 -47
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +132 -129
- package/plugins/dropdownMenu/dropdownMenu.mjs +132 -129
- 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 +67 -54
- 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 +13 -10
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +13 -10
- 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 +326 -278
- package/plugins/nestedRows/nestedRows.mjs +325 -277
- 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 +3 -3
- package/selection/selection.mjs +3 -3
- 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
@@ -103,8 +103,8 @@ function stringify(arr) {
|
|
103
103
|
} else {
|
104
104
|
str += val;
|
105
105
|
}
|
106
|
-
} else if (val === null || val ===
|
107
|
-
//
|
106
|
+
} else if (val === null || val === undefined) {
|
107
|
+
// undefined resolves to undefined
|
108
108
|
str += '';
|
109
109
|
} else {
|
110
110
|
str += val;
|
@@ -98,8 +98,8 @@ export function stringify(arr) {
|
|
98
98
|
} else {
|
99
99
|
str += val;
|
100
100
|
}
|
101
|
-
} else if (val === null || val ===
|
102
|
-
//
|
101
|
+
} else if (val === null || val === undefined) {
|
102
|
+
// undefined resolves to undefined
|
103
103
|
str += '';
|
104
104
|
} else {
|
105
105
|
str += val;
|
@@ -33,12 +33,12 @@ function autoResize() {
|
|
33
33
|
} else if (!/^[a-zA-Z \.,\\\/\|0-9]$/.test(newChar)) {
|
34
34
|
newChar = ".";
|
35
35
|
}
|
36
|
-
if (text.textContent !==
|
36
|
+
if (text.textContent !== undefined) {
|
37
37
|
text.textContent = el.value + newChar;
|
38
38
|
} else {
|
39
39
|
text.data = el.value + newChar; //IE8
|
40
40
|
}
|
41
|
-
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
41
|
+
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
42
42
|
// `flex-direction` set as `column`.
|
43
43
|
span.style.position = 'absolute';
|
44
44
|
span.style.fontSize = getComputedStyle(el).fontSize;
|
@@ -29,12 +29,12 @@ export function autoResize() {
|
|
29
29
|
} else if (!/^[a-zA-Z \.,\\\/\|0-9]$/.test(newChar)) {
|
30
30
|
newChar = ".";
|
31
31
|
}
|
32
|
-
if (text.textContent !==
|
32
|
+
if (text.textContent !== undefined) {
|
33
33
|
text.textContent = el.value + newChar;
|
34
34
|
} else {
|
35
35
|
text.data = el.value + newChar; //IE8
|
36
36
|
}
|
37
|
-
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
37
|
+
// Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
|
38
38
|
// `flex-direction` set as `column`.
|
39
39
|
span.style.position = 'absolute';
|
40
40
|
span.style.fontSize = getComputedStyle(el).fontSize;
|
@@ -3,15 +3,39 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
5
|
require("core-js/modules/es.array.at.js");
|
6
|
+
require("core-js/modules/es.error.cause.js");
|
6
7
|
var _constants = require("./constants");
|
7
|
-
|
8
|
-
|
8
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
9
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
10
|
+
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; }
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
12
|
+
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); }
|
13
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
14
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
15
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
16
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
17
|
+
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; } }
|
18
|
+
/**
|
19
|
+
* @typedef {object} ViewportColumnsCalculatorOptions
|
20
|
+
* @property {number} viewportWidth Width of the viewport.
|
21
|
+
* @property {number} scrollOffset Current horizontal scroll position of the viewport.
|
22
|
+
* @property {number} totalColumns Total number of columns.
|
23
|
+
* @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
|
24
|
+
* @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by
|
25
|
+
* MergeCells plugin).
|
26
|
+
* @property {string} calculationType String which describes types of calculation which will be performed.
|
27
|
+
* @property {string} inlineStartOffset Inline-start offset of the parent container.
|
28
|
+
* @property {string} stretchMode Stretch mode 'all' or 'last'.
|
29
|
+
* @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
|
30
|
+
*/
|
9
31
|
/**
|
10
32
|
* Calculates indexes of columns to render OR columns that are visible.
|
11
33
|
* To redo the calculation, you need to create a new calculator.
|
12
34
|
*
|
13
35
|
* @class ViewportColumnsCalculator
|
14
36
|
*/
|
37
|
+
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
38
|
+
var _options = /*#__PURE__*/new WeakMap();
|
15
39
|
class ViewportColumnsCalculator {
|
16
40
|
/**
|
17
41
|
* Default column width.
|
@@ -23,75 +47,76 @@ class ViewportColumnsCalculator {
|
|
23
47
|
}
|
24
48
|
|
25
49
|
/**
|
26
|
-
*
|
27
|
-
*
|
28
|
-
* @
|
29
|
-
* @param {number} options.totalItems Total number of columns.
|
30
|
-
* @param {Function} options.itemSizeFn Function that returns the width of the column at a given index (in px).
|
31
|
-
* @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by
|
32
|
-
* MergeCells plugin).
|
33
|
-
* @param {string} options.calculationType String which describes types of calculation which will be performed.
|
34
|
-
* @param {string} options.inlineStartOffset Inline-start offset of the parent container.
|
35
|
-
* @param {string} [options.stretchMode] Stretch mode 'all' or 'last'.
|
36
|
-
* @param {Function} [options.stretchingItemWidthFn] Function that returns the new width of the stretched column.
|
50
|
+
* Number of rendered/visible columns.
|
51
|
+
*
|
52
|
+
* @type {number}
|
37
53
|
*/
|
38
|
-
constructor() {
|
39
|
-
let {
|
40
|
-
viewportSize,
|
41
|
-
scrollOffset,
|
42
|
-
totalItems,
|
43
|
-
itemSizeFn,
|
44
|
-
overrideFn,
|
45
|
-
calculationType,
|
46
|
-
stretchMode,
|
47
|
-
stretchingItemWidthFn = width => width,
|
48
|
-
inlineStartOffset
|
49
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
50
|
-
privatePool.set(this, {
|
51
|
-
viewportWidth: viewportSize,
|
52
|
-
scrollOffset,
|
53
|
-
totalColumns: totalItems,
|
54
|
-
columnWidthFn: itemSizeFn,
|
55
|
-
overrideFn,
|
56
|
-
calculationType,
|
57
|
-
stretchingColumnWidthFn: stretchingItemWidthFn,
|
58
|
-
inlineStartOffset
|
59
|
-
});
|
60
|
-
|
61
|
-
/**
|
62
|
-
* Number of rendered/visible columns.
|
63
|
-
*
|
64
|
-
* @type {number}
|
65
|
-
*/
|
66
|
-
this.count = 0;
|
67
54
|
|
55
|
+
/**
|
56
|
+
* @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
|
57
|
+
*/
|
58
|
+
constructor(options) {
|
59
|
+
_defineProperty(this, "count", 0);
|
68
60
|
/**
|
69
61
|
* Index of the first rendered/visible column (can be overwritten using overrideFn).
|
70
62
|
*
|
71
63
|
* @type {number|null}
|
72
64
|
*/
|
73
|
-
this
|
74
|
-
|
65
|
+
_defineProperty(this, "startColumn", null);
|
75
66
|
/**
|
76
67
|
* Index of the last rendered/visible column (can be overwritten using overrideFn).
|
77
68
|
*
|
78
69
|
* @type {null}
|
79
70
|
*/
|
80
|
-
this
|
81
|
-
|
71
|
+
_defineProperty(this, "endColumn", null);
|
82
72
|
/**
|
83
73
|
* Position of the first rendered/visible column (in px).
|
84
74
|
*
|
85
75
|
* @type {number|null}
|
86
76
|
*/
|
87
|
-
this
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
this
|
94
|
-
|
77
|
+
_defineProperty(this, "startPosition", null);
|
78
|
+
/**
|
79
|
+
* Determines if the viewport is visible in the trimming container.
|
80
|
+
*
|
81
|
+
* @type {boolean}
|
82
|
+
*/
|
83
|
+
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
84
|
+
/**
|
85
|
+
* @type {number}
|
86
|
+
*/
|
87
|
+
_defineProperty(this, "stretchAllRatio", 0);
|
88
|
+
/**
|
89
|
+
* @type {number}
|
90
|
+
*/
|
91
|
+
_defineProperty(this, "stretchLastWidth", 0);
|
92
|
+
/**
|
93
|
+
* @type {number}
|
94
|
+
*/
|
95
|
+
_classPrivateFieldInitSpec(this, _totalTargetWidth, {
|
96
|
+
writable: true,
|
97
|
+
value: 0
|
98
|
+
});
|
99
|
+
/**
|
100
|
+
* @type {boolean}
|
101
|
+
*/
|
102
|
+
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
103
|
+
/**
|
104
|
+
* @type {number[]}
|
105
|
+
*/
|
106
|
+
_defineProperty(this, "stretchAllColumnsWidth", []);
|
107
|
+
/**
|
108
|
+
* The calculator options.
|
109
|
+
*
|
110
|
+
* @type {ViewportColumnsCalculatorOptions}
|
111
|
+
*/
|
112
|
+
_classPrivateFieldInitSpec(this, _options, {
|
113
|
+
writable: true,
|
114
|
+
value: void 0
|
115
|
+
});
|
116
|
+
_classPrivateFieldSet(this, _options, options);
|
117
|
+
if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
|
118
|
+
_classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
|
119
|
+
}
|
95
120
|
this.calculate();
|
96
121
|
}
|
97
122
|
|
@@ -99,21 +124,22 @@ class ViewportColumnsCalculator {
|
|
99
124
|
* Calculates viewport.
|
100
125
|
*/
|
101
126
|
calculate() {
|
127
|
+
const {
|
128
|
+
calculationType,
|
129
|
+
overrideFn,
|
130
|
+
scrollOffset,
|
131
|
+
totalColumns,
|
132
|
+
viewportWidth
|
133
|
+
} = _classPrivateFieldGet(this, _options);
|
134
|
+
const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
|
135
|
+
// +1 pixel for row header width compensation for horizontal scroll > 0
|
136
|
+
const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
|
102
137
|
let sum = 0;
|
103
138
|
let needReverse = true;
|
104
139
|
const startPositions = [];
|
105
140
|
let columnWidth;
|
106
141
|
let firstVisibleColumnWidth = 0;
|
107
142
|
let lastVisibleColumnWidth = 0;
|
108
|
-
const priv = privatePool.get(this);
|
109
|
-
const calculationType = priv.calculationType;
|
110
|
-
const overrideFn = priv.overrideFn;
|
111
|
-
const scrollOffset = priv.scrollOffset;
|
112
|
-
const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
|
113
|
-
const totalColumns = priv.totalColumns;
|
114
|
-
const viewportWidth = priv.viewportWidth;
|
115
|
-
// +1 pixel for row header width compensation for horizontal scroll > 0
|
116
|
-
const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
|
117
143
|
for (let i = 0; i < totalColumns; i++) {
|
118
144
|
columnWidth = this._getColumnWidth(i);
|
119
145
|
if (sum <= zeroBasedScrollOffset && calculationType !== _constants.FULLY_VISIBLE_TYPE) {
|
@@ -121,7 +147,7 @@ class ViewportColumnsCalculator {
|
|
121
147
|
firstVisibleColumnWidth = columnWidth;
|
122
148
|
}
|
123
149
|
if (sum >= zeroBasedScrollOffset && sum + (calculationType === _constants.FULLY_VISIBLE_TYPE ? columnWidth : 0) <= zeroBasedScrollOffset + compensatedViewportWidth) {
|
124
|
-
if (this.startColumn === null || this.startColumn ===
|
150
|
+
if (this.startColumn === null || this.startColumn === undefined) {
|
125
151
|
this.startColumn = i;
|
126
152
|
firstVisibleColumnWidth = columnWidth;
|
127
153
|
}
|
@@ -143,9 +169,9 @@ class ViewportColumnsCalculator {
|
|
143
169
|
const inlineStartColumnOffset = calculationType === _constants.FULLY_VISIBLE_TYPE ? firstVisibleColumnWidth : 0;
|
144
170
|
if (
|
145
171
|
// the table is to the left of the viewport
|
146
|
-
mostRightScrollOffset < -1 *
|
172
|
+
mostRightScrollOffset < -1 * _classPrivateFieldGet(this, _options).inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
|
147
173
|
// the table is to the right of the viewport
|
148
|
-
-1 *
|
174
|
+
-1 * _classPrivateFieldGet(this, _options).scrollOffset - _classPrivateFieldGet(this, _options).viewportWidth > -1 * inlineStartColumnOffset) {
|
149
175
|
this.isVisibleInTrimmingContainer = false;
|
150
176
|
} else {
|
151
177
|
this.isVisibleInTrimmingContainer = true;
|
@@ -166,7 +192,7 @@ class ViewportColumnsCalculator {
|
|
166
192
|
overrideFn(this);
|
167
193
|
}
|
168
194
|
this.startPosition = startPositions[this.startColumn];
|
169
|
-
if (this.startPosition ===
|
195
|
+
if (this.startPosition === undefined) {
|
170
196
|
this.startPosition = null;
|
171
197
|
}
|
172
198
|
|
@@ -185,17 +211,16 @@ class ViewportColumnsCalculator {
|
|
185
211
|
* @param {number} totalWidth The total width of the table.
|
186
212
|
*/
|
187
213
|
refreshStretching(totalWidth) {
|
188
|
-
if (this.
|
214
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
|
189
215
|
return;
|
190
216
|
}
|
191
217
|
let totalColumnsWidth = totalWidth;
|
192
|
-
this
|
193
|
-
const
|
194
|
-
const totalColumns = priv.totalColumns;
|
218
|
+
_classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
|
219
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
195
220
|
let sumAll = 0;
|
196
221
|
for (let i = 0; i < totalColumns; i++) {
|
197
222
|
const columnWidth = this._getColumnWidth(i);
|
198
|
-
const permanentColumnWidth =
|
223
|
+
const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
|
199
224
|
if (typeof permanentColumnWidth === 'number') {
|
200
225
|
totalColumnsWidth -= permanentColumnWidth;
|
201
226
|
} else {
|
@@ -203,11 +228,11 @@ class ViewportColumnsCalculator {
|
|
203
228
|
}
|
204
229
|
}
|
205
230
|
const remainingSize = totalColumnsWidth - sumAll;
|
206
|
-
if (this.
|
231
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
|
207
232
|
this.stretchAllRatio = totalColumnsWidth / sumAll;
|
208
233
|
this.stretchAllColumnsWidth = [];
|
209
234
|
this.needVerifyLastColumnWidth = true;
|
210
|
-
} else if (this.
|
235
|
+
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
|
211
236
|
const columnWidth = this._getColumnWidth(totalColumns - 1);
|
212
237
|
const lastColumnWidth = remainingSize + columnWidth;
|
213
238
|
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
@@ -223,9 +248,9 @@ class ViewportColumnsCalculator {
|
|
223
248
|
*/
|
224
249
|
getStretchedColumnWidth(column, baseWidth) {
|
225
250
|
let result = null;
|
226
|
-
if (this.
|
251
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
|
227
252
|
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
228
|
-
} else if (this.
|
253
|
+
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
|
229
254
|
result = this._getStretchedLastColumnWidth(column);
|
230
255
|
}
|
231
256
|
return result;
|
@@ -239,12 +264,11 @@ class ViewportColumnsCalculator {
|
|
239
264
|
*/
|
240
265
|
_getStretchedAllColumnWidth(column, baseWidth) {
|
241
266
|
let sumRatioWidth = 0;
|
242
|
-
const
|
243
|
-
const totalColumns = priv.totalColumns;
|
267
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
244
268
|
if (!this.stretchAllColumnsWidth[column]) {
|
245
269
|
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
246
|
-
const newStretchedWidth =
|
247
|
-
if (newStretchedWidth ===
|
270
|
+
const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
|
271
|
+
if (newStretchedWidth === undefined) {
|
248
272
|
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
249
273
|
} else {
|
250
274
|
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
@@ -255,8 +279,8 @@ class ViewportColumnsCalculator {
|
|
255
279
|
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
256
280
|
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
257
281
|
}
|
258
|
-
if (sumRatioWidth !== this
|
259
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += this
|
282
|
+
if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
|
283
|
+
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
|
260
284
|
}
|
261
285
|
}
|
262
286
|
return this.stretchAllColumnsWidth[column];
|
@@ -268,8 +292,7 @@ class ViewportColumnsCalculator {
|
|
268
292
|
* @private
|
269
293
|
*/
|
270
294
|
_getStretchedLastColumnWidth(column) {
|
271
|
-
const
|
272
|
-
const totalColumns = priv.totalColumns;
|
295
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
273
296
|
if (column === totalColumns - 1) {
|
274
297
|
return this.stretchLastWidth;
|
275
298
|
}
|
@@ -282,7 +305,7 @@ class ViewportColumnsCalculator {
|
|
282
305
|
* @private
|
283
306
|
*/
|
284
307
|
_getColumnWidth(column) {
|
285
|
-
let width =
|
308
|
+
let width = _classPrivateFieldGet(this, _options).columnWidthFn(column);
|
286
309
|
if (isNaN(width)) {
|
287
310
|
width = ViewportColumnsCalculator.DEFAULT_WIDTH;
|
288
311
|
}
|