handsontable 11.1.0 → 12.1.0
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/border.js +120 -98
- package/3rdparty/walkontable/src/border.mjs +120 -94
- package/3rdparty/walkontable/src/cell/coords.js +59 -17
- package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
- package/3rdparty/walkontable/src/cell/range.js +278 -99
- package/3rdparty/walkontable/src/cell/range.mjs +273 -99
- package/3rdparty/walkontable/src/core/_base.js +452 -0
- package/3rdparty/walkontable/src/core/_base.mjs +440 -0
- package/3rdparty/walkontable/src/core/clone.js +97 -0
- package/3rdparty/walkontable/src/core/clone.mjs +80 -0
- package/3rdparty/walkontable/src/core/core.js +183 -0
- package/3rdparty/walkontable/src/core/core.mjs +160 -0
- package/3rdparty/walkontable/src/event.js +99 -66
- package/3rdparty/walkontable/src/event.mjs +99 -63
- package/3rdparty/walkontable/src/facade/core.js +251 -0
- package/3rdparty/walkontable/src/facade/core.mjs +243 -0
- package/3rdparty/walkontable/src/index.js +2 -46
- package/3rdparty/walkontable/src/index.mjs +3 -13
- package/3rdparty/walkontable/src/overlay/_base.js +124 -57
- package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
- package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
- package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
- package/3rdparty/walkontable/src/overlay/constants.js +25 -9
- package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
- package/3rdparty/walkontable/src/overlay/index.js +10 -19
- package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
- package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
- package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
- package/3rdparty/walkontable/src/overlay/top.js +93 -68
- package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
- package/3rdparty/walkontable/src/overlays.js +225 -156
- package/3rdparty/walkontable/src/overlays.mjs +224 -154
- package/3rdparty/walkontable/src/renderer/cells.js +4 -3
- package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
- package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rows.js +2 -2
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/scroll.js +125 -104
- package/3rdparty/walkontable/src/scroll.mjs +124 -104
- package/3rdparty/walkontable/src/selection.js +10 -14
- package/3rdparty/walkontable/src/selection.mjs +10 -12
- package/3rdparty/walkontable/src/settings.js +235 -126
- package/3rdparty/walkontable/src/settings.mjs +235 -125
- package/3rdparty/walkontable/src/table/bottom.js +16 -5
- package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
- package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
- package/3rdparty/walkontable/src/table/master.js +22 -12
- package/3rdparty/walkontable/src/table/master.mjs +22 -12
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
- package/3rdparty/walkontable/src/table/top.js +16 -5
- package/3rdparty/walkontable/src/table/top.mjs +15 -5
- package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table.js +235 -140
- package/3rdparty/walkontable/src/table.mjs +231 -134
- package/3rdparty/walkontable/src/types.js +103 -0
- package/3rdparty/walkontable/src/types.mjs +102 -0
- package/3rdparty/walkontable/src/utils/column.js +22 -33
- package/3rdparty/walkontable/src/utils/column.mjs +22 -30
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
- package/3rdparty/walkontable/src/utils/row.js +9 -4
- package/3rdparty/walkontable/src/utils/row.mjs +9 -4
- package/3rdparty/walkontable/src/viewport.js +89 -100
- package/3rdparty/walkontable/src/viewport.mjs +89 -97
- package/CHANGELOG.md +92 -0
- package/LICENSE.txt +1 -1
- package/README.md +0 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/timeType/timeType.d.ts +6 -6
- package/cellTypes/timeType/timeType.js +4 -5
- package/cellTypes/timeType/timeType.mjs +4 -5
- package/core.d.ts +6 -1
- package/core.js +508 -80
- package/core.mjs +517 -92
- package/dataMap/index.js +4 -0
- package/dataMap/index.mjs +2 -1
- package/dataMap/metaManager/index.js +2 -2
- package/dataMap/metaManager/index.mjs +2 -2
- package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
- package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
- package/dataMap/metaManager/metaSchema.js +282 -187
- package/dataMap/metaManager/metaSchema.mjs +282 -187
- package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
- package/dataMap/replaceData.js +3 -17
- package/dataMap/replaceData.mjs +3 -17
- package/dist/handsontable.css +268 -92
- package/dist/handsontable.full.css +269 -103
- package/dist/handsontable.full.js +41990 -35658
- package/dist/handsontable.full.min.css +9 -9
- package/dist/handsontable.full.min.js +144 -144
- package/dist/handsontable.js +29561 -25597
- package/dist/handsontable.min.css +8 -8
- package/dist/handsontable.min.js +4 -4
- package/dist/languages/all.js +131 -34
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +167 -0
- package/dist/languages/ar-AR.min.js +1 -0
- package/dist/languages/cs-CZ.js +167 -0
- package/dist/languages/cs-CZ.min.js +1 -0
- package/dist/languages/de-CH.js +31 -29
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +4 -2
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +4 -2
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +4 -2
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.js +4 -2
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/it-IT.js +4 -2
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +36 -38
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +36 -39
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +2 -2
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +2 -2
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +2 -2
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +2 -2
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +2 -2
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +2 -2
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +171 -0
- package/dist/languages/sr-SP.min.js +1 -0
- package/dist/languages/zh-CN.js +24 -24
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +24 -24
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +120 -267
- package/editorManager.mjs +128 -278
- package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
- package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
- package/editors/baseEditor/baseEditor.js +205 -34
- package/editors/baseEditor/baseEditor.mjs +200 -32
- package/editors/checkboxEditor/checkboxEditor.js +2 -2
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
- package/editors/dateEditor/dateEditor.js +21 -8
- package/editors/dateEditor/dateEditor.mjs +22 -9
- package/editors/dropdownEditor/dropdownEditor.js +3 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
- package/editors/handsontableEditor/handsontableEditor.js +106 -55
- package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
- package/editors/index.d.ts +3 -0
- package/editors/index.js +6 -0
- package/editors/index.mjs +3 -1
- package/editors/numericEditor/numericEditor.js +2 -2
- package/editors/numericEditor/numericEditor.mjs +2 -2
- package/editors/passwordEditor/passwordEditor.js +3 -3
- package/editors/passwordEditor/passwordEditor.mjs +3 -3
- package/editors/selectEditor/selectEditor.js +65 -110
- package/editors/selectEditor/selectEditor.mjs +66 -109
- package/editors/textEditor/caretPositioner.js +49 -0
- package/editors/textEditor/caretPositioner.mjs +42 -0
- package/editors/textEditor/textEditor.js +205 -181
- package/editors/textEditor/textEditor.mjs +199 -179
- package/editors/timeEditor/index.d.ts +1 -0
- package/editors/timeEditor/index.js +9 -0
- package/editors/timeEditor/index.mjs +1 -0
- package/editors/timeEditor/timeEditor.d.ts +7 -0
- package/editors/timeEditor/timeEditor.js +105 -0
- package/editors/timeEditor/timeEditor.mjs +84 -0
- package/eventManager.js +4 -2
- package/eventManager.mjs +4 -2
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/ar-AR.js +41 -0
- package/i18n/languages/ar-AR.mjs +17 -0
- package/i18n/languages/cs-CZ.js +40 -0
- package/i18n/languages/cs-CZ.mjs +16 -0
- package/i18n/languages/index.js +12 -0
- package/i18n/languages/index.mjs +4 -1
- package/i18n/languages/sr-SP.js +40 -0
- package/i18n/languages/sr-SP.mjs +16 -0
- package/index.d.ts +4 -0
- package/languages/all.js +131 -34
- package/languages/ar-AR.js +167 -0
- package/languages/ar-AR.mjs +19 -0
- package/languages/cs-CZ.js +167 -0
- package/languages/cs-CZ.mjs +18 -0
- package/languages/de-CH.js +31 -29
- package/languages/de-DE.js +4 -2
- package/languages/en-US.js +4 -2
- package/languages/es-MX.js +4 -2
- package/languages/fr-FR.js +4 -2
- package/languages/index.js +131 -34
- package/languages/index.mjs +4 -1
- package/languages/it-IT.js +4 -2
- package/languages/ja-JP.js +36 -38
- package/languages/ko-KR.js +36 -39
- package/languages/lv-LV.js +2 -2
- package/languages/nb-NO.js +2 -2
- package/languages/nl-NL.js +2 -2
- package/languages/pl-PL.js +2 -2
- package/languages/pt-BR.js +2 -2
- package/languages/ru-RU.js +2 -2
- package/languages/sr-SP.js +171 -0
- package/languages/sr-SP.mjs +18 -0
- package/languages/zh-CN.js +24 -24
- package/languages/zh-TW.js +24 -24
- package/package.json +44 -4
- package/pluginHooks.js +49 -13
- package/pluginHooks.mjs +49 -13
- package/plugins/autoColumnSize/autoColumnSize.js +15 -10
- package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
- package/plugins/autoRowSize/autoRowSize.js +14 -9
- package/plugins/autoRowSize/autoRowSize.mjs +14 -9
- package/plugins/autofill/autofill.js +49 -33
- package/plugins/autofill/autofill.mjs +49 -32
- package/plugins/autofill/utils.js +10 -11
- package/plugins/autofill/utils.mjs +10 -10
- package/plugins/base/base.d.ts +8 -2
- package/plugins/base/base.js +67 -4
- package/plugins/base/base.mjs +66 -4
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
- package/plugins/columnSorting/columnSorting.js +5 -7
- package/plugins/columnSorting/columnSorting.mjs +5 -6
- package/plugins/columnSummary/columnSummary.js +3 -3
- package/plugins/columnSummary/columnSummary.mjs +3 -3
- package/plugins/comments/commentEditor.js +18 -2
- package/plugins/comments/commentEditor.mjs +19 -3
- package/plugins/comments/comments.js +57 -46
- package/plugins/comments/comments.mjs +58 -46
- package/plugins/contextMenu/contextMenu.js +10 -6
- package/plugins/contextMenu/contextMenu.mjs +10 -6
- package/plugins/contextMenu/menu.js +222 -110
- package/plugins/contextMenu/menu.mjs +219 -111
- package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
- package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
- package/plugins/contextMenu/utils.js +2 -2
- package/plugins/contextMenu/utils.mjs +2 -2
- package/plugins/copyPaste/copyPaste.js +31 -21
- package/plugins/copyPaste/copyPaste.mjs +30 -21
- package/plugins/customBorders/contextMenuItem/left.js +4 -3
- package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
- package/plugins/customBorders/contextMenuItem/right.js +4 -3
- package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
- package/plugins/customBorders/customBorders.js +144 -87
- package/plugins/customBorders/customBorders.mjs +143 -85
- package/plugins/customBorders/utils.js +131 -27
- package/plugins/customBorders/utils.mjs +115 -27
- package/plugins/dragToScroll/dragToScroll.js +10 -5
- package/plugins/dragToScroll/dragToScroll.mjs +10 -5
- package/plugins/dropdownMenu/dropdownMenu.js +9 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +2 -2
- package/plugins/exportFile/types/csv.js +2 -2
- package/plugins/exportFile/types/csv.mjs +2 -2
- package/plugins/filters/component/actionBar.js +2 -2
- package/plugins/filters/component/actionBar.mjs +2 -2
- package/plugins/filters/component/condition.js +3 -3
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +2 -2
- package/plugins/filters/component/operators.mjs +2 -2
- package/plugins/filters/component/value.js +3 -3
- package/plugins/filters/component/value.mjs +3 -3
- package/plugins/filters/filters.js +11 -8
- package/plugins/filters/filters.mjs +11 -8
- package/plugins/filters/ui/input.js +3 -3
- package/plugins/filters/ui/input.mjs +3 -3
- package/plugins/filters/ui/link.js +3 -3
- package/plugins/filters/ui/link.mjs +3 -3
- package/plugins/filters/ui/multipleSelect.js +18 -31
- package/plugins/filters/ui/multipleSelect.mjs +18 -31
- package/plugins/filters/ui/radioInput.js +3 -3
- package/plugins/filters/ui/radioInput.mjs +3 -3
- package/plugins/filters/ui/select.js +4 -4
- package/plugins/filters/ui/select.mjs +4 -4
- package/plugins/formulas/formulas.js +14 -9
- package/plugins/formulas/formulas.mjs +14 -9
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
- package/plugins/hiddenColumns/hiddenColumns.js +9 -4
- package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
- package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
- package/plugins/hiddenRows/hiddenRows.js +9 -4
- package/plugins/hiddenRows/hiddenRows.mjs +9 -4
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
- package/plugins/manualColumnMove/manualColumnMove.js +70 -70
- package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
- package/plugins/manualColumnMove/ui/_base.js +25 -12
- package/plugins/manualColumnMove/ui/_base.mjs +24 -12
- package/plugins/manualColumnMove/ui/backlight.js +3 -3
- package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
- package/plugins/manualColumnMove/ui/guideline.js +3 -3
- package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
- package/plugins/manualColumnResize/manualColumnResize.js +37 -21
- package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
- package/plugins/manualRowMove/manualRowMove.js +26 -34
- package/plugins/manualRowMove/manualRowMove.mjs +26 -34
- package/plugins/manualRowMove/ui/backlight.js +3 -3
- package/plugins/manualRowMove/ui/backlight.mjs +3 -3
- package/plugins/manualRowMove/ui/guideline.js +3 -3
- package/plugins/manualRowMove/ui/guideline.mjs +3 -3
- package/plugins/manualRowResize/manualRowResize.js +34 -19
- package/plugins/manualRowResize/manualRowResize.mjs +34 -19
- package/plugins/mergeCells/calculations/autofill.js +6 -5
- package/plugins/mergeCells/calculations/autofill.mjs +6 -4
- package/plugins/mergeCells/calculations/selection.js +9 -4
- package/plugins/mergeCells/calculations/selection.mjs +9 -4
- package/plugins/mergeCells/cellCoords.js +16 -4
- package/plugins/mergeCells/cellCoords.mjs +16 -3
- package/plugins/mergeCells/cellsCollection.js +30 -23
- package/plugins/mergeCells/cellsCollection.mjs +30 -22
- package/plugins/mergeCells/mergeCells.js +94 -61
- package/plugins/mergeCells/mergeCells.mjs +94 -59
- package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
- package/plugins/nestedHeaders/nestedHeaders.js +31 -20
- package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
- package/plugins/nestedHeaders/stateManager/utils.js +3 -4
- package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
- package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
- package/plugins/nestedRows/nestedRows.js +9 -4
- package/plugins/nestedRows/nestedRows.mjs +9 -4
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +2 -2
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
- package/plugins/nestedRows/ui/headers.js +2 -2
- package/plugins/nestedRows/ui/headers.mjs +2 -2
- package/plugins/nestedRows/utils/rowMoveController.js +2 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
- package/plugins/persistentState/persistentState.js +9 -4
- package/plugins/persistentState/persistentState.mjs +9 -4
- package/plugins/search/search.js +9 -4
- package/plugins/search/search.mjs +9 -4
- package/plugins/touchScroll/touchScroll.js +27 -21
- package/plugins/touchScroll/touchScroll.mjs +27 -21
- package/plugins/trimRows/trimRows.js +9 -4
- package/plugins/trimRows/trimRows.mjs +9 -4
- package/plugins/undoRedo/undoRedo.js +53 -47
- package/plugins/undoRedo/undoRedo.mjs +53 -46
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
- package/renderers/index.d.ts +4 -1
- package/renderers/index.js +6 -0
- package/renderers/index.mjs +3 -1
- package/renderers/numericRenderer/numericRenderer.js +1 -0
- package/renderers/numericRenderer/numericRenderer.mjs +1 -0
- package/renderers/timeRenderer/index.d.ts +1 -0
- package/renderers/timeRenderer/index.js +9 -0
- package/renderers/timeRenderer/index.mjs +1 -0
- package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
- package/renderers/timeRenderer/timeRenderer.js +31 -0
- package/renderers/timeRenderer/timeRenderer.mjs +20 -0
- package/selection/highlight/visualSelection.js +94 -220
- package/selection/highlight/visualSelection.mjs +91 -213
- package/selection/mouseEventHandler.js +15 -10
- package/selection/mouseEventHandler.mjs +15 -9
- package/selection/range.js +4 -5
- package/selection/range.mjs +4 -5
- package/selection/selection.js +35 -22
- package/selection/selection.mjs +35 -20
- package/selection/transformation.js +4 -6
- package/selection/transformation.mjs +4 -5
- package/settings.d.ts +3 -1
- package/shortcuts/context.d.ts +20 -0
- package/shortcuts/context.js +296 -0
- package/shortcuts/context.mjs +268 -0
- package/shortcuts/index.d.ts +1 -0
- package/shortcuts/index.js +8 -0
- package/shortcuts/index.mjs +1 -0
- package/shortcuts/keyObserver.js +67 -0
- package/shortcuts/keyObserver.mjs +58 -0
- package/shortcuts/manager.d.ts +10 -0
- package/shortcuts/manager.js +185 -0
- package/shortcuts/manager.mjs +176 -0
- package/shortcuts/recorder.js +192 -0
- package/shortcuts/recorder.mjs +180 -0
- package/shortcuts/utils.js +77 -0
- package/shortcuts/utils.mjs +54 -0
- package/tableView.js +164 -84
- package/tableView.mjs +164 -74
- package/translations/changesObservable/observer.js +0 -1
- package/translations/changesObservable/observer.mjs +0 -1
- package/translations/indexMapper.d.ts +3 -1
- package/translations/indexMapper.js +89 -11
- package/translations/indexMapper.mjs +91 -20
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/maps/hidingMap.js +4 -2
- package/translations/maps/hidingMap.mjs +4 -2
- package/translations/maps/indexMap.js +2 -0
- package/translations/maps/indexMap.mjs +2 -0
- package/translations/maps/indexesSequence.js +5 -3
- package/translations/maps/indexesSequence.mjs +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
- package/translations/maps/physicalIndexToValueMap.js +5 -3
- package/translations/maps/physicalIndexToValueMap.mjs +5 -3
- package/translations/maps/trimmingMap.js +4 -2
- package/translations/maps/trimmingMap.mjs +4 -2
- package/utils/dataStructures/uniqueMap.js +14 -1
- package/utils/dataStructures/uniqueMap.mjs +14 -1
- package/utils/dataStructures/uniqueSet.js +9 -0
- package/utils/dataStructures/uniqueSet.mjs +9 -0
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/3rdparty/walkontable/src/core.js +0 -309
- package/3rdparty/walkontable/src/core.mjs +0 -293
- package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
- package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
- package/utils/keyStateObserver.js +0 -121
- package/utils/keyStateObserver.mjs +0 -103
@@ -22,14 +22,16 @@ require("core-js/modules/es.string.iterator.js");
|
|
22
22
|
|
23
23
|
require("core-js/modules/web.dom-collections.iterator.js");
|
24
24
|
|
25
|
-
|
26
|
-
exports.TextEditor = exports.EDITOR_TYPE = void 0;
|
25
|
+
require("core-js/modules/es.array.slice.js");
|
27
26
|
|
28
|
-
require("core-js/modules/es.
|
27
|
+
require("core-js/modules/es.function.name.js");
|
29
28
|
|
30
|
-
require("core-js/modules/es.array.
|
29
|
+
require("core-js/modules/es.array.from.js");
|
31
30
|
|
32
|
-
require("core-js/modules/es.
|
31
|
+
require("core-js/modules/es.regexp.exec.js");
|
32
|
+
|
33
|
+
exports.__esModule = true;
|
34
|
+
exports.TextEditor = exports.EDITOR_TYPE = void 0;
|
33
35
|
|
34
36
|
require("core-js/modules/es.array.index-of.js");
|
35
37
|
|
@@ -45,29 +47,47 @@ var _browser = require("../../helpers/browser");
|
|
45
47
|
|
46
48
|
var _element = require("../../helpers/dom/element");
|
47
49
|
|
48
|
-
var _event = require("../../helpers/dom/event");
|
49
|
-
|
50
50
|
var _number = require("../../helpers/number");
|
51
51
|
|
52
52
|
var _unicode = require("../../helpers/unicode");
|
53
53
|
|
54
54
|
var _autoResize = require("../../3rdparty/autoResize");
|
55
55
|
|
56
|
+
var _mixed = require("../../helpers/mixed");
|
57
|
+
|
58
|
+
var _editorManager = require("../../editorManager");
|
59
|
+
|
60
|
+
var _baseEditor2 = require("../baseEditor/baseEditor");
|
61
|
+
|
62
|
+
var _caretPositioner = require("./caretPositioner");
|
63
|
+
|
56
64
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
57
65
|
|
66
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
67
|
+
|
68
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
69
|
+
|
70
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
71
|
+
|
72
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
73
|
+
|
74
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
75
|
+
|
76
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
77
|
+
|
58
78
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
59
79
|
|
60
80
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
61
81
|
|
62
82
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
63
83
|
|
64
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
84
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
65
85
|
|
66
86
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
67
87
|
|
68
88
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
69
89
|
|
70
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
90
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
71
91
|
|
72
92
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
73
93
|
|
@@ -77,10 +97,11 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
77
97
|
|
78
98
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
79
99
|
|
80
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
100
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
81
101
|
|
82
102
|
var EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
83
103
|
var EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
|
104
|
+
var SHORTCUTS_GROUP = 'textEditor';
|
84
105
|
var EDITOR_TYPE = 'text';
|
85
106
|
/**
|
86
107
|
* @private
|
@@ -205,9 +226,12 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
205
226
|
this.refreshDimensions(); // need it instantly, to prevent https://github.com/handsontable/handsontable/issues/348
|
206
227
|
|
207
228
|
this.showEditableElement();
|
208
|
-
this.
|
209
|
-
|
229
|
+
var shortcutManager = this.hot.getShortcutManager();
|
230
|
+
shortcutManager.setActiveContextName('editor');
|
231
|
+
this.addHook('afterDocumentKeyDown', function (event) {
|
232
|
+
return _this2.onAfterDocumentKeyDown(event);
|
210
233
|
});
|
234
|
+
this.registerShortcuts();
|
211
235
|
}
|
212
236
|
/**
|
213
237
|
* Closes the editor.
|
@@ -223,7 +247,8 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
223
247
|
}
|
224
248
|
|
225
249
|
this.hideEditableElement();
|
226
|
-
this.
|
250
|
+
this.unregisterShortcuts();
|
251
|
+
this.removeHooksByKey('afterDocumentKeyDown');
|
227
252
|
}
|
228
253
|
/**
|
229
254
|
* Prepares editor's meta data.
|
@@ -249,7 +274,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
249
274
|
fragmentSelection = cellProperties.fragmentSelection;
|
250
275
|
|
251
276
|
if (allowInvalid) {
|
252
|
-
// Remove an empty space from
|
277
|
+
// Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
|
253
278
|
// functionality work with IME)
|
254
279
|
this.TEXTAREA.value = '';
|
255
280
|
}
|
@@ -281,7 +306,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
281
306
|
return;
|
282
307
|
}
|
283
308
|
|
284
|
-
this.TEXTAREA.value = ''; // Remove an empty space from
|
309
|
+
this.TEXTAREA.value = ''; // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste functionality work with IME).
|
285
310
|
|
286
311
|
_get(_getPrototypeOf(TextEditor.prototype), "beginEditing", this).call(this, newInitialValue, event);
|
287
312
|
}
|
@@ -294,7 +319,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
294
319
|
value: function focus() {
|
295
320
|
// For IME editor textarea element must be focused using ".select" method.
|
296
321
|
// Using ".focus" browser automatically scroll into the focused element which
|
297
|
-
// is
|
322
|
+
// is undesired effect.
|
298
323
|
this.TEXTAREA.select();
|
299
324
|
(0, _element.setCaretPosition)(this.TEXTAREA, this.TEXTAREA.value.length);
|
300
325
|
}
|
@@ -343,11 +368,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
343
368
|
this.textareaStyle.overflowY = 'visible';
|
344
369
|
this.textareaParentStyle.opacity = '0';
|
345
370
|
this.textareaParentStyle.height = '1px';
|
346
|
-
|
347
|
-
if ((0, _element.hasClass)(this.TEXTAREA_PARENT, this.layerClass)) {
|
348
|
-
(0, _element.removeClass)(this.TEXTAREA_PARENT, this.layerClass);
|
349
|
-
}
|
350
|
-
|
371
|
+
(0, _element.removeClass)(this.TEXTAREA_PARENT, this.layerClass);
|
351
372
|
(0, _element.addClass)(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME);
|
352
373
|
}
|
353
374
|
/**
|
@@ -362,7 +383,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
362
383
|
this.textareaParentStyle.height = '';
|
363
384
|
this.textareaParentStyle.overflow = '';
|
364
385
|
this.textareaParentStyle.position = '';
|
365
|
-
this.textareaParentStyle.right = 'auto';
|
386
|
+
this.textareaParentStyle[this.hot.isRtl() ? 'left' : 'right'] = 'auto';
|
366
387
|
this.textareaParentStyle.opacity = '1';
|
367
388
|
this.textareaStyle.textIndent = '';
|
368
389
|
this.textareaStyle.overflowY = 'hidden';
|
@@ -430,98 +451,34 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
430
451
|
return;
|
431
452
|
}
|
432
453
|
|
433
|
-
var _this$
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
var containerScrollTop = scrollableContainerTop !== this.hot.rootWindow ? scrollableContainerTop.scrollTop : 0;
|
441
|
-
var containerScrollLeft = scrollableContainerLeft !== this.hot.rootWindow ? scrollableContainerLeft.scrollLeft : 0;
|
442
|
-
var editorSection = this.checkEditorSection();
|
443
|
-
var scrollTop = ['', 'left'].includes(editorSection) ? containerScrollTop : 0;
|
444
|
-
var scrollLeft = ['', 'top', 'bottom'].includes(editorSection) ? containerScrollLeft : 0; // If colHeaders is disabled, cells in the first row have border-top
|
445
|
-
|
446
|
-
var editTopModifier = currentOffset.top === containerOffset.top ? 0 : 1;
|
447
|
-
var backgroundColor = this.TD.style.backgroundColor;
|
448
|
-
var editTop = currentOffset.top - containerOffset.top - editTopModifier - scrollTop;
|
449
|
-
var editLeft = currentOffset.left - containerOffset.left - 1 - scrollLeft;
|
450
|
-
var cssTransformOffset; // TODO: Refactor this to the new instance.getCell method (from #ply-59), after 0.12.1 is released
|
451
|
-
|
452
|
-
switch (editorSection) {
|
453
|
-
case 'top':
|
454
|
-
cssTransformOffset = (0, _element.getCssTransform)(wtOverlays.topOverlay.clone.wtTable.holder.parentNode);
|
455
|
-
break;
|
456
|
-
|
457
|
-
case 'left':
|
458
|
-
cssTransformOffset = (0, _element.getCssTransform)(wtOverlays.leftOverlay.clone.wtTable.holder.parentNode);
|
459
|
-
break;
|
460
|
-
|
461
|
-
case 'top-left-corner':
|
462
|
-
cssTransformOffset = (0, _element.getCssTransform)(wtOverlays.topLeftCornerOverlay.clone.wtTable.holder.parentNode);
|
463
|
-
break;
|
464
|
-
|
465
|
-
case 'bottom-left-corner':
|
466
|
-
cssTransformOffset = (0, _element.getCssTransform)(wtOverlays.bottomLeftCornerOverlay.clone.wtTable.holder.parentNode);
|
467
|
-
break;
|
468
|
-
|
469
|
-
case 'bottom':
|
470
|
-
cssTransformOffset = (0, _element.getCssTransform)(wtOverlays.bottomOverlay.clone.wtTable.holder.parentNode);
|
471
|
-
break;
|
472
|
-
|
473
|
-
default:
|
474
|
-
break;
|
475
|
-
}
|
476
|
-
|
477
|
-
var hasColumnHeaders = this.hot.hasColHeaders();
|
478
|
-
var renderableRow = this.hot.rowIndexMapper.getRenderableFromVisualIndex(this.row);
|
479
|
-
var renderableColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(this.col);
|
480
|
-
var nrOfRenderableRowIndexes = this.hot.rowIndexMapper.getRenderableIndexesLength();
|
481
|
-
var firstRowIndexOfTheBottomOverlay = nrOfRenderableRowIndexes - this.hot.view.wt.getSetting('fixedRowsBottom');
|
482
|
-
|
483
|
-
if (hasColumnHeaders && renderableRow <= 0 || renderableRow === firstRowIndexOfTheBottomOverlay) {
|
484
|
-
editTop += 1;
|
485
|
-
}
|
486
|
-
|
487
|
-
if (renderableColumn <= 0) {
|
488
|
-
editLeft += 1;
|
489
|
-
}
|
490
|
-
|
491
|
-
if (cssTransformOffset && cssTransformOffset !== -1) {
|
492
|
-
this.textareaParentStyle[cssTransformOffset[0]] = cssTransformOffset[1];
|
493
|
-
} else {
|
494
|
-
(0, _element.resetCssTransform)(this.TEXTAREA_PARENT);
|
495
|
-
}
|
454
|
+
var _this$getEditedCellRe = this.getEditedCellRect(),
|
455
|
+
top = _this$getEditedCellRe.top,
|
456
|
+
start = _this$getEditedCellRe.start,
|
457
|
+
width = _this$getEditedCellRe.width,
|
458
|
+
maxWidth = _this$getEditedCellRe.maxWidth,
|
459
|
+
height = _this$getEditedCellRe.height,
|
460
|
+
maxHeight = _this$getEditedCellRe.maxHeight;
|
496
461
|
|
497
|
-
this.textareaParentStyle.top = "".concat(
|
498
|
-
this.textareaParentStyle.left = "".concat(
|
462
|
+
this.textareaParentStyle.top = "".concat(top, "px");
|
463
|
+
this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = "".concat(start, "px");
|
499
464
|
this.showEditableElement();
|
500
|
-
var firstRowOffset = wtViewport.rowsRenderCalculator.startPosition;
|
501
|
-
var firstColumnOffset = wtViewport.columnsRenderCalculator.startPosition;
|
502
|
-
var horizontalScrollPosition = wtOverlays.leftOverlay.getScrollPosition();
|
503
|
-
var verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();
|
504
|
-
var scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
|
505
|
-
var cellTopOffset = this.TD.offsetTop + firstRowOffset - verticalScrollPosition;
|
506
|
-
var cellLeftOffset = this.TD.offsetLeft + firstColumnOffset - horizontalScrollPosition;
|
507
|
-
var width = (0, _element.innerWidth)(this.TD) - 8;
|
508
|
-
var actualVerticalScrollbarWidth = (0, _element.hasVerticalScrollbar)(scrollableContainerTop) ? scrollbarWidth : 0;
|
509
|
-
var actualHorizontalScrollbarWidth = (0, _element.hasHorizontalScrollbar)(scrollableContainerLeft) ? scrollbarWidth : 0;
|
510
|
-
var maxWidth = this.hot.view.maximumVisibleElementWidth(cellLeftOffset) - 9 - actualVerticalScrollbarWidth;
|
511
|
-
var height = this.TD.scrollHeight + 1;
|
512
|
-
var maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth, 23); // eslint-disable-line max-len
|
513
|
-
|
514
465
|
var cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
|
515
466
|
this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
|
516
467
|
this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
|
517
|
-
this.TEXTAREA.style.backgroundColor = backgroundColor;
|
468
|
+
this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
|
469
|
+
var textareaComputedStyle = (0, _element.getComputedStyle)(this.TEXTAREA);
|
470
|
+
var horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
|
471
|
+
var verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
|
472
|
+
var finalWidth = width - horizontalPadding;
|
473
|
+
var finalHeight = height - verticalPadding;
|
474
|
+
var finalMaxWidth = maxWidth - horizontalPadding;
|
475
|
+
var finalMaxHeight = maxHeight - verticalPadding;
|
518
476
|
this.autoResize.init(this.TEXTAREA, {
|
519
|
-
|
520
|
-
|
521
|
-
// TEXTAREA should never be
|
522
|
-
|
523
|
-
|
524
|
-
|
477
|
+
minWidth: Math.min(finalWidth, finalMaxWidth),
|
478
|
+
minHeight: Math.min(finalHeight, finalMaxHeight),
|
479
|
+
// TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
|
480
|
+
maxWidth: finalMaxWidth,
|
481
|
+
maxHeight: finalMaxHeight
|
525
482
|
}, true);
|
526
483
|
}
|
527
484
|
/**
|
@@ -588,86 +545,153 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
588
545
|
this.clearHooks();
|
589
546
|
}
|
590
547
|
/**
|
591
|
-
*
|
548
|
+
* Register shortcuts responsible for handling editor.
|
592
549
|
*
|
593
|
-
* @
|
550
|
+
* @private
|
594
551
|
*/
|
595
552
|
|
596
553
|
}, {
|
597
|
-
key: "
|
598
|
-
value: function
|
599
|
-
|
600
|
-
|
554
|
+
key: "registerShortcuts",
|
555
|
+
value: function registerShortcuts() {
|
556
|
+
var _this4 = this;
|
557
|
+
|
558
|
+
var shortcutManager = this.hot.getShortcutManager();
|
559
|
+
var editorContext = shortcutManager.getContext('editor');
|
560
|
+
var contextConfig = {
|
561
|
+
runOnlyIf: function runOnlyIf() {
|
562
|
+
return (0, _mixed.isDefined)(_this4.hot.getSelected());
|
563
|
+
},
|
564
|
+
group: SHORTCUTS_GROUP
|
565
|
+
};
|
566
|
+
|
567
|
+
var insertNewLine = function insertNewLine() {
|
568
|
+
_this4.hot.rootDocument.execCommand('insertText', false, '\n');
|
569
|
+
};
|
570
|
+
|
571
|
+
editorContext.addShortcuts([{
|
572
|
+
keys: [['Tab']],
|
573
|
+
// TODO: Duplicated part of code (callback to shortcut).
|
574
|
+
callback: function callback(event) {
|
575
|
+
var tableMeta = _this4.hot.getSettings();
|
576
|
+
|
577
|
+
var tabMoves = typeof tableMeta.tabMoves === 'function' ? tableMeta.tabMoves(event) : tableMeta.tabMoves;
|
578
|
+
|
579
|
+
_this4.hot.selection.transformStart(tabMoves.row, tabMoves.col, true);
|
580
|
+
}
|
581
|
+
}, {
|
582
|
+
keys: [['Shift', 'Tab']],
|
583
|
+
// TODO: Duplicated part of code (callback to shortcut).
|
584
|
+
callback: function callback(event) {
|
585
|
+
var tableMeta = _this4.hot.getSettings();
|
601
586
|
|
602
|
-
|
603
|
-
return;
|
604
|
-
}
|
587
|
+
var tabMoves = typeof tableMeta.tabMoves === 'function' ? tableMeta.tabMoves(event) : tableMeta.tabMoves;
|
605
588
|
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
case _unicode.KEY_CODES.BACKSPACE:
|
660
|
-
case _unicode.KEY_CODES.DELETE:
|
661
|
-
case _unicode.KEY_CODES.HOME:
|
662
|
-
case _unicode.KEY_CODES.END:
|
663
|
-
(0, _event.stopImmediatePropagation)(event); // backspace, delete, home, end should only work locally when cell is edited (not in table context)
|
664
|
-
|
665
|
-
break;
|
666
|
-
|
667
|
-
default:
|
668
|
-
break;
|
669
|
-
}
|
589
|
+
_this4.hot.selection.transformStart(-tabMoves.row, -tabMoves.col);
|
590
|
+
}
|
591
|
+
}, {
|
592
|
+
keys: [['Control', 'Enter']],
|
593
|
+
callback: function callback() {
|
594
|
+
insertNewLine();
|
595
|
+
return false; // Will block closing editor.
|
596
|
+
},
|
597
|
+
runOnlyIf: function runOnlyIf(event) {
|
598
|
+
return !_this4.hot.selection.isMultiple() && // We trigger a data population for multiple selection.
|
599
|
+
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
600
|
+
!event.altKey;
|
601
|
+
},
|
602
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
603
|
+
position: 'before'
|
604
|
+
}, {
|
605
|
+
keys: [['Meta', 'Enter']],
|
606
|
+
callback: function callback() {
|
607
|
+
insertNewLine();
|
608
|
+
return false; // Will block closing editor.
|
609
|
+
},
|
610
|
+
runOnlyIf: function runOnlyIf() {
|
611
|
+
return !_this4.hot.selection.isMultiple();
|
612
|
+
},
|
613
|
+
// We trigger a data population for multiple selection.
|
614
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
615
|
+
position: 'before'
|
616
|
+
}, {
|
617
|
+
keys: [['Alt', 'Enter']],
|
618
|
+
callback: function callback() {
|
619
|
+
insertNewLine();
|
620
|
+
return false; // Will block closing editor.
|
621
|
+
},
|
622
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
623
|
+
position: 'before'
|
624
|
+
}, {
|
625
|
+
// TODO: Duplicated part of code (callback to shortcut)
|
626
|
+
keys: [['PageUp']],
|
627
|
+
callback: function callback() {
|
628
|
+
_this4.hot.selection.transformStart(-_this4.hot.countVisibleRows(), 0);
|
629
|
+
}
|
630
|
+
}, {
|
631
|
+
// TODO: Duplicated part of code (callback to shortcut)
|
632
|
+
keys: [['PageDown']],
|
633
|
+
callback: function callback() {
|
634
|
+
_this4.hot.selection.transformStart(_this4.hot.countVisibleRows(), 0);
|
635
|
+
}
|
636
|
+
}, {
|
637
|
+
keys: [['Home']],
|
638
|
+
callback: function callback(event, _ref) {
|
639
|
+
var _ref2 = _slicedToArray(_ref, 1),
|
640
|
+
keyName = _ref2[0];
|
670
641
|
|
642
|
+
(0, _caretPositioner.updateCaretPosition)(keyName, _this4.TEXTAREA);
|
643
|
+
}
|
644
|
+
}, {
|
645
|
+
keys: [['End']],
|
646
|
+
callback: function callback(event, _ref3) {
|
647
|
+
var _ref4 = _slicedToArray(_ref3, 1),
|
648
|
+
keyName = _ref4[0];
|
649
|
+
|
650
|
+
(0, _caretPositioner.updateCaretPosition)(keyName, _this4.TEXTAREA);
|
651
|
+
}
|
652
|
+
}, {
|
653
|
+
keys: [['Control/Meta', 'Z']],
|
654
|
+
preventDefault: false,
|
655
|
+
callback: function callback() {
|
656
|
+
_this4.hot._registerTimeout(function () {
|
657
|
+
_this4.autoResize.resize();
|
658
|
+
}, 10);
|
659
|
+
}
|
660
|
+
}, {
|
661
|
+
keys: [['Control/Meta', 'Shift', 'Z']],
|
662
|
+
preventDefault: false,
|
663
|
+
callback: function callback() {
|
664
|
+
_this4.hot._registerTimeout(function () {
|
665
|
+
_this4.autoResize.resize();
|
666
|
+
}, 10);
|
667
|
+
}
|
668
|
+
}], contextConfig);
|
669
|
+
}
|
670
|
+
/**
|
671
|
+
* Unregister shortcuts responsible for handling editor.
|
672
|
+
*
|
673
|
+
* @private
|
674
|
+
*/
|
675
|
+
|
676
|
+
}, {
|
677
|
+
key: "unregisterShortcuts",
|
678
|
+
value: function unregisterShortcuts() {
|
679
|
+
var shortcutManager = this.hot.getShortcutManager();
|
680
|
+
var editorContext = shortcutManager.getContext('editor');
|
681
|
+
editorContext.removeShortcutsByGroup(_editorManager.SHORTCUTS_GROUP_NAVIGATION);
|
682
|
+
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
|
683
|
+
editorContext.removeShortcutsByGroup(_baseEditor2.SHORTCUTS_GROUP_EDITOR);
|
684
|
+
}
|
685
|
+
/**
|
686
|
+
* OnAfterDocumentKeyDown callback.
|
687
|
+
*
|
688
|
+
* @private
|
689
|
+
* @param {KeyboardEvent} event The keyboard event object.
|
690
|
+
*/
|
691
|
+
|
692
|
+
}, {
|
693
|
+
key: "onAfterDocumentKeyDown",
|
694
|
+
value: function onAfterDocumentKeyDown(event) {
|
671
695
|
var arrowKeyCodes = [_unicode.KEY_CODES.ARROW_UP, _unicode.KEY_CODES.ARROW_RIGHT, _unicode.KEY_CODES.ARROW_DOWN, _unicode.KEY_CODES.ARROW_LEFT];
|
672
696
|
|
673
697
|
if (arrowKeyCodes.indexOf(event.keyCode) === -1) {
|