handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +29 -23
- package/3rdparty/walkontable/src/core/_base.mjs +29 -23
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +12 -6
- package/3rdparty/walkontable/src/facade/core.mjs +12 -6
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +8 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
- package/3rdparty/walkontable/src/overlay/top.js +9 -8
- package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
- package/3rdparty/walkontable/src/overlays.js +10 -26
- package/3rdparty/walkontable/src/overlays.mjs +10 -26
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +4 -2
- package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
- package/3rdparty/walkontable/src/renderer/table.js +13 -4
- package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
- package/3rdparty/walkontable/src/scroll.js +46 -37
- package/3rdparty/walkontable/src/scroll.mjs +46 -37
- package/3rdparty/walkontable/src/selection/border/border.js +52 -58
- package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
- package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
- package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
- package/3rdparty/walkontable/src/selection/index.js +6 -4
- package/3rdparty/walkontable/src/selection/index.mjs +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +3 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
- package/3rdparty/walkontable/src/selection/scanner.js +46 -11
- package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
- package/3rdparty/walkontable/src/settings.js +8 -9
- package/3rdparty/walkontable/src/settings.mjs +8 -9
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +25 -36
- package/3rdparty/walkontable/src/table.mjs +25 -36
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -43
- package/3rdparty/walkontable/src/utils/column.mjs +1 -43
- package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
- package/3rdparty/walkontable/src/viewport.js +94 -91
- package/3rdparty/walkontable/src/viewport.mjs +95 -92
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/base.js +4 -4
- package/base.mjs +3 -3
- package/core/focusCatcher/focusDetector.js +1 -0
- package/core/focusCatcher/focusDetector.mjs +1 -0
- package/core/hooks/bucket.js +184 -0
- package/core/hooks/bucket.mjs +180 -0
- package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
- package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
- package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
- package/core/hooks/index.js +385 -0
- package/core/hooks/index.mjs +381 -0
- package/core/index.js +2 -0
- package/core.d.ts +5 -3
- package/core.js +77 -35
- package/core.mjs +69 -27
- package/dataMap/dataMap.js +3 -0
- package/dataMap/dataMap.mjs +3 -0
- package/dataMap/dataSource.js +2 -0
- package/dataMap/dataSource.mjs +2 -0
- package/dataMap/metaManager/index.js +2 -0
- package/dataMap/metaManager/index.mjs +2 -0
- package/dataMap/metaManager/metaSchema.js +91 -5
- package/dataMap/metaManager/metaSchema.mjs +91 -5
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
- package/dist/handsontable.css +84 -72
- package/dist/handsontable.full.css +317 -304
- package/dist/handsontable.full.js +14826 -7294
- package/dist/handsontable.full.min.css +15 -10
- package/dist/handsontable.full.min.js +262 -69
- package/dist/handsontable.js +7826 -5552
- package/dist/handsontable.min.css +10 -6
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/editorManager.js +2 -2
- package/editorManager.mjs +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
- package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
- package/editors/baseEditor/baseEditor.js +25 -18
- package/editors/baseEditor/baseEditor.mjs +26 -19
- package/editors/dateEditor/dateEditor.js +9 -0
- package/editors/dateEditor/dateEditor.mjs +10 -1
- package/editors/dropdownEditor/dropdownEditor.js +4 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
- package/editors/handsontableEditor/handsontableEditor.js +36 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
- package/editors/passwordEditor/passwordEditor.js +18 -0
- package/editors/passwordEditor/passwordEditor.mjs +18 -0
- package/editors/registry.js +2 -2
- package/editors/registry.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +5 -12
- package/editors/textEditor/textEditor.mjs +6 -13
- package/focusManager.js +5 -7
- package/focusManager.mjs +5 -7
- package/helpers/array.js +2 -0
- package/helpers/array.mjs +2 -0
- package/helpers/data.js +3 -0
- package/helpers/data.mjs +3 -0
- package/helpers/dom/element.js +39 -18
- package/helpers/dom/element.mjs +38 -17
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +3 -3
- package/helpers/moves.js +3 -0
- package/helpers/moves.mjs +3 -0
- package/helpers/number.js +1 -0
- package/helpers/number.mjs +1 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/index.d.ts +8 -0
- package/i18n/languages/ja-JP.d.ts +1 -1
- package/i18n/phraseFormatters/substituteVariables.js +1 -0
- package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
- package/index.d.ts +9 -1
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/package.json +22 -7
- package/plugins/autoColumnSize/autoColumnSize.js +22 -27
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
- package/plugins/autoRowSize/autoRowSize.js +20 -22
- package/plugins/autoRowSize/autoRowSize.mjs +21 -23
- package/plugins/autofill/autofill.js +4 -5
- package/plugins/autofill/autofill.mjs +1 -1
- package/plugins/base/base.d.ts +1 -1
- package/plugins/base/base.js +41 -0
- package/plugins/base/base.mjs +42 -1
- package/plugins/base/index.js +2 -1
- package/plugins/base/index.mjs +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
- package/plugins/columnSorting/columnSorting.js +5 -4
- package/plugins/columnSorting/columnSorting.mjs +3 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/utils.js +3 -0
- package/plugins/columnSorting/utils.mjs +3 -0
- package/plugins/columnSummary/endpoints.js +3 -0
- package/plugins/columnSummary/endpoints.mjs +3 -0
- package/plugins/comments/commentEditor.js +9 -0
- package/plugins/comments/commentEditor.mjs +9 -0
- package/plugins/comments/comments.js +24 -18
- package/plugins/comments/comments.mjs +26 -20
- package/plugins/comments/editorResizeObserver.js +2 -0
- package/plugins/comments/editorResizeObserver.mjs +2 -0
- package/plugins/contextMenu/contextMenu.d.ts +2 -1
- package/plugins/contextMenu/contextMenu.js +6 -7
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/index.js +2 -0
- package/plugins/contextMenu/menu/menu.js +10 -5
- package/plugins/contextMenu/menu/menu.mjs +11 -6
- package/plugins/contextMenu/menu/positioner.js +4 -2
- package/plugins/contextMenu/menu/positioner.mjs +4 -2
- package/plugins/contextMenu/menu/shortcuts.js +3 -1
- package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
- package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
- package/plugins/contextMenu/utils.js +0 -10
- package/plugins/contextMenu/utils.mjs +0 -9
- package/plugins/copyPaste/copyPaste.d.ts +1 -0
- package/plugins/copyPaste/copyPaste.js +32 -23
- package/plugins/copyPaste/copyPaste.mjs +24 -15
- package/plugins/customBorders/utils.js +2 -0
- package/plugins/customBorders/utils.mjs +2 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
- package/plugins/dropdownMenu/dropdownMenu.js +6 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -0
- package/plugins/exportFile/types/csv.mjs +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/operators.js +2 -0
- package/plugins/filters/component/operators.mjs +2 -0
- package/plugins/filters/component/value.js +3 -0
- package/plugins/filters/component/value.mjs +3 -0
- package/plugins/filters/conditionCollection.js +3 -0
- package/plugins/filters/conditionCollection.mjs +3 -0
- package/plugins/filters/conditionUpdateObserver.js +2 -0
- package/plugins/filters/conditionUpdateObserver.mjs +2 -0
- package/plugins/filters/filters.js +43 -13
- package/plugins/filters/filters.mjs +43 -13
- package/plugins/filters/logicalOperations/conjunction.js +2 -0
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunction.js +2 -0
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
- package/plugins/filters/menu/focusController.js +38 -14
- package/plugins/filters/menu/focusController.mjs +38 -14
- package/plugins/filters/ui/multipleSelect.js +10 -0
- package/plugins/filters/ui/multipleSelect.mjs +10 -0
- package/plugins/formulas/engine/register.js +3 -0
- package/plugins/formulas/engine/register.mjs +3 -0
- package/plugins/formulas/engine/settings.js +3 -0
- package/plugins/formulas/engine/settings.mjs +3 -0
- package/plugins/formulas/formulas.js +12 -7
- package/plugins/formulas/formulas.mjs +6 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
- package/plugins/hiddenColumns/hiddenColumns.js +22 -30
- package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
- package/plugins/hiddenRows/hiddenRows.js +21 -29
- package/plugins/hiddenRows/hiddenRows.mjs +17 -25
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -0
- package/plugins/index.mjs +3 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
- package/plugins/manualColumnMove/manualColumnMove.js +6 -6
- package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
- package/plugins/manualColumnResize/manualColumnResize.js +26 -12
- package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
- package/plugins/manualRowMove/manualRowMove.js +8 -6
- package/plugins/manualRowMove/manualRowMove.mjs +6 -4
- package/plugins/manualRowResize/manualRowResize.js +3 -2
- package/plugins/manualRowResize/manualRowResize.mjs +4 -3
- package/plugins/mergeCells/cellsCollection.js +19 -3
- package/plugins/mergeCells/cellsCollection.mjs +20 -4
- package/plugins/mergeCells/mergeCells.d.ts +6 -2
- package/plugins/mergeCells/mergeCells.js +84 -56
- package/plugins/mergeCells/mergeCells.mjs +82 -54
- package/plugins/mergeCells/renderer.js +13 -3
- package/plugins/mergeCells/renderer.mjs +13 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
- package/plugins/nestedHeaders/nestedHeaders.js +63 -16
- package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
- package/plugins/nestedHeaders/stateManager/index.js +1 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/plugins/nestedRows/ui/headers.js +7 -1
- package/plugins/nestedRows/ui/headers.mjs +7 -1
- package/plugins/nestedRows/utils/rowMoveController.js +4 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
- package/plugins/persistentState/persistentState.js +4 -4
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +162 -0
- package/plugins/stretchColumns/calculator.mjs +158 -0
- package/plugins/stretchColumns/index.d.ts +1 -0
- package/plugins/stretchColumns/index.js +7 -0
- package/plugins/stretchColumns/index.mjs +1 -0
- package/plugins/stretchColumns/strategies/_base.js +85 -0
- package/plugins/stretchColumns/strategies/_base.mjs +81 -0
- package/plugins/stretchColumns/strategies/all.js +71 -0
- package/plugins/stretchColumns/strategies/all.mjs +67 -0
- package/plugins/stretchColumns/strategies/last.js +79 -0
- package/plugins/stretchColumns/strategies/last.mjs +75 -0
- package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
- package/plugins/stretchColumns/stretchColumns.js +222 -0
- package/plugins/stretchColumns/stretchColumns.mjs +218 -0
- package/plugins/trimRows/trimRows.js +2 -0
- package/plugins/trimRows/trimRows.mjs +2 -0
- package/plugins/undoRedo/undoRedo.js +9 -5
- package/plugins/undoRedo/undoRedo.mjs +8 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
- package/selection/index.js +2 -0
- package/selection/range.js +2 -0
- package/selection/range.mjs +2 -0
- package/selection/selection.js +7 -2
- package/selection/selection.mjs +7 -2
- package/selection/utils.js +2 -0
- package/selection/utils.mjs +2 -0
- package/settings.d.ts +4 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/index.js +2 -0
- package/shortcutContexts/commands/index.mjs +2 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
- package/shortcutContexts/index.js +2 -0
- package/shortcutContexts/index.mjs +2 -0
- package/shortcuts/context.js +3 -0
- package/shortcuts/context.mjs +3 -0
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +1 -0
- package/shortcuts/utils.mjs +1 -0
- package/styles/handsontable.css +2307 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-horizon.css +607 -0
- package/styles/ht-theme-horizon.min.css +30 -0
- package/styles/ht-theme-main.css +613 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/tableView.js +205 -33
- package/tableView.mjs +206 -34
- package/translations/changesObservable/observable.js +2 -0
- package/translations/changesObservable/observable.mjs +2 -0
- package/translations/index.js +2 -0
- package/translations/indexMapper.js +4 -0
- package/translations/indexMapper.mjs +4 -0
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -0
- package/translations/mapCollections/mapCollection.mjs +2 -0
- package/translations/maps/index.js +2 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/autoResize.js +11 -3
- package/utils/autoResize.mjs +11 -3
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +2 -0
- package/utils/ghostTable.js +7 -3
- package/utils/ghostTable.mjs +7 -3
- package/utils/parseTable.js +4 -0
- package/utils/parseTable.mjs +4 -0
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -3,6 +3,8 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.createUniqueMap = createUniqueMap;
|
5
5
|
require("core-js/modules/es.error.cause.js");
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.find.js");
|
6
8
|
var _function = require("../../helpers/function");
|
7
9
|
const DEFAULT_ERROR_ID_EXISTS = id => `The id '${id}' is already declared in a map.`;
|
8
10
|
|
@@ -1,4 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.find.js";
|
2
4
|
import { isFunction } from "../../helpers/function.mjs";
|
3
5
|
const DEFAULT_ERROR_ID_EXISTS = id => `The id '${id}' is already declared in a map.`;
|
4
6
|
|
package/utils/ghostTable.js
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
6
8
|
var _element = require("./../helpers/dom/element");
|
7
9
|
var _array = require("./../helpers/array");
|
8
10
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
@@ -131,7 +133,7 @@ class GhostTable {
|
|
131
133
|
if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
|
132
134
|
// Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
|
133
135
|
// We render all columns.
|
134
|
-
this.hot.view.appendColHeader(column, this.table.th);
|
136
|
+
this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
|
135
137
|
}
|
136
138
|
this.table.tBody.appendChild(this.createCol(column));
|
137
139
|
this.container.container.appendChild(this.table.fragment);
|
@@ -147,6 +149,8 @@ class GhostTable {
|
|
147
149
|
if (!this.injected) {
|
148
150
|
this.injectTable();
|
149
151
|
}
|
152
|
+
const isBorderBoxSizing = this.hot.view.getStylesHandler().areCellsBorderBox();
|
153
|
+
const borderCompensation = isBorderBoxSizing ? 0 : 1;
|
150
154
|
(0, _array.arrayEach)(this.rows, row => {
|
151
155
|
// In cases when the cell's content produces the height with a decimal point, the height
|
152
156
|
// needs to be rounded up to make sure that there will be a space for the cell's content.
|
@@ -155,8 +159,8 @@ class GhostTable {
|
|
155
159
|
height
|
156
160
|
} = row.table.getBoundingClientRect();
|
157
161
|
|
158
|
-
// -1 <- reduce border-top from table
|
159
|
-
callback(row.row, Math.ceil(height) -
|
162
|
+
// -1 <- reduce border-top from table (if box-sizing is not border-box)
|
163
|
+
callback(row.row, Math.ceil(height) - borderCompensation);
|
160
164
|
});
|
161
165
|
}
|
162
166
|
|
package/utils/ghostTable.mjs
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
3
5
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
4
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
5
7
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
@@ -128,7 +130,7 @@ class GhostTable {
|
|
128
130
|
if (this.getSetting('useHeaders') && this.hot.getColHeader(column) !== null) {
|
129
131
|
// Please keep in mind that the renderable column index equal to the visual columns index for the GhostTable.
|
130
132
|
// We render all columns.
|
131
|
-
this.hot.view.appendColHeader(column, this.table.th);
|
133
|
+
this.hot.view.appendColHeader(column, this.table.th, undefined, -1);
|
132
134
|
}
|
133
135
|
this.table.tBody.appendChild(this.createCol(column));
|
134
136
|
this.container.container.appendChild(this.table.fragment);
|
@@ -144,6 +146,8 @@ class GhostTable {
|
|
144
146
|
if (!this.injected) {
|
145
147
|
this.injectTable();
|
146
148
|
}
|
149
|
+
const isBorderBoxSizing = this.hot.view.getStylesHandler().areCellsBorderBox();
|
150
|
+
const borderCompensation = isBorderBoxSizing ? 0 : 1;
|
147
151
|
arrayEach(this.rows, row => {
|
148
152
|
// In cases when the cell's content produces the height with a decimal point, the height
|
149
153
|
// needs to be rounded up to make sure that there will be a space for the cell's content.
|
@@ -152,8 +156,8 @@ class GhostTable {
|
|
152
156
|
height
|
153
157
|
} = row.table.getBoundingClientRect();
|
154
158
|
|
155
|
-
// -1 <- reduce border-top from table
|
156
|
-
callback(row.row, Math.ceil(height) -
|
159
|
+
// -1 <- reduce border-top from table (if box-sizing is not border-box)
|
160
|
+
callback(row.row, Math.ceil(height) - borderCompensation);
|
157
161
|
});
|
158
162
|
}
|
159
163
|
|
package/utils/parseTable.js
CHANGED
@@ -6,6 +6,10 @@ exports.htmlToGridSettings = htmlToGridSettings;
|
|
6
6
|
exports.instanceToHTML = instanceToHTML;
|
7
7
|
require("core-js/modules/es.array.push.js");
|
8
8
|
require("core-js/modules/es.string.replace-all.js");
|
9
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
10
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
11
|
+
require("core-js/modules/esnext.iterator.map.js");
|
12
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
9
13
|
var _mixed = require("./../helpers/mixed");
|
10
14
|
const ESCAPED_HTML_CHARS = {
|
11
15
|
' ': '\x20',
|
package/utils/parseTable.mjs
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import "core-js/modules/es.string.replace-all.js";
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
5
|
+
import "core-js/modules/esnext.iterator.map.js";
|
6
|
+
import "core-js/modules/esnext.iterator.reduce.js";
|
3
7
|
import { isEmpty } from "./../helpers/mixed.mjs";
|
4
8
|
const ESCAPED_HTML_CHARS = {
|
5
9
|
' ': '\x20',
|
@@ -1,15 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
/**
|
5
|
-
* Default border corner style.
|
6
|
-
*
|
7
|
-
* @type {object}
|
8
|
-
*/
|
9
|
-
const CORNER_DEFAULT_STYLE = exports.CORNER_DEFAULT_STYLE = Object.freeze({
|
10
|
-
width: '6px',
|
11
|
-
height: '6px',
|
12
|
-
borderWidth: '1px',
|
13
|
-
borderStyle: 'solid',
|
14
|
-
borderColor: '#FFF'
|
15
|
-
});
|
@@ -1,197 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
require("core-js/modules/es.error.cause.js");
|
5
|
-
var _calculator = require("../calculator");
|
6
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
7
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
8
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
9
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
10
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
11
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
12
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
13
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
14
|
-
/**
|
15
|
-
* @typedef {object} ColumnStretchingOptions
|
16
|
-
* @property {number} totalColumns Total number of columns.
|
17
|
-
* @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
|
18
|
-
* @property {'all' | 'last' | 'none'} stretchMode Stretch mode 'all', 'last' or 'none'.
|
19
|
-
* @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
|
20
|
-
*/
|
21
|
-
/**
|
22
|
-
* @class ColumnStretching
|
23
|
-
*/
|
24
|
-
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
25
|
-
var _totalColumns = /*#__PURE__*/new WeakMap();
|
26
|
-
var _stretchingColumnWidthFn = /*#__PURE__*/new WeakMap();
|
27
|
-
var _columnWidthFn = /*#__PURE__*/new WeakMap();
|
28
|
-
var _stretchMode = /*#__PURE__*/new WeakMap();
|
29
|
-
class ColumnStretching {
|
30
|
-
/**
|
31
|
-
* @param {ColumnStretchingOptions} options Object with all options specified for column viewport calculation.
|
32
|
-
*/
|
33
|
-
constructor(_ref) {
|
34
|
-
let {
|
35
|
-
totalColumns,
|
36
|
-
stretchMode,
|
37
|
-
stretchingColumnWidthFn,
|
38
|
-
columnWidthFn
|
39
|
-
} = _ref;
|
40
|
-
/**
|
41
|
-
* @type {number}
|
42
|
-
*/
|
43
|
-
_defineProperty(this, "stretchAllRatio", 0);
|
44
|
-
/**
|
45
|
-
* @type {number}
|
46
|
-
*/
|
47
|
-
_defineProperty(this, "stretchLastWidth", 0);
|
48
|
-
/**
|
49
|
-
* @type {number[]}
|
50
|
-
*/
|
51
|
-
_defineProperty(this, "stretchAllColumnsWidth", []);
|
52
|
-
/**
|
53
|
-
* @type {number}
|
54
|
-
*/
|
55
|
-
_classPrivateFieldInitSpec(this, _totalTargetWidth, 0);
|
56
|
-
/**
|
57
|
-
* @type {boolean}
|
58
|
-
*/
|
59
|
-
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
60
|
-
/**
|
61
|
-
* The total number of columns.
|
62
|
-
*
|
63
|
-
* @type {function(): number}
|
64
|
-
*/
|
65
|
-
_classPrivateFieldInitSpec(this, _totalColumns, () => 0);
|
66
|
-
/**
|
67
|
-
* Function that returns the width of the stretched column at a given index (in px).
|
68
|
-
*
|
69
|
-
* @type {function(): number}
|
70
|
-
*/
|
71
|
-
_classPrivateFieldInitSpec(this, _stretchingColumnWidthFn, width => width);
|
72
|
-
/**
|
73
|
-
* Function that returns the width of the column at a given index (in px).
|
74
|
-
*
|
75
|
-
* @type {function(): number}
|
76
|
-
*/
|
77
|
-
_classPrivateFieldInitSpec(this, _columnWidthFn, width => width);
|
78
|
-
/**
|
79
|
-
* Stretch mode.
|
80
|
-
*
|
81
|
-
* @type {function(): 'all' | 'last' | 'none'}
|
82
|
-
*/
|
83
|
-
_classPrivateFieldInitSpec(this, _stretchMode, () => 'none');
|
84
|
-
_classPrivateFieldSet(_totalColumns, this, totalColumns);
|
85
|
-
_classPrivateFieldSet(_stretchMode, this, stretchMode);
|
86
|
-
_classPrivateFieldSet(_stretchingColumnWidthFn, this, stretchingColumnWidthFn !== null && stretchingColumnWidthFn !== void 0 ? stretchingColumnWidthFn : _classPrivateFieldGet(_stretchingColumnWidthFn, this));
|
87
|
-
_classPrivateFieldSet(_columnWidthFn, this, columnWidthFn !== null && columnWidthFn !== void 0 ? columnWidthFn : _classPrivateFieldGet(_columnWidthFn, this));
|
88
|
-
}
|
89
|
-
|
90
|
-
/**
|
91
|
-
* Recalculate columns stretching.
|
92
|
-
*
|
93
|
-
* @param {number} totalWidth The total width of the table.
|
94
|
-
*/
|
95
|
-
refreshStretching(totalWidth) {
|
96
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'none') {
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
this.stretchAllRatio = 0;
|
100
|
-
this.stretchAllColumnsWidth = [];
|
101
|
-
this.needVerifyLastColumnWidth = true;
|
102
|
-
this.stretchLastWidth = 0;
|
103
|
-
_classPrivateFieldSet(_totalTargetWidth, this, totalWidth);
|
104
|
-
let sumAll = 0;
|
105
|
-
for (let i = 0; i < _classPrivateFieldGet(_totalColumns, this).call(this); i++) {
|
106
|
-
const columnWidth = this._getColumnWidth(i);
|
107
|
-
const permanentColumnWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, undefined, i);
|
108
|
-
if (typeof permanentColumnWidth === 'number') {
|
109
|
-
totalWidth -= permanentColumnWidth;
|
110
|
-
} else {
|
111
|
-
sumAll += columnWidth;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
const remainingSize = totalWidth - sumAll;
|
115
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && remainingSize > 0) {
|
116
|
-
this.stretchAllRatio = totalWidth / sumAll;
|
117
|
-
this.stretchAllColumnsWidth = [];
|
118
|
-
this.needVerifyLastColumnWidth = true;
|
119
|
-
} else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && totalWidth !== Infinity) {
|
120
|
-
const columnWidth = this._getColumnWidth(_classPrivateFieldGet(_totalColumns, this).call(this) - 1);
|
121
|
-
const lastColumnWidth = remainingSize + columnWidth;
|
122
|
-
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
123
|
-
}
|
124
|
-
}
|
125
|
-
|
126
|
-
/**
|
127
|
-
* Get stretched column width based on stretchH (all or last) setting passed in handsontable instance.
|
128
|
-
*
|
129
|
-
* @param {number} column The visual column index.
|
130
|
-
* @param {number} baseWidth The default column width.
|
131
|
-
* @returns {number|null}
|
132
|
-
*/
|
133
|
-
getStretchedColumnWidth(column, baseWidth) {
|
134
|
-
let result = null;
|
135
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && this.stretchAllRatio !== 0) {
|
136
|
-
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
137
|
-
} else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && this.stretchLastWidth !== 0) {
|
138
|
-
result = this._getStretchedLastColumnWidth(column);
|
139
|
-
}
|
140
|
-
return result;
|
141
|
-
}
|
142
|
-
|
143
|
-
/**
|
144
|
-
* @param {number} column The visual column index.
|
145
|
-
* @param {number} baseWidth The default column width.
|
146
|
-
* @returns {number}
|
147
|
-
* @private
|
148
|
-
*/
|
149
|
-
_getStretchedAllColumnWidth(column, baseWidth) {
|
150
|
-
let sumRatioWidth = 0;
|
151
|
-
if (!this.stretchAllColumnsWidth[column]) {
|
152
|
-
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
153
|
-
const newStretchedWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, stretchedWidth, column);
|
154
|
-
if (newStretchedWidth === undefined) {
|
155
|
-
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
156
|
-
} else {
|
157
|
-
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
158
|
-
}
|
159
|
-
}
|
160
|
-
if (this.stretchAllColumnsWidth.length === _classPrivateFieldGet(_totalColumns, this).call(this) && this.needVerifyLastColumnWidth) {
|
161
|
-
this.needVerifyLastColumnWidth = false;
|
162
|
-
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
163
|
-
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
164
|
-
}
|
165
|
-
if (sumRatioWidth !== _classPrivateFieldGet(_totalTargetWidth, this)) {
|
166
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(_totalTargetWidth, this) - sumRatioWidth;
|
167
|
-
}
|
168
|
-
}
|
169
|
-
return this.stretchAllColumnsWidth[column];
|
170
|
-
}
|
171
|
-
|
172
|
-
/**
|
173
|
-
* @param {number} column The visual column index.
|
174
|
-
* @returns {number|null}
|
175
|
-
* @private
|
176
|
-
*/
|
177
|
-
_getStretchedLastColumnWidth(column) {
|
178
|
-
if (column === _classPrivateFieldGet(_totalColumns, this).call(this) - 1) {
|
179
|
-
return this.stretchLastWidth;
|
180
|
-
}
|
181
|
-
return null;
|
182
|
-
}
|
183
|
-
|
184
|
-
/**
|
185
|
-
* @param {number} column The visual column index.
|
186
|
-
* @returns {number}
|
187
|
-
* @private
|
188
|
-
*/
|
189
|
-
_getColumnWidth(column) {
|
190
|
-
let width = _classPrivateFieldGet(_columnWidthFn, this).call(this, column);
|
191
|
-
if (isNaN(width)) {
|
192
|
-
width = _calculator.DEFAULT_COLUMN_WIDTH;
|
193
|
-
}
|
194
|
-
return width;
|
195
|
-
}
|
196
|
-
}
|
197
|
-
exports.ColumnStretching = ColumnStretching;
|
@@ -1,193 +0,0 @@
|
|
1
|
-
import "core-js/modules/es.error.cause.js";
|
2
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
3
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
4
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
5
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
6
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
7
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
8
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
9
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
10
|
-
import { DEFAULT_COLUMN_WIDTH } from "../calculator/index.mjs";
|
11
|
-
/**
|
12
|
-
* @typedef {object} ColumnStretchingOptions
|
13
|
-
* @property {number} totalColumns Total number of columns.
|
14
|
-
* @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
|
15
|
-
* @property {'all' | 'last' | 'none'} stretchMode Stretch mode 'all', 'last' or 'none'.
|
16
|
-
* @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
|
17
|
-
*/
|
18
|
-
/**
|
19
|
-
* @class ColumnStretching
|
20
|
-
*/
|
21
|
-
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
22
|
-
var _totalColumns = /*#__PURE__*/new WeakMap();
|
23
|
-
var _stretchingColumnWidthFn = /*#__PURE__*/new WeakMap();
|
24
|
-
var _columnWidthFn = /*#__PURE__*/new WeakMap();
|
25
|
-
var _stretchMode = /*#__PURE__*/new WeakMap();
|
26
|
-
export class ColumnStretching {
|
27
|
-
/**
|
28
|
-
* @param {ColumnStretchingOptions} options Object with all options specified for column viewport calculation.
|
29
|
-
*/
|
30
|
-
constructor(_ref) {
|
31
|
-
let {
|
32
|
-
totalColumns,
|
33
|
-
stretchMode,
|
34
|
-
stretchingColumnWidthFn,
|
35
|
-
columnWidthFn
|
36
|
-
} = _ref;
|
37
|
-
/**
|
38
|
-
* @type {number}
|
39
|
-
*/
|
40
|
-
_defineProperty(this, "stretchAllRatio", 0);
|
41
|
-
/**
|
42
|
-
* @type {number}
|
43
|
-
*/
|
44
|
-
_defineProperty(this, "stretchLastWidth", 0);
|
45
|
-
/**
|
46
|
-
* @type {number[]}
|
47
|
-
*/
|
48
|
-
_defineProperty(this, "stretchAllColumnsWidth", []);
|
49
|
-
/**
|
50
|
-
* @type {number}
|
51
|
-
*/
|
52
|
-
_classPrivateFieldInitSpec(this, _totalTargetWidth, 0);
|
53
|
-
/**
|
54
|
-
* @type {boolean}
|
55
|
-
*/
|
56
|
-
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
57
|
-
/**
|
58
|
-
* The total number of columns.
|
59
|
-
*
|
60
|
-
* @type {function(): number}
|
61
|
-
*/
|
62
|
-
_classPrivateFieldInitSpec(this, _totalColumns, () => 0);
|
63
|
-
/**
|
64
|
-
* Function that returns the width of the stretched column at a given index (in px).
|
65
|
-
*
|
66
|
-
* @type {function(): number}
|
67
|
-
*/
|
68
|
-
_classPrivateFieldInitSpec(this, _stretchingColumnWidthFn, width => width);
|
69
|
-
/**
|
70
|
-
* Function that returns the width of the column at a given index (in px).
|
71
|
-
*
|
72
|
-
* @type {function(): number}
|
73
|
-
*/
|
74
|
-
_classPrivateFieldInitSpec(this, _columnWidthFn, width => width);
|
75
|
-
/**
|
76
|
-
* Stretch mode.
|
77
|
-
*
|
78
|
-
* @type {function(): 'all' | 'last' | 'none'}
|
79
|
-
*/
|
80
|
-
_classPrivateFieldInitSpec(this, _stretchMode, () => 'none');
|
81
|
-
_classPrivateFieldSet(_totalColumns, this, totalColumns);
|
82
|
-
_classPrivateFieldSet(_stretchMode, this, stretchMode);
|
83
|
-
_classPrivateFieldSet(_stretchingColumnWidthFn, this, stretchingColumnWidthFn !== null && stretchingColumnWidthFn !== void 0 ? stretchingColumnWidthFn : _classPrivateFieldGet(_stretchingColumnWidthFn, this));
|
84
|
-
_classPrivateFieldSet(_columnWidthFn, this, columnWidthFn !== null && columnWidthFn !== void 0 ? columnWidthFn : _classPrivateFieldGet(_columnWidthFn, this));
|
85
|
-
}
|
86
|
-
|
87
|
-
/**
|
88
|
-
* Recalculate columns stretching.
|
89
|
-
*
|
90
|
-
* @param {number} totalWidth The total width of the table.
|
91
|
-
*/
|
92
|
-
refreshStretching(totalWidth) {
|
93
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'none') {
|
94
|
-
return;
|
95
|
-
}
|
96
|
-
this.stretchAllRatio = 0;
|
97
|
-
this.stretchAllColumnsWidth = [];
|
98
|
-
this.needVerifyLastColumnWidth = true;
|
99
|
-
this.stretchLastWidth = 0;
|
100
|
-
_classPrivateFieldSet(_totalTargetWidth, this, totalWidth);
|
101
|
-
let sumAll = 0;
|
102
|
-
for (let i = 0; i < _classPrivateFieldGet(_totalColumns, this).call(this); i++) {
|
103
|
-
const columnWidth = this._getColumnWidth(i);
|
104
|
-
const permanentColumnWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, undefined, i);
|
105
|
-
if (typeof permanentColumnWidth === 'number') {
|
106
|
-
totalWidth -= permanentColumnWidth;
|
107
|
-
} else {
|
108
|
-
sumAll += columnWidth;
|
109
|
-
}
|
110
|
-
}
|
111
|
-
const remainingSize = totalWidth - sumAll;
|
112
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && remainingSize > 0) {
|
113
|
-
this.stretchAllRatio = totalWidth / sumAll;
|
114
|
-
this.stretchAllColumnsWidth = [];
|
115
|
-
this.needVerifyLastColumnWidth = true;
|
116
|
-
} else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && totalWidth !== Infinity) {
|
117
|
-
const columnWidth = this._getColumnWidth(_classPrivateFieldGet(_totalColumns, this).call(this) - 1);
|
118
|
-
const lastColumnWidth = remainingSize + columnWidth;
|
119
|
-
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
123
|
-
/**
|
124
|
-
* Get stretched column width based on stretchH (all or last) setting passed in handsontable instance.
|
125
|
-
*
|
126
|
-
* @param {number} column The visual column index.
|
127
|
-
* @param {number} baseWidth The default column width.
|
128
|
-
* @returns {number|null}
|
129
|
-
*/
|
130
|
-
getStretchedColumnWidth(column, baseWidth) {
|
131
|
-
let result = null;
|
132
|
-
if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'all' && this.stretchAllRatio !== 0) {
|
133
|
-
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
134
|
-
} else if (_classPrivateFieldGet(_stretchMode, this).call(this) === 'last' && this.stretchLastWidth !== 0) {
|
135
|
-
result = this._getStretchedLastColumnWidth(column);
|
136
|
-
}
|
137
|
-
return result;
|
138
|
-
}
|
139
|
-
|
140
|
-
/**
|
141
|
-
* @param {number} column The visual column index.
|
142
|
-
* @param {number} baseWidth The default column width.
|
143
|
-
* @returns {number}
|
144
|
-
* @private
|
145
|
-
*/
|
146
|
-
_getStretchedAllColumnWidth(column, baseWidth) {
|
147
|
-
let sumRatioWidth = 0;
|
148
|
-
if (!this.stretchAllColumnsWidth[column]) {
|
149
|
-
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
150
|
-
const newStretchedWidth = _classPrivateFieldGet(_stretchingColumnWidthFn, this).call(this, stretchedWidth, column);
|
151
|
-
if (newStretchedWidth === undefined) {
|
152
|
-
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
153
|
-
} else {
|
154
|
-
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
if (this.stretchAllColumnsWidth.length === _classPrivateFieldGet(_totalColumns, this).call(this) && this.needVerifyLastColumnWidth) {
|
158
|
-
this.needVerifyLastColumnWidth = false;
|
159
|
-
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
160
|
-
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
161
|
-
}
|
162
|
-
if (sumRatioWidth !== _classPrivateFieldGet(_totalTargetWidth, this)) {
|
163
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(_totalTargetWidth, this) - sumRatioWidth;
|
164
|
-
}
|
165
|
-
}
|
166
|
-
return this.stretchAllColumnsWidth[column];
|
167
|
-
}
|
168
|
-
|
169
|
-
/**
|
170
|
-
* @param {number} column The visual column index.
|
171
|
-
* @returns {number|null}
|
172
|
-
* @private
|
173
|
-
*/
|
174
|
-
_getStretchedLastColumnWidth(column) {
|
175
|
-
if (column === _classPrivateFieldGet(_totalColumns, this).call(this) - 1) {
|
176
|
-
return this.stretchLastWidth;
|
177
|
-
}
|
178
|
-
return null;
|
179
|
-
}
|
180
|
-
|
181
|
-
/**
|
182
|
-
* @param {number} column The visual column index.
|
183
|
-
* @returns {number}
|
184
|
-
* @private
|
185
|
-
*/
|
186
|
-
_getColumnWidth(column) {
|
187
|
-
let width = _classPrivateFieldGet(_columnWidthFn, this).call(this, column);
|
188
|
-
if (isNaN(width)) {
|
189
|
-
width = DEFAULT_COLUMN_WIDTH;
|
190
|
-
}
|
191
|
-
return width;
|
192
|
-
}
|
193
|
-
}
|