handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205
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
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
|
/**
|