handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -28
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +69 -36
- package/3rdparty/walkontable/src/cell/range.mjs +68 -35
- package/3rdparty/walkontable/src/event.js +3 -5
- package/3rdparty/walkontable/src/event.mjs +3 -5
- package/3rdparty/walkontable/src/overlay/_base.js +6 -7
- package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/top.js +6 -7
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
- package/3rdparty/walkontable/src/overlays.js +55 -64
- package/3rdparty/walkontable/src/overlays.mjs +55 -64
- package/3rdparty/walkontable/src/renderer/table.js +0 -2
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
- package/3rdparty/walkontable/src/scroll.js +20 -23
- package/3rdparty/walkontable/src/scroll.mjs +20 -23
- package/3rdparty/walkontable/src/selection/border/border.js +1 -0
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
- package/3rdparty/walkontable/src/selection/manager.js +40 -45
- package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
- package/3rdparty/walkontable/src/selection/scanner.js +5 -4
- package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
- package/3rdparty/walkontable/src/settings.js +13 -15
- package/3rdparty/walkontable/src/settings.mjs +13 -15
- package/3rdparty/walkontable/src/table.js +23 -26
- package/3rdparty/walkontable/src/table.mjs +23 -26
- package/CHANGELOG.md +56 -0
- package/base.js +2 -4
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core.d.ts +7 -9
- package/core.js +241 -439
- package/core.mjs +245 -443
- package/dataMap/dataMap.js +1 -0
- package/dataMap/dataMap.mjs +1 -0
- package/dataMap/dataSource.js +5 -5
- package/dataMap/dataSource.mjs +5 -5
- package/dataMap/metaManager/lazyFactoryMap.js +1 -0
- package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
- package/dataMap/metaManager/metaSchema.js +33 -24
- package/dataMap/metaManager/metaSchema.mjs +33 -24
- package/dist/handsontable.css +25 -3
- package/dist/handsontable.full.css +25 -3
- package/dist/handsontable.full.js +14539 -11358
- package/dist/handsontable.full.min.css +5 -5
- package/dist/handsontable.full.min.js +137 -125
- package/dist/handsontable.js +31414 -28455
- package/dist/handsontable.min.css +5 -5
- package/dist/handsontable.min.js +11 -3
- package/dist/languages/all.js +133 -0
- package/dist/languages/ar-AR.js +7 -0
- package/dist/languages/cs-CZ.js +7 -0
- package/dist/languages/de-CH.js +7 -0
- package/dist/languages/de-DE.js +7 -0
- package/dist/languages/en-US.js +7 -0
- package/dist/languages/es-MX.js +7 -0
- package/dist/languages/fr-FR.js +7 -0
- package/dist/languages/it-IT.js +7 -0
- package/dist/languages/ja-JP.js +7 -0
- package/dist/languages/ko-KR.js +7 -0
- package/dist/languages/lv-LV.js +7 -0
- package/dist/languages/nb-NO.js +7 -0
- package/dist/languages/nl-NL.js +7 -0
- package/dist/languages/pl-PL.js +7 -0
- package/dist/languages/pt-BR.js +7 -0
- package/dist/languages/ru-RU.js +7 -0
- package/dist/languages/sr-SP.js +7 -0
- package/dist/languages/zh-CN.js +7 -0
- package/dist/languages/zh-TW.js +7 -0
- package/editorManager.js +19 -89
- package/editorManager.mjs +24 -93
- package/editors/baseEditor/baseEditor.js +1 -0
- package/editors/baseEditor/baseEditor.mjs +1 -0
- package/editors/textEditor/textEditor.js +14 -20
- package/editors/textEditor/textEditor.mjs +16 -22
- package/helpers/dom/element.js +0 -11
- package/helpers/dom/element.mjs +0 -10
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/i18n/languages/ar-AR.js +7 -1
- package/i18n/languages/cs-CZ.js +7 -1
- package/i18n/languages/de-CH.js +7 -1
- package/i18n/languages/de-DE.js +7 -1
- package/i18n/languages/en-US.js +7 -1
- package/i18n/languages/es-MX.js +7 -1
- package/i18n/languages/fr-FR.js +7 -1
- package/i18n/languages/it-IT.js +7 -1
- package/i18n/languages/ja-JP.js +7 -1
- package/i18n/languages/ko-KR.js +7 -1
- package/i18n/languages/lv-LV.js +7 -1
- package/i18n/languages/nb-NO.js +7 -1
- package/i18n/languages/nl-NL.js +7 -1
- package/i18n/languages/pl-PL.js +7 -1
- package/i18n/languages/pt-BR.js +7 -1
- package/i18n/languages/ru-RU.js +7 -1
- package/i18n/languages/sr-SP.js +7 -1
- package/i18n/languages/zh-CN.js +7 -1
- package/i18n/languages/zh-TW.js +7 -1
- package/languages/all.js +133 -0
- package/languages/ar-AR.js +7 -0
- package/languages/cs-CZ.js +7 -0
- package/languages/de-CH.js +7 -0
- package/languages/de-DE.js +7 -0
- package/languages/en-US.js +7 -0
- package/languages/es-MX.js +7 -0
- package/languages/fr-FR.js +7 -0
- package/languages/index.js +133 -0
- package/languages/it-IT.js +7 -0
- package/languages/ja-JP.js +7 -0
- package/languages/ko-KR.js +7 -0
- package/languages/lv-LV.js +7 -0
- package/languages/nb-NO.js +7 -0
- package/languages/nl-NL.js +7 -0
- package/languages/pl-PL.js +7 -0
- package/languages/pt-BR.js +7 -0
- package/languages/ru-RU.js +7 -0
- package/languages/sr-SP.js +7 -0
- package/languages/zh-CN.js +7 -0
- package/languages/zh-TW.js +7 -0
- package/package.json +3 -2
- package/pluginHooks.d.ts +8 -2
- package/pluginHooks.js +116 -18
- package/pluginHooks.mjs +115 -15
- package/plugins/autoColumnSize/autoColumnSize.js +1 -0
- package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
- package/plugins/autoRowSize/autoRowSize.js +3 -2
- package/plugins/autoRowSize/autoRowSize.mjs +3 -2
- package/plugins/autofill/autofill.js +2 -2
- package/plugins/autofill/autofill.mjs +3 -3
- package/plugins/autofill/utils.js +1 -39
- package/plugins/autofill/utils.mjs +0 -37
- package/plugins/base/base.js +1 -0
- package/plugins/base/base.mjs +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
- package/plugins/columnSorting/columnSorting.js +51 -8
- package/plugins/columnSorting/columnSorting.mjs +50 -9
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/rootComparator.js +1 -0
- package/plugins/columnSorting/rootComparator.mjs +1 -0
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +289 -224
- package/plugins/comments/comments.mjs +297 -234
- package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
- package/plugins/comments/contextMenuItem/removeComment.js +48 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +81 -29
- package/plugins/contextMenu/contextMenu.mjs +82 -30
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +25 -16
- package/plugins/contextMenu/utils.mjs +24 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +100 -14
- package/plugins/copyPaste/copyPaste.mjs +100 -14
- package/plugins/copyPaste/copyableRanges.js +25 -31
- package/plugins/copyPaste/copyableRanges.mjs +18 -24
- package/plugins/copyPaste/focusableElement.js +219 -0
- package/plugins/copyPaste/focusableElement.mjs +213 -0
- package/plugins/customBorders/customBorders.d.ts +2 -0
- package/plugins/customBorders/customBorders.js +19 -50
- package/plugins/customBorders/customBorders.mjs +19 -50
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +94 -30
- package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
- package/plugins/exportFile/dataProvider.js +1 -0
- package/plugins/exportFile/dataProvider.mjs +1 -0
- package/plugins/filters/component/value.js +1 -0
- package/plugins/filters/component/value.mjs +1 -0
- package/plugins/filters/condition/beginsWith.js +1 -0
- package/plugins/filters/condition/beginsWith.mjs +1 -0
- package/plugins/filters/condition/between.js +1 -0
- package/plugins/filters/condition/between.mjs +1 -0
- package/plugins/filters/condition/byValue.js +1 -0
- package/plugins/filters/condition/byValue.mjs +1 -0
- package/plugins/filters/condition/contains.js +1 -0
- package/plugins/filters/condition/contains.mjs +1 -0
- package/plugins/filters/condition/date/after.js +1 -0
- package/plugins/filters/condition/date/after.mjs +1 -0
- package/plugins/filters/condition/date/before.js +1 -0
- package/plugins/filters/condition/date/before.mjs +1 -0
- package/plugins/filters/condition/endsWith.js +1 -0
- package/plugins/filters/condition/endsWith.mjs +1 -0
- package/plugins/filters/condition/equal.js +1 -0
- package/plugins/filters/condition/equal.mjs +1 -0
- package/plugins/filters/condition/greaterThan.js +1 -0
- package/plugins/filters/condition/greaterThan.mjs +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
- package/plugins/filters/condition/lessThan.js +1 -0
- package/plugins/filters/condition/lessThan.mjs +1 -0
- package/plugins/filters/condition/lessThanOrEqual.js +1 -0
- package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
- package/plugins/filters/conditionCollection.js +1 -0
- package/plugins/filters/conditionCollection.mjs +1 -0
- package/plugins/filters/filters.js +68 -42
- package/plugins/filters/filters.mjs +67 -41
- package/plugins/filters/ui/multipleSelect.js +1 -0
- package/plugins/filters/ui/multipleSelect.mjs +1 -0
- package/plugins/formulas/formulas.js +191 -168
- package/plugins/formulas/formulas.mjs +191 -168
- package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
- package/plugins/formulas/indexSyncer/index.js +225 -0
- package/plugins/formulas/indexSyncer/index.mjs +219 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
- package/plugins/manualColumnResize/manualColumnResize.js +36 -5
- package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
- package/plugins/manualRowMove/manualRowMove.js +31 -12
- package/plugins/manualRowMove/manualRowMove.mjs +32 -13
- package/plugins/manualRowResize/manualRowResize.js +40 -9
- package/plugins/manualRowResize/manualRowResize.mjs +40 -9
- package/plugins/mergeCells/calculations/autofill.js +1 -0
- package/plugins/mergeCells/calculations/autofill.mjs +1 -0
- package/plugins/mergeCells/cellsCollection.js +1 -0
- package/plugins/mergeCells/cellsCollection.mjs +1 -0
- package/plugins/mergeCells/mergeCells.js +6 -2
- package/plugins/mergeCells/mergeCells.mjs +6 -2
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/multiColumnSorting/rootComparator.js +1 -0
- package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
- package/plugins/nestedHeaders/nestedHeaders.js +129 -6
- package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
- package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
- package/plugins/nestedHeaders/stateManager/index.js +40 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
- package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
- package/plugins/nestedRows/data/dataManager.js +1 -0
- package/plugins/nestedRows/data/dataManager.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +53 -7
- package/plugins/nestedRows/nestedRows.mjs +53 -7
- package/plugins/nestedRows/ui/collapsing.js +1 -0
- package/plugins/nestedRows/ui/collapsing.mjs +1 -0
- package/plugins/nestedRows/utils/rowMoveController.js +1 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/registry.js +4 -1
- package/plugins/registry.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +1 -1
- package/plugins/undoRedo/undoRedo.mjs +1 -1
- package/renderers/baseRenderer/baseRenderer.js +0 -3
- package/renderers/baseRenderer/baseRenderer.mjs +0 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +120 -98
- package/selection/highlight/highlight.mjs +118 -96
- package/selection/highlight/visualSelection.js +30 -17
- package/selection/highlight/visualSelection.mjs +30 -17
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +246 -153
- package/selection/selection.mjs +247 -154
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -35
- package/selection/utils.mjs +13 -35
- package/settings.d.ts +2 -1
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +53 -0
- package/shortcutContexts/commands/index.mjs +49 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +252 -0
- package/shortcutContexts/grid.mjs +248 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/context.js +1 -0
- package/shortcuts/context.mjs +1 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +21 -5
- package/shortcuts/utils.mjs +20 -4
- package/tableView.js +112 -82
- package/tableView.mjs +112 -82
- package/translations/changesObservable/observable.js +41 -46
- package/translations/changesObservable/observable.mjs +36 -41
- package/translations/changesObservable/observer.js +1 -1
- package/translations/indexMapper.d.ts +0 -2
- package/translations/indexMapper.js +38 -64
- package/translations/indexMapper.mjs +39 -64
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/indexesSequence.js +1 -0
- package/translations/maps/utils/indexesSequence.mjs +1 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/tree.js +16 -18
- package/utils/dataStructures/tree.mjs +16 -18
- package/utils/dataStructures/uniqueMap.js +1 -0
- package/utils/dataStructures/uniqueMap.mjs +1 -0
- package/utils/dataStructures/uniqueSet.js +1 -0
- package/utils/dataStructures/uniqueSet.mjs +1 -0
- package/utils/ghostTable.js +1 -0
- package/utils/ghostTable.mjs +1 -0
- package/utils/parseTable.js +5 -1
- package/utils/parseTable.mjs +5 -1
- package/utils/staticRegister.js +1 -0
- package/utils/staticRegister.mjs +1 -0
- package/focusManager.d.ts +0 -12
- package/focusManager.js +0 -275
- package/focusManager.mjs +0 -270
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
|
+
require("core-js/modules/es.array.iterator.js");
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
6
|
+
require("core-js/modules/es.string.iterator.js");
|
7
|
+
require("core-js/modules/es.weak-map.js");
|
8
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
10
|
+
require("core-js/modules/es.symbol.js");
|
11
|
+
require("core-js/modules/es.symbol.description.js");
|
12
|
+
require("core-js/modules/es.symbol.iterator.js");
|
13
|
+
exports.__esModule = true;
|
14
|
+
exports.default = addEditCommentItem;
|
15
|
+
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
18
|
+
/**
|
19
|
+
* @param {Comments} plugin The Comments plugin instance.
|
20
|
+
* @returns {object}
|
21
|
+
*/
|
22
|
+
function addEditCommentItem(plugin) {
|
23
|
+
return {
|
24
|
+
key: 'commentsAddEdit',
|
25
|
+
name: function name() {
|
26
|
+
var _this$getSelectedRang;
|
27
|
+
var highlight = (_this$getSelectedRang = this.getSelectedRangeLast()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;
|
28
|
+
if (highlight && highlight.isCell() && plugin.getCommentAtCell(highlight.row, highlight.col)) {
|
29
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
|
30
|
+
}
|
31
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
|
32
|
+
},
|
33
|
+
callback: function callback() {
|
34
|
+
var range = this.getSelectedRangeLast();
|
35
|
+
this.deselectCell();
|
36
|
+
plugin.setRange(range);
|
37
|
+
plugin.show();
|
38
|
+
plugin.focusEditor();
|
39
|
+
},
|
40
|
+
disabled: function disabled() {
|
41
|
+
var range = this.getSelectedRangeLast();
|
42
|
+
if (!range) {
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
if (range.highlight.isHeader()) {
|
46
|
+
return true;
|
47
|
+
}
|
48
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
49
|
+
}
|
50
|
+
};
|
51
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import * as C from "../../../i18n/constants.mjs";
|
2
|
+
/**
|
3
|
+
* @param {Comments} plugin The Comments plugin instance.
|
4
|
+
* @returns {object}
|
5
|
+
*/
|
6
|
+
export default function addEditCommentItem(plugin) {
|
7
|
+
return {
|
8
|
+
key: 'commentsAddEdit',
|
9
|
+
name: function name() {
|
10
|
+
var _this$getSelectedRang;
|
11
|
+
var highlight = (_this$getSelectedRang = this.getSelectedRangeLast()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;
|
12
|
+
if (highlight && highlight.isCell() && plugin.getCommentAtCell(highlight.row, highlight.col)) {
|
13
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
|
14
|
+
}
|
15
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
|
16
|
+
},
|
17
|
+
callback: function callback() {
|
18
|
+
var range = this.getSelectedRangeLast();
|
19
|
+
this.deselectCell();
|
20
|
+
plugin.setRange(range);
|
21
|
+
plugin.show();
|
22
|
+
plugin.focusEditor();
|
23
|
+
},
|
24
|
+
disabled: function disabled() {
|
25
|
+
var range = this.getSelectedRangeLast();
|
26
|
+
if (!range) {
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
if (range.highlight.isHeader()) {
|
30
|
+
return true;
|
31
|
+
}
|
32
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
33
|
+
}
|
34
|
+
};
|
35
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
require("core-js/modules/es.symbol.iterator.js");
|
4
|
+
require("core-js/modules/es.array.iterator.js");
|
5
|
+
require("core-js/modules/es.string.iterator.js");
|
6
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
7
|
+
require("core-js/modules/es.weak-map.js");
|
8
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
9
|
+
exports.__esModule = true;
|
10
|
+
exports.default = readOnlyCommentItem;
|
11
|
+
require("core-js/modules/es.symbol.to-primitive.js");
|
12
|
+
require("core-js/modules/es.date.to-primitive.js");
|
13
|
+
require("core-js/modules/es.symbol.js");
|
14
|
+
require("core-js/modules/es.symbol.description.js");
|
15
|
+
require("core-js/modules/es.object.to-string.js");
|
16
|
+
require("core-js/modules/es.number.constructor.js");
|
17
|
+
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
18
|
+
var _utils = require("../../contextMenu/utils");
|
19
|
+
var _comments = require("../comments");
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
21
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
22
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
23
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
24
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
25
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
26
|
+
/**
|
27
|
+
* @param {Comments} plugin The Comments plugin instance.
|
28
|
+
* @returns {object}
|
29
|
+
*/
|
30
|
+
function readOnlyCommentItem(plugin) {
|
31
|
+
return {
|
32
|
+
key: 'commentsReadOnly',
|
33
|
+
name: function name() {
|
34
|
+
var label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
|
35
|
+
var areReadOnly = (0, _utils.checkSelectionConsistency)(this.getSelectedRange(), function (row, col) {
|
36
|
+
return plugin.getCommentMeta(row, col, _comments.META_READONLY);
|
37
|
+
});
|
38
|
+
return areReadOnly ? (0, _utils.markLabelAsSelected)(label) : label;
|
39
|
+
},
|
40
|
+
callback: function callback() {
|
41
|
+
var range = this.getSelectedRangeLast();
|
42
|
+
range.forAll(function (row, column) {
|
43
|
+
if (row >= 0 && column >= 0) {
|
44
|
+
var currentState = !!plugin.getCommentMeta(row, column, _comments.META_READONLY);
|
45
|
+
plugin.updateCommentMeta(row, column, _defineProperty({}, _comments.META_READONLY, !currentState));
|
46
|
+
}
|
47
|
+
});
|
48
|
+
},
|
49
|
+
disabled: function disabled() {
|
50
|
+
var range = this.getSelectedRangeLast();
|
51
|
+
if (!range) {
|
52
|
+
return true;
|
53
|
+
}
|
54
|
+
if (range.highlight.isHeader()) {
|
55
|
+
return true;
|
56
|
+
}
|
57
|
+
if (!plugin.getCommentAtCell(range.highlight.row, range.highlight.col)) {
|
58
|
+
return true;
|
59
|
+
}
|
60
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
61
|
+
}
|
62
|
+
};
|
63
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import "core-js/modules/es.symbol.to-primitive.js";
|
2
|
+
import "core-js/modules/es.date.to-primitive.js";
|
3
|
+
import "core-js/modules/es.symbol.js";
|
4
|
+
import "core-js/modules/es.symbol.description.js";
|
5
|
+
import "core-js/modules/es.object.to-string.js";
|
6
|
+
import "core-js/modules/es.number.constructor.js";
|
7
|
+
import "core-js/modules/es.symbol.iterator.js";
|
8
|
+
import "core-js/modules/es.array.iterator.js";
|
9
|
+
import "core-js/modules/es.string.iterator.js";
|
10
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
11
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
14
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
15
|
+
import * as C from "../../../i18n/constants.mjs";
|
16
|
+
import { checkSelectionConsistency, markLabelAsSelected } from "../../contextMenu/utils.mjs";
|
17
|
+
import { META_READONLY } from "../comments.mjs";
|
18
|
+
/**
|
19
|
+
* @param {Comments} plugin The Comments plugin instance.
|
20
|
+
* @returns {object}
|
21
|
+
*/
|
22
|
+
export default function readOnlyCommentItem(plugin) {
|
23
|
+
return {
|
24
|
+
key: 'commentsReadOnly',
|
25
|
+
name: function name() {
|
26
|
+
var label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
|
27
|
+
var areReadOnly = checkSelectionConsistency(this.getSelectedRange(), function (row, col) {
|
28
|
+
return plugin.getCommentMeta(row, col, META_READONLY);
|
29
|
+
});
|
30
|
+
return areReadOnly ? markLabelAsSelected(label) : label;
|
31
|
+
},
|
32
|
+
callback: function callback() {
|
33
|
+
var range = this.getSelectedRangeLast();
|
34
|
+
range.forAll(function (row, column) {
|
35
|
+
if (row >= 0 && column >= 0) {
|
36
|
+
var currentState = !!plugin.getCommentMeta(row, column, META_READONLY);
|
37
|
+
plugin.updateCommentMeta(row, column, _defineProperty({}, META_READONLY, !currentState));
|
38
|
+
}
|
39
|
+
});
|
40
|
+
},
|
41
|
+
disabled: function disabled() {
|
42
|
+
var range = this.getSelectedRangeLast();
|
43
|
+
if (!range) {
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
if (range.highlight.isHeader()) {
|
47
|
+
return true;
|
48
|
+
}
|
49
|
+
if (!plugin.getCommentAtCell(range.highlight.row, range.highlight.col)) {
|
50
|
+
return true;
|
51
|
+
}
|
52
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
|
+
require("core-js/modules/es.array.iterator.js");
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
6
|
+
require("core-js/modules/es.string.iterator.js");
|
7
|
+
require("core-js/modules/es.weak-map.js");
|
8
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
10
|
+
require("core-js/modules/es.symbol.js");
|
11
|
+
require("core-js/modules/es.symbol.description.js");
|
12
|
+
require("core-js/modules/es.symbol.iterator.js");
|
13
|
+
exports.__esModule = true;
|
14
|
+
exports.default = removeCommentItem;
|
15
|
+
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
18
|
+
/**
|
19
|
+
* @param {Comments} plugin The Comments plugin instance.
|
20
|
+
* @returns {object}
|
21
|
+
*/
|
22
|
+
function removeCommentItem(plugin) {
|
23
|
+
return {
|
24
|
+
key: 'commentsRemove',
|
25
|
+
name: function name() {
|
26
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
|
27
|
+
},
|
28
|
+
callback: function callback() {
|
29
|
+
var range = this.getSelectedRangeLast();
|
30
|
+
range.forAll(function (row, column) {
|
31
|
+
if (row >= 0 && column >= 0) {
|
32
|
+
plugin.removeCommentAtCell(row, column, false);
|
33
|
+
}
|
34
|
+
});
|
35
|
+
this.render();
|
36
|
+
},
|
37
|
+
disabled: function disabled() {
|
38
|
+
var range = this.getSelectedRangeLast();
|
39
|
+
if (!range) {
|
40
|
+
return true;
|
41
|
+
}
|
42
|
+
if (range.highlight.isHeader()) {
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
46
|
+
}
|
47
|
+
};
|
48
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import * as C from "../../../i18n/constants.mjs";
|
2
|
+
/**
|
3
|
+
* @param {Comments} plugin The Comments plugin instance.
|
4
|
+
* @returns {object}
|
5
|
+
*/
|
6
|
+
export default function removeCommentItem(plugin) {
|
7
|
+
return {
|
8
|
+
key: 'commentsRemove',
|
9
|
+
name: function name() {
|
10
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
|
11
|
+
},
|
12
|
+
callback: function callback() {
|
13
|
+
var range = this.getSelectedRangeLast();
|
14
|
+
range.forAll(function (row, column) {
|
15
|
+
if (row >= 0 && column >= 0) {
|
16
|
+
plugin.removeCommentAtCell(row, column, false);
|
17
|
+
}
|
18
|
+
});
|
19
|
+
this.render();
|
20
|
+
},
|
21
|
+
disabled: function disabled() {
|
22
|
+
var range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.highlight.isHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
return this.countRenderedRows() === 0 || this.countRenderedCols() === 0;
|
30
|
+
}
|
31
|
+
};
|
32
|
+
}
|
@@ -60,7 +60,7 @@ export class ContextMenu extends BasePlugin {
|
|
60
60
|
|
61
61
|
constructor(hotInstance: Core);
|
62
62
|
isEnabled(): boolean;
|
63
|
-
open(
|
63
|
+
open(position: { left: number, top: number } | Event, offset?: { above?: number, below?: number, left?: number, right?: number }): void;
|
64
64
|
close(): void;
|
65
65
|
executeCommand(commandName: string, ...params: any): void;
|
66
66
|
}
|
@@ -22,10 +22,12 @@ require("core-js/modules/es.object.get-prototype-of.js");
|
|
22
22
|
var _base = require("../base");
|
23
23
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
24
24
|
var _array = require("../../helpers/array");
|
25
|
+
var _object = require("../../helpers/object");
|
25
26
|
var _commandExecutor = _interopRequireDefault(require("./commandExecutor"));
|
26
27
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
27
28
|
var _itemsFactory = _interopRequireDefault(require("./itemsFactory"));
|
28
29
|
var _menu = _interopRequireDefault(require("./menu"));
|
30
|
+
var _utils = require("./utils");
|
29
31
|
var _element = require("../../helpers/dom/element");
|
30
32
|
var _predefinedItems = require("./predefinedItems");
|
31
33
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -47,6 +49,7 @@ var PLUGIN_KEY = 'contextMenu';
|
|
47
49
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
48
50
|
var PLUGIN_PRIORITY = 70;
|
49
51
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
52
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
50
53
|
_pluginHooks.default.getSingleton().register('afterContextMenuDefaultOptions');
|
51
54
|
_pluginHooks.default.getSingleton().register('beforeContextMenuShow');
|
52
55
|
_pluginHooks.default.getSingleton().register('afterContextMenuShow');
|
@@ -168,6 +171,7 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
168
171
|
this.addHook('afterOnCellContextMenu', function (event) {
|
169
172
|
return _this2.onAfterOnCellContextMenu(event);
|
170
173
|
});
|
174
|
+
this.registerShortcuts();
|
171
175
|
_get(_getPrototypeOf(ContextMenu.prototype), "enablePlugin", this).call(this);
|
172
176
|
}
|
173
177
|
|
@@ -182,6 +186,7 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
182
186
|
value: function updatePlugin() {
|
183
187
|
this.disablePlugin();
|
184
188
|
this.enablePlugin();
|
189
|
+
this.unregisterShortcuts();
|
185
190
|
_get(_getPrototypeOf(ContextMenu.prototype), "updatePlugin", this).call(this);
|
186
191
|
}
|
187
192
|
|
@@ -199,39 +204,84 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
199
204
|
_get(_getPrototypeOf(ContextMenu.prototype), "disablePlugin", this).call(this);
|
200
205
|
}
|
201
206
|
|
207
|
+
/**
|
208
|
+
* Register shortcuts responsible for toggling context menu.
|
209
|
+
*
|
210
|
+
* @private
|
211
|
+
*/
|
212
|
+
}, {
|
213
|
+
key: "registerShortcuts",
|
214
|
+
value: function registerShortcuts() {
|
215
|
+
var _this3 = this;
|
216
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
217
|
+
keys: [['Control/Meta', 'Shift', '\\'], ['Shift', 'F10']],
|
218
|
+
callback: function callback() {
|
219
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
220
|
+
highlight = _this3$hot$getSelecte.highlight;
|
221
|
+
_this3.hot.scrollToFocusedCell();
|
222
|
+
var rect = _this3.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
|
223
|
+
var offset = (0, _utils.getDocumentOffsetByElement)(_this3.menu.container, _this3.hot.rootDocument);
|
224
|
+
_this3.open({
|
225
|
+
left: rect.left + offset.left,
|
226
|
+
top: rect.top + offset.top - 1 + rect.height
|
227
|
+
}, {
|
228
|
+
left: rect.width,
|
229
|
+
above: -rect.height
|
230
|
+
});
|
231
|
+
_this3.hot._registerTimeout(function () {
|
232
|
+
_this3.menu.selectFirstCell();
|
233
|
+
});
|
234
|
+
},
|
235
|
+
runOnlyIf: function runOnlyIf() {
|
236
|
+
return _this3.hot.getSelectedRangeLast() && !_this3.menu.isOpened();
|
237
|
+
},
|
238
|
+
group: SHORTCUTS_GROUP
|
239
|
+
});
|
240
|
+
}
|
241
|
+
|
242
|
+
/**
|
243
|
+
* Unregister shortcuts responsible for toggling context menu.
|
244
|
+
*
|
245
|
+
* @private
|
246
|
+
*/
|
247
|
+
}, {
|
248
|
+
key: "unregisterShortcuts",
|
249
|
+
value: function unregisterShortcuts() {
|
250
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
251
|
+
}
|
252
|
+
|
202
253
|
/**
|
203
254
|
* Opens menu and re-position it based on the passed coordinates.
|
204
255
|
*
|
205
|
-
* @param {Event}
|
256
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
257
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
258
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
259
|
+
* coordinates.
|
260
|
+
* @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
|
261
|
+
* the offset to the menu position.
|
262
|
+
* @fires Hooks#beforeContextMenuShow
|
263
|
+
* @fires Hooks#afterContextMenuShow
|
206
264
|
*/
|
207
265
|
}, {
|
208
266
|
key: "open",
|
209
|
-
value: function open(
|
210
|
-
|
267
|
+
value: function open(position) {
|
268
|
+
var _this$menu,
|
269
|
+
_this4 = this;
|
270
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
271
|
+
above: 0,
|
272
|
+
below: 0,
|
273
|
+
left: 0,
|
274
|
+
right: 0
|
275
|
+
};
|
276
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
211
277
|
return;
|
212
278
|
}
|
213
279
|
this.prepareMenuItems();
|
214
280
|
this.menu.open();
|
215
|
-
|
216
|
-
|
217
|
-
}
|
218
|
-
var offsetTop = 0;
|
219
|
-
var offsetLeft = 0;
|
220
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
221
|
-
var frameElement = this.hot.rootWindow.frameElement;
|
222
|
-
var _frameElement$getBoun = frameElement.getBoundingClientRect(),
|
223
|
-
top = _frameElement$getBoun.top,
|
224
|
-
left = _frameElement$getBoun.left;
|
225
|
-
offsetTop = top - (0, _element.getWindowScrollTop)(event.view);
|
226
|
-
offsetLeft = left - (0, _element.getWindowScrollLeft)(event.view);
|
227
|
-
} else {
|
228
|
-
offsetTop = -1 * (0, _element.getWindowScrollTop)(this.menu.hotMenu.rootWindow);
|
229
|
-
offsetLeft = -1 * (0, _element.getWindowScrollLeft)(this.menu.hotMenu.rootWindow);
|
230
|
-
}
|
231
|
-
this.menu.setPosition({
|
232
|
-
top: parseInt(event.pageY, 10) + offsetTop,
|
233
|
-
left: parseInt(event.pageX, 10) + offsetLeft
|
281
|
+
(0, _object.objectEach)(offset, function (value, key) {
|
282
|
+
_this4.menu.setOffset(key, value);
|
234
283
|
});
|
284
|
+
this.menu.setPosition(position);
|
235
285
|
}
|
236
286
|
|
237
287
|
/**
|
@@ -240,10 +290,8 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
240
290
|
}, {
|
241
291
|
key: "close",
|
242
292
|
value: function close() {
|
243
|
-
|
244
|
-
|
245
|
-
}
|
246
|
-
this.menu.close();
|
293
|
+
var _this$menu2;
|
294
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
|
247
295
|
this.itemsFactory = null;
|
248
296
|
}
|
249
297
|
|
@@ -300,7 +348,7 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
300
348
|
}, {
|
301
349
|
key: "prepareMenuItems",
|
302
350
|
value: function prepareMenuItems() {
|
303
|
-
var
|
351
|
+
var _this5 = this;
|
304
352
|
this.itemsFactory = new _itemsFactory.default(this.hot, ContextMenu.DEFAULT_ITEMS);
|
305
353
|
var settings = this.hot.getSettings()[PLUGIN_KEY];
|
306
354
|
var predefinedItems = {
|
@@ -314,7 +362,7 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
314
362
|
|
315
363
|
// Register all commands. Predefined and added by user or by plugins
|
316
364
|
(0, _array.arrayEach)(menuItems, function (command) {
|
317
|
-
return
|
365
|
+
return _this5.commandExecutor.registerCommand(command.key, command);
|
318
366
|
});
|
319
367
|
}
|
320
368
|
|
@@ -351,7 +399,11 @@ var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
351
399
|
return;
|
352
400
|
}
|
353
401
|
}
|
354
|
-
this.
|
402
|
+
var offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
|
403
|
+
this.open({
|
404
|
+
top: event.clientY + offset.top,
|
405
|
+
left: event.clientX + offset.left
|
406
|
+
});
|
355
407
|
}
|
356
408
|
|
357
409
|
/**
|
@@ -32,14 +32,17 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
32
32
|
import { BasePlugin } from "../base/index.mjs";
|
33
33
|
import Hooks from "../../pluginHooks.mjs";
|
34
34
|
import { arrayEach } from "../../helpers/array.mjs";
|
35
|
+
import { objectEach } from "../../helpers/object.mjs";
|
35
36
|
import CommandExecutor from "./commandExecutor.mjs";
|
36
37
|
import EventManager from "../../eventManager.mjs";
|
37
38
|
import ItemsFactory from "./itemsFactory.mjs";
|
38
39
|
import Menu from "./menu.mjs";
|
39
|
-
import {
|
40
|
+
import { getDocumentOffsetByElement } from "./utils.mjs";
|
41
|
+
import { hasClass } from "../../helpers/dom/element.mjs";
|
40
42
|
import { ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY, ALIGNMENT, SEPARATOR } from "./predefinedItems.mjs";
|
41
43
|
export var PLUGIN_KEY = 'contextMenu';
|
42
44
|
export var PLUGIN_PRIORITY = 70;
|
45
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
43
46
|
Hooks.getSingleton().register('afterContextMenuDefaultOptions');
|
44
47
|
Hooks.getSingleton().register('beforeContextMenuShow');
|
45
48
|
Hooks.getSingleton().register('afterContextMenuShow');
|
@@ -161,6 +164,7 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
161
164
|
this.addHook('afterOnCellContextMenu', function (event) {
|
162
165
|
return _this2.onAfterOnCellContextMenu(event);
|
163
166
|
});
|
167
|
+
this.registerShortcuts();
|
164
168
|
_get(_getPrototypeOf(ContextMenu.prototype), "enablePlugin", this).call(this);
|
165
169
|
}
|
166
170
|
|
@@ -175,6 +179,7 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
175
179
|
value: function updatePlugin() {
|
176
180
|
this.disablePlugin();
|
177
181
|
this.enablePlugin();
|
182
|
+
this.unregisterShortcuts();
|
178
183
|
_get(_getPrototypeOf(ContextMenu.prototype), "updatePlugin", this).call(this);
|
179
184
|
}
|
180
185
|
|
@@ -192,39 +197,84 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
192
197
|
_get(_getPrototypeOf(ContextMenu.prototype), "disablePlugin", this).call(this);
|
193
198
|
}
|
194
199
|
|
200
|
+
/**
|
201
|
+
* Register shortcuts responsible for toggling context menu.
|
202
|
+
*
|
203
|
+
* @private
|
204
|
+
*/
|
205
|
+
}, {
|
206
|
+
key: "registerShortcuts",
|
207
|
+
value: function registerShortcuts() {
|
208
|
+
var _this3 = this;
|
209
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
210
|
+
keys: [['Control/Meta', 'Shift', '\\'], ['Shift', 'F10']],
|
211
|
+
callback: function callback() {
|
212
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
213
|
+
highlight = _this3$hot$getSelecte.highlight;
|
214
|
+
_this3.hot.scrollToFocusedCell();
|
215
|
+
var rect = _this3.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
|
216
|
+
var offset = getDocumentOffsetByElement(_this3.menu.container, _this3.hot.rootDocument);
|
217
|
+
_this3.open({
|
218
|
+
left: rect.left + offset.left,
|
219
|
+
top: rect.top + offset.top - 1 + rect.height
|
220
|
+
}, {
|
221
|
+
left: rect.width,
|
222
|
+
above: -rect.height
|
223
|
+
});
|
224
|
+
_this3.hot._registerTimeout(function () {
|
225
|
+
_this3.menu.selectFirstCell();
|
226
|
+
});
|
227
|
+
},
|
228
|
+
runOnlyIf: function runOnlyIf() {
|
229
|
+
return _this3.hot.getSelectedRangeLast() && !_this3.menu.isOpened();
|
230
|
+
},
|
231
|
+
group: SHORTCUTS_GROUP
|
232
|
+
});
|
233
|
+
}
|
234
|
+
|
235
|
+
/**
|
236
|
+
* Unregister shortcuts responsible for toggling context menu.
|
237
|
+
*
|
238
|
+
* @private
|
239
|
+
*/
|
240
|
+
}, {
|
241
|
+
key: "unregisterShortcuts",
|
242
|
+
value: function unregisterShortcuts() {
|
243
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
244
|
+
}
|
245
|
+
|
195
246
|
/**
|
196
247
|
* Opens menu and re-position it based on the passed coordinates.
|
197
248
|
*
|
198
|
-
* @param {Event}
|
249
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
250
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
251
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
252
|
+
* coordinates.
|
253
|
+
* @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
|
254
|
+
* the offset to the menu position.
|
255
|
+
* @fires Hooks#beforeContextMenuShow
|
256
|
+
* @fires Hooks#afterContextMenuShow
|
199
257
|
*/
|
200
258
|
}, {
|
201
259
|
key: "open",
|
202
|
-
value: function open(
|
203
|
-
|
260
|
+
value: function open(position) {
|
261
|
+
var _this$menu,
|
262
|
+
_this4 = this;
|
263
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
264
|
+
above: 0,
|
265
|
+
below: 0,
|
266
|
+
left: 0,
|
267
|
+
right: 0
|
268
|
+
};
|
269
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
204
270
|
return;
|
205
271
|
}
|
206
272
|
this.prepareMenuItems();
|
207
273
|
this.menu.open();
|
208
|
-
|
209
|
-
|
210
|
-
}
|
211
|
-
var offsetTop = 0;
|
212
|
-
var offsetLeft = 0;
|
213
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
214
|
-
var frameElement = this.hot.rootWindow.frameElement;
|
215
|
-
var _frameElement$getBoun = frameElement.getBoundingClientRect(),
|
216
|
-
top = _frameElement$getBoun.top,
|
217
|
-
left = _frameElement$getBoun.left;
|
218
|
-
offsetTop = top - getWindowScrollTop(event.view);
|
219
|
-
offsetLeft = left - getWindowScrollLeft(event.view);
|
220
|
-
} else {
|
221
|
-
offsetTop = -1 * getWindowScrollTop(this.menu.hotMenu.rootWindow);
|
222
|
-
offsetLeft = -1 * getWindowScrollLeft(this.menu.hotMenu.rootWindow);
|
223
|
-
}
|
224
|
-
this.menu.setPosition({
|
225
|
-
top: parseInt(event.pageY, 10) + offsetTop,
|
226
|
-
left: parseInt(event.pageX, 10) + offsetLeft
|
274
|
+
objectEach(offset, function (value, key) {
|
275
|
+
_this4.menu.setOffset(key, value);
|
227
276
|
});
|
277
|
+
this.menu.setPosition(position);
|
228
278
|
}
|
229
279
|
|
230
280
|
/**
|
@@ -233,10 +283,8 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
233
283
|
}, {
|
234
284
|
key: "close",
|
235
285
|
value: function close() {
|
236
|
-
|
237
|
-
|
238
|
-
}
|
239
|
-
this.menu.close();
|
286
|
+
var _this$menu2;
|
287
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
|
240
288
|
this.itemsFactory = null;
|
241
289
|
}
|
242
290
|
|
@@ -293,7 +341,7 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
293
341
|
}, {
|
294
342
|
key: "prepareMenuItems",
|
295
343
|
value: function prepareMenuItems() {
|
296
|
-
var
|
344
|
+
var _this5 = this;
|
297
345
|
this.itemsFactory = new ItemsFactory(this.hot, ContextMenu.DEFAULT_ITEMS);
|
298
346
|
var settings = this.hot.getSettings()[PLUGIN_KEY];
|
299
347
|
var predefinedItems = {
|
@@ -307,7 +355,7 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
307
355
|
|
308
356
|
// Register all commands. Predefined and added by user or by plugins
|
309
357
|
arrayEach(menuItems, function (command) {
|
310
|
-
return
|
358
|
+
return _this5.commandExecutor.registerCommand(command.key, command);
|
311
359
|
});
|
312
360
|
}
|
313
361
|
|
@@ -344,7 +392,11 @@ export var ContextMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
344
392
|
return;
|
345
393
|
}
|
346
394
|
}
|
347
|
-
this.
|
395
|
+
var offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
|
396
|
+
this.open({
|
397
|
+
top: event.clientY + offset.top,
|
398
|
+
left: event.clientX + offset.left
|
399
|
+
});
|
348
400
|
}
|
349
401
|
|
350
402
|
/**
|