handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +29 -23
- package/3rdparty/walkontable/src/core/_base.mjs +29 -23
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +12 -6
- package/3rdparty/walkontable/src/facade/core.mjs +12 -6
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +8 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
- package/3rdparty/walkontable/src/overlay/top.js +9 -8
- package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
- package/3rdparty/walkontable/src/overlays.js +10 -26
- package/3rdparty/walkontable/src/overlays.mjs +10 -26
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +4 -2
- package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
- package/3rdparty/walkontable/src/renderer/table.js +13 -4
- package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
- package/3rdparty/walkontable/src/scroll.js +46 -37
- package/3rdparty/walkontable/src/scroll.mjs +46 -37
- package/3rdparty/walkontable/src/selection/border/border.js +52 -58
- package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
- package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
- package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
- package/3rdparty/walkontable/src/selection/index.js +6 -4
- package/3rdparty/walkontable/src/selection/index.mjs +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +3 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
- package/3rdparty/walkontable/src/selection/scanner.js +46 -11
- package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
- package/3rdparty/walkontable/src/settings.js +8 -9
- package/3rdparty/walkontable/src/settings.mjs +8 -9
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +25 -36
- package/3rdparty/walkontable/src/table.mjs +25 -36
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -43
- package/3rdparty/walkontable/src/utils/column.mjs +1 -43
- package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
- package/3rdparty/walkontable/src/viewport.js +94 -91
- package/3rdparty/walkontable/src/viewport.mjs +95 -92
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/base.js +4 -4
- package/base.mjs +3 -3
- package/core/focusCatcher/focusDetector.js +1 -0
- package/core/focusCatcher/focusDetector.mjs +1 -0
- package/core/hooks/bucket.js +184 -0
- package/core/hooks/bucket.mjs +180 -0
- package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
- package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
- package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
- package/core/hooks/index.js +385 -0
- package/core/hooks/index.mjs +381 -0
- package/core/index.js +2 -0
- package/core.d.ts +5 -3
- package/core.js +77 -35
- package/core.mjs +69 -27
- package/dataMap/dataMap.js +3 -0
- package/dataMap/dataMap.mjs +3 -0
- package/dataMap/dataSource.js +2 -0
- package/dataMap/dataSource.mjs +2 -0
- package/dataMap/metaManager/index.js +2 -0
- package/dataMap/metaManager/index.mjs +2 -0
- package/dataMap/metaManager/metaSchema.js +91 -5
- package/dataMap/metaManager/metaSchema.mjs +91 -5
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
- package/dist/handsontable.css +84 -72
- package/dist/handsontable.full.css +317 -304
- package/dist/handsontable.full.js +14826 -7294
- package/dist/handsontable.full.min.css +15 -10
- package/dist/handsontable.full.min.js +262 -69
- package/dist/handsontable.js +7826 -5552
- package/dist/handsontable.min.css +10 -6
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/editorManager.js +2 -2
- package/editorManager.mjs +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
- package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
- package/editors/baseEditor/baseEditor.js +25 -18
- package/editors/baseEditor/baseEditor.mjs +26 -19
- package/editors/dateEditor/dateEditor.js +9 -0
- package/editors/dateEditor/dateEditor.mjs +10 -1
- package/editors/dropdownEditor/dropdownEditor.js +4 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
- package/editors/handsontableEditor/handsontableEditor.js +36 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
- package/editors/passwordEditor/passwordEditor.js +18 -0
- package/editors/passwordEditor/passwordEditor.mjs +18 -0
- package/editors/registry.js +2 -2
- package/editors/registry.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +5 -12
- package/editors/textEditor/textEditor.mjs +6 -13
- package/focusManager.js +5 -7
- package/focusManager.mjs +5 -7
- package/helpers/array.js +2 -0
- package/helpers/array.mjs +2 -0
- package/helpers/data.js +3 -0
- package/helpers/data.mjs +3 -0
- package/helpers/dom/element.js +39 -18
- package/helpers/dom/element.mjs +38 -17
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +3 -3
- package/helpers/moves.js +3 -0
- package/helpers/moves.mjs +3 -0
- package/helpers/number.js +1 -0
- package/helpers/number.mjs +1 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/index.d.ts +8 -0
- package/i18n/languages/ja-JP.d.ts +1 -1
- package/i18n/phraseFormatters/substituteVariables.js +1 -0
- package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
- package/index.d.ts +9 -1
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/package.json +22 -7
- package/plugins/autoColumnSize/autoColumnSize.js +22 -27
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
- package/plugins/autoRowSize/autoRowSize.js +20 -22
- package/plugins/autoRowSize/autoRowSize.mjs +21 -23
- package/plugins/autofill/autofill.js +4 -5
- package/plugins/autofill/autofill.mjs +1 -1
- package/plugins/base/base.d.ts +1 -1
- package/plugins/base/base.js +41 -0
- package/plugins/base/base.mjs +42 -1
- package/plugins/base/index.js +2 -1
- package/plugins/base/index.mjs +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
- package/plugins/columnSorting/columnSorting.js +5 -4
- package/plugins/columnSorting/columnSorting.mjs +3 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/utils.js +3 -0
- package/plugins/columnSorting/utils.mjs +3 -0
- package/plugins/columnSummary/endpoints.js +3 -0
- package/plugins/columnSummary/endpoints.mjs +3 -0
- package/plugins/comments/commentEditor.js +9 -0
- package/plugins/comments/commentEditor.mjs +9 -0
- package/plugins/comments/comments.js +24 -18
- package/plugins/comments/comments.mjs +26 -20
- package/plugins/comments/editorResizeObserver.js +2 -0
- package/plugins/comments/editorResizeObserver.mjs +2 -0
- package/plugins/contextMenu/contextMenu.d.ts +2 -1
- package/plugins/contextMenu/contextMenu.js +6 -7
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/index.js +2 -0
- package/plugins/contextMenu/menu/menu.js +10 -5
- package/plugins/contextMenu/menu/menu.mjs +11 -6
- package/plugins/contextMenu/menu/positioner.js +4 -2
- package/plugins/contextMenu/menu/positioner.mjs +4 -2
- package/plugins/contextMenu/menu/shortcuts.js +3 -1
- package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
- package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
- package/plugins/contextMenu/utils.js +0 -10
- package/plugins/contextMenu/utils.mjs +0 -9
- package/plugins/copyPaste/copyPaste.d.ts +1 -0
- package/plugins/copyPaste/copyPaste.js +32 -23
- package/plugins/copyPaste/copyPaste.mjs +24 -15
- package/plugins/customBorders/utils.js +2 -0
- package/plugins/customBorders/utils.mjs +2 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
- package/plugins/dropdownMenu/dropdownMenu.js +6 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -0
- package/plugins/exportFile/types/csv.mjs +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/operators.js +2 -0
- package/plugins/filters/component/operators.mjs +2 -0
- package/plugins/filters/component/value.js +3 -0
- package/plugins/filters/component/value.mjs +3 -0
- package/plugins/filters/conditionCollection.js +3 -0
- package/plugins/filters/conditionCollection.mjs +3 -0
- package/plugins/filters/conditionUpdateObserver.js +2 -0
- package/plugins/filters/conditionUpdateObserver.mjs +2 -0
- package/plugins/filters/filters.js +43 -13
- package/plugins/filters/filters.mjs +43 -13
- package/plugins/filters/logicalOperations/conjunction.js +2 -0
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunction.js +2 -0
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
- package/plugins/filters/menu/focusController.js +38 -14
- package/plugins/filters/menu/focusController.mjs +38 -14
- package/plugins/filters/ui/multipleSelect.js +10 -0
- package/plugins/filters/ui/multipleSelect.mjs +10 -0
- package/plugins/formulas/engine/register.js +3 -0
- package/plugins/formulas/engine/register.mjs +3 -0
- package/plugins/formulas/engine/settings.js +3 -0
- package/plugins/formulas/engine/settings.mjs +3 -0
- package/plugins/formulas/formulas.js +12 -7
- package/plugins/formulas/formulas.mjs +6 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
- package/plugins/hiddenColumns/hiddenColumns.js +22 -30
- package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
- package/plugins/hiddenRows/hiddenRows.js +21 -29
- package/plugins/hiddenRows/hiddenRows.mjs +17 -25
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -0
- package/plugins/index.mjs +3 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
- package/plugins/manualColumnMove/manualColumnMove.js +6 -6
- package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
- package/plugins/manualColumnResize/manualColumnResize.js +26 -12
- package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
- package/plugins/manualRowMove/manualRowMove.js +8 -6
- package/plugins/manualRowMove/manualRowMove.mjs +6 -4
- package/plugins/manualRowResize/manualRowResize.js +3 -2
- package/plugins/manualRowResize/manualRowResize.mjs +4 -3
- package/plugins/mergeCells/cellsCollection.js +19 -3
- package/plugins/mergeCells/cellsCollection.mjs +20 -4
- package/plugins/mergeCells/mergeCells.d.ts +6 -2
- package/plugins/mergeCells/mergeCells.js +84 -56
- package/plugins/mergeCells/mergeCells.mjs +82 -54
- package/plugins/mergeCells/renderer.js +13 -3
- package/plugins/mergeCells/renderer.mjs +13 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
- package/plugins/nestedHeaders/nestedHeaders.js +63 -16
- package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
- package/plugins/nestedHeaders/stateManager/index.js +1 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/plugins/nestedRows/ui/headers.js +7 -1
- package/plugins/nestedRows/ui/headers.mjs +7 -1
- package/plugins/nestedRows/utils/rowMoveController.js +4 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
- package/plugins/persistentState/persistentState.js +4 -4
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +162 -0
- package/plugins/stretchColumns/calculator.mjs +158 -0
- package/plugins/stretchColumns/index.d.ts +1 -0
- package/plugins/stretchColumns/index.js +7 -0
- package/plugins/stretchColumns/index.mjs +1 -0
- package/plugins/stretchColumns/strategies/_base.js +85 -0
- package/plugins/stretchColumns/strategies/_base.mjs +81 -0
- package/plugins/stretchColumns/strategies/all.js +71 -0
- package/plugins/stretchColumns/strategies/all.mjs +67 -0
- package/plugins/stretchColumns/strategies/last.js +79 -0
- package/plugins/stretchColumns/strategies/last.mjs +75 -0
- package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
- package/plugins/stretchColumns/stretchColumns.js +222 -0
- package/plugins/stretchColumns/stretchColumns.mjs +218 -0
- package/plugins/trimRows/trimRows.js +2 -0
- package/plugins/trimRows/trimRows.mjs +2 -0
- package/plugins/undoRedo/undoRedo.js +9 -5
- package/plugins/undoRedo/undoRedo.mjs +8 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
- package/selection/index.js +2 -0
- package/selection/range.js +2 -0
- package/selection/range.mjs +2 -0
- package/selection/selection.js +7 -2
- package/selection/selection.mjs +7 -2
- package/selection/utils.js +2 -0
- package/selection/utils.mjs +2 -0
- package/settings.d.ts +4 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/index.js +2 -0
- package/shortcutContexts/commands/index.mjs +2 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
- package/shortcutContexts/index.js +2 -0
- package/shortcutContexts/index.mjs +2 -0
- package/shortcuts/context.js +3 -0
- package/shortcuts/context.mjs +3 -0
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +1 -0
- package/shortcuts/utils.mjs +1 -0
- package/styles/handsontable.css +2307 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-horizon.css +607 -0
- package/styles/ht-theme-horizon.min.css +30 -0
- package/styles/ht-theme-main.css +613 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/tableView.js +205 -33
- package/tableView.mjs +206 -34
- package/translations/changesObservable/observable.js +2 -0
- package/translations/changesObservable/observable.mjs +2 -0
- package/translations/index.js +2 -0
- package/translations/indexMapper.js +4 -0
- package/translations/indexMapper.mjs +4 -0
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -0
- package/translations/mapCollections/mapCollection.mjs +2 -0
- package/translations/maps/index.js +2 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/autoResize.js +11 -3
- package/utils/autoResize.mjs +11 -3
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +2 -0
- package/utils/ghostTable.js +7 -3
- package/utils/ghostTable.mjs +7 -3
- package/utils/parseTable.js +4 -0
- package/utils/parseTable.mjs +4 -0
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -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;
|