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
@@ -1,14 +1,38 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import "core-js/modules/es.array.at.js";
|
3
|
+
import "core-js/modules/es.error.cause.js";
|
4
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
|
+
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; }
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
8
|
+
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); }
|
9
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
10
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
11
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
12
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
13
|
+
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; } }
|
3
14
|
import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
|
4
|
-
|
5
|
-
|
15
|
+
/**
|
16
|
+
* @typedef {object} ViewportColumnsCalculatorOptions
|
17
|
+
* @property {number} viewportWidth Width of the viewport.
|
18
|
+
* @property {number} scrollOffset Current horizontal scroll position of the viewport.
|
19
|
+
* @property {number} totalColumns Total number of columns.
|
20
|
+
* @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
|
21
|
+
* @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by
|
22
|
+
* MergeCells plugin).
|
23
|
+
* @property {string} calculationType String which describes types of calculation which will be performed.
|
24
|
+
* @property {string} inlineStartOffset Inline-start offset of the parent container.
|
25
|
+
* @property {string} stretchMode Stretch mode 'all' or 'last'.
|
26
|
+
* @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
|
27
|
+
*/
|
6
28
|
/**
|
7
29
|
* Calculates indexes of columns to render OR columns that are visible.
|
8
30
|
* To redo the calculation, you need to create a new calculator.
|
9
31
|
*
|
10
32
|
* @class ViewportColumnsCalculator
|
11
33
|
*/
|
34
|
+
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
35
|
+
var _options = /*#__PURE__*/new WeakMap();
|
12
36
|
class ViewportColumnsCalculator {
|
13
37
|
/**
|
14
38
|
* Default column width.
|
@@ -20,75 +44,76 @@ class ViewportColumnsCalculator {
|
|
20
44
|
}
|
21
45
|
|
22
46
|
/**
|
23
|
-
*
|
24
|
-
*
|
25
|
-
* @
|
26
|
-
* @param {number} options.totalItems Total number of columns.
|
27
|
-
* @param {Function} options.itemSizeFn Function that returns the width of the column at a given index (in px).
|
28
|
-
* @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by
|
29
|
-
* MergeCells plugin).
|
30
|
-
* @param {string} options.calculationType String which describes types of calculation which will be performed.
|
31
|
-
* @param {string} options.inlineStartOffset Inline-start offset of the parent container.
|
32
|
-
* @param {string} [options.stretchMode] Stretch mode 'all' or 'last'.
|
33
|
-
* @param {Function} [options.stretchingItemWidthFn] Function that returns the new width of the stretched column.
|
47
|
+
* Number of rendered/visible columns.
|
48
|
+
*
|
49
|
+
* @type {number}
|
34
50
|
*/
|
35
|
-
constructor() {
|
36
|
-
let {
|
37
|
-
viewportSize,
|
38
|
-
scrollOffset,
|
39
|
-
totalItems,
|
40
|
-
itemSizeFn,
|
41
|
-
overrideFn,
|
42
|
-
calculationType,
|
43
|
-
stretchMode,
|
44
|
-
stretchingItemWidthFn = width => width,
|
45
|
-
inlineStartOffset
|
46
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
47
|
-
privatePool.set(this, {
|
48
|
-
viewportWidth: viewportSize,
|
49
|
-
scrollOffset,
|
50
|
-
totalColumns: totalItems,
|
51
|
-
columnWidthFn: itemSizeFn,
|
52
|
-
overrideFn,
|
53
|
-
calculationType,
|
54
|
-
stretchingColumnWidthFn: stretchingItemWidthFn,
|
55
|
-
inlineStartOffset
|
56
|
-
});
|
57
|
-
|
58
|
-
/**
|
59
|
-
* Number of rendered/visible columns.
|
60
|
-
*
|
61
|
-
* @type {number}
|
62
|
-
*/
|
63
|
-
this.count = 0;
|
64
51
|
|
52
|
+
/**
|
53
|
+
* @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
|
54
|
+
*/
|
55
|
+
constructor(options) {
|
56
|
+
_defineProperty(this, "count", 0);
|
65
57
|
/**
|
66
58
|
* Index of the first rendered/visible column (can be overwritten using overrideFn).
|
67
59
|
*
|
68
60
|
* @type {number|null}
|
69
61
|
*/
|
70
|
-
this
|
71
|
-
|
62
|
+
_defineProperty(this, "startColumn", null);
|
72
63
|
/**
|
73
64
|
* Index of the last rendered/visible column (can be overwritten using overrideFn).
|
74
65
|
*
|
75
66
|
* @type {null}
|
76
67
|
*/
|
77
|
-
this
|
78
|
-
|
68
|
+
_defineProperty(this, "endColumn", null);
|
79
69
|
/**
|
80
70
|
* Position of the first rendered/visible column (in px).
|
81
71
|
*
|
82
72
|
* @type {number|null}
|
83
73
|
*/
|
84
|
-
this
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
this
|
91
|
-
|
74
|
+
_defineProperty(this, "startPosition", null);
|
75
|
+
/**
|
76
|
+
* Determines if the viewport is visible in the trimming container.
|
77
|
+
*
|
78
|
+
* @type {boolean}
|
79
|
+
*/
|
80
|
+
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
81
|
+
/**
|
82
|
+
* @type {number}
|
83
|
+
*/
|
84
|
+
_defineProperty(this, "stretchAllRatio", 0);
|
85
|
+
/**
|
86
|
+
* @type {number}
|
87
|
+
*/
|
88
|
+
_defineProperty(this, "stretchLastWidth", 0);
|
89
|
+
/**
|
90
|
+
* @type {number}
|
91
|
+
*/
|
92
|
+
_classPrivateFieldInitSpec(this, _totalTargetWidth, {
|
93
|
+
writable: true,
|
94
|
+
value: 0
|
95
|
+
});
|
96
|
+
/**
|
97
|
+
* @type {boolean}
|
98
|
+
*/
|
99
|
+
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
100
|
+
/**
|
101
|
+
* @type {number[]}
|
102
|
+
*/
|
103
|
+
_defineProperty(this, "stretchAllColumnsWidth", []);
|
104
|
+
/**
|
105
|
+
* The calculator options.
|
106
|
+
*
|
107
|
+
* @type {ViewportColumnsCalculatorOptions}
|
108
|
+
*/
|
109
|
+
_classPrivateFieldInitSpec(this, _options, {
|
110
|
+
writable: true,
|
111
|
+
value: void 0
|
112
|
+
});
|
113
|
+
_classPrivateFieldSet(this, _options, options);
|
114
|
+
if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
|
115
|
+
_classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
|
116
|
+
}
|
92
117
|
this.calculate();
|
93
118
|
}
|
94
119
|
|
@@ -96,21 +121,22 @@ class ViewportColumnsCalculator {
|
|
96
121
|
* Calculates viewport.
|
97
122
|
*/
|
98
123
|
calculate() {
|
124
|
+
const {
|
125
|
+
calculationType,
|
126
|
+
overrideFn,
|
127
|
+
scrollOffset,
|
128
|
+
totalColumns,
|
129
|
+
viewportWidth
|
130
|
+
} = _classPrivateFieldGet(this, _options);
|
131
|
+
const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
|
132
|
+
// +1 pixel for row header width compensation for horizontal scroll > 0
|
133
|
+
const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
|
99
134
|
let sum = 0;
|
100
135
|
let needReverse = true;
|
101
136
|
const startPositions = [];
|
102
137
|
let columnWidth;
|
103
138
|
let firstVisibleColumnWidth = 0;
|
104
139
|
let lastVisibleColumnWidth = 0;
|
105
|
-
const priv = privatePool.get(this);
|
106
|
-
const calculationType = priv.calculationType;
|
107
|
-
const overrideFn = priv.overrideFn;
|
108
|
-
const scrollOffset = priv.scrollOffset;
|
109
|
-
const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
|
110
|
-
const totalColumns = priv.totalColumns;
|
111
|
-
const viewportWidth = priv.viewportWidth;
|
112
|
-
// +1 pixel for row header width compensation for horizontal scroll > 0
|
113
|
-
const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
|
114
140
|
for (let i = 0; i < totalColumns; i++) {
|
115
141
|
columnWidth = this._getColumnWidth(i);
|
116
142
|
if (sum <= zeroBasedScrollOffset && calculationType !== FULLY_VISIBLE_TYPE) {
|
@@ -118,7 +144,7 @@ class ViewportColumnsCalculator {
|
|
118
144
|
firstVisibleColumnWidth = columnWidth;
|
119
145
|
}
|
120
146
|
if (sum >= zeroBasedScrollOffset && sum + (calculationType === FULLY_VISIBLE_TYPE ? columnWidth : 0) <= zeroBasedScrollOffset + compensatedViewportWidth) {
|
121
|
-
if (this.startColumn === null || this.startColumn ===
|
147
|
+
if (this.startColumn === null || this.startColumn === undefined) {
|
122
148
|
this.startColumn = i;
|
123
149
|
firstVisibleColumnWidth = columnWidth;
|
124
150
|
}
|
@@ -140,9 +166,9 @@ class ViewportColumnsCalculator {
|
|
140
166
|
const inlineStartColumnOffset = calculationType === FULLY_VISIBLE_TYPE ? firstVisibleColumnWidth : 0;
|
141
167
|
if (
|
142
168
|
// the table is to the left of the viewport
|
143
|
-
mostRightScrollOffset < -1 *
|
169
|
+
mostRightScrollOffset < -1 * _classPrivateFieldGet(this, _options).inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
|
144
170
|
// the table is to the right of the viewport
|
145
|
-
-1 *
|
171
|
+
-1 * _classPrivateFieldGet(this, _options).scrollOffset - _classPrivateFieldGet(this, _options).viewportWidth > -1 * inlineStartColumnOffset) {
|
146
172
|
this.isVisibleInTrimmingContainer = false;
|
147
173
|
} else {
|
148
174
|
this.isVisibleInTrimmingContainer = true;
|
@@ -163,7 +189,7 @@ class ViewportColumnsCalculator {
|
|
163
189
|
overrideFn(this);
|
164
190
|
}
|
165
191
|
this.startPosition = startPositions[this.startColumn];
|
166
|
-
if (this.startPosition ===
|
192
|
+
if (this.startPosition === undefined) {
|
167
193
|
this.startPosition = null;
|
168
194
|
}
|
169
195
|
|
@@ -182,17 +208,16 @@ class ViewportColumnsCalculator {
|
|
182
208
|
* @param {number} totalWidth The total width of the table.
|
183
209
|
*/
|
184
210
|
refreshStretching(totalWidth) {
|
185
|
-
if (this.
|
211
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
|
186
212
|
return;
|
187
213
|
}
|
188
214
|
let totalColumnsWidth = totalWidth;
|
189
|
-
this
|
190
|
-
const
|
191
|
-
const totalColumns = priv.totalColumns;
|
215
|
+
_classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
|
216
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
192
217
|
let sumAll = 0;
|
193
218
|
for (let i = 0; i < totalColumns; i++) {
|
194
219
|
const columnWidth = this._getColumnWidth(i);
|
195
|
-
const permanentColumnWidth =
|
220
|
+
const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
|
196
221
|
if (typeof permanentColumnWidth === 'number') {
|
197
222
|
totalColumnsWidth -= permanentColumnWidth;
|
198
223
|
} else {
|
@@ -200,11 +225,11 @@ class ViewportColumnsCalculator {
|
|
200
225
|
}
|
201
226
|
}
|
202
227
|
const remainingSize = totalColumnsWidth - sumAll;
|
203
|
-
if (this.
|
228
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
|
204
229
|
this.stretchAllRatio = totalColumnsWidth / sumAll;
|
205
230
|
this.stretchAllColumnsWidth = [];
|
206
231
|
this.needVerifyLastColumnWidth = true;
|
207
|
-
} else if (this.
|
232
|
+
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
|
208
233
|
const columnWidth = this._getColumnWidth(totalColumns - 1);
|
209
234
|
const lastColumnWidth = remainingSize + columnWidth;
|
210
235
|
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
@@ -220,9 +245,9 @@ class ViewportColumnsCalculator {
|
|
220
245
|
*/
|
221
246
|
getStretchedColumnWidth(column, baseWidth) {
|
222
247
|
let result = null;
|
223
|
-
if (this.
|
248
|
+
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
|
224
249
|
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
225
|
-
} else if (this.
|
250
|
+
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
|
226
251
|
result = this._getStretchedLastColumnWidth(column);
|
227
252
|
}
|
228
253
|
return result;
|
@@ -236,12 +261,11 @@ class ViewportColumnsCalculator {
|
|
236
261
|
*/
|
237
262
|
_getStretchedAllColumnWidth(column, baseWidth) {
|
238
263
|
let sumRatioWidth = 0;
|
239
|
-
const
|
240
|
-
const totalColumns = priv.totalColumns;
|
264
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
241
265
|
if (!this.stretchAllColumnsWidth[column]) {
|
242
266
|
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
243
|
-
const newStretchedWidth =
|
244
|
-
if (newStretchedWidth ===
|
267
|
+
const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
|
268
|
+
if (newStretchedWidth === undefined) {
|
245
269
|
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
246
270
|
} else {
|
247
271
|
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
@@ -252,8 +276,8 @@ class ViewportColumnsCalculator {
|
|
252
276
|
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
253
277
|
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
254
278
|
}
|
255
|
-
if (sumRatioWidth !== this
|
256
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += this
|
279
|
+
if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
|
280
|
+
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
|
257
281
|
}
|
258
282
|
}
|
259
283
|
return this.stretchAllColumnsWidth[column];
|
@@ -265,8 +289,7 @@ class ViewportColumnsCalculator {
|
|
265
289
|
* @private
|
266
290
|
*/
|
267
291
|
_getStretchedLastColumnWidth(column) {
|
268
|
-
const
|
269
|
-
const totalColumns = priv.totalColumns;
|
292
|
+
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
270
293
|
if (column === totalColumns - 1) {
|
271
294
|
return this.stretchLastWidth;
|
272
295
|
}
|
@@ -279,7 +302,7 @@ class ViewportColumnsCalculator {
|
|
279
302
|
* @private
|
280
303
|
*/
|
281
304
|
_getColumnWidth(column) {
|
282
|
-
let width =
|
305
|
+
let width = _classPrivateFieldGet(this, _options).columnWidthFn(column);
|
283
306
|
if (isNaN(width)) {
|
284
307
|
width = ViewportColumnsCalculator.DEFAULT_WIDTH;
|
285
308
|
}
|
@@ -3,15 +3,35 @@
|
|
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} ViewportRowsCalculatorOptions
|
20
|
+
* @property {number} viewportHeight Height of the viewport.
|
21
|
+
* @property {number} scrollOffset Current vertical scroll position of the viewport.
|
22
|
+
* @property {number} totalRows Total number of rows.
|
23
|
+
* @property {Function} rowHeightFn Function that returns the height of the row at a given index (in px).
|
24
|
+
* @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
|
25
|
+
* @property {string} calculationType String which describes types of calculation which will be performed.
|
26
|
+
* @property {number} horizontalScrollbarHeight The scrollbar height.
|
27
|
+
*/
|
9
28
|
/**
|
10
29
|
* Calculates indexes of rows to render OR rows that are visible.
|
11
30
|
* To redo the calculation, you need to create a new calculator.
|
12
31
|
*
|
13
32
|
* @class ViewportRowsCalculator
|
14
33
|
*/
|
34
|
+
var _options = /*#__PURE__*/new WeakMap();
|
15
35
|
class ViewportRowsCalculator {
|
16
36
|
/**
|
17
37
|
* Default row height.
|
@@ -23,63 +43,50 @@ class ViewportRowsCalculator {
|
|
23
43
|
}
|
24
44
|
|
25
45
|
/**
|
26
|
-
*
|
27
|
-
*
|
28
|
-
* @
|
29
|
-
* @param {number} options.totalItems Total number of rows.
|
30
|
-
* @param {Function} options.itemSizeFn Function that returns the height of the row at a given index (in px).
|
31
|
-
* @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
|
32
|
-
* @param {string} options.calculationType String which describes types of calculation which will be performed.
|
33
|
-
* @param {number} options.scrollbarHeight The scrollbar height.
|
46
|
+
* Number of rendered/visible rows.
|
47
|
+
*
|
48
|
+
* @type {number}
|
34
49
|
*/
|
35
|
-
constructor() {
|
36
|
-
let {
|
37
|
-
viewportSize,
|
38
|
-
scrollOffset,
|
39
|
-
totalItems,
|
40
|
-
itemSizeFn,
|
41
|
-
overrideFn,
|
42
|
-
calculationType,
|
43
|
-
scrollbarHeight
|
44
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
45
|
-
privatePool.set(this, {
|
46
|
-
viewportHeight: viewportSize,
|
47
|
-
scrollOffset,
|
48
|
-
totalRows: totalItems,
|
49
|
-
rowHeightFn: itemSizeFn,
|
50
|
-
overrideFn,
|
51
|
-
calculationType,
|
52
|
-
horizontalScrollbarHeight: scrollbarHeight
|
53
|
-
});
|
54
|
-
|
55
|
-
/**
|
56
|
-
* Number of rendered/visible rows.
|
57
|
-
*
|
58
|
-
* @type {number}
|
59
|
-
*/
|
60
|
-
this.count = 0;
|
61
50
|
|
51
|
+
/**
|
52
|
+
* @param {ViewportRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
|
53
|
+
*/
|
54
|
+
constructor(options) {
|
55
|
+
_defineProperty(this, "count", 0);
|
62
56
|
/**
|
63
57
|
* Index of the first rendered/visible row (can be overwritten using overrideFn).
|
64
58
|
*
|
65
59
|
* @type {number|null}
|
66
60
|
*/
|
67
|
-
this
|
68
|
-
|
61
|
+
_defineProperty(this, "startRow", null);
|
69
62
|
/**
|
70
63
|
* Index of the last rendered/visible row (can be overwritten using overrideFn).
|
71
64
|
*
|
72
65
|
* @type {null}
|
73
66
|
*/
|
74
|
-
this
|
75
|
-
|
67
|
+
_defineProperty(this, "endRow", null);
|
76
68
|
/**
|
77
69
|
* Position of the first rendered/visible row (in px).
|
78
70
|
*
|
79
71
|
* @type {number|null}
|
80
72
|
*/
|
81
|
-
this
|
82
|
-
|
73
|
+
_defineProperty(this, "startPosition", null);
|
74
|
+
/**
|
75
|
+
* Determines if the viewport is visible in the trimming container.
|
76
|
+
*
|
77
|
+
* @type {boolean}
|
78
|
+
*/
|
79
|
+
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
80
|
+
/**
|
81
|
+
* The calculator options.
|
82
|
+
*
|
83
|
+
* @type {ViewportRowsCalculatorOptions}
|
84
|
+
*/
|
85
|
+
_classPrivateFieldInitSpec(this, _options, {
|
86
|
+
writable: true,
|
87
|
+
value: void 0
|
88
|
+
});
|
89
|
+
_classPrivateFieldSet(this, _options, options);
|
83
90
|
this.calculate();
|
84
91
|
}
|
85
92
|
|
@@ -87,15 +94,16 @@ class ViewportRowsCalculator {
|
|
87
94
|
* Calculates viewport.
|
88
95
|
*/
|
89
96
|
calculate() {
|
90
|
-
const
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
const
|
97
|
+
const {
|
98
|
+
calculationType,
|
99
|
+
overrideFn,
|
100
|
+
rowHeightFn,
|
101
|
+
scrollOffset,
|
102
|
+
totalRows,
|
103
|
+
viewportHeight
|
104
|
+
} = _classPrivateFieldGet(this, _options);
|
105
|
+
const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
|
106
|
+
const horizontalScrollbarHeight = _classPrivateFieldGet(this, _options).horizontalScrollbarHeight || 0;
|
99
107
|
let sum = 0;
|
100
108
|
let needReverse = true;
|
101
109
|
const startPositions = [];
|
@@ -160,7 +168,7 @@ class ViewportRowsCalculator {
|
|
160
168
|
overrideFn(this);
|
161
169
|
}
|
162
170
|
this.startPosition = startPositions[this.startRow];
|
163
|
-
if (this.startPosition ===
|
171
|
+
if (this.startPosition === undefined) {
|
164
172
|
this.startPosition = null;
|
165
173
|
}
|
166
174
|
|
@@ -1,14 +1,34 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import "core-js/modules/es.array.at.js";
|
3
|
+
import "core-js/modules/es.error.cause.js";
|
4
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
|
+
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; }
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
8
|
+
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); }
|
9
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
10
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
11
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
12
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
13
|
+
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; } }
|
3
14
|
import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
|
4
|
-
|
5
|
-
|
15
|
+
/**
|
16
|
+
* @typedef {object} ViewportRowsCalculatorOptions
|
17
|
+
* @property {number} viewportHeight Height of the viewport.
|
18
|
+
* @property {number} scrollOffset Current vertical scroll position of the viewport.
|
19
|
+
* @property {number} totalRows Total number of rows.
|
20
|
+
* @property {Function} rowHeightFn Function that returns the height of the row at a given index (in px).
|
21
|
+
* @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
|
22
|
+
* @property {string} calculationType String which describes types of calculation which will be performed.
|
23
|
+
* @property {number} horizontalScrollbarHeight The scrollbar height.
|
24
|
+
*/
|
6
25
|
/**
|
7
26
|
* Calculates indexes of rows to render OR rows that are visible.
|
8
27
|
* To redo the calculation, you need to create a new calculator.
|
9
28
|
*
|
10
29
|
* @class ViewportRowsCalculator
|
11
30
|
*/
|
31
|
+
var _options = /*#__PURE__*/new WeakMap();
|
12
32
|
class ViewportRowsCalculator {
|
13
33
|
/**
|
14
34
|
* Default row height.
|
@@ -20,63 +40,50 @@ class ViewportRowsCalculator {
|
|
20
40
|
}
|
21
41
|
|
22
42
|
/**
|
23
|
-
*
|
24
|
-
*
|
25
|
-
* @
|
26
|
-
* @param {number} options.totalItems Total number of rows.
|
27
|
-
* @param {Function} options.itemSizeFn Function that returns the height of the row at a given index (in px).
|
28
|
-
* @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
|
29
|
-
* @param {string} options.calculationType String which describes types of calculation which will be performed.
|
30
|
-
* @param {number} options.scrollbarHeight The scrollbar height.
|
43
|
+
* Number of rendered/visible rows.
|
44
|
+
*
|
45
|
+
* @type {number}
|
31
46
|
*/
|
32
|
-
constructor() {
|
33
|
-
let {
|
34
|
-
viewportSize,
|
35
|
-
scrollOffset,
|
36
|
-
totalItems,
|
37
|
-
itemSizeFn,
|
38
|
-
overrideFn,
|
39
|
-
calculationType,
|
40
|
-
scrollbarHeight
|
41
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
42
|
-
privatePool.set(this, {
|
43
|
-
viewportHeight: viewportSize,
|
44
|
-
scrollOffset,
|
45
|
-
totalRows: totalItems,
|
46
|
-
rowHeightFn: itemSizeFn,
|
47
|
-
overrideFn,
|
48
|
-
calculationType,
|
49
|
-
horizontalScrollbarHeight: scrollbarHeight
|
50
|
-
});
|
51
|
-
|
52
|
-
/**
|
53
|
-
* Number of rendered/visible rows.
|
54
|
-
*
|
55
|
-
* @type {number}
|
56
|
-
*/
|
57
|
-
this.count = 0;
|
58
47
|
|
48
|
+
/**
|
49
|
+
* @param {ViewportRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
|
50
|
+
*/
|
51
|
+
constructor(options) {
|
52
|
+
_defineProperty(this, "count", 0);
|
59
53
|
/**
|
60
54
|
* Index of the first rendered/visible row (can be overwritten using overrideFn).
|
61
55
|
*
|
62
56
|
* @type {number|null}
|
63
57
|
*/
|
64
|
-
this
|
65
|
-
|
58
|
+
_defineProperty(this, "startRow", null);
|
66
59
|
/**
|
67
60
|
* Index of the last rendered/visible row (can be overwritten using overrideFn).
|
68
61
|
*
|
69
62
|
* @type {null}
|
70
63
|
*/
|
71
|
-
this
|
72
|
-
|
64
|
+
_defineProperty(this, "endRow", null);
|
73
65
|
/**
|
74
66
|
* Position of the first rendered/visible row (in px).
|
75
67
|
*
|
76
68
|
* @type {number|null}
|
77
69
|
*/
|
78
|
-
this
|
79
|
-
|
70
|
+
_defineProperty(this, "startPosition", null);
|
71
|
+
/**
|
72
|
+
* Determines if the viewport is visible in the trimming container.
|
73
|
+
*
|
74
|
+
* @type {boolean}
|
75
|
+
*/
|
76
|
+
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
77
|
+
/**
|
78
|
+
* The calculator options.
|
79
|
+
*
|
80
|
+
* @type {ViewportRowsCalculatorOptions}
|
81
|
+
*/
|
82
|
+
_classPrivateFieldInitSpec(this, _options, {
|
83
|
+
writable: true,
|
84
|
+
value: void 0
|
85
|
+
});
|
86
|
+
_classPrivateFieldSet(this, _options, options);
|
80
87
|
this.calculate();
|
81
88
|
}
|
82
89
|
|
@@ -84,15 +91,16 @@ class ViewportRowsCalculator {
|
|
84
91
|
* Calculates viewport.
|
85
92
|
*/
|
86
93
|
calculate() {
|
87
|
-
const
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
const
|
94
|
+
const {
|
95
|
+
calculationType,
|
96
|
+
overrideFn,
|
97
|
+
rowHeightFn,
|
98
|
+
scrollOffset,
|
99
|
+
totalRows,
|
100
|
+
viewportHeight
|
101
|
+
} = _classPrivateFieldGet(this, _options);
|
102
|
+
const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
|
103
|
+
const horizontalScrollbarHeight = _classPrivateFieldGet(this, _options).horizontalScrollbarHeight || 0;
|
96
104
|
let sum = 0;
|
97
105
|
let needReverse = true;
|
98
106
|
const startPositions = [];
|
@@ -157,7 +165,7 @@ class ViewportRowsCalculator {
|
|
157
165
|
overrideFn(this);
|
158
166
|
}
|
159
167
|
this.startPosition = startPositions[this.startRow];
|
160
|
-
if (this.startPosition ===
|
168
|
+
if (this.startPosition === undefined) {
|
161
169
|
this.startPosition = null;
|
162
170
|
}
|
163
171
|
|
@@ -19,7 +19,13 @@ class Clone extends _base.default {
|
|
19
19
|
*/
|
20
20
|
constructor(table, settings, clone) {
|
21
21
|
super(table, settings);
|
22
|
+
/**
|
23
|
+
* @type {Walkontable}
|
24
|
+
*/
|
22
25
|
_defineProperty(this, "cloneSource", void 0);
|
26
|
+
/**
|
27
|
+
* @type {Overlay}
|
28
|
+
*/
|
23
29
|
_defineProperty(this, "cloneOverlay", void 0);
|
24
30
|
const facadeGetter = this.wtSettings.getSetting('facade', this);
|
25
31
|
this.cloneSource = clone.source;
|