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
@@ -6,13 +6,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
6
6
|
|
7
7
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
8
8
|
|
9
|
-
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); }
|
9
|
+
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); }
|
10
10
|
|
11
11
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
12
12
|
|
13
13
|
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); }
|
14
14
|
|
15
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
15
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
16
16
|
|
17
17
|
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); }; }
|
18
18
|
|
@@ -22,7 +22,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
22
22
|
|
23
23
|
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; } }
|
24
24
|
|
25
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
25
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
26
26
|
|
27
27
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
28
28
|
|
@@ -226,6 +226,9 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
226
226
|
scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
|
227
227
|
}
|
228
228
|
|
229
|
+
this.addHook('beforeKeyDown', function (event) {
|
230
|
+
return _this3.onBeforeKeyDown(event);
|
231
|
+
});
|
229
232
|
choicesListHot.updateSettings({
|
230
233
|
colWidths: trimDropdown ? [outerWidth(this.TEXTAREA) - 2] : void 0,
|
231
234
|
width: trimDropdown ? outerWidth(this.TEXTAREA) + scrollbarWidth : void 0,
|
@@ -384,21 +387,20 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
384
387
|
}, {
|
385
388
|
key: "flipDropdownIfNeeded",
|
386
389
|
value: function flipDropdownIfNeeded() {
|
390
|
+
var trimmingContainer = getTrimmingContainer(this.hot.view._wt.wtTable.TABLE);
|
391
|
+
var isWindowAsScrollableElement = trimmingContainer === this.hot.rootWindow;
|
392
|
+
var preventOverflow = this.cellProperties.preventOverflow;
|
393
|
+
|
394
|
+
if (isWindowAsScrollableElement || !isWindowAsScrollableElement && (preventOverflow || preventOverflow === 'horizontal')) {
|
395
|
+
return false;
|
396
|
+
}
|
397
|
+
|
387
398
|
var textareaOffset = offset(this.TEXTAREA);
|
388
399
|
var textareaHeight = outerHeight(this.TEXTAREA);
|
389
400
|
var dropdownHeight = this.getDropdownHeight();
|
390
|
-
var trimmingContainer = getTrimmingContainer(this.hot.view.wt.wtTable.TABLE);
|
391
401
|
var trimmingContainerScrollTop = trimmingContainer.scrollTop;
|
392
|
-
var headersHeight = outerHeight(this.hot.view.
|
393
|
-
var containerOffset =
|
394
|
-
row: 0,
|
395
|
-
col: 0
|
396
|
-
};
|
397
|
-
|
398
|
-
if (trimmingContainer !== this.hot.rootWindow) {
|
399
|
-
containerOffset = offset(trimmingContainer);
|
400
|
-
}
|
401
|
-
|
402
|
+
var headersHeight = outerHeight(this.hot.view._wt.wtTable.THEAD);
|
403
|
+
var containerOffset = offset(trimmingContainer);
|
402
404
|
var spaceAbove = textareaOffset.top - containerOffset.top - headersHeight + trimmingContainerScrollTop;
|
403
405
|
var spaceBelow = trimmingContainer.scrollHeight - spaceAbove - headersHeight - textareaHeight;
|
404
406
|
var flipNeeded = dropdownHeight > spaceBelow && spaceAbove > spaceBelow;
|
@@ -416,7 +418,7 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
416
418
|
* Checks if the internal table should generate scrollbar or could be rendered without it.
|
417
419
|
*
|
418
420
|
* @private
|
419
|
-
* @param {number} spaceAvailable The free space as height
|
421
|
+
* @param {number} spaceAvailable The free space as height defined in px available for dropdown list.
|
420
422
|
* @param {number} dropdownHeight The dropdown height.
|
421
423
|
*/
|
422
424
|
|
@@ -430,7 +432,7 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
430
432
|
var height = null;
|
431
433
|
|
432
434
|
do {
|
433
|
-
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view.
|
435
|
+
lastRowHeight = this.htEditor.getRowHeight(i) || this.htEditor.view._wt.getSetting('defaultRowHeight');
|
434
436
|
tempHeight += lastRowHeight;
|
435
437
|
i += 1;
|
436
438
|
} while (tempHeight < spaceAvailable);
|
@@ -469,12 +471,8 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
469
471
|
key: "unflipDropdown",
|
470
472
|
value: function unflipDropdown() {
|
471
473
|
var dropdownStyle = this.htEditor.rootElement.style;
|
472
|
-
|
473
|
-
|
474
|
-
dropdownStyle.position = '';
|
475
|
-
dropdownStyle.top = '';
|
476
|
-
}
|
477
|
-
|
474
|
+
dropdownStyle.position = 'absolute';
|
475
|
+
dropdownStyle.top = '';
|
478
476
|
this.htEditor.flipped = void 0;
|
479
477
|
}
|
480
478
|
/**
|
@@ -492,7 +490,8 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
492
490
|
height: this.getDropdownHeight(),
|
493
491
|
width: trimDropdown ? void 0 : currentDropdownWidth
|
494
492
|
});
|
495
|
-
|
493
|
+
|
494
|
+
this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer();
|
496
495
|
}
|
497
496
|
/**
|
498
497
|
* Sets new height of the internal Handsontable's instance.
|
@@ -636,8 +635,6 @@ export var AutocompleteEditor = /*#__PURE__*/function (_HandsontableEditor) {
|
|
636
635
|
}, timeOffset);
|
637
636
|
}
|
638
637
|
}
|
639
|
-
|
640
|
-
_get(_getPrototypeOf(AutocompleteEditor.prototype), "onBeforeKeyDown", this).call(this, event);
|
641
638
|
}
|
642
639
|
/**
|
643
640
|
* Filters and sorts by relevance.
|
@@ -24,27 +24,31 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
24
24
|
|
25
25
|
require("core-js/modules/es.array.slice.js");
|
26
26
|
|
27
|
-
require("core-js/modules/es.function.name.js");
|
28
|
-
|
29
27
|
require("core-js/modules/es.array.from.js");
|
30
28
|
|
31
29
|
require("core-js/modules/es.regexp.exec.js");
|
32
30
|
|
33
31
|
exports.__esModule = true;
|
34
|
-
exports.EDITOR_TYPE = exports.EDITOR_STATE = exports.BaseEditor = void 0;
|
32
|
+
exports.SHORTCUTS_GROUP_EDITOR = exports.EDITOR_TYPE = exports.EDITOR_STATE = exports.BaseEditor = void 0;
|
35
33
|
|
36
34
|
require("core-js/modules/es.object.freeze.js");
|
37
35
|
|
38
36
|
require("core-js/modules/es.string.trim.js");
|
39
37
|
|
40
|
-
|
38
|
+
require("core-js/modules/es.function.name.js");
|
39
|
+
|
40
|
+
require("core-js/modules/es.array.includes.js");
|
41
41
|
|
42
42
|
var _mixed = require("../../helpers/mixed");
|
43
43
|
|
44
44
|
var _object = require("../../helpers/object");
|
45
45
|
|
46
|
+
var _editorManager = require("../../editorManager");
|
47
|
+
|
46
48
|
var _hooksRefRegisterer = _interopRequireDefault(require("../../mixins/hooksRefRegisterer"));
|
47
49
|
|
50
|
+
var _element = require("../../helpers/dom/element");
|
51
|
+
|
48
52
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
49
53
|
|
50
54
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
@@ -61,7 +65,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
61
65
|
|
62
66
|
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); }
|
63
67
|
|
64
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
68
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
65
69
|
|
66
70
|
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); }; }
|
67
71
|
|
@@ -71,7 +75,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
71
75
|
|
72
76
|
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; } }
|
73
77
|
|
74
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
78
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
75
79
|
|
76
80
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
77
81
|
|
@@ -89,11 +93,13 @@ var EDITOR_STATE = Object.freeze({
|
|
89
93
|
// waiting for async validation
|
90
94
|
FINISHED: 'STATE_FINISHED'
|
91
95
|
});
|
96
|
+
exports.EDITOR_STATE = EDITOR_STATE;
|
97
|
+
var SHORTCUTS_GROUP_EDITOR = 'baseEditor';
|
92
98
|
/**
|
93
99
|
* @class BaseEditor
|
94
100
|
*/
|
95
101
|
|
96
|
-
exports.
|
102
|
+
exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
|
97
103
|
|
98
104
|
var BaseEditor = /*#__PURE__*/function () {
|
99
105
|
/**
|
@@ -308,6 +314,8 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
308
314
|
}, {
|
309
315
|
key: "saveValue",
|
310
316
|
value: function saveValue(value, ctrlDown) {
|
317
|
+
var _this = this;
|
318
|
+
|
311
319
|
var visualRowFrom;
|
312
320
|
var visualColumnFrom;
|
313
321
|
var visualRowTo;
|
@@ -336,6 +344,39 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
336
344
|
|
337
345
|
visualRowFrom = _modifiedCellCoords[0];
|
338
346
|
visualColumnFrom = _modifiedCellCoords[1];
|
347
|
+
}
|
348
|
+
|
349
|
+
var shortcutManager = this.hot.getShortcutManager();
|
350
|
+
var editorContext = shortcutManager.getContext('editor');
|
351
|
+
var contextConfig = {
|
352
|
+
runOnlyIf: function runOnlyIf() {
|
353
|
+
return (0, _mixed.isDefined)(_this.hot.getSelected());
|
354
|
+
},
|
355
|
+
group: SHORTCUTS_GROUP_EDITOR
|
356
|
+
};
|
357
|
+
|
358
|
+
if (this.isInFullEditMode()) {
|
359
|
+
editorContext.addShortcuts([{
|
360
|
+
keys: [['ArrowUp']],
|
361
|
+
callback: function callback() {
|
362
|
+
_this.hot.selection.transformStart(-1, 0);
|
363
|
+
}
|
364
|
+
}, {
|
365
|
+
keys: [['ArrowDown']],
|
366
|
+
callback: function callback() {
|
367
|
+
_this.hot.selection.transformStart(1, 0);
|
368
|
+
}
|
369
|
+
}, {
|
370
|
+
keys: [['ArrowLeft']],
|
371
|
+
callback: function callback() {
|
372
|
+
_this.hot.selection.transformStart(0, -1 * _this.hot.getDirectionFactor());
|
373
|
+
}
|
374
|
+
}, {
|
375
|
+
keys: [['ArrowRight']],
|
376
|
+
callback: function callback() {
|
377
|
+
_this.hot.selection.transformStart(0, _this.hot.getDirectionFactor());
|
378
|
+
}
|
379
|
+
}], contextConfig);
|
339
380
|
} // Saving values using the modified coordinates.
|
340
381
|
|
341
382
|
|
@@ -360,7 +401,7 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
360
401
|
|
361
402
|
var renderableRowIndex = hotInstance.rowIndexMapper.getRenderableFromVisualIndex(this.row);
|
362
403
|
var renderableColumnIndex = hotInstance.columnIndexMapper.getRenderableFromVisualIndex(this.col);
|
363
|
-
hotInstance.view.scrollViewport(
|
404
|
+
hotInstance.view.scrollViewport(hotInstance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
364
405
|
this.state = EDITOR_STATE.EDITING; // Set the editor value only in the full edit mode. In other mode the focusable element has to be empty,
|
365
406
|
// otherwise IME (editor for Asia users) doesn't work.
|
366
407
|
|
@@ -387,7 +428,7 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
387
428
|
}, {
|
388
429
|
key: "finishEditing",
|
389
430
|
value: function finishEditing(restoreOriginalValue, ctrlDown, callback) {
|
390
|
-
var
|
431
|
+
var _this2 = this;
|
391
432
|
|
392
433
|
var val;
|
393
434
|
|
@@ -401,7 +442,7 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
401
442
|
|
402
443
|
callback(result);
|
403
444
|
|
404
|
-
|
445
|
+
_this2.hot.view.render();
|
405
446
|
};
|
406
447
|
}
|
407
448
|
|
@@ -409,9 +450,14 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
409
450
|
return;
|
410
451
|
}
|
411
452
|
|
453
|
+
var shortcutManager = this.hot.getShortcutManager();
|
454
|
+
var editorContext = shortcutManager.getContext('editor');
|
455
|
+
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
456
|
+
editorContext.removeShortcutsByGroup(_editorManager.SHORTCUTS_GROUP_NAVIGATION);
|
457
|
+
|
412
458
|
if (this.state === EDITOR_STATE.VIRGIN) {
|
413
459
|
this.hot._registerTimeout(function () {
|
414
|
-
|
460
|
+
_this2._fireCallbacks(true);
|
415
461
|
});
|
416
462
|
|
417
463
|
return;
|
@@ -438,9 +484,9 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
438
484
|
|
439
485
|
if (this.hot.getCellValidator(this.cellProperties)) {
|
440
486
|
this.hot.addHookOnce('postAfterValidate', function (result) {
|
441
|
-
|
487
|
+
_this2.state = EDITOR_STATE.FINISHED;
|
442
488
|
|
443
|
-
|
489
|
+
_this2.discardEditor(result);
|
444
490
|
});
|
445
491
|
} else {
|
446
492
|
this.state = EDITOR_STATE.FINISHED;
|
@@ -486,6 +532,9 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
486
532
|
this.state = EDITOR_STATE.VIRGIN;
|
487
533
|
|
488
534
|
this._fireCallbacks(true);
|
535
|
+
|
536
|
+
var shortcutManager = this.hot.getShortcutManager();
|
537
|
+
shortcutManager.setActiveContextName('grid');
|
489
538
|
}
|
490
539
|
}
|
491
540
|
/**
|
@@ -531,6 +580,137 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
531
580
|
value: function isWaiting() {
|
532
581
|
return this.state === EDITOR_STATE.WAITING;
|
533
582
|
}
|
583
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
584
|
+
|
585
|
+
/**
|
586
|
+
* Gets the object that provides information about the edited cell size and its position
|
587
|
+
* relative to the table viewport.
|
588
|
+
*
|
589
|
+
* The rectangle has six integer properties:
|
590
|
+
* - `top` The top position relative to the table viewport
|
591
|
+
* - `start` The left (or right in RTL) position relative to the table viewport
|
592
|
+
* - `width` The cell's current width;
|
593
|
+
* - `maxWidth` The maximum cell's width after which the editor goes out of the table viewport
|
594
|
+
* - `height` The cell's current height;
|
595
|
+
* - `maxHeight` The maximum cell's height after which the editor goes out of the table viewport
|
596
|
+
*
|
597
|
+
* @returns {{top: number, start: number, width: number, maxWidth: number, height: number, maxHeight: number} | undefined}
|
598
|
+
*/
|
599
|
+
|
600
|
+
}, {
|
601
|
+
key: "getEditedCellRect",
|
602
|
+
value: function getEditedCellRect() {
|
603
|
+
var _wtOverlays$getParent;
|
604
|
+
|
605
|
+
var TD = this.getEditedCell(); // TD is outside of the viewport.
|
606
|
+
|
607
|
+
if (!TD) {
|
608
|
+
return;
|
609
|
+
}
|
610
|
+
|
611
|
+
var _this$hot$view$_wt = this.hot.view._wt,
|
612
|
+
wtOverlays = _this$hot$view$_wt.wtOverlays,
|
613
|
+
wtViewport = _this$hot$view$_wt.wtViewport;
|
614
|
+
var rootWindow = this.hot.rootWindow;
|
615
|
+
var currentOffset = (0, _element.offset)(TD);
|
616
|
+
var cellWidth = (0, _element.outerWidth)(TD);
|
617
|
+
var containerOffset = (0, _element.offset)(this.hot.rootElement);
|
618
|
+
var containerWidth = (0, _element.outerWidth)(this.hot.rootElement);
|
619
|
+
var scrollableContainerTop = wtOverlays.topOverlay.holder;
|
620
|
+
var scrollableContainerLeft = wtOverlays.inlineStartOverlay.holder;
|
621
|
+
var containerScrollTop = scrollableContainerTop !== rootWindow ? scrollableContainerTop.scrollTop : 0;
|
622
|
+
var containerScrollLeft = scrollableContainerLeft !== rootWindow ? scrollableContainerLeft.scrollLeft : 0;
|
623
|
+
var gridMostRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;
|
624
|
+
|
625
|
+
var _ref2 = (_wtOverlays$getParent = wtOverlays.getParentOverlay(TD)) !== null && _wtOverlays$getParent !== void 0 ? _wtOverlays$getParent : this.hot.view._wt,
|
626
|
+
overlayTable = _ref2.wtTable;
|
627
|
+
|
628
|
+
var overlayName = overlayTable.name;
|
629
|
+
var scrollTop = ['master', 'inline_start'].includes(overlayName) ? containerScrollTop : 0;
|
630
|
+
var scrollLeft = ['master', 'top', 'bottom'].includes(overlayName) ? containerScrollLeft : 0; // If colHeaders is disabled, cells in the first row have border-top
|
631
|
+
|
632
|
+
var editTopModifier = currentOffset.top === containerOffset.top ? 0 : 1;
|
633
|
+
var topPos = currentOffset.top - containerOffset.top - editTopModifier - scrollTop;
|
634
|
+
var inlineStartPos = 0;
|
635
|
+
|
636
|
+
if (this.hot.isRtl()) {
|
637
|
+
inlineStartPos = rootWindow.innerWidth - currentOffset.left - cellWidth - gridMostRightPos - 1 + scrollLeft;
|
638
|
+
} else {
|
639
|
+
inlineStartPos = currentOffset.left - containerOffset.left - 1 - scrollLeft;
|
640
|
+
} // When the scrollable element is Window object then the editor position needs to be compensated
|
641
|
+
// by the overlays' position (position relative to the table viewport). In other cases, the overlay's
|
642
|
+
// position always returns 0.
|
643
|
+
|
644
|
+
|
645
|
+
if (['top', 'top_inline_start_corner'].includes(overlayName)) {
|
646
|
+
topPos += wtOverlays.topOverlay.getOverlayOffset();
|
647
|
+
}
|
648
|
+
|
649
|
+
if (['inline_start', 'top_inline_start_corner'].includes(overlayName)) {
|
650
|
+
inlineStartPos += Math.abs(wtOverlays.inlineStartOverlay.getOverlayOffset());
|
651
|
+
}
|
652
|
+
|
653
|
+
var hasColumnHeaders = this.hot.hasColHeaders();
|
654
|
+
var renderableRow = this.hot.rowIndexMapper.getRenderableFromVisualIndex(this.row);
|
655
|
+
var renderableColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(this.col);
|
656
|
+
var nrOfRenderableRowIndexes = this.hot.rowIndexMapper.getRenderableIndexesLength();
|
657
|
+
|
658
|
+
var firstRowIndexOfTheBottomOverlay = nrOfRenderableRowIndexes - this.hot.view._wt.getSetting('fixedRowsBottom');
|
659
|
+
|
660
|
+
if (hasColumnHeaders && renderableRow <= 0 || renderableRow === firstRowIndexOfTheBottomOverlay) {
|
661
|
+
topPos += 1;
|
662
|
+
}
|
663
|
+
|
664
|
+
if (renderableColumn <= 0) {
|
665
|
+
inlineStartPos += 1;
|
666
|
+
}
|
667
|
+
|
668
|
+
var firstRowOffset = wtViewport.rowsRenderCalculator.startPosition;
|
669
|
+
var firstColumnOffset = wtViewport.columnsRenderCalculator.startPosition;
|
670
|
+
var horizontalScrollPosition = Math.abs(wtOverlays.inlineStartOverlay.getScrollPosition());
|
671
|
+
var verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();
|
672
|
+
var scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
|
673
|
+
var cellTopOffset = TD.offsetTop + firstRowOffset - verticalScrollPosition;
|
674
|
+
var cellStartOffset = 0;
|
675
|
+
|
676
|
+
if (this.hot.isRtl()) {
|
677
|
+
var cellOffset = TD.offsetLeft;
|
678
|
+
|
679
|
+
if (cellOffset >= 0) {
|
680
|
+
cellStartOffset = overlayTable.getWidth() - TD.offsetLeft;
|
681
|
+
} else {
|
682
|
+
// The `offsetLeft` returns negative values when the parent offset element has position relative
|
683
|
+
// (it happens when on the cell the selection is applied - the `area` CSS class).
|
684
|
+
// When it happens the `offsetLeft` value is calculated from the right edge of the parent element.
|
685
|
+
cellStartOffset = Math.abs(cellOffset);
|
686
|
+
}
|
687
|
+
|
688
|
+
cellStartOffset += firstColumnOffset - horizontalScrollPosition - cellWidth;
|
689
|
+
} else {
|
690
|
+
cellStartOffset = TD.offsetLeft + firstColumnOffset - horizontalScrollPosition;
|
691
|
+
}
|
692
|
+
|
693
|
+
var cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
|
694
|
+
var borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
|
695
|
+
var inlineStartBorderCompensation = parseInt(cellComputedStyle[borderPhysicalWidthProp], 10) > 0 ? 0 : 1;
|
696
|
+
var topBorderCompensation = parseInt(cellComputedStyle.borderTopWidth, 10) > 0 ? 0 : 1;
|
697
|
+
var width = (0, _element.outerWidth)(TD) + inlineStartBorderCompensation;
|
698
|
+
var height = (0, _element.outerHeight)(TD) + topBorderCompensation;
|
699
|
+
var actualVerticalScrollbarWidth = (0, _element.hasVerticalScrollbar)(scrollableContainerTop) ? scrollbarWidth : 0;
|
700
|
+
var actualHorizontalScrollbarWidth = (0, _element.hasHorizontalScrollbar)(scrollableContainerLeft) ? scrollbarWidth : 0;
|
701
|
+
var maxWidth = this.hot.view.maximumVisibleElementWidth(cellStartOffset) - actualVerticalScrollbarWidth + inlineStartBorderCompensation;
|
702
|
+
var maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth + topBorderCompensation, 23);
|
703
|
+
return {
|
704
|
+
top: topPos,
|
705
|
+
start: inlineStartPos,
|
706
|
+
height: height,
|
707
|
+
maxHeight: maxHeight,
|
708
|
+
width: width,
|
709
|
+
maxWidth: maxWidth
|
710
|
+
};
|
711
|
+
}
|
712
|
+
/* eslint-enable jsdoc/require-description-complete-sentence */
|
713
|
+
|
534
714
|
/**
|
535
715
|
* Gets className of the edited cell if exist.
|
536
716
|
*
|
@@ -543,29 +723,20 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
543
723
|
var editorSection = this.checkEditorSection();
|
544
724
|
|
545
725
|
switch (editorSection) {
|
546
|
-
case '
|
547
|
-
return '
|
548
|
-
|
549
|
-
case 'left':
|
550
|
-
return 'ht_clone_left';
|
726
|
+
case 'inline-start':
|
727
|
+
return 'ht_clone_left ht_clone_inline_start';
|
551
728
|
|
552
729
|
case 'bottom':
|
553
730
|
return 'ht_clone_bottom';
|
554
731
|
|
555
|
-
case 'bottom-
|
556
|
-
return '
|
557
|
-
|
558
|
-
case 'bottom-left-corner':
|
559
|
-
return 'ht_clone_bottom_left_corner';
|
732
|
+
case 'bottom-inline-start-corner':
|
733
|
+
return 'ht_clone_bottom_left_corner ht_clone_bottom_inline_start_corner';
|
560
734
|
|
561
735
|
case 'top':
|
562
736
|
return 'ht_clone_top';
|
563
737
|
|
564
|
-
case 'top-
|
565
|
-
return '
|
566
|
-
|
567
|
-
case 'top-left-corner':
|
568
|
-
return 'ht_clone_top_left_corner';
|
738
|
+
case 'top-inline-start-corner':
|
739
|
+
return 'ht_clone_top_left_corner ht_clone_top_inline_start_corner';
|
569
740
|
|
570
741
|
default:
|
571
742
|
return 'ht_clone_master';
|
@@ -596,19 +767,19 @@ var BaseEditor = /*#__PURE__*/function () {
|
|
596
767
|
var section = '';
|
597
768
|
|
598
769
|
if (this.row < this.hot.getSettings().fixedRowsTop) {
|
599
|
-
if (this.col < this.hot.getSettings().
|
600
|
-
section = 'top-
|
770
|
+
if (this.col < this.hot.getSettings().fixedColumnsStart) {
|
771
|
+
section = 'top-inline-start-corner';
|
601
772
|
} else {
|
602
773
|
section = 'top';
|
603
774
|
}
|
604
775
|
} else if (this.hot.getSettings().fixedRowsBottom && this.row >= totalRows - this.hot.getSettings().fixedRowsBottom) {
|
605
|
-
if (this.col < this.hot.getSettings().
|
606
|
-
section = 'bottom-
|
776
|
+
if (this.col < this.hot.getSettings().fixedColumnsStart) {
|
777
|
+
section = 'bottom-inline-start-corner';
|
607
778
|
} else {
|
608
779
|
section = 'bottom';
|
609
780
|
}
|
610
|
-
} else if (this.col < this.hot.getSettings().
|
611
|
-
section = '
|
781
|
+
} else if (this.col < this.hot.getSettings().fixedColumnsStart) {
|
782
|
+
section = 'inline-start';
|
612
783
|
}
|
613
784
|
|
614
785
|
return section;
|