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
@@ -6,7 +6,7 @@ import moment from 'moment';
|
|
6
6
|
import Pikaday from '@handsontable/pikaday';
|
7
7
|
import { EDITOR_STATE } from "../baseEditor/index.mjs";
|
8
8
|
import { TextEditor } from "../textEditor/index.mjs";
|
9
|
-
import { addClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
9
|
+
import { addClass, removeClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
10
10
|
import { deepExtend } from "../../helpers/object.mjs";
|
11
11
|
import { isFunctionKey } from "../../helpers/unicode.mjs";
|
12
12
|
export const EDITOR_TYPE = 'date';
|
@@ -48,6 +48,12 @@ export class DateEditor extends TextEditor {
|
|
48
48
|
this.parentDestroyed = true;
|
49
49
|
this.destroyElements();
|
50
50
|
});
|
51
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
52
|
+
if (!firstRun) {
|
53
|
+
removeClass(this.datePicker, /ht-theme-.*/g);
|
54
|
+
addClass(this.datePicker, themeName);
|
55
|
+
}
|
56
|
+
});
|
51
57
|
}
|
52
58
|
|
53
59
|
/**
|
@@ -63,6 +69,9 @@ export class DateEditor extends TextEditor {
|
|
63
69
|
this.datePickerStyle.zIndex = 9999;
|
64
70
|
this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');
|
65
71
|
addClass(this.datePicker, 'htDatepickerHolder');
|
72
|
+
const themeClassName = this.hot.getCurrentThemeName();
|
73
|
+
removeClass(this.datePicker, /ht-theme-.*/g);
|
74
|
+
addClass(this.datePicker, themeClassName);
|
66
75
|
this.hot.rootDocument.body.appendChild(this.datePicker);
|
67
76
|
|
68
77
|
/**
|
@@ -1,9 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
5
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
4
6
|
var _autocompleteEditor = require("../autocompleteEditor");
|
5
|
-
var
|
6
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
7
|
+
var _hooks = require("../../core/hooks");
|
7
8
|
const EDITOR_TYPE = exports.EDITOR_TYPE = 'dropdown';
|
8
9
|
|
9
10
|
/**
|
@@ -30,7 +31,7 @@ class DropdownEditor extends _autocompleteEditor.AutocompleteEditor {
|
|
30
31
|
}
|
31
32
|
}
|
32
33
|
exports.DropdownEditor = DropdownEditor;
|
33
|
-
|
34
|
+
_hooks.Hooks.getSingleton().add('beforeValidate', function (value, row, col) {
|
34
35
|
const visualColumnIndex = this.propToCol(col);
|
35
36
|
if (Number.isInteger(visualColumnIndex)) {
|
36
37
|
const cellMeta = this.getCellMeta(row, visualColumnIndex);
|
@@ -1,5 +1,7 @@
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
2
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
1
3
|
import { AutocompleteEditor } from "../autocompleteEditor/index.mjs";
|
2
|
-
import Hooks from "../../
|
4
|
+
import { Hooks } from "../../core/hooks/index.mjs";
|
3
5
|
export const EDITOR_TYPE = 'dropdown';
|
4
6
|
|
5
7
|
/**
|
@@ -23,11 +23,15 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
23
23
|
*/
|
24
24
|
open() {
|
25
25
|
super.open();
|
26
|
+
const containerStyle = this.htContainer.style;
|
26
27
|
if (this.htEditor) {
|
27
28
|
this.htEditor.destroy();
|
29
|
+
containerStyle.width = '';
|
30
|
+
containerStyle.height = '';
|
31
|
+
containerStyle.overflow = '';
|
28
32
|
}
|
29
|
-
if (
|
30
|
-
|
33
|
+
if (containerStyle.display === 'none') {
|
34
|
+
containerStyle.display = '';
|
31
35
|
}
|
32
36
|
|
33
37
|
// Constructs and initializes a new Handsontable instance
|
@@ -40,6 +44,10 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
40
44
|
this.htEditor.deselectCell();
|
41
45
|
}
|
42
46
|
(0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
47
|
+
this.htEditor.updateSettings({
|
48
|
+
width: this.getWidth(),
|
49
|
+
height: this.getHeight()
|
50
|
+
});
|
43
51
|
this.refreshDimensions();
|
44
52
|
}
|
45
53
|
|
@@ -81,6 +89,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
81
89
|
autoWrapCol: false,
|
82
90
|
autoWrapRow: false,
|
83
91
|
ariaTags: false,
|
92
|
+
themeName: this.hot.getCurrentThemeName(),
|
84
93
|
afterOnCellMouseDown(_, coords) {
|
85
94
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
86
95
|
|
@@ -147,6 +156,26 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
147
156
|
super.finishEditing(restoreOriginalValue, ctrlDown, callback);
|
148
157
|
}
|
149
158
|
|
159
|
+
/**
|
160
|
+
* Calculates and return the internal Handsontable's height.
|
161
|
+
*
|
162
|
+
* @private
|
163
|
+
* @returns {number}
|
164
|
+
*/
|
165
|
+
getHeight() {
|
166
|
+
return this.htEditor.view.getTableHeight() + 1;
|
167
|
+
}
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Calculates and return the internal Handsontable's width.
|
171
|
+
*
|
172
|
+
* @private
|
173
|
+
* @returns {number}
|
174
|
+
*/
|
175
|
+
getWidth() {
|
176
|
+
return this.htEditor.view.getTableWidth();
|
177
|
+
}
|
178
|
+
|
150
179
|
/**
|
151
180
|
* Assigns afterDestroy callback to prevent memory leaks.
|
152
181
|
*
|
@@ -158,6 +187,11 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
158
187
|
this.htEditor.destroy();
|
159
188
|
}
|
160
189
|
});
|
190
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
191
|
+
if (!firstRun) {
|
192
|
+
this.htEditor.useTheme(themeName);
|
193
|
+
}
|
194
|
+
});
|
161
195
|
}
|
162
196
|
|
163
197
|
/**
|
@@ -20,11 +20,15 @@ export class HandsontableEditor extends TextEditor {
|
|
20
20
|
*/
|
21
21
|
open() {
|
22
22
|
super.open();
|
23
|
+
const containerStyle = this.htContainer.style;
|
23
24
|
if (this.htEditor) {
|
24
25
|
this.htEditor.destroy();
|
26
|
+
containerStyle.width = '';
|
27
|
+
containerStyle.height = '';
|
28
|
+
containerStyle.overflow = '';
|
25
29
|
}
|
26
|
-
if (
|
27
|
-
|
30
|
+
if (containerStyle.display === 'none') {
|
31
|
+
containerStyle.display = '';
|
28
32
|
}
|
29
33
|
|
30
34
|
// Constructs and initializes a new Handsontable instance
|
@@ -37,6 +41,10 @@ export class HandsontableEditor extends TextEditor {
|
|
37
41
|
this.htEditor.deselectCell();
|
38
42
|
}
|
39
43
|
setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
44
|
+
this.htEditor.updateSettings({
|
45
|
+
width: this.getWidth(),
|
46
|
+
height: this.getHeight()
|
47
|
+
});
|
40
48
|
this.refreshDimensions();
|
41
49
|
}
|
42
50
|
|
@@ -78,6 +86,7 @@ export class HandsontableEditor extends TextEditor {
|
|
78
86
|
autoWrapCol: false,
|
79
87
|
autoWrapRow: false,
|
80
88
|
ariaTags: false,
|
89
|
+
themeName: this.hot.getCurrentThemeName(),
|
81
90
|
afterOnCellMouseDown(_, coords) {
|
82
91
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
83
92
|
|
@@ -144,6 +153,26 @@ export class HandsontableEditor extends TextEditor {
|
|
144
153
|
super.finishEditing(restoreOriginalValue, ctrlDown, callback);
|
145
154
|
}
|
146
155
|
|
156
|
+
/**
|
157
|
+
* Calculates and return the internal Handsontable's height.
|
158
|
+
*
|
159
|
+
* @private
|
160
|
+
* @returns {number}
|
161
|
+
*/
|
162
|
+
getHeight() {
|
163
|
+
return this.htEditor.view.getTableHeight() + 1;
|
164
|
+
}
|
165
|
+
|
166
|
+
/**
|
167
|
+
* Calculates and return the internal Handsontable's width.
|
168
|
+
*
|
169
|
+
* @private
|
170
|
+
* @returns {number}
|
171
|
+
*/
|
172
|
+
getWidth() {
|
173
|
+
return this.htEditor.view.getTableWidth();
|
174
|
+
}
|
175
|
+
|
147
176
|
/**
|
148
177
|
* Assigns afterDestroy callback to prevent memory leaks.
|
149
178
|
*
|
@@ -155,6 +184,11 @@ export class HandsontableEditor extends TextEditor {
|
|
155
184
|
this.htEditor.destroy();
|
156
185
|
}
|
157
186
|
});
|
187
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
188
|
+
if (!firstRun) {
|
189
|
+
this.htEditor.useTheme(themeName);
|
190
|
+
}
|
191
|
+
});
|
158
192
|
}
|
159
193
|
|
160
194
|
/**
|
@@ -1,8 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _textEditor = require("../textEditor");
|
6
|
+
var _autoResize = require("../../utils/autoResize");
|
5
7
|
var _element = require("../../helpers/dom/element");
|
8
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
10
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
6
11
|
const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
|
7
12
|
|
8
13
|
/**
|
@@ -10,6 +15,19 @@ const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
|
|
10
15
|
* @class PasswordEditor
|
11
16
|
*/
|
12
17
|
class PasswordEditor extends _textEditor.TextEditor {
|
18
|
+
constructor() {
|
19
|
+
super(...arguments);
|
20
|
+
/**
|
21
|
+
* Autoresize instance for resizing the editor to the size of the entered text. Its overwrites the default
|
22
|
+
* resizer of the TextEditor.
|
23
|
+
*
|
24
|
+
* @private
|
25
|
+
* @type {Function}
|
26
|
+
*/
|
27
|
+
_defineProperty(this, "autoResize", (0, _autoResize.createInputElementResizer)(this.hot.rootDocument, {
|
28
|
+
textContent: element => '•'.repeat(element.value.length)
|
29
|
+
}));
|
30
|
+
}
|
13
31
|
static get EDITOR_TYPE() {
|
14
32
|
return EDITOR_TYPE;
|
15
33
|
}
|
@@ -1,4 +1,9 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
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; }
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
4
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
1
5
|
import { TextEditor } from "../textEditor/index.mjs";
|
6
|
+
import { createInputElementResizer } from "../../utils/autoResize.mjs";
|
2
7
|
import { empty } from "../../helpers/dom/element.mjs";
|
3
8
|
export const EDITOR_TYPE = 'password';
|
4
9
|
|
@@ -7,6 +12,19 @@ export const EDITOR_TYPE = 'password';
|
|
7
12
|
* @class PasswordEditor
|
8
13
|
*/
|
9
14
|
export class PasswordEditor extends TextEditor {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments);
|
17
|
+
/**
|
18
|
+
* Autoresize instance for resizing the editor to the size of the entered text. Its overwrites the default
|
19
|
+
* resizer of the TextEditor.
|
20
|
+
*
|
21
|
+
* @private
|
22
|
+
* @type {Function}
|
23
|
+
*/
|
24
|
+
_defineProperty(this, "autoResize", createInputElementResizer(this.hot.rootDocument, {
|
25
|
+
textContent: element => '•'.repeat(element.value.length)
|
26
|
+
}));
|
27
|
+
}
|
10
28
|
static get EDITOR_TYPE() {
|
11
29
|
return EDITOR_TYPE;
|
12
30
|
}
|
package/editors/registry.js
CHANGED
@@ -6,7 +6,7 @@ exports.getEditorInstance = exports._getEditorInstance = _getEditorInstance;
|
|
6
6
|
exports.getEditor = _getItem;
|
7
7
|
exports.registerEditor = _register;
|
8
8
|
require("core-js/modules/es.error.cause.js");
|
9
|
-
var
|
9
|
+
var _hooks = require("../core/hooks");
|
10
10
|
var _staticRegister = _interopRequireDefault(require("../utils/staticRegister"));
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
12
|
/**
|
@@ -40,7 +40,7 @@ function RegisteredEditor(editorClass) {
|
|
40
40
|
}
|
41
41
|
return instances[hotInstance.guid];
|
42
42
|
};
|
43
|
-
|
43
|
+
_hooks.Hooks.getSingleton().add('afterDestroy', function () {
|
44
44
|
instances[this.guid] = null;
|
45
45
|
});
|
46
46
|
}
|
package/editors/registry.mjs
CHANGED
@@ -2,7 +2,7 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
/**
|
3
3
|
* Utility to register editors and common namespace for keeping reference to all editor classes.
|
4
4
|
*/
|
5
|
-
import Hooks from "../
|
5
|
+
import { Hooks } from "../core/hooks/index.mjs";
|
6
6
|
import staticRegister from "../utils/staticRegister.mjs";
|
7
7
|
const registeredEditorClasses = new WeakMap();
|
8
8
|
const {
|
@@ -4,6 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
var _baseEditor = require("../baseEditor");
|
5
5
|
var _element = require("../../helpers/dom/element");
|
6
6
|
var _object = require("../../helpers/object");
|
7
|
+
var _a11y = require("../../helpers/a11y");
|
7
8
|
const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
8
9
|
const SHORTCUTS_GROUP = 'selectEditor';
|
9
10
|
const EDITOR_TYPE = exports.EDITOR_TYPE = 'select';
|
@@ -21,11 +22,21 @@ class SelectEditor extends _baseEditor.BaseEditor {
|
|
21
22
|
* Initializes editor instance, DOM Element and mount hooks.
|
22
23
|
*/
|
23
24
|
init() {
|
25
|
+
this.selectWrapper = this.hot.rootDocument.createElement('div');
|
24
26
|
this.select = this.hot.rootDocument.createElement('select');
|
25
27
|
this.select.setAttribute('data-hot-input', 'true');
|
26
|
-
this.
|
27
|
-
|
28
|
-
this.hot.
|
28
|
+
this.selectWrapper.style.display = 'none';
|
29
|
+
const ARROW = this.hot.rootDocument.createElement('DIV');
|
30
|
+
const isAriaEnabled = this.hot.getSettings().ariaTags;
|
31
|
+
ARROW.className = 'htAutocompleteArrow';
|
32
|
+
if (isAriaEnabled) {
|
33
|
+
ARROW.setAttribute(...(0, _a11y.A11Y_HIDDEN)());
|
34
|
+
}
|
35
|
+
ARROW.appendChild(this.hot.rootDocument.createTextNode(String.fromCharCode(9660)));
|
36
|
+
(0, _element.addClass)(this.selectWrapper, 'htSelectEditor');
|
37
|
+
this.selectWrapper.appendChild(this.select);
|
38
|
+
this.selectWrapper.insertBefore(ARROW, this.selectWrapper.firstChild);
|
39
|
+
this.hot.rootElement.appendChild(this.selectWrapper);
|
29
40
|
this.registerHooks();
|
30
41
|
}
|
31
42
|
|
@@ -53,7 +64,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
|
|
53
64
|
open() {
|
54
65
|
this._opened = true;
|
55
66
|
this.refreshDimensions();
|
56
|
-
this.
|
67
|
+
this.selectWrapper.style.display = '';
|
57
68
|
const shortcutManager = this.hot.getShortcutManager();
|
58
69
|
shortcutManager.setActiveContextName('editor');
|
59
70
|
this.registerShortcuts();
|
@@ -64,9 +75,9 @@ class SelectEditor extends _baseEditor.BaseEditor {
|
|
64
75
|
*/
|
65
76
|
close() {
|
66
77
|
this._opened = false;
|
67
|
-
this.
|
68
|
-
if ((0, _element.hasClass)(this.
|
69
|
-
(0, _element.removeClass)(this.
|
78
|
+
this.selectWrapper.style.display = 'none';
|
79
|
+
if ((0, _element.hasClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME)) {
|
80
|
+
(0, _element.removeClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
|
70
81
|
}
|
71
82
|
this.unregisterShortcuts();
|
72
83
|
this.clearHooks();
|
@@ -172,13 +183,13 @@ class SelectEditor extends _baseEditor.BaseEditor {
|
|
172
183
|
width,
|
173
184
|
height
|
174
185
|
} = this.getEditedCellRect();
|
175
|
-
const selectStyle = this.
|
186
|
+
const selectStyle = this.selectWrapper.style;
|
176
187
|
selectStyle.height = `${height}px`;
|
177
188
|
selectStyle.width = `${width}px`;
|
178
189
|
selectStyle.top = `${top}px`;
|
179
190
|
selectStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
|
180
191
|
selectStyle.margin = '0px';
|
181
|
-
(0, _element.addClass)(this.
|
192
|
+
(0, _element.addClass)(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
|
182
193
|
}
|
183
194
|
|
184
195
|
/**
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
|
2
2
|
import { addClass, empty, fastInnerHTML, hasClass, removeClass } from "../../helpers/dom/element.mjs";
|
3
3
|
import { objectEach } from "../../helpers/object.mjs";
|
4
|
+
import { A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
4
5
|
const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
5
6
|
const SHORTCUTS_GROUP = 'selectEditor';
|
6
7
|
export const EDITOR_TYPE = 'select';
|
@@ -18,11 +19,21 @@ export class SelectEditor extends BaseEditor {
|
|
18
19
|
* Initializes editor instance, DOM Element and mount hooks.
|
19
20
|
*/
|
20
21
|
init() {
|
22
|
+
this.selectWrapper = this.hot.rootDocument.createElement('div');
|
21
23
|
this.select = this.hot.rootDocument.createElement('select');
|
22
24
|
this.select.setAttribute('data-hot-input', 'true');
|
23
|
-
this.
|
24
|
-
|
25
|
-
this.hot.
|
25
|
+
this.selectWrapper.style.display = 'none';
|
26
|
+
const ARROW = this.hot.rootDocument.createElement('DIV');
|
27
|
+
const isAriaEnabled = this.hot.getSettings().ariaTags;
|
28
|
+
ARROW.className = 'htAutocompleteArrow';
|
29
|
+
if (isAriaEnabled) {
|
30
|
+
ARROW.setAttribute(...A11Y_HIDDEN());
|
31
|
+
}
|
32
|
+
ARROW.appendChild(this.hot.rootDocument.createTextNode(String.fromCharCode(9660)));
|
33
|
+
addClass(this.selectWrapper, 'htSelectEditor');
|
34
|
+
this.selectWrapper.appendChild(this.select);
|
35
|
+
this.selectWrapper.insertBefore(ARROW, this.selectWrapper.firstChild);
|
36
|
+
this.hot.rootElement.appendChild(this.selectWrapper);
|
26
37
|
this.registerHooks();
|
27
38
|
}
|
28
39
|
|
@@ -50,7 +61,7 @@ export class SelectEditor extends BaseEditor {
|
|
50
61
|
open() {
|
51
62
|
this._opened = true;
|
52
63
|
this.refreshDimensions();
|
53
|
-
this.
|
64
|
+
this.selectWrapper.style.display = '';
|
54
65
|
const shortcutManager = this.hot.getShortcutManager();
|
55
66
|
shortcutManager.setActiveContextName('editor');
|
56
67
|
this.registerShortcuts();
|
@@ -61,9 +72,9 @@ export class SelectEditor extends BaseEditor {
|
|
61
72
|
*/
|
62
73
|
close() {
|
63
74
|
this._opened = false;
|
64
|
-
this.
|
65
|
-
if (hasClass(this.
|
66
|
-
removeClass(this.
|
75
|
+
this.selectWrapper.style.display = 'none';
|
76
|
+
if (hasClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME)) {
|
77
|
+
removeClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
|
67
78
|
}
|
68
79
|
this.unregisterShortcuts();
|
69
80
|
this.clearHooks();
|
@@ -169,13 +180,13 @@ export class SelectEditor extends BaseEditor {
|
|
169
180
|
width,
|
170
181
|
height
|
171
182
|
} = this.getEditedCellRect();
|
172
|
-
const selectStyle = this.
|
183
|
+
const selectStyle = this.selectWrapper.style;
|
173
184
|
selectStyle.height = `${height}px`;
|
174
185
|
selectStyle.width = `${width}px`;
|
175
186
|
selectStyle.top = `${top}px`;
|
176
187
|
selectStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
|
177
188
|
selectStyle.margin = '0px';
|
178
|
-
addClass(this.
|
189
|
+
addClass(this.selectWrapper, EDITOR_VISIBLE_CLASS_NAME);
|
179
190
|
}
|
180
191
|
|
181
192
|
/**
|
@@ -305,23 +305,16 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
305
305
|
this.textareaParentStyle.top = `${top}px`;
|
306
306
|
this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
|
307
307
|
this.showEditableElement();
|
308
|
-
const cellComputedStyle =
|
308
|
+
const cellComputedStyle = this.hot.rootWindow.getComputedStyle(this.TD);
|
309
309
|
this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
|
310
310
|
this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
|
311
311
|
this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
|
312
|
-
const textareaComputedStyle = (0, _element.getComputedStyle)(this.TEXTAREA);
|
313
|
-
const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
|
314
|
-
const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
|
315
|
-
const finalWidth = width - horizontalPadding;
|
316
|
-
const finalHeight = height - verticalPadding;
|
317
|
-
const finalMaxWidth = maxWidth - horizontalPadding;
|
318
|
-
const finalMaxHeight = maxHeight - verticalPadding;
|
319
312
|
this.autoResize.init(this.TEXTAREA, {
|
320
|
-
minWidth: Math.min(
|
321
|
-
minHeight: Math.min(
|
313
|
+
minWidth: Math.min(width, maxWidth),
|
314
|
+
minHeight: Math.min(height, maxHeight),
|
322
315
|
// TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
|
323
|
-
maxWidth
|
324
|
-
maxHeight
|
316
|
+
maxWidth,
|
317
|
+
maxHeight
|
325
318
|
}, true);
|
326
319
|
}
|
327
320
|
|
@@ -5,7 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
5
5
|
import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
|
6
6
|
import EventManager from "../../eventManager.mjs";
|
7
7
|
import { isEdge, isIOS } from "../../helpers/browser.mjs";
|
8
|
-
import { addClass,
|
8
|
+
import { addClass, isThisHotChild, setCaretPosition, hasClass, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
|
9
9
|
import { rangeEach } from "../../helpers/number.mjs";
|
10
10
|
import { createInputElementResizer } from "../../utils/autoResize.mjs";
|
11
11
|
import { isDefined } from "../../helpers/mixed.mjs";
|
@@ -301,23 +301,16 @@ export class TextEditor extends BaseEditor {
|
|
301
301
|
this.textareaParentStyle.top = `${top}px`;
|
302
302
|
this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = `${start}px`;
|
303
303
|
this.showEditableElement();
|
304
|
-
const cellComputedStyle = getComputedStyle(this.TD
|
304
|
+
const cellComputedStyle = this.hot.rootWindow.getComputedStyle(this.TD);
|
305
305
|
this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
|
306
306
|
this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
|
307
307
|
this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
|
308
|
-
const textareaComputedStyle = getComputedStyle(this.TEXTAREA);
|
309
|
-
const horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
|
310
|
-
const verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
|
311
|
-
const finalWidth = width - horizontalPadding;
|
312
|
-
const finalHeight = height - verticalPadding;
|
313
|
-
const finalMaxWidth = maxWidth - horizontalPadding;
|
314
|
-
const finalMaxHeight = maxHeight - verticalPadding;
|
315
308
|
this.autoResize.init(this.TEXTAREA, {
|
316
|
-
minWidth: Math.min(
|
317
|
-
minHeight: Math.min(
|
309
|
+
minWidth: Math.min(width, maxWidth),
|
310
|
+
minHeight: Math.min(height, maxHeight),
|
318
311
|
// TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
|
319
|
-
maxWidth
|
320
|
-
maxHeight
|
312
|
+
maxWidth,
|
313
|
+
maxHeight
|
321
314
|
}, true);
|
322
315
|
}
|
323
316
|
|
package/focusManager.js
CHANGED
@@ -163,12 +163,11 @@ class FocusManager {
|
|
163
163
|
* @returns {HTMLTextAreaElement|HTMLElement|undefined}
|
164
164
|
*/
|
165
165
|
getRefocusElement() {
|
166
|
+
var _classPrivateFieldGet2;
|
166
167
|
if (typeof _classPrivateFieldGet(_refocusElementGetter, this) === 'function') {
|
167
168
|
return _classPrivateFieldGet(_refocusElementGetter, this).call(this);
|
168
|
-
} else {
|
169
|
-
var _classPrivateFieldGet2;
|
170
|
-
return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
171
169
|
}
|
170
|
+
return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
172
171
|
}
|
173
172
|
|
174
173
|
/**
|
@@ -209,13 +208,12 @@ class FocusManager {
|
|
209
208
|
refocusToEditorTextarea() {
|
210
209
|
var _classPrivateFieldGet5;
|
211
210
|
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
|
212
|
-
const refocusElement = this.getRefocusElement();
|
213
|
-
|
214
211
|
// Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
|
215
|
-
if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())
|
212
|
+
if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
|
216
213
|
if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
|
217
214
|
_classPrivateFieldGet(_debouncedSelect, this).set(delay, (0, _function.debounce)(() => {
|
218
|
-
|
215
|
+
var _this$getRefocusEleme;
|
216
|
+
(_this$getRefocusEleme = this.getRefocusElement()) === null || _this$getRefocusEleme === void 0 || _this$getRefocusEleme.select();
|
219
217
|
}, delay));
|
220
218
|
}
|
221
219
|
_classPrivateFieldGet(_debouncedSelect, this).get(delay)();
|
package/focusManager.mjs
CHANGED
@@ -160,12 +160,11 @@ export class FocusManager {
|
|
160
160
|
* @returns {HTMLTextAreaElement|HTMLElement|undefined}
|
161
161
|
*/
|
162
162
|
getRefocusElement() {
|
163
|
+
var _classPrivateFieldGet2;
|
163
164
|
if (typeof _classPrivateFieldGet(_refocusElementGetter, this) === 'function') {
|
164
165
|
return _classPrivateFieldGet(_refocusElementGetter, this).call(this);
|
165
|
-
} else {
|
166
|
-
var _classPrivateFieldGet2;
|
167
|
-
return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
168
166
|
}
|
167
|
+
return (_classPrivateFieldGet2 = _classPrivateFieldGet(_hot, this).getActiveEditor()) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.TEXTAREA;
|
169
168
|
}
|
170
169
|
|
171
170
|
/**
|
@@ -206,13 +205,12 @@ export class FocusManager {
|
|
206
205
|
refocusToEditorTextarea() {
|
207
206
|
var _classPrivateFieldGet5;
|
208
207
|
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(_refocusDelay, this);
|
209
|
-
const refocusElement = this.getRefocusElement();
|
210
|
-
|
211
208
|
// Re-focus on the editor's `TEXTAREA` element (or a predefined element) if the `imeFastEdit` option is enabled.
|
212
|
-
if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())
|
209
|
+
if (_classPrivateFieldGet(_hot, this).getSettings().imeFastEdit && !((_classPrivateFieldGet5 = _classPrivateFieldGet(_hot, this).getActiveEditor()) !== null && _classPrivateFieldGet5 !== void 0 && _classPrivateFieldGet5.isOpened())) {
|
213
210
|
if (!_classPrivateFieldGet(_debouncedSelect, this).has(delay)) {
|
214
211
|
_classPrivateFieldGet(_debouncedSelect, this).set(delay, debounce(() => {
|
215
|
-
|
212
|
+
var _this$getRefocusEleme;
|
213
|
+
(_this$getRefocusEleme = this.getRefocusElement()) === null || _this$getRefocusEleme === void 0 || _this$getRefocusEleme.select();
|
216
214
|
}, delay));
|
217
215
|
}
|
218
216
|
_classPrivateFieldGet(_debouncedSelect, this).get(delay)();
|
package/helpers/array.js
CHANGED
@@ -26,6 +26,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
26
26
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
27
27
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
28
28
|
require("core-js/modules/es.set.union.v2.js");
|
29
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
30
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
29
31
|
/**
|
30
32
|
* @param {Array} arr An array to process.
|
31
33
|
*/
|
package/helpers/array.mjs
CHANGED
@@ -6,6 +6,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
|
|
6
6
|
import "core-js/modules/es.set.is-superset-of.v2.js";
|
7
7
|
import "core-js/modules/es.set.symmetric-difference.v2.js";
|
8
8
|
import "core-js/modules/es.set.union.v2.js";
|
9
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
10
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
9
11
|
/**
|
10
12
|
* @param {Array} arr An array to process.
|
11
13
|
*/
|
package/helpers/data.js
CHANGED
@@ -11,6 +11,9 @@ exports.isArrayOfObjects = isArrayOfObjects;
|
|
11
11
|
exports.spreadsheetColumnIndex = spreadsheetColumnIndex;
|
12
12
|
exports.spreadsheetColumnLabel = spreadsheetColumnLabel;
|
13
13
|
require("core-js/modules/es.array.push.js");
|
14
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
15
|
+
require("core-js/modules/esnext.iterator.every.js");
|
16
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
14
17
|
var _object = require("./object");
|
15
18
|
const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
16
19
|
const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;
|
package/helpers/data.mjs
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.every.js";
|
4
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
2
5
|
import { deepObjectSize, isObject } from "./object.mjs";
|
3
6
|
const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
4
7
|
const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;
|