handsontable 14.6.1 → 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
package/dist/languages/all.js
CHANGED
@@ -2035,7 +2035,7 @@ var _default = exports["default"] = dictionary;
|
|
2035
2035
|
/******/
|
2036
2036
|
/************************************************************************/
|
2037
2037
|
var __webpack_exports__ = {};
|
2038
|
-
// This entry
|
2038
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
2039
2039
|
(() => {
|
2040
2040
|
"use strict";
|
2041
2041
|
var exports = __webpack_exports__;
|
package/dist/languages/ar-AR.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/cs-CZ.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/de-CH.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/de-DE.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/en-US.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/es-MX.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/fr-FR.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/hr-HR.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/it-IT.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/ja-JP.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/ko-KR.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/lv-LV.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/nb-NO.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/nl-NL.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/pl-PL.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/pt-BR.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/ru-RU.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/sr-SP.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/zh-CN.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/dist/languages/zh-TW.js
CHANGED
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
|
|
57
57
|
/******/
|
58
58
|
/************************************************************************/
|
59
59
|
var __webpack_exports__ = {};
|
60
|
-
// This entry
|
60
|
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
61
61
|
(() => {
|
62
62
|
"use strict";
|
63
63
|
var exports = __webpack_exports__;
|
package/editorManager.js
CHANGED
@@ -120,7 +120,7 @@ class EditorManager {
|
|
120
120
|
row,
|
121
121
|
col
|
122
122
|
} = highlight;
|
123
|
-
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', row, col);
|
123
|
+
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', row, col, false, 'meta');
|
124
124
|
let visualRowToCheck = row;
|
125
125
|
let visualColumnToCheck = col;
|
126
126
|
if (Array.isArray(modifiedCellCoords)) {
|
@@ -174,7 +174,7 @@ class EditorManager {
|
|
174
174
|
const selection = this.hot.getSelectedRangeLast();
|
175
175
|
let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);
|
176
176
|
|
177
|
-
// If the above hook does not return boolean
|
177
|
+
// If the above hook does not return boolean then the default behavior is applied which disallows opening
|
178
178
|
// an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and
|
179
179
|
// for multiple selected cells (while pressing SHIFT).
|
180
180
|
if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {
|
package/editorManager.mjs
CHANGED
@@ -116,7 +116,7 @@ class EditorManager {
|
|
116
116
|
row,
|
117
117
|
col
|
118
118
|
} = highlight;
|
119
|
-
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', row, col);
|
119
|
+
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', row, col, false, 'meta');
|
120
120
|
let visualRowToCheck = row;
|
121
121
|
let visualColumnToCheck = col;
|
122
122
|
if (Array.isArray(modifiedCellCoords)) {
|
@@ -170,7 +170,7 @@ class EditorManager {
|
|
170
170
|
const selection = this.hot.getSelectedRangeLast();
|
171
171
|
let allowOpening = this.hot.runHooks('beforeBeginEditing', selection.highlight.row, selection.highlight.col, newInitialValue, event, enableFullEditMode);
|
172
172
|
|
173
|
-
// If the above hook does not return boolean
|
173
|
+
// If the above hook does not return boolean then the default behavior is applied which disallows opening
|
174
174
|
// an editor after double mouse click for non-contiguous selection (while pressing Ctrl/Cmd) and
|
175
175
|
// for multiple selected cells (while pressing SHIFT).
|
176
176
|
if (event instanceof MouseEvent && typeof allowOpening !== 'boolean') {
|
@@ -3,13 +3,16 @@
|
|
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.filter.js");
|
8
|
+
require("core-js/modules/esnext.iterator.find.js");
|
9
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
6
10
|
var _handsontableEditor = require("../handsontableEditor");
|
7
11
|
var _array = require("../../helpers/array");
|
8
12
|
var _element = require("../../helpers/dom/element");
|
9
13
|
var _mixed = require("../../helpers/mixed");
|
10
14
|
var _string = require("../../helpers/string");
|
11
15
|
var _unicode = require("../../helpers/unicode");
|
12
|
-
var _browser = require("../../helpers/browser");
|
13
16
|
var _textRenderer = require("../../renderers/textRenderer");
|
14
17
|
var _a11y = require("../../helpers/a11y");
|
15
18
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
@@ -183,15 +186,11 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
183
186
|
} = this;
|
184
187
|
this.showEditableElement();
|
185
188
|
this.focus();
|
186
|
-
let scrollbarWidth = (0, _element.getScrollbarWidth)();
|
187
|
-
if (scrollbarWidth === 0 && (0, _browser.isMacOS)()) {
|
188
|
-
scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
|
189
|
-
}
|
190
189
|
this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
|
191
190
|
this.htEditor.updateSettings({
|
192
191
|
colWidths: trimDropdown ? [(0, _element.outerWidth)(this.TEXTAREA) - 2] : undefined,
|
193
|
-
width: trimDropdown ? (0, _element.outerWidth)(this.TEXTAREA) + scrollbarWidth : undefined,
|
194
192
|
autoColumnSize: true,
|
193
|
+
autoRowSize: true,
|
195
194
|
renderer: (hotInstance, TD, row, col, prop, value, cellProperties) => {
|
196
195
|
(0, _textRenderer.textRenderer)(hotInstance, TD, row, col, prop, value, cellProperties);
|
197
196
|
const {
|
@@ -350,7 +349,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
350
349
|
}
|
351
350
|
const textareaOffset = (0, _element.offset)(this.TEXTAREA);
|
352
351
|
const textareaHeight = (0, _element.outerHeight)(this.TEXTAREA);
|
353
|
-
const dropdownHeight = this.
|
352
|
+
const dropdownHeight = this.getHeight();
|
354
353
|
const trimmingContainerScrollTop = trimmingContainer.scrollTop;
|
355
354
|
const headersHeight = (0, _element.outerHeight)(this.hot.view._wt.wtTable.THEAD);
|
356
355
|
const containerOffset = (0, _element.offset)(trimmingContainer);
|
@@ -380,7 +379,7 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
380
379
|
let lastRowHeight = 0;
|
381
380
|
let height = null;
|
382
381
|
do {
|
383
|
-
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view.
|
382
|
+
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view.getDefaultRowHeight();
|
384
383
|
tempHeight += lastRowHeight;
|
385
384
|
i += 1;
|
386
385
|
} while (tempHeight < spaceAvailable);
|
@@ -423,12 +422,15 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
423
422
|
* @private
|
424
423
|
*/
|
425
424
|
updateDropdownDimensions() {
|
426
|
-
const currentDropdownWidth = this.htEditor.getColWidth(0) + (0, _element.getScrollbarWidth)(this.hot.rootDocument) + 2;
|
427
|
-
const trimDropdown = this.cellProperties.trimDropdown;
|
428
425
|
this.htEditor.updateSettings({
|
429
|
-
|
430
|
-
|
426
|
+
width: this.getWidth(),
|
427
|
+
height: this.getHeight()
|
431
428
|
});
|
429
|
+
if (this.htEditor.view.hasVerticalScroll()) {
|
430
|
+
this.htEditor.updateSettings({
|
431
|
+
width: this.htEditor.getSettings().width + (0, _element.getScrollbarWidth)(this.hot.rootDocument)
|
432
|
+
});
|
433
|
+
}
|
432
434
|
this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
|
433
435
|
}
|
434
436
|
|
@@ -464,10 +466,26 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
|
|
464
466
|
* @private
|
465
467
|
* @returns {number}
|
466
468
|
*/
|
467
|
-
|
468
|
-
const
|
469
|
-
const
|
470
|
-
|
469
|
+
getHeight() {
|
470
|
+
const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
|
471
|
+
const borderVerticalCompensation = parseInt(containerStyle.borderTopWidth, 10) + parseInt(containerStyle.borderBottomWidth, 10);
|
472
|
+
const maxItems = Math.min(this.cellProperties.visibleRows, this.strippedChoices.length);
|
473
|
+
const height = Array.from({
|
474
|
+
length: maxItems
|
475
|
+
}, (_, i) => i).reduce((h, index) => h + this.htEditor.getRowHeight(index), 0);
|
476
|
+
return height + borderVerticalCompensation + 1;
|
477
|
+
}
|
478
|
+
|
479
|
+
/**
|
480
|
+
* Calculates and return the internal Handsontable's width.
|
481
|
+
*
|
482
|
+
* @private
|
483
|
+
* @returns {number}
|
484
|
+
*/
|
485
|
+
getWidth() {
|
486
|
+
const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
|
487
|
+
const borderHorizontalCompensation = parseInt(containerStyle.borderInlineStartWidth, 10) + parseInt(containerStyle.borderInlineEndWidth, 10);
|
488
|
+
return this.htEditor.getColWidth(0) + borderHorizontalCompensation;
|
471
489
|
}
|
472
490
|
|
473
491
|
/**
|
@@ -1,5 +1,9 @@
|
|
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.filter.js";
|
5
|
+
import "core-js/modules/esnext.iterator.find.js";
|
6
|
+
import "core-js/modules/esnext.iterator.reduce.js";
|
3
7
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
4
8
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
5
9
|
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; }
|
@@ -13,7 +17,6 @@ import { addClass, getCaretPosition, getScrollbarWidth, getSelectionEndPosition,
|
|
13
17
|
import { isDefined, stringify } from "../../helpers/mixed.mjs";
|
14
18
|
import { stripTags } from "../../helpers/string.mjs";
|
15
19
|
import { KEY_CODES, isPrintableChar } from "../../helpers/unicode.mjs";
|
16
|
-
import { isMacOS } from "../../helpers/browser.mjs";
|
17
20
|
import { textRenderer } from "../../renderers/textRenderer/index.mjs";
|
18
21
|
import { A11Y_ACTIVEDESCENDANT, A11Y_AUTOCOMPLETE, A11Y_COMBOBOX, A11Y_CONTROLS, A11Y_EXPANDED, A11Y_HASPOPUP, A11Y_LISTBOX, A11Y_LIVE, A11Y_OPTION, A11Y_POSINSET, A11Y_PRESENTATION, A11Y_RELEVANT, A11Y_SELECTED, A11Y_SETSIZE, A11Y_TEXT } from "../../helpers/a11y.mjs";
|
19
22
|
export const EDITOR_TYPE = 'autocomplete';
|
@@ -180,15 +183,11 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
180
183
|
} = this;
|
181
184
|
this.showEditableElement();
|
182
185
|
this.focus();
|
183
|
-
let scrollbarWidth = getScrollbarWidth();
|
184
|
-
if (scrollbarWidth === 0 && isMacOS()) {
|
185
|
-
scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
|
186
|
-
}
|
187
186
|
this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
|
188
187
|
this.htEditor.updateSettings({
|
189
188
|
colWidths: trimDropdown ? [outerWidth(this.TEXTAREA) - 2] : undefined,
|
190
|
-
width: trimDropdown ? outerWidth(this.TEXTAREA) + scrollbarWidth : undefined,
|
191
189
|
autoColumnSize: true,
|
190
|
+
autoRowSize: true,
|
192
191
|
renderer: (hotInstance, TD, row, col, prop, value, cellProperties) => {
|
193
192
|
textRenderer(hotInstance, TD, row, col, prop, value, cellProperties);
|
194
193
|
const {
|
@@ -347,7 +346,7 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
347
346
|
}
|
348
347
|
const textareaOffset = offset(this.TEXTAREA);
|
349
348
|
const textareaHeight = outerHeight(this.TEXTAREA);
|
350
|
-
const dropdownHeight = this.
|
349
|
+
const dropdownHeight = this.getHeight();
|
351
350
|
const trimmingContainerScrollTop = trimmingContainer.scrollTop;
|
352
351
|
const headersHeight = outerHeight(this.hot.view._wt.wtTable.THEAD);
|
353
352
|
const containerOffset = offset(trimmingContainer);
|
@@ -377,7 +376,7 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
377
376
|
let lastRowHeight = 0;
|
378
377
|
let height = null;
|
379
378
|
do {
|
380
|
-
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view.
|
379
|
+
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view.getDefaultRowHeight();
|
381
380
|
tempHeight += lastRowHeight;
|
382
381
|
i += 1;
|
383
382
|
} while (tempHeight < spaceAvailable);
|
@@ -420,12 +419,15 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
420
419
|
* @private
|
421
420
|
*/
|
422
421
|
updateDropdownDimensions() {
|
423
|
-
const currentDropdownWidth = this.htEditor.getColWidth(0) + getScrollbarWidth(this.hot.rootDocument) + 2;
|
424
|
-
const trimDropdown = this.cellProperties.trimDropdown;
|
425
422
|
this.htEditor.updateSettings({
|
426
|
-
|
427
|
-
|
423
|
+
width: this.getWidth(),
|
424
|
+
height: this.getHeight()
|
428
425
|
});
|
426
|
+
if (this.htEditor.view.hasVerticalScroll()) {
|
427
|
+
this.htEditor.updateSettings({
|
428
|
+
width: this.htEditor.getSettings().width + getScrollbarWidth(this.hot.rootDocument)
|
429
|
+
});
|
430
|
+
}
|
429
431
|
this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
|
430
432
|
}
|
431
433
|
|
@@ -461,10 +463,26 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
461
463
|
* @private
|
462
464
|
* @returns {number}
|
463
465
|
*/
|
464
|
-
|
465
|
-
const
|
466
|
-
const
|
467
|
-
|
466
|
+
getHeight() {
|
467
|
+
const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
|
468
|
+
const borderVerticalCompensation = parseInt(containerStyle.borderTopWidth, 10) + parseInt(containerStyle.borderBottomWidth, 10);
|
469
|
+
const maxItems = Math.min(this.cellProperties.visibleRows, this.strippedChoices.length);
|
470
|
+
const height = Array.from({
|
471
|
+
length: maxItems
|
472
|
+
}, (_, i) => i).reduce((h, index) => h + this.htEditor.getRowHeight(index), 0);
|
473
|
+
return height + borderVerticalCompensation + 1;
|
474
|
+
}
|
475
|
+
|
476
|
+
/**
|
477
|
+
* Calculates and return the internal Handsontable's width.
|
478
|
+
*
|
479
|
+
* @private
|
480
|
+
* @returns {number}
|
481
|
+
*/
|
482
|
+
getWidth() {
|
483
|
+
const containerStyle = this.hot.rootWindow.getComputedStyle(this.htContainer.querySelector('.htCore'));
|
484
|
+
const borderHorizontalCompensation = parseInt(containerStyle.borderInlineStartWidth, 10) + parseInt(containerStyle.borderInlineEndWidth, 10);
|
485
|
+
return this.htEditor.getColWidth(0) + borderHorizontalCompensation;
|
468
486
|
}
|
469
487
|
|
470
488
|
/**
|
@@ -204,7 +204,7 @@ class BaseEditor {
|
|
204
204
|
} else {
|
205
205
|
[visualRowFrom, visualColumnFrom, visualRowTo, visualColumnTo] = [this.row, this.col, null, null];
|
206
206
|
}
|
207
|
-
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowFrom, visualColumnFrom);
|
207
|
+
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowFrom, visualColumnFrom, false, 'meta');
|
208
208
|
if (Array.isArray(modifiedCellCoords)) {
|
209
209
|
[visualRowFrom, visualColumnFrom] = modifiedCellCoords;
|
210
210
|
}
|
@@ -228,22 +228,29 @@ class BaseEditor {
|
|
228
228
|
// due to hidden columns don't participate in the rendering process
|
229
229
|
const renderableRowIndex = hotInstance.rowIndexMapper.getRenderableFromVisualIndex(this.row);
|
230
230
|
const renderableColumnIndex = hotInstance.columnIndexMapper.getRenderableFromVisualIndex(this.col);
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
// Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,
|
235
|
-
// otherwise IME (editor for Asia users) doesn't work.
|
236
|
-
if (this.isInFullEditMode()) {
|
237
|
-
const stringifiedInitialValue = typeof newInitialValue === 'string' ? newInitialValue : (0, _mixed.stringify)(this.originalValue);
|
238
|
-
this.setValue(stringifiedInitialValue);
|
239
|
-
}
|
240
|
-
this.open(event);
|
241
|
-
this._opened = true;
|
242
|
-
this.focus();
|
231
|
+
const openEditor = () => {
|
232
|
+
this.state = EDITOR_STATE.EDITING;
|
243
233
|
|
244
|
-
|
245
|
-
|
246
|
-
|
234
|
+
// Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,
|
235
|
+
// otherwise IME (editor for Asia users) doesn't work.
|
236
|
+
if (this.isInFullEditMode()) {
|
237
|
+
const stringifiedInitialValue = typeof newInitialValue === 'string' ? newInitialValue : (0, _mixed.stringify)(this.originalValue);
|
238
|
+
this.setValue(stringifiedInitialValue);
|
239
|
+
}
|
240
|
+
this.open(event);
|
241
|
+
this._opened = true;
|
242
|
+
this.focus();
|
243
|
+
|
244
|
+
// only rerender the selections (FillHandle should disappear when beginEditing is triggered)
|
245
|
+
hotInstance.view.render();
|
246
|
+
hotInstance.runHooks('afterBeginEditing', this.row, this.col);
|
247
|
+
};
|
248
|
+
this.hot.addHookOnce('afterScroll', openEditor);
|
249
|
+
const wasScroll = hotInstance.view.scrollViewport(hotInstance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
250
|
+
if (!wasScroll) {
|
251
|
+
this.hot.removeHook('afterScroll', openEditor);
|
252
|
+
openEditor();
|
253
|
+
}
|
247
254
|
}
|
248
255
|
|
249
256
|
/**
|
@@ -476,7 +483,7 @@ class BaseEditor {
|
|
476
483
|
} else if (['top', 'master', 'bottom'].includes(overlayName)) {
|
477
484
|
cellStartOffset += firstColumnOffset - horizontalScrollPosition;
|
478
485
|
}
|
479
|
-
const cellComputedStyle =
|
486
|
+
const cellComputedStyle = rootWindow.getComputedStyle(this.TD);
|
480
487
|
const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
|
481
488
|
const inlineStartBorderCompensation = parseInt(cellComputedStyle[borderPhysicalWidthProp], 10) > 0 ? 0 : 1;
|
482
489
|
const topBorderCompensation = parseInt(cellComputedStyle.borderTopWidth, 10) > 0 ? 0 : 1;
|
@@ -485,7 +492,7 @@ class BaseEditor {
|
|
485
492
|
const actualVerticalScrollbarWidth = (0, _element.hasVerticalScrollbar)(scrollableContainerTop) ? scrollbarWidth : 0;
|
486
493
|
const actualHorizontalScrollbarWidth = (0, _element.hasHorizontalScrollbar)(scrollableContainerLeft) ? scrollbarWidth : 0;
|
487
494
|
const maxWidth = this.hot.view.maximumVisibleElementWidth(cellStartOffset) - actualVerticalScrollbarWidth + inlineStartBorderCompensation;
|
488
|
-
const maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation,
|
495
|
+
const maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation, this.hot.view.getDefaultRowHeight());
|
489
496
|
return {
|
490
497
|
top: topPos,
|
491
498
|
start: inlineStartPos,
|
@@ -5,7 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
5
5
|
import { stringify } from "../../helpers/mixed.mjs";
|
6
6
|
import { mixin } from "../../helpers/object.mjs";
|
7
7
|
import hooksRefRegisterer from "../../mixins/hooksRefRegisterer.mjs";
|
8
|
-
import { getScrollbarWidth, offset, hasVerticalScrollbar, hasHorizontalScrollbar, outerWidth, outerHeight
|
8
|
+
import { getScrollbarWidth, offset, hasVerticalScrollbar, hasHorizontalScrollbar, outerWidth, outerHeight } from "../../helpers/dom/element.mjs";
|
9
9
|
export const EDITOR_TYPE = 'base';
|
10
10
|
export const EDITOR_STATE = Object.freeze({
|
11
11
|
VIRGIN: 'STATE_VIRGIN',
|
@@ -200,7 +200,7 @@ export class BaseEditor {
|
|
200
200
|
} else {
|
201
201
|
[visualRowFrom, visualColumnFrom, visualRowTo, visualColumnTo] = [this.row, this.col, null, null];
|
202
202
|
}
|
203
|
-
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowFrom, visualColumnFrom);
|
203
|
+
const modifiedCellCoords = this.hot.runHooks('modifyGetCellCoords', visualRowFrom, visualColumnFrom, false, 'meta');
|
204
204
|
if (Array.isArray(modifiedCellCoords)) {
|
205
205
|
[visualRowFrom, visualColumnFrom] = modifiedCellCoords;
|
206
206
|
}
|
@@ -224,22 +224,29 @@ export class BaseEditor {
|
|
224
224
|
// due to hidden columns don't participate in the rendering process
|
225
225
|
const renderableRowIndex = hotInstance.rowIndexMapper.getRenderableFromVisualIndex(this.row);
|
226
226
|
const renderableColumnIndex = hotInstance.columnIndexMapper.getRenderableFromVisualIndex(this.col);
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
// Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,
|
231
|
-
// otherwise IME (editor for Asia users) doesn't work.
|
232
|
-
if (this.isInFullEditMode()) {
|
233
|
-
const stringifiedInitialValue = typeof newInitialValue === 'string' ? newInitialValue : stringify(this.originalValue);
|
234
|
-
this.setValue(stringifiedInitialValue);
|
235
|
-
}
|
236
|
-
this.open(event);
|
237
|
-
this._opened = true;
|
238
|
-
this.focus();
|
227
|
+
const openEditor = () => {
|
228
|
+
this.state = EDITOR_STATE.EDITING;
|
239
229
|
|
240
|
-
|
241
|
-
|
242
|
-
|
230
|
+
// Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,
|
231
|
+
// otherwise IME (editor for Asia users) doesn't work.
|
232
|
+
if (this.isInFullEditMode()) {
|
233
|
+
const stringifiedInitialValue = typeof newInitialValue === 'string' ? newInitialValue : stringify(this.originalValue);
|
234
|
+
this.setValue(stringifiedInitialValue);
|
235
|
+
}
|
236
|
+
this.open(event);
|
237
|
+
this._opened = true;
|
238
|
+
this.focus();
|
239
|
+
|
240
|
+
// only rerender the selections (FillHandle should disappear when beginEditing is triggered)
|
241
|
+
hotInstance.view.render();
|
242
|
+
hotInstance.runHooks('afterBeginEditing', this.row, this.col);
|
243
|
+
};
|
244
|
+
this.hot.addHookOnce('afterScroll', openEditor);
|
245
|
+
const wasScroll = hotInstance.view.scrollViewport(hotInstance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
246
|
+
if (!wasScroll) {
|
247
|
+
this.hot.removeHook('afterScroll', openEditor);
|
248
|
+
openEditor();
|
249
|
+
}
|
243
250
|
}
|
244
251
|
|
245
252
|
/**
|
@@ -472,7 +479,7 @@ export class BaseEditor {
|
|
472
479
|
} else if (['top', 'master', 'bottom'].includes(overlayName)) {
|
473
480
|
cellStartOffset += firstColumnOffset - horizontalScrollPosition;
|
474
481
|
}
|
475
|
-
const cellComputedStyle = getComputedStyle(this.TD
|
482
|
+
const cellComputedStyle = rootWindow.getComputedStyle(this.TD);
|
476
483
|
const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
|
477
484
|
const inlineStartBorderCompensation = parseInt(cellComputedStyle[borderPhysicalWidthProp], 10) > 0 ? 0 : 1;
|
478
485
|
const topBorderCompensation = parseInt(cellComputedStyle.borderTopWidth, 10) > 0 ? 0 : 1;
|
@@ -481,7 +488,7 @@ export class BaseEditor {
|
|
481
488
|
const actualVerticalScrollbarWidth = hasVerticalScrollbar(scrollableContainerTop) ? scrollbarWidth : 0;
|
482
489
|
const actualHorizontalScrollbarWidth = hasHorizontalScrollbar(scrollableContainerLeft) ? scrollbarWidth : 0;
|
483
490
|
const maxWidth = this.hot.view.maximumVisibleElementWidth(cellStartOffset) - actualVerticalScrollbarWidth + inlineStartBorderCompensation;
|
484
|
-
const maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation,
|
491
|
+
const maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation, this.hot.view.getDefaultRowHeight());
|
485
492
|
return {
|
486
493
|
top: topPos,
|
487
494
|
start: inlineStartPos,
|
@@ -52,6 +52,12 @@ class DateEditor extends _textEditor.TextEditor {
|
|
52
52
|
this.parentDestroyed = true;
|
53
53
|
this.destroyElements();
|
54
54
|
});
|
55
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
56
|
+
if (!firstRun) {
|
57
|
+
(0, _element.removeClass)(this.datePicker, /ht-theme-.*/g);
|
58
|
+
(0, _element.addClass)(this.datePicker, themeName);
|
59
|
+
}
|
60
|
+
});
|
55
61
|
}
|
56
62
|
|
57
63
|
/**
|
@@ -67,6 +73,9 @@ class DateEditor extends _textEditor.TextEditor {
|
|
67
73
|
this.datePickerStyle.zIndex = 9999;
|
68
74
|
this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');
|
69
75
|
(0, _element.addClass)(this.datePicker, 'htDatepickerHolder');
|
76
|
+
const themeClassName = this.hot.getCurrentThemeName();
|
77
|
+
(0, _element.removeClass)(this.datePicker, /ht-theme-.*/g);
|
78
|
+
(0, _element.addClass)(this.datePicker, themeClassName);
|
70
79
|
this.hot.rootDocument.body.appendChild(this.datePicker);
|
71
80
|
|
72
81
|
/**
|