handsontable 13.1.0 → 14.0.0-next-d97b156-20231027
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/constants.js +3 -6
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
- package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
- package/3rdparty/walkontable/src/cell/coords.js +81 -13
- package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +39 -9
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +13 -12
- package/3rdparty/walkontable/src/event.mjs +12 -10
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/filter/column.js +1 -2
- package/3rdparty/walkontable/src/filter/row.js +1 -2
- package/3rdparty/walkontable/src/index.js +12 -4
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +13 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
- package/3rdparty/walkontable/src/overlay/constants.js +7 -14
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/overlays.js +1 -2
- package/3rdparty/walkontable/src/renderer/cells.js +10 -0
- package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -0
- package/3rdparty/walkontable/src/renderer/rows.js +13 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
- package/3rdparty/walkontable/src/renderer/table.js +9 -0
- package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
- package/3rdparty/walkontable/src/scroll.js +3 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +54 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +274 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +100 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +13 -4
- package/3rdparty/walkontable/src/settings.mjs +13 -4
- package/3rdparty/walkontable/src/table/bottom.js +1 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
- package/3rdparty/walkontable/src/table/master.js +3 -6
- package/3rdparty/walkontable/src/table/master.mjs +2 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table/top.js +1 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table.js +20 -80
- package/3rdparty/walkontable/src/table.mjs +20 -79
- package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
- package/3rdparty/walkontable/src/viewport.js +1 -2
- package/CHANGELOG.md +51 -0
- package/base.js +3 -4
- package/base.mjs +2 -2
- package/cellTypes/autocompleteType/autocompleteType.js +3 -5
- package/cellTypes/checkboxType/checkboxType.js +3 -5
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +5 -7
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/dropdownType/dropdownType.js +3 -5
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +5 -7
- package/cellTypes/handsontableType/handsontableType.mjs +2 -2
- package/cellTypes/index.d.ts +3 -0
- package/cellTypes/index.js +4 -0
- package/cellTypes/index.mjs +3 -1
- package/cellTypes/numericType/numericType.js +3 -5
- package/cellTypes/passwordType/passwordType.js +3 -5
- package/cellTypes/selectType/index.d.ts +1 -0
- package/cellTypes/selectType/index.js +6 -0
- package/cellTypes/selectType/index.mjs +1 -0
- package/cellTypes/selectType/selectType.d.ts +14 -0
- package/cellTypes/selectType/selectType.js +11 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/cellTypes/textType/textType.js +3 -5
- package/cellTypes/timeType/timeType.js +3 -5
- package/common.d.ts +1 -1
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +148 -0
- package/core/focusCatcher/index.mjs +144 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +10 -5
- package/core.js +327 -359
- package/core.mjs +327 -359
- package/dataMap/dataMap.js +1 -2
- package/dataMap/dataSource.js +1 -2
- package/dataMap/metaManager/metaSchema.js +65 -0
- package/dataMap/metaManager/metaSchema.mjs +65 -0
- package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
- package/dataMap/replaceData.js +5 -0
- package/dataMap/replaceData.mjs +5 -0
- package/dist/handsontable.css +94 -76
- package/dist/handsontable.full.css +94 -76
- package/dist/handsontable.full.js +21236 -14104
- package/dist/handsontable.full.min.css +8 -8
- package/dist/handsontable.full.min.js +170 -152
- package/dist/handsontable.js +22016 -15254
- package/dist/handsontable.min.css +7 -7
- package/dist/handsontable.min.js +31 -23
- package/dist/languages/all.js +47 -40
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +1 -2
- package/dist/languages/cs-CZ.js +1 -2
- package/dist/languages/de-CH.js +1 -2
- package/dist/languages/de-DE.js +1 -2
- package/dist/languages/en-US.js +15 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +1 -2
- package/dist/languages/fr-FR.js +1 -2
- package/dist/languages/it-IT.js +1 -2
- package/dist/languages/ja-JP.js +1 -2
- package/dist/languages/ko-KR.js +1 -2
- package/dist/languages/lv-LV.js +1 -2
- package/dist/languages/nb-NO.js +1 -2
- package/dist/languages/nl-NL.js +1 -2
- package/dist/languages/pl-PL.js +15 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +1 -2
- package/dist/languages/ru-RU.js +1 -2
- package/dist/languages/sr-SP.js +1 -2
- package/dist/languages/zh-CN.js +1 -2
- package/dist/languages/zh-TW.js +1 -2
- package/editorManager.js +17 -91
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
- package/editors/baseEditor/baseEditor.js +19 -13
- package/editors/baseEditor/baseEditor.mjs +16 -7
- package/editors/checkboxEditor/checkboxEditor.js +1 -2
- package/editors/dateEditor/dateEditor.js +27 -9
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/dropdownEditor/dropdownEditor.js +1 -2
- package/editors/handsontableEditor/handsontableEditor.js +14 -7
- package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
- package/editors/numericEditor/numericEditor.js +1 -2
- package/editors/passwordEditor/passwordEditor.js +1 -2
- package/editors/selectEditor/selectEditor.js +1 -2
- package/editors/textEditor/textEditor.js +20 -29
- package/editors/textEditor/textEditor.mjs +22 -30
- package/editors/timeEditor/timeEditor.js +1 -2
- package/eventManager.js +1 -2
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +81 -0
- package/helpers/a11y.mjs +39 -0
- package/helpers/dom/element.js +224 -12
- package/helpers/dom/element.mjs +216 -10
- package/helpers/dom/event.d.ts +1 -0
- package/helpers/dom/event.js +25 -0
- package/helpers/dom/event.mjs +24 -0
- 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/unicode.js +1 -2
- package/i18n/constants.js +97 -160
- package/i18n/constants.mjs +17 -1
- package/i18n/languages/ar-AR.js +3 -4
- package/i18n/languages/cs-CZ.js +3 -4
- package/i18n/languages/de-CH.js +3 -4
- package/i18n/languages/de-DE.js +3 -4
- package/i18n/languages/en-US.js +17 -5
- package/i18n/languages/en-US.mjs +14 -1
- package/i18n/languages/es-MX.js +3 -4
- package/i18n/languages/fr-FR.js +3 -4
- package/i18n/languages/it-IT.js +3 -4
- package/i18n/languages/ja-JP.js +3 -4
- package/i18n/languages/ko-KR.js +3 -4
- package/i18n/languages/lv-LV.js +3 -4
- package/i18n/languages/nb-NO.js +3 -4
- package/i18n/languages/nl-NL.js +3 -4
- package/i18n/languages/pl-PL.js +17 -5
- package/i18n/languages/pl-PL.mjs +14 -1
- package/i18n/languages/pt-BR.js +3 -4
- package/i18n/languages/ru-RU.js +3 -4
- package/i18n/languages/sr-SP.js +3 -4
- package/i18n/languages/zh-CN.js +3 -4
- package/i18n/languages/zh-TW.js +3 -4
- package/i18n/registry.js +4 -6
- package/index.js +3 -4
- package/languages/all.js +47 -40
- package/languages/ar-AR.js +1 -2
- package/languages/cs-CZ.js +1 -2
- package/languages/de-CH.js +1 -2
- package/languages/de-DE.js +1 -2
- package/languages/en-US.js +15 -3
- package/languages/en-US.mjs +14 -1
- package/languages/es-MX.js +1 -2
- package/languages/fr-FR.js +1 -2
- package/languages/index.js +47 -40
- package/languages/it-IT.js +1 -2
- package/languages/ja-JP.js +1 -2
- package/languages/ko-KR.js +1 -2
- package/languages/lv-LV.js +1 -2
- package/languages/nb-NO.js +1 -2
- package/languages/nl-NL.js +1 -2
- package/languages/pl-PL.js +15 -3
- package/languages/pl-PL.mjs +14 -1
- package/languages/pt-BR.js +1 -2
- package/languages/ru-RU.js +1 -2
- package/languages/sr-SP.js +1 -2
- package/languages/zh-CN.js +1 -2
- package/languages/zh-TW.js +1 -2
- package/mixins/hooksRefRegisterer.js +1 -2
- package/mixins/localHooks.js +1 -2
- package/package.json +119 -96
- package/pluginHooks.d.ts +42 -7
- package/pluginHooks.js +301 -65
- package/pluginHooks.mjs +300 -63
- package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
- package/plugins/autoColumnSize/autoColumnSize.js +2 -4
- package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
- package/plugins/autoRowSize/autoRowSize.js +15 -10
- package/plugins/autoRowSize/autoRowSize.mjs +13 -6
- package/plugins/autofill/autofill.js +2 -4
- package/plugins/autofill/utils.js +1 -2
- package/plugins/base/base.js +1 -2
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
- package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
- package/plugins/columnSorting/columnSorting.js +71 -6
- package/plugins/columnSorting/columnSorting.mjs +70 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
- package/plugins/columnSorting/sortFunction/date.js +1 -2
- package/plugins/columnSorting/sortFunction/default.js +1 -2
- package/plugins/columnSorting/sortFunction/numeric.js +1 -2
- package/plugins/columnSorting/sortService/engine.js +3 -6
- package/plugins/columnSorting/utils.js +3 -6
- package/plugins/columnSummary/columnSummary.js +2 -4
- package/plugins/columnSummary/endpoints.js +1 -2
- package/plugins/comments/commentEditor.js +2 -2
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +254 -197
- package/plugins/comments/comments.mjs +251 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/comments/displaySwitch.js +1 -2
- package/plugins/contextMenu/commandExecutor.js +2 -3
- package/plugins/contextMenu/commandExecutor.mjs +2 -3
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +77 -40
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
- package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
- package/plugins/contextMenu/menu/navigator.js +27 -0
- package/plugins/contextMenu/menu/navigator.mjs +23 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/shortcuts.js +114 -0
- package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/index.js +75 -0
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
- package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/redo.js +3 -4
- package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/separator.js +1 -2
- package/plugins/contextMenu/predefinedItems/undo.js +3 -4
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
- package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
- package/plugins/copyPaste/clipboardData/index.js +9 -0
- package/plugins/copyPaste/clipboardData/index.mjs +4 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
- 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 +9 -2
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +160 -167
- package/plugins/copyPaste/copyPaste.mjs +161 -166
- package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
- package/plugins/customBorders/contextMenuItem/left.js +2 -2
- package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
- package/plugins/customBorders/contextMenuItem/right.js +2 -2
- package/plugins/customBorders/contextMenuItem/top.js +2 -2
- package/plugins/customBorders/customBorders.js +27 -26
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dragToScroll/dragToScroll.js +2 -4
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +130 -44
- package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
- package/plugins/exportFile/dataProvider.js +1 -2
- package/plugins/exportFile/exportFile.js +4 -6
- package/plugins/exportFile/typeFactory.js +5 -8
- package/plugins/exportFile/types/_base.js +1 -2
- package/plugins/exportFile/types/csv.js +1 -2
- package/plugins/filters/component/_base.js +23 -8
- package/plugins/filters/component/_base.mjs +23 -8
- package/plugins/filters/component/actionBar.js +31 -29
- package/plugins/filters/component/actionBar.mjs +26 -23
- package/plugins/filters/component/condition.js +48 -61
- package/plugins/filters/component/condition.mjs +40 -52
- package/plugins/filters/component/operators.js +21 -22
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +37 -28
- package/plugins/filters/component/value.mjs +32 -22
- package/plugins/filters/condition/beginsWith.js +3 -4
- package/plugins/filters/condition/between.js +3 -4
- package/plugins/filters/condition/byValue.js +1 -2
- package/plugins/filters/condition/contains.js +3 -4
- package/plugins/filters/condition/date/after.js +3 -4
- package/plugins/filters/condition/date/before.js +3 -4
- package/plugins/filters/condition/date/today.js +3 -4
- package/plugins/filters/condition/date/tomorrow.js +3 -4
- package/plugins/filters/condition/date/yesterday.js +3 -4
- package/plugins/filters/condition/empty.js +3 -4
- package/plugins/filters/condition/endsWith.js +3 -4
- package/plugins/filters/condition/equal.js +3 -4
- package/plugins/filters/condition/false.js +1 -2
- package/plugins/filters/condition/greaterThan.js +3 -4
- package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
- package/plugins/filters/condition/lessThan.js +3 -4
- package/plugins/filters/condition/lessThanOrEqual.js +3 -4
- package/plugins/filters/condition/none.js +3 -4
- package/plugins/filters/condition/notBetween.js +3 -4
- package/plugins/filters/condition/notContains.js +3 -4
- package/plugins/filters/condition/notEmpty.js +3 -4
- package/plugins/filters/condition/notEqual.js +3 -4
- package/plugins/filters/condition/true.js +1 -2
- package/plugins/filters/conditionCollection.d.ts +3 -2
- package/plugins/filters/conditionCollection.js +1 -2
- package/plugins/filters/conditionRegisterer.js +1 -2
- package/plugins/filters/conditionUpdateObserver.js +1 -2
- package/plugins/filters/constants.js +4 -8
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/dataFilter.js +1 -2
- package/plugins/filters/filters.d.ts +3 -5
- package/plugins/filters/filters.js +108 -66
- package/plugins/filters/filters.mjs +99 -55
- package/plugins/filters/logicalOperationRegisterer.js +1 -2
- package/plugins/filters/logicalOperations/conjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
- package/plugins/filters/menu/focusController.js +123 -0
- package/plugins/filters/menu/focusController.mjs +119 -0
- package/plugins/filters/menu/focusNavigator.js +30 -0
- package/plugins/filters/menu/focusNavigator.mjs +26 -0
- package/plugins/filters/ui/_base.js +37 -15
- package/plugins/filters/ui/_base.mjs +35 -13
- package/plugins/filters/ui/input.js +43 -35
- package/plugins/filters/ui/input.mjs +42 -33
- package/plugins/filters/ui/link.js +44 -12
- package/plugins/filters/ui/link.mjs +44 -11
- package/plugins/filters/ui/multipleSelect.js +237 -133
- package/plugins/filters/ui/multipleSelect.mjs +232 -127
- package/plugins/filters/ui/radioInput.js +42 -18
- package/plugins/filters/ui/radioInput.mjs +42 -17
- package/plugins/filters/ui/select.js +152 -77
- package/plugins/filters/ui/select.mjs +148 -72
- package/plugins/formulas/engine/settings.js +2 -4
- package/plugins/formulas/formulas.js +3 -6
- package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
- package/plugins/formulas/indexSyncer/index.js +1 -2
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
- package/plugins/hiddenColumns/hiddenColumns.js +49 -6
- package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
- package/plugins/hiddenRows/hiddenRows.js +49 -6
- package/plugins/hiddenRows/hiddenRows.mjs +48 -3
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
- package/plugins/manualColumnMove/manualColumnMove.js +9 -17
- package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
- package/plugins/manualColumnMove/ui/_base.js +1 -2
- package/plugins/manualColumnMove/ui/backlight.js +1 -2
- package/plugins/manualColumnMove/ui/guideline.js +1 -2
- package/plugins/manualColumnResize/manualColumnResize.js +2 -4
- package/plugins/manualRowMove/manualRowMove.js +6 -23
- package/plugins/manualRowMove/manualRowMove.mjs +4 -19
- package/plugins/manualRowMove/ui/_base.js +1 -2
- package/plugins/manualRowMove/ui/backlight.js +1 -2
- package/plugins/manualRowMove/ui/guideline.js +1 -2
- package/plugins/manualRowResize/manualRowResize.js +2 -4
- package/plugins/mergeCells/calculations/autofill.js +1 -2
- package/plugins/mergeCells/calculations/selection.js +1 -2
- package/plugins/mergeCells/cellCoords.js +1 -2
- package/plugins/mergeCells/cellsCollection.js +1 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
- package/plugins/mergeCells/mergeCells.js +7 -20
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
- package/plugins/nestedHeaders/nestedHeaders.js +263 -36
- package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
- package/plugins/nestedRows/data/dataManager.js +1 -2
- package/plugins/nestedRows/nestedRows.js +47 -10
- package/plugins/nestedRows/nestedRows.mjs +45 -6
- package/plugins/nestedRows/ui/_base.js +1 -2
- package/plugins/nestedRows/ui/collapsing.js +1 -2
- package/plugins/nestedRows/ui/contextMenu.js +3 -4
- package/plugins/nestedRows/ui/headers.js +13 -3
- package/plugins/nestedRows/ui/headers.mjs +13 -2
- package/plugins/persistentState/persistentState.js +2 -4
- package/plugins/persistentState/storage.js +1 -2
- package/plugins/search/search.js +2 -4
- package/plugins/touchScroll/touchScroll.js +2 -4
- package/plugins/trimRows/trimRows.js +2 -4
- package/plugins/undoRedo/index.js +2 -2
- package/plugins/undoRedo/undoRedo.js +2 -4
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +18 -2
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +28 -0
- package/renderers/dateRenderer/dateRenderer.mjs +24 -0
- package/renderers/dateRenderer/index.d.ts +1 -0
- package/renderers/dateRenderer/index.js +6 -0
- package/renderers/dateRenderer/index.mjs +1 -0
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
- package/renderers/handsontableRenderer/handsontableRenderer.js +28 -0
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
- package/renderers/handsontableRenderer/index.d.ts +1 -0
- package/renderers/handsontableRenderer/index.js +6 -0
- package/renderers/handsontableRenderer/index.mjs +1 -0
- package/renderers/htmlRenderer/htmlRenderer.js +1 -2
- package/renderers/index.d.ts +9 -0
- package/renderers/numericRenderer/numericRenderer.js +1 -2
- package/renderers/passwordRenderer/passwordRenderer.js +1 -2
- package/renderers/selectRenderer/index.d.ts +1 -0
- package/renderers/selectRenderer/index.js +6 -0
- package/renderers/selectRenderer/index.mjs +1 -0
- package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
- package/renderers/selectRenderer/selectRenderer.js +26 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/renderers/textRenderer/textRenderer.js +1 -2
- package/renderers/timeRenderer/timeRenderer.js +1 -2
- package/selection/highlight/highlight.js +257 -73
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +32 -29
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +7 -1
- package/selection/mouseEventHandler.mjs +7 -1
- package/selection/range.js +9 -10
- package/selection/range.mjs +8 -8
- package/selection/selection.js +334 -154
- package/selection/selection.mjs +330 -151
- package/selection/transformation.js +233 -94
- package/selection/transformation.mjs +232 -92
- package/selection/utils.js +20 -31
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +15 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +26 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +10 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +11 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +167 -0
- package/shortcutContexts/grid.mjs +163 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.d.ts +1 -0
- package/shortcuts/context.js +23 -4
- package/shortcuts/context.mjs +23 -5
- package/shortcuts/manager.js +31 -7
- package/shortcuts/manager.mjs +32 -7
- package/shortcuts/recorder.js +30 -14
- package/shortcuts/recorder.mjs +30 -14
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +113 -16
- package/tableView.mjs +113 -15
- package/utils/dataStructures/linkedList.js +1 -2
- package/utils/dataStructures/priorityMap.js +2 -4
- package/utils/dataStructures/queue.js +1 -2
- package/utils/dataStructures/stack.js +1 -2
- package/utils/dataStructures/tree.js +3 -6
- package/utils/ghostTable.js +32 -17
- package/utils/ghostTable.mjs +31 -15
- package/utils/interval.js +1 -2
- package/utils/paginator.js +151 -0
- package/utils/paginator.mjs +147 -0
- package/utils/parseTable.js +527 -83
- package/utils/parseTable.mjs +523 -82
- package/utils/rootInstance.js +2 -4
- package/utils/samplesGenerator.js +21 -13
- package/utils/samplesGenerator.mjs +20 -11
- package/utils/staticRegister.js +1 -2
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
- package/validators/dateValidator/dateValidator.js +1 -2
- package/validators/numericValidator/numericValidator.js +1 -2
- package/validators/timeValidator/timeValidator.js +1 -2
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.js +0 -76
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/clipboardData.js +0 -18
- package/plugins/copyPaste/clipboardData.mjs +0 -14
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/plugins/copyPaste/pasteEvent.js +0 -14
- package/plugins/copyPaste/pasteEvent.mjs +0 -9
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -4,25 +4,35 @@ exports.__esModule = true;
|
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
6
|
var _element = require("../../helpers/dom/element");
|
7
|
+
var _event = require("../../helpers/dom/event");
|
7
8
|
var _object = require("../../helpers/object");
|
8
9
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
9
10
|
var _base = require("../base");
|
10
11
|
var _commentEditor = _interopRequireDefault(require("./commentEditor"));
|
11
|
-
var
|
12
|
-
var
|
13
|
-
var
|
14
|
-
|
15
|
-
|
12
|
+
var _displaySwitch2 = _interopRequireDefault(require("./displaySwitch"));
|
13
|
+
var _predefinedItems = require("../contextMenu/predefinedItems");
|
14
|
+
var _addEditComment = _interopRequireDefault(require("./contextMenuItem/addEditComment"));
|
15
|
+
var _removeComment = _interopRequireDefault(require("./contextMenuItem/removeComment"));
|
16
|
+
var _readOnlyComment = _interopRequireDefault(require("./contextMenuItem/readOnlyComment"));
|
16
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
18
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
19
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
20
|
+
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; }
|
21
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
22
|
+
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); }
|
23
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
24
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
25
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
26
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
27
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
28
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'comments';
|
29
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 60;
|
30
|
+
const META_COMMENT = exports.META_COMMENT = 'comment';
|
31
|
+
const META_COMMENT_VALUE = exports.META_COMMENT_VALUE = 'value';
|
32
|
+
const META_STYLE = exports.META_STYLE = 'style';
|
33
|
+
const META_READONLY = exports.META_READONLY = 'readOnly';
|
34
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
35
|
+
const SHORTCUTS_CONTEXT_NAME = `plugin:${PLUGIN_KEY}`;
|
26
36
|
|
27
37
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
28
38
|
/**
|
@@ -114,55 +124,107 @@ const META_READONLY = 'readOnly';
|
|
114
124
|
* ```
|
115
125
|
* :::
|
116
126
|
*/
|
127
|
+
var _editor = /*#__PURE__*/new WeakMap();
|
128
|
+
var _displaySwitch = /*#__PURE__*/new WeakMap();
|
129
|
+
var _preventEditorAutoSwitch = /*#__PURE__*/new WeakMap();
|
130
|
+
var _preventEditorHiding = /*#__PURE__*/new WeakMap();
|
131
|
+
var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
|
132
|
+
var _cellBelowCursor = /*#__PURE__*/new WeakMap();
|
133
|
+
var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
|
117
134
|
class Comments extends _base.BasePlugin {
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
135
|
+
constructor() {
|
136
|
+
super(...arguments);
|
137
|
+
/**
|
138
|
+
* Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
|
139
|
+
*
|
140
|
+
* @type {object}
|
141
|
+
*/
|
142
|
+
_defineProperty(this, "range", {});
|
143
|
+
/**
|
144
|
+
* Instance of {@link EventManager}.
|
145
|
+
*
|
146
|
+
* @protected
|
147
|
+
* @type {EventManager}
|
148
|
+
*/
|
149
|
+
_defineProperty(this, "eventManager", null);
|
126
150
|
/**
|
127
151
|
* Instance of {@link CommentEditor}.
|
128
152
|
*
|
129
153
|
* @private
|
130
154
|
* @type {CommentEditor}
|
131
155
|
*/
|
132
|
-
this
|
156
|
+
_classPrivateFieldInitSpec(this, _editor, {
|
157
|
+
writable: true,
|
158
|
+
value: null
|
159
|
+
});
|
133
160
|
/**
|
134
161
|
* Instance of {@link DisplaySwitch}.
|
135
162
|
*
|
136
163
|
* @private
|
137
164
|
* @type {DisplaySwitch}
|
138
165
|
*/
|
139
|
-
this
|
166
|
+
_classPrivateFieldInitSpec(this, _displaySwitch, {
|
167
|
+
writable: true,
|
168
|
+
value: null
|
169
|
+
});
|
140
170
|
/**
|
141
|
-
*
|
171
|
+
* Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
|
142
172
|
*
|
143
173
|
* @private
|
144
|
-
* @type {
|
174
|
+
* @type {boolean}
|
145
175
|
*/
|
146
|
-
this
|
176
|
+
_classPrivateFieldInitSpec(this, _preventEditorAutoSwitch, {
|
177
|
+
writable: true,
|
178
|
+
value: false
|
179
|
+
});
|
147
180
|
/**
|
148
|
-
*
|
181
|
+
* Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
|
182
|
+
* keyboard shortcut that insert or edits the comment.
|
149
183
|
*
|
184
|
+
* @private
|
185
|
+
* @type {boolean}
|
186
|
+
*/
|
187
|
+
_classPrivateFieldInitSpec(this, _preventEditorHiding, {
|
188
|
+
writable: true,
|
189
|
+
value: false
|
190
|
+
});
|
191
|
+
/**
|
192
|
+
* The property for holding editor dimensions for further processing.
|
193
|
+
*
|
194
|
+
* @private
|
150
195
|
* @type {object}
|
151
196
|
*/
|
152
|
-
this
|
197
|
+
_classPrivateFieldInitSpec(this, _tempEditorDimensions, {
|
198
|
+
writable: true,
|
199
|
+
value: {}
|
200
|
+
});
|
153
201
|
/**
|
154
|
-
*
|
202
|
+
* The flag that allows processing mousedown event correctly when comments editor is triggered.
|
155
203
|
*
|
156
204
|
* @private
|
157
205
|
* @type {boolean}
|
158
206
|
*/
|
159
|
-
this
|
160
|
-
|
161
|
-
|
162
|
-
|
207
|
+
_classPrivateFieldInitSpec(this, _cellBelowCursor, {
|
208
|
+
writable: true,
|
209
|
+
value: null
|
210
|
+
});
|
211
|
+
/**
|
212
|
+
* Holds the comment value before it's actually saved to the cell meta.
|
213
|
+
*
|
214
|
+
* @private
|
215
|
+
* @type {string}
|
216
|
+
*/
|
217
|
+
_classPrivateFieldInitSpec(this, _commentValueBeforeSave, {
|
218
|
+
writable: true,
|
219
|
+
value: ''
|
163
220
|
});
|
164
221
|
}
|
165
|
-
|
222
|
+
static get PLUGIN_KEY() {
|
223
|
+
return PLUGIN_KEY;
|
224
|
+
}
|
225
|
+
static get PLUGIN_PRIORITY() {
|
226
|
+
return PLUGIN_PRIORITY;
|
227
|
+
}
|
166
228
|
/**
|
167
229
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
168
230
|
* hook and if it returns `true` then the {@link Comments#enablePlugin} method is called.
|
@@ -180,22 +242,23 @@ class Comments extends _base.BasePlugin {
|
|
180
242
|
if (this.enabled) {
|
181
243
|
return;
|
182
244
|
}
|
183
|
-
if (!this
|
184
|
-
this
|
245
|
+
if (!_classPrivateFieldGet(this, _editor)) {
|
246
|
+
_classPrivateFieldSet(this, _editor, new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl()));
|
185
247
|
}
|
186
248
|
if (!this.eventManager) {
|
187
249
|
this.eventManager = new _eventManager.default(this);
|
188
250
|
}
|
189
|
-
if (!this
|
190
|
-
this
|
251
|
+
if (!_classPrivateFieldGet(this, _displaySwitch)) {
|
252
|
+
_classPrivateFieldSet(this, _displaySwitch, new _displaySwitch2.default(this.getDisplayDelaySetting()));
|
191
253
|
}
|
192
254
|
this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
|
193
255
|
this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => this.onAfterRenderer(TD, cellProperties));
|
194
|
-
this.addHook('
|
195
|
-
this.addHook('afterScrollVertically', () => this.hide());
|
256
|
+
this.addHook('afterScroll', () => this.onAfterScroll());
|
196
257
|
this.addHook('afterBeginEditing', () => this.hide());
|
197
|
-
this.
|
198
|
-
this.
|
258
|
+
this.addHook('afterDocumentKeyDown', event => this.onAfterDocumentKeyDown(event));
|
259
|
+
_classPrivateFieldGet(this, _displaySwitch).addLocalHook('hide', () => this.hide());
|
260
|
+
_classPrivateFieldGet(this, _displaySwitch).addLocalHook('show', (row, col) => this.showAtCell(row, col));
|
261
|
+
this.registerShortcuts();
|
199
262
|
this.registerListeners();
|
200
263
|
super.enablePlugin();
|
201
264
|
}
|
@@ -207,19 +270,85 @@ class Comments extends _base.BasePlugin {
|
|
207
270
|
* - [`comments`](@/api/options.md#comments)
|
208
271
|
*/
|
209
272
|
updatePlugin() {
|
210
|
-
this.
|
211
|
-
this.enablePlugin();
|
273
|
+
_classPrivateFieldGet(this, _displaySwitch).updateDelay(this.getDisplayDelaySetting());
|
212
274
|
super.updatePlugin();
|
213
|
-
this.displaySwitch.updateDelay(this.getDisplayDelaySetting());
|
214
275
|
}
|
215
276
|
|
216
277
|
/**
|
217
278
|
* Disables the plugin functionality for this Handsontable instance.
|
218
279
|
*/
|
219
280
|
disablePlugin() {
|
281
|
+
this.unregisterShortcuts();
|
220
282
|
super.disablePlugin();
|
221
283
|
}
|
222
284
|
|
285
|
+
/**
|
286
|
+
* Register shortcuts responsible for toggling context menu.
|
287
|
+
*
|
288
|
+
* @private
|
289
|
+
*/
|
290
|
+
registerShortcuts() {
|
291
|
+
const manager = this.hot.getShortcutManager();
|
292
|
+
const gridContext = manager.getContext('grid');
|
293
|
+
const pluginContext = manager.addContext(SHORTCUTS_CONTEXT_NAME);
|
294
|
+
gridContext.addShortcut({
|
295
|
+
keys: [['Control', 'Alt', 'M']],
|
296
|
+
callback: () => {
|
297
|
+
const range = this.hot.getSelectedRangeLast();
|
298
|
+
_classPrivateFieldSet(this, _preventEditorHiding, true);
|
299
|
+
this.hot.scrollToFocusedCell(() => {
|
300
|
+
this.setRange(range);
|
301
|
+
this.show();
|
302
|
+
this.focusEditor();
|
303
|
+
manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
304
|
+
this.hot._registerTimeout(() => {
|
305
|
+
_classPrivateFieldSet(this, _preventEditorHiding, false);
|
306
|
+
});
|
307
|
+
});
|
308
|
+
},
|
309
|
+
stopPropagation: true,
|
310
|
+
runOnlyIf: () => {
|
311
|
+
var _this$hot$getSelected;
|
312
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(this, _editor).isVisible();
|
313
|
+
},
|
314
|
+
group: SHORTCUTS_GROUP
|
315
|
+
});
|
316
|
+
pluginContext.addShortcut({
|
317
|
+
keys: [['Escape']],
|
318
|
+
callback: () => {
|
319
|
+
_classPrivateFieldGet(this, _editor).setValue(_classPrivateFieldGet(this, _commentValueBeforeSave));
|
320
|
+
this.hide();
|
321
|
+
manager.setActiveContextName('grid');
|
322
|
+
},
|
323
|
+
runOnlyIf: () => {
|
324
|
+
var _this$hot$getSelected2;
|
325
|
+
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(this, _editor).isVisible();
|
326
|
+
},
|
327
|
+
group: SHORTCUTS_GROUP
|
328
|
+
});
|
329
|
+
pluginContext.addShortcut({
|
330
|
+
keys: [['Control/Meta', 'Enter']],
|
331
|
+
callback: () => {
|
332
|
+
this.hide();
|
333
|
+
manager.setActiveContextName('grid');
|
334
|
+
},
|
335
|
+
runOnlyIf: () => {
|
336
|
+
var _this$hot$getSelected3;
|
337
|
+
return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(this, _editor).isVisible();
|
338
|
+
},
|
339
|
+
group: SHORTCUTS_GROUP
|
340
|
+
});
|
341
|
+
}
|
342
|
+
|
343
|
+
/**
|
344
|
+
* Unregister shortcuts responsible for toggling context menu.
|
345
|
+
*
|
346
|
+
* @private
|
347
|
+
*/
|
348
|
+
unregisterShortcuts() {
|
349
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
350
|
+
}
|
351
|
+
|
223
352
|
/**
|
224
353
|
* Registers all necessary DOM listeners.
|
225
354
|
*
|
@@ -229,12 +358,14 @@ class Comments extends _base.BasePlugin {
|
|
229
358
|
const {
|
230
359
|
rootDocument
|
231
360
|
} = this.hot;
|
361
|
+
const editorElement = this.getEditorInputElement();
|
232
362
|
this.eventManager.addEventListener(rootDocument, 'mouseover', event => this.onMouseOver(event));
|
233
363
|
this.eventManager.addEventListener(rootDocument, 'mousedown', event => this.onMouseDown(event));
|
234
364
|
this.eventManager.addEventListener(rootDocument, 'mouseup', () => this.onMouseUp());
|
235
|
-
this.eventManager.addEventListener(
|
236
|
-
this.eventManager.addEventListener(
|
237
|
-
this.eventManager.addEventListener(
|
365
|
+
this.eventManager.addEventListener(editorElement, 'focus', () => this.onEditorFocus());
|
366
|
+
this.eventManager.addEventListener(editorElement, 'blur', () => this.onEditorBlur());
|
367
|
+
this.eventManager.addEventListener(editorElement, 'mousedown', event => this.onEditorMouseDown(event));
|
368
|
+
this.eventManager.addEventListener(editorElement, 'mouseup', event => this.onEditorMouseUp(event));
|
238
369
|
}
|
239
370
|
|
240
371
|
/**
|
@@ -273,7 +404,7 @@ class Comments extends _base.BasePlugin {
|
|
273
404
|
* @returns {boolean}
|
274
405
|
*/
|
275
406
|
targetIsCommentTextArea(event) {
|
276
|
-
return this.
|
407
|
+
return this.getEditorInputElement() === event.target;
|
277
408
|
}
|
278
409
|
|
279
410
|
/**
|
@@ -285,7 +416,7 @@ class Comments extends _base.BasePlugin {
|
|
285
416
|
if (!this.range.from) {
|
286
417
|
throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
|
287
418
|
}
|
288
|
-
const editorValue = this.
|
419
|
+
const editorValue = _classPrivateFieldGet(this, _editor).getValue();
|
289
420
|
let comment = '';
|
290
421
|
if (value !== null && value !== void 0) {
|
291
422
|
comment = value;
|
@@ -374,6 +505,7 @@ class Comments extends _base.BasePlugin {
|
|
374
505
|
* @returns {boolean} Returns `true` if comment editor was shown.
|
375
506
|
*/
|
376
507
|
show() {
|
508
|
+
var _ref;
|
377
509
|
if (!this.range.from) {
|
378
510
|
throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
|
379
511
|
}
|
@@ -387,8 +519,9 @@ class Comments extends _base.BasePlugin {
|
|
387
519
|
return false;
|
388
520
|
}
|
389
521
|
const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
|
390
|
-
this.
|
391
|
-
this.
|
522
|
+
_classPrivateFieldGet(this, _displaySwitch).cancelHiding();
|
523
|
+
_classPrivateFieldGet(this, _editor).setValue((_ref = meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null) !== null && _ref !== void 0 ? _ref : '');
|
524
|
+
_classPrivateFieldGet(this, _editor).show();
|
392
525
|
this.refreshEditor(true);
|
393
526
|
return true;
|
394
527
|
}
|
@@ -411,7 +544,7 @@ class Comments extends _base.BasePlugin {
|
|
411
544
|
* Hides the comment editor.
|
412
545
|
*/
|
413
546
|
hide() {
|
414
|
-
this.
|
547
|
+
_classPrivateFieldGet(this, _editor).hide();
|
415
548
|
}
|
416
549
|
|
417
550
|
/**
|
@@ -422,7 +555,7 @@ class Comments extends _base.BasePlugin {
|
|
422
555
|
refreshEditor() {
|
423
556
|
var _renderableRow, _renderableColumn;
|
424
557
|
let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
425
|
-
if (!force && (!this.range.from || !this.
|
558
|
+
if (!force && (!this.range.from || !_classPrivateFieldGet(this, _editor).isVisible())) {
|
426
559
|
return;
|
427
560
|
}
|
428
561
|
const {
|
@@ -440,7 +573,7 @@ class Comments extends _base.BasePlugin {
|
|
440
573
|
|
441
574
|
// Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
|
442
575
|
// previous position
|
443
|
-
this.
|
576
|
+
_classPrivateFieldGet(this, _editor).setPosition(0, 0);
|
444
577
|
if (renderableRow === null) {
|
445
578
|
renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
|
446
579
|
}
|
@@ -468,9 +601,9 @@ class Comments extends _base.BasePlugin {
|
|
468
601
|
}, true);
|
469
602
|
const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
|
470
603
|
if (commentStyle) {
|
471
|
-
this.
|
604
|
+
_classPrivateFieldGet(this, _editor).setSize(commentStyle.width, commentStyle.height);
|
472
605
|
} else {
|
473
|
-
this.
|
606
|
+
_classPrivateFieldGet(this, _editor).resetSize();
|
474
607
|
}
|
475
608
|
const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
|
476
609
|
const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
|
@@ -483,7 +616,7 @@ class Comments extends _base.BasePlugin {
|
|
483
616
|
const {
|
484
617
|
width: editorWidth,
|
485
618
|
height: editorHeight
|
486
|
-
} = this.
|
619
|
+
} = _classPrivateFieldGet(this, _editor).getSize();
|
487
620
|
const {
|
488
621
|
innerWidth,
|
489
622
|
innerHeight
|
@@ -504,28 +637,15 @@ class Comments extends _base.BasePlugin {
|
|
504
637
|
if (top + editorHeight > innerHeight) {
|
505
638
|
y -= editorHeight - cellHeight + 1;
|
506
639
|
}
|
507
|
-
this.
|
508
|
-
this.
|
640
|
+
_classPrivateFieldGet(this, _editor).setPosition(x, y);
|
641
|
+
_classPrivateFieldGet(this, _editor).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
|
509
642
|
}
|
510
643
|
|
511
644
|
/**
|
512
|
-
*
|
513
|
-
*
|
514
|
-
* @private
|
515
|
-
* @returns {boolean}
|
645
|
+
* Focuses the comments editor element.
|
516
646
|
*/
|
517
|
-
|
518
|
-
|
519
|
-
if (!selected) {
|
520
|
-
return false;
|
521
|
-
}
|
522
|
-
let hasComment = false;
|
523
|
-
const cell = selected.getTopStartCorner(); // IN EXCEL THERE IS COMMENT ONLY FOR TOP LEFT CELL IN SELECTION
|
524
|
-
|
525
|
-
if (this.getCommentMeta(cell.row, cell.col, META_COMMENT_VALUE)) {
|
526
|
-
hasComment = true;
|
527
|
-
}
|
528
|
-
return hasComment;
|
647
|
+
focusEditor() {
|
648
|
+
_classPrivateFieldGet(this, _editor).focus();
|
529
649
|
}
|
530
650
|
|
531
651
|
/**
|
@@ -573,7 +693,7 @@ class Comments extends _base.BasePlugin {
|
|
573
693
|
if (!this.hot.view || !this.hot.view._wt) {
|
574
694
|
return;
|
575
695
|
}
|
576
|
-
if (!this
|
696
|
+
if (!_classPrivateFieldGet(this, _preventEditorAutoSwitch) && !this.targetIsCommentTextArea(event)) {
|
577
697
|
const eventCell = (0, _element.closest)(event.target, 'TD', 'TBODY');
|
578
698
|
let coordinates = null;
|
579
699
|
if (eventCell) {
|
@@ -592,19 +712,18 @@ class Comments extends _base.BasePlugin {
|
|
592
712
|
* @param {MouseEvent} event The `mouseover` event.
|
593
713
|
*/
|
594
714
|
onMouseOver(event) {
|
595
|
-
const priv = privatePool.get(this);
|
596
715
|
const {
|
597
716
|
rootDocument
|
598
717
|
} = this.hot;
|
599
|
-
if (this
|
718
|
+
if (_classPrivateFieldGet(this, _preventEditorAutoSwitch) || _classPrivateFieldGet(this, _editor).isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || _classPrivateFieldGet(this, _cellBelowCursor) === event.target || !_classPrivateFieldGet(this, _editor)) {
|
600
719
|
return;
|
601
720
|
}
|
602
|
-
|
721
|
+
_classPrivateFieldSet(this, _cellBelowCursor, rootDocument.elementFromPoint(event.clientX, event.clientY));
|
603
722
|
if (this.targetIsCellWithComment(event)) {
|
604
723
|
const range = this.hot._createCellRange(this.hot.getCoords(event.target));
|
605
|
-
this.
|
724
|
+
_classPrivateFieldGet(this, _displaySwitch).show(range);
|
606
725
|
} else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
|
607
|
-
this.
|
726
|
+
_classPrivateFieldGet(this, _displaySwitch).hide();
|
608
727
|
}
|
609
728
|
}
|
610
729
|
|
@@ -614,7 +733,7 @@ class Comments extends _base.BasePlugin {
|
|
614
733
|
* @private
|
615
734
|
*/
|
616
735
|
onMouseUp() {
|
617
|
-
this
|
736
|
+
_classPrivateFieldSet(this, _preventEditorAutoSwitch, false);
|
618
737
|
}
|
619
738
|
|
620
739
|
/**
|
@@ -631,14 +750,29 @@ class Comments extends _base.BasePlugin {
|
|
631
750
|
}
|
632
751
|
|
633
752
|
/**
|
634
|
-
*
|
753
|
+
* Hook observer the "blur" event from the comments editor element. The hook clears the
|
754
|
+
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
635
755
|
*
|
636
756
|
* @private
|
637
757
|
*/
|
638
758
|
onEditorBlur() {
|
759
|
+
_classPrivateFieldSet(this, _commentValueBeforeSave, '');
|
760
|
+
this.hot.getShortcutManager().setActiveContextName('grid');
|
639
761
|
this.setComment();
|
640
762
|
}
|
641
763
|
|
764
|
+
/**
|
765
|
+
* Hook observer the "focus" event from the comments editor element. The hook takes the control of
|
766
|
+
* the keyboard shortcuts by switching the context to plugins one.
|
767
|
+
*
|
768
|
+
* @private
|
769
|
+
*/
|
770
|
+
onEditorFocus() {
|
771
|
+
_classPrivateFieldSet(this, _commentValueBeforeSave, this.getComment());
|
772
|
+
this.hot.listen();
|
773
|
+
this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
774
|
+
}
|
775
|
+
|
642
776
|
/**
|
643
777
|
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
644
778
|
*
|
@@ -646,11 +780,10 @@ class Comments extends _base.BasePlugin {
|
|
646
780
|
* @param {MouseEvent} event The `mousedown` event.
|
647
781
|
*/
|
648
782
|
onEditorMouseDown(event) {
|
649
|
-
|
650
|
-
priv.tempEditorDimensions = {
|
783
|
+
_classPrivateFieldSet(this, _tempEditorDimensions, {
|
651
784
|
width: (0, _element.outerWidth)(event.target),
|
652
785
|
height: (0, _element.outerHeight)(event.target)
|
653
|
-
};
|
786
|
+
});
|
654
787
|
}
|
655
788
|
|
656
789
|
/**
|
@@ -660,10 +793,9 @@ class Comments extends _base.BasePlugin {
|
|
660
793
|
* @param {MouseEvent} event The `mouseup` event.
|
661
794
|
*/
|
662
795
|
onEditorMouseUp(event) {
|
663
|
-
const priv = privatePool.get(this);
|
664
796
|
const currentWidth = (0, _element.outerWidth)(event.target);
|
665
797
|
const currentHeight = (0, _element.outerHeight)(event.target);
|
666
|
-
if (currentWidth !==
|
798
|
+
if (currentWidth !== _classPrivateFieldGet(this, _tempEditorDimensions).width + 1 || currentHeight !== _classPrivateFieldGet(this, _tempEditorDimensions).height + 2) {
|
667
799
|
this.updateCommentMeta(this.range.from.row, this.range.from.col, {
|
668
800
|
[META_STYLE]: {
|
669
801
|
width: currentWidth,
|
@@ -674,121 +806,36 @@ class Comments extends _base.BasePlugin {
|
|
674
806
|
}
|
675
807
|
|
676
808
|
/**
|
677
|
-
*
|
809
|
+
* Observes the pressed keys and if there is already opened the comment editor prevents open
|
810
|
+
* the table editor into the fast edit mode.
|
678
811
|
*
|
679
|
-
* @
|
680
|
-
*/
|
681
|
-
onContextMenuAddComment() {
|
682
|
-
const coords = this.hot.getSelectedRangeLast();
|
683
|
-
this.preventEditorAutoSwitch = true;
|
684
|
-
this.displaySwitch.cancelHiding();
|
685
|
-
this.setRange({
|
686
|
-
from: coords.highlight
|
687
|
-
});
|
688
|
-
this.show();
|
689
|
-
this.hot.deselectCell();
|
690
|
-
this.editor.focus();
|
691
|
-
}
|
692
|
-
|
693
|
-
/**
|
694
|
-
* Context Menu's "remove comment" callback.
|
695
|
-
*
|
696
|
-
* @private
|
812
|
+
* @param {Event} event The keydown event.
|
697
813
|
*/
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
if (row >= 0 && column >= 0) {
|
703
|
-
this.removeCommentAtCell(row, column, false);
|
704
|
-
}
|
705
|
-
});
|
706
|
-
this.hot.render();
|
814
|
+
onAfterDocumentKeyDown(event) {
|
815
|
+
if (_classPrivateFieldGet(this, _editor).isVisible()) {
|
816
|
+
(0, _event.stopImmediatePropagation)(event);
|
817
|
+
}
|
707
818
|
}
|
708
819
|
|
709
820
|
/**
|
710
|
-
*
|
711
|
-
*
|
712
|
-
* @private
|
821
|
+
* Observes the changes in the scroll position if triggered it hides the comment editor.
|
713
822
|
*/
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
if (row >= 0 && column >= 0) {
|
719
|
-
const currentState = !!this.getCommentMeta(row, column, META_READONLY);
|
720
|
-
this.updateCommentMeta(row, column, {
|
721
|
-
[META_READONLY]: !currentState
|
722
|
-
});
|
723
|
-
}
|
724
|
-
});
|
823
|
+
onAfterScroll() {
|
824
|
+
if (!_classPrivateFieldGet(this, _preventEditorHiding)) {
|
825
|
+
this.hide();
|
826
|
+
}
|
725
827
|
}
|
726
828
|
|
727
829
|
/**
|
728
830
|
* Add Comments plugin options to the Context Menu.
|
729
831
|
*
|
730
832
|
* @private
|
731
|
-
* @param {object}
|
732
|
-
*/
|
733
|
-
addToContextMenu(
|
734
|
-
|
735
|
-
|
736
|
-
};
|
737
|
-
defaultOptions.items.push({
|
738
|
-
name: '---------'
|
739
|
-
}, {
|
740
|
-
key: 'commentsAddEdit',
|
741
|
-
name: () => {
|
742
|
-
if (this.checkSelectionCommentsConsistency()) {
|
743
|
-
return this.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_EDIT_COMMENT);
|
744
|
-
}
|
745
|
-
return this.hot.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ADD_COMMENT);
|
746
|
-
},
|
747
|
-
callback: () => this.onContextMenuAddComment(),
|
748
|
-
disabled: () => {
|
749
|
-
if (!isThereAnyCellRendered()) {
|
750
|
-
return true;
|
751
|
-
}
|
752
|
-
return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner());
|
753
|
-
}
|
754
|
-
}, {
|
755
|
-
key: 'commentsRemove',
|
756
|
-
name() {
|
757
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COMMENT);
|
758
|
-
},
|
759
|
-
callback: () => this.onContextMenuRemoveComment(),
|
760
|
-
disabled: () => {
|
761
|
-
if (!isThereAnyCellRendered()) {
|
762
|
-
return true;
|
763
|
-
}
|
764
|
-
return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner());
|
765
|
-
}
|
766
|
-
}, {
|
767
|
-
key: 'commentsReadOnly',
|
768
|
-
name() {
|
769
|
-
let label = this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT);
|
770
|
-
const hasProperty = (0, _utils.checkSelectionConsistency)(this.getSelectedRangeLast(), (row, col) => {
|
771
|
-
let readOnlyProperty = this.getCellMeta(row, col)[META_COMMENT];
|
772
|
-
if (readOnlyProperty) {
|
773
|
-
readOnlyProperty = readOnlyProperty[META_READONLY];
|
774
|
-
}
|
775
|
-
if (readOnlyProperty) {
|
776
|
-
return true;
|
777
|
-
}
|
778
|
-
});
|
779
|
-
if (hasProperty) {
|
780
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
781
|
-
}
|
782
|
-
return label;
|
783
|
-
},
|
784
|
-
callback: () => this.onContextMenuMakeReadOnly(),
|
785
|
-
disabled: () => {
|
786
|
-
if (!isThereAnyCellRendered()) {
|
787
|
-
return true;
|
788
|
-
}
|
789
|
-
return !(this.hot.getSelectedLast() && !this.hot.selection.isSelectedByCorner()) || !this.checkSelectionCommentsConsistency();
|
790
|
-
}
|
791
|
-
});
|
833
|
+
* @param {object} options The menu options.
|
834
|
+
*/
|
835
|
+
addToContextMenu(options) {
|
836
|
+
options.items.push({
|
837
|
+
name: _predefinedItems.SEPARATOR
|
838
|
+
}, (0, _addEditComment.default)(this), (0, _removeComment.default)(this), (0, _readOnlyComment.default)(this));
|
792
839
|
}
|
793
840
|
|
794
841
|
/**
|
@@ -804,15 +851,25 @@ class Comments extends _base.BasePlugin {
|
|
804
851
|
}
|
805
852
|
}
|
806
853
|
|
854
|
+
/**
|
855
|
+
* Gets the editors input element.
|
856
|
+
*
|
857
|
+
* @private
|
858
|
+
* @returns {HTMLTextAreaElement}
|
859
|
+
*/
|
860
|
+
getEditorInputElement() {
|
861
|
+
return _classPrivateFieldGet(this, _editor).getInputElement();
|
862
|
+
}
|
863
|
+
|
807
864
|
/**
|
808
865
|
* Destroys the plugin instance.
|
809
866
|
*/
|
810
867
|
destroy() {
|
811
|
-
if (this
|
812
|
-
this.
|
868
|
+
if (_classPrivateFieldGet(this, _editor)) {
|
869
|
+
_classPrivateFieldGet(this, _editor).destroy();
|
813
870
|
}
|
814
|
-
if (this
|
815
|
-
this.
|
871
|
+
if (_classPrivateFieldGet(this, _displaySwitch)) {
|
872
|
+
_classPrivateFieldGet(this, _displaySwitch).destroy();
|
816
873
|
}
|
817
874
|
super.destroy();
|
818
875
|
}
|