handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/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
|
-
}
|