handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
- package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
- package/3rdparty/walkontable/src/cell/coords.js +13 -18
- package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
- package/3rdparty/walkontable/src/cell/range.js +42 -30
- package/3rdparty/walkontable/src/cell/range.mjs +42 -30
- package/3rdparty/walkontable/src/core/_base.js +2 -2
- package/3rdparty/walkontable/src/core/_base.mjs +2 -2
- package/3rdparty/walkontable/src/core/clone.js +1 -1
- package/3rdparty/walkontable/src/core/clone.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +72 -104
- package/3rdparty/walkontable/src/event.mjs +72 -104
- package/3rdparty/walkontable/src/filter/column.js +1 -1
- package/3rdparty/walkontable/src/filter/column.mjs +1 -1
- package/3rdparty/walkontable/src/filter/row.js +1 -1
- package/3rdparty/walkontable/src/filter/row.mjs +1 -1
- package/3rdparty/walkontable/src/index.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
- package/3rdparty/walkontable/src/overlay/top.js +12 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
- package/3rdparty/walkontable/src/overlays.js +47 -5
- package/3rdparty/walkontable/src/overlays.mjs +47 -5
- package/3rdparty/walkontable/src/renderer/_base.js +1 -1
- package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/cells.js +1 -1
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rows.js +1 -1
- package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/table.js +1 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
- package/3rdparty/walkontable/src/scroll.js +16 -18
- package/3rdparty/walkontable/src/scroll.mjs +16 -18
- package/3rdparty/walkontable/src/selection/manager.js +48 -69
- package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
- package/3rdparty/walkontable/src/selection/scanner.js +33 -42
- package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
- package/3rdparty/walkontable/src/settings.js +1 -1
- package/3rdparty/walkontable/src/settings.mjs +1 -1
- package/3rdparty/walkontable/src/table.js +1 -1
- package/3rdparty/walkontable/src/table.mjs +1 -1
- package/3rdparty/walkontable/src/utils/column.js +1 -1
- package/3rdparty/walkontable/src/utils/column.mjs +1 -1
- package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
- package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
- package/3rdparty/walkontable/src/utils/row.js +1 -1
- package/3rdparty/walkontable/src/utils/row.mjs +1 -1
- package/CHANGELOG.md +20 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/viewportScroll/index.js +4 -1
- package/core/viewportScroll/index.mjs +4 -1
- package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
- package/core.d.ts +4 -3
- package/core.js +98 -43
- package/core.mjs +98 -43
- package/dataMap/dataMap.js +1 -1
- package/dataMap/dataMap.mjs +1 -1
- package/dataMap/dataSource.js +2 -2
- package/dataMap/dataSource.mjs +2 -2
- package/dataMap/metaManager/lazyFactoryMap.js +3 -5
- package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +272 -272
- package/dataMap/metaManager/metaSchema.mjs +272 -272
- package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
- package/dataMap/replaceData.js +1 -1
- package/dataMap/replaceData.mjs +1 -1
- package/dist/handsontable.css +4 -4
- package/dist/handsontable.full.css +4 -4
- package/dist/handsontable.full.js +9814 -10020
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +292 -292
- package/dist/handsontable.js +7484 -7056
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +25 -25
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +26 -24
- package/editorManager.mjs +26 -24
- package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +49 -11
- package/editors/dateEditor/dateEditor.mjs +49 -11
- package/editors/selectEditor/selectEditor.js +20 -19
- package/editors/selectEditor/selectEditor.mjs +20 -19
- package/editors/textEditor/textEditor.js +1 -1
- package/editors/textEditor/textEditor.mjs +1 -1
- package/eventManager.js +2 -2
- package/eventManager.mjs +2 -2
- package/focusManager.js +64 -82
- package/focusManager.mjs +64 -82
- package/helpers/dom/element.js +23 -1
- package/helpers/dom/element.mjs +21 -1
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/object.js +2 -2
- package/helpers/object.mjs +2 -2
- package/i18n/languages/ar-AR.d.ts +5 -0
- package/i18n/languages/ar-AR.js +1 -1
- package/i18n/languages/cs-CZ.d.ts +5 -0
- package/i18n/languages/cs-CZ.js +1 -1
- package/i18n/languages/de-CH.js +1 -1
- package/i18n/languages/de-DE.js +1 -1
- package/i18n/languages/en-US.js +1 -1
- package/i18n/languages/es-MX.js +1 -1
- package/i18n/languages/fr-FR.js +1 -1
- package/i18n/languages/hr-HR.d.ts +5 -0
- package/i18n/languages/hr-HR.js +1 -1
- package/i18n/languages/it-IT.js +1 -1
- package/i18n/languages/ja-JP.js +1 -1
- package/i18n/languages/ko-KR.js +1 -1
- package/i18n/languages/lv-LV.js +1 -1
- package/i18n/languages/nb-NO.js +1 -1
- package/i18n/languages/nl-NL.js +1 -1
- package/i18n/languages/pl-PL.js +1 -1
- package/i18n/languages/pt-BR.js +1 -1
- package/i18n/languages/ru-RU.js +1 -1
- package/i18n/languages/sr-SP.d.ts +5 -0
- package/i18n/languages/sr-SP.js +1 -1
- package/i18n/languages/zh-CN.js +1 -1
- package/i18n/languages/zh-TW.js +1 -1
- package/i18n/registry.js +1 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/package.json +14 -10
- package/pluginHooks.d.ts +4 -3
- package/pluginHooks.js +143 -82
- package/pluginHooks.mjs +143 -82
- package/plugins/autoColumnSize/autoColumnSize.js +50 -66
- package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
- package/plugins/autoRowSize/autoRowSize.js +29 -35
- package/plugins/autoRowSize/autoRowSize.mjs +29 -35
- package/plugins/autofill/autofill.js +31 -39
- package/plugins/autofill/autofill.mjs +31 -39
- package/plugins/base/base.js +13 -18
- package/plugins/base/base.mjs +13 -18
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
- package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
- package/plugins/columnSorting/columnSorting.js +50 -46
- package/plugins/columnSorting/columnSorting.mjs +50 -46
- package/plugins/columnSorting/columnStatesManager.js +1 -1
- package/plugins/columnSorting/columnStatesManager.mjs +1 -1
- package/plugins/columnSummary/columnSummary.js +36 -40
- package/plugins/columnSummary/columnSummary.mjs +36 -40
- package/plugins/columnSummary/endpoints.js +1 -1
- package/plugins/columnSummary/endpoints.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +1 -1
- package/plugins/comments/comments.js +117 -159
- package/plugins/comments/comments.mjs +117 -159
- package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
- package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
- package/plugins/comments/contextMenuItem/removeComment.js +1 -1
- package/plugins/comments/displaySwitch.js +1 -1
- package/plugins/comments/displaySwitch.mjs +1 -1
- package/plugins/contextMenu/commandExecutor.js +1 -1
- package/plugins/contextMenu/commandExecutor.mjs +1 -1
- package/plugins/contextMenu/contextMenu.js +24 -30
- package/plugins/contextMenu/contextMenu.mjs +24 -30
- package/plugins/contextMenu/itemsFactory.js +2 -2
- package/plugins/contextMenu/itemsFactory.mjs +2 -2
- package/plugins/contextMenu/menu/cursor.js +1 -1
- package/plugins/contextMenu/menu/cursor.mjs +1 -1
- package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
- package/plugins/contextMenu/menu/menu.js +14 -22
- package/plugins/contextMenu/menu/menu.mjs +14 -22
- package/plugins/contextMenu/menu/positioner.js +41 -58
- package/plugins/contextMenu/menu/positioner.mjs +41 -58
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
- package/plugins/contextMenu/predefinedItems/index.js +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
- package/plugins/contextMenu/predefinedItems/redo.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
- package/plugins/copyPaste/copyPaste.js +120 -161
- package/plugins/copyPaste/copyPaste.mjs +120 -161
- package/plugins/copyPaste/copyableRanges.js +43 -66
- package/plugins/copyPaste/copyableRanges.mjs +43 -66
- package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
- package/plugins/customBorders/contextMenuItem/left.js +1 -1
- package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
- package/plugins/customBorders/contextMenuItem/right.js +1 -1
- package/plugins/customBorders/contextMenuItem/top.js +1 -1
- package/plugins/customBorders/customBorders.js +14 -16
- package/plugins/customBorders/customBorders.mjs +13 -15
- package/plugins/dragToScroll/dragToScroll.js +7 -7
- package/plugins/dragToScroll/dragToScroll.mjs +7 -7
- package/plugins/dropdownMenu/dropdownMenu.js +84 -110
- package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
- package/plugins/exportFile/dataProvider.js +2 -2
- package/plugins/exportFile/dataProvider.mjs +2 -2
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +1 -1
- package/plugins/exportFile/types/_base.mjs +1 -1
- package/plugins/filters/component/_base.js +1 -1
- package/plugins/filters/component/_base.mjs +1 -1
- package/plugins/filters/component/actionBar.js +11 -11
- package/plugins/filters/component/actionBar.mjs +9 -9
- package/plugins/filters/component/condition.js +15 -17
- package/plugins/filters/component/condition.mjs +14 -16
- package/plugins/filters/component/operators.js +7 -7
- package/plugins/filters/component/operators.mjs +7 -7
- package/plugins/filters/component/value.js +26 -30
- package/plugins/filters/component/value.mjs +25 -29
- package/plugins/filters/condition/beginsWith.js +1 -1
- package/plugins/filters/condition/between.js +1 -1
- package/plugins/filters/condition/contains.js +1 -1
- package/plugins/filters/condition/date/after.js +1 -1
- package/plugins/filters/condition/date/before.js +1 -1
- package/plugins/filters/condition/date/today.js +1 -1
- package/plugins/filters/condition/date/tomorrow.js +1 -1
- package/plugins/filters/condition/date/yesterday.js +1 -1
- package/plugins/filters/condition/empty.js +1 -1
- package/plugins/filters/condition/endsWith.js +1 -1
- package/plugins/filters/condition/equal.js +1 -1
- package/plugins/filters/condition/greaterThan.js +1 -1
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
- package/plugins/filters/condition/lessThan.js +1 -1
- package/plugins/filters/condition/lessThanOrEqual.js +1 -1
- package/plugins/filters/condition/none.js +1 -1
- package/plugins/filters/condition/notBetween.js +1 -1
- package/plugins/filters/condition/notContains.js +1 -1
- package/plugins/filters/condition/notEmpty.js +1 -1
- package/plugins/filters/condition/notEqual.js +1 -1
- package/plugins/filters/conditionCollection.js +1 -1
- package/plugins/filters/conditionCollection.mjs +1 -1
- package/plugins/filters/conditionUpdateObserver.js +23 -25
- package/plugins/filters/conditionUpdateObserver.mjs +23 -25
- package/plugins/filters/dataFilter.js +2 -2
- package/plugins/filters/dataFilter.mjs +2 -2
- package/plugins/filters/filters.js +84 -98
- package/plugins/filters/filters.mjs +83 -97
- package/plugins/filters/logicalOperations/conjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
- package/plugins/filters/ui/_base.js +2 -2
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/ui/input.js +13 -19
- package/plugins/filters/ui/input.mjs +13 -19
- package/plugins/filters/ui/link.js +8 -13
- package/plugins/filters/ui/link.mjs +8 -13
- package/plugins/filters/ui/multipleSelect.js +86 -113
- package/plugins/filters/ui/multipleSelect.mjs +85 -112
- package/plugins/filters/ui/radioInput.js +12 -20
- package/plugins/filters/ui/radioInput.mjs +12 -20
- package/plugins/filters/ui/select.js +51 -73
- package/plugins/filters/ui/select.mjs +49 -71
- package/plugins/formulas/formulas.js +270 -328
- package/plugins/formulas/formulas.mjs +271 -329
- package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
- package/plugins/formulas/indexSyncer/index.js +25 -48
- package/plugins/formulas/indexSyncer/index.mjs +25 -48
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
- package/plugins/hiddenColumns/hiddenColumns.js +68 -87
- package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
- package/plugins/hiddenRows/hiddenRows.js +67 -86
- package/plugins/hiddenRows/hiddenRows.mjs +67 -86
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
- package/plugins/manualColumnMove/manualColumnMove.js +133 -177
- package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
- package/plugins/manualColumnMove/ui/_base.js +1 -1
- package/plugins/manualColumnMove/ui/_base.mjs +1 -1
- package/plugins/manualColumnResize/manualColumnResize.js +169 -230
- package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
- package/plugins/manualRowMove/manualRowMove.js +106 -135
- package/plugins/manualRowMove/manualRowMove.mjs +106 -135
- package/plugins/manualRowMove/ui/_base.js +1 -1
- package/plugins/manualRowMove/ui/_base.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +150 -209
- package/plugins/manualRowResize/manualRowResize.mjs +150 -209
- package/plugins/mergeCells/calculations/autofill.js +1 -1
- package/plugins/mergeCells/calculations/autofill.mjs +1 -1
- package/plugins/mergeCells/calculations/selection.js +3 -72
- package/plugins/mergeCells/calculations/selection.mjs +3 -72
- package/plugins/mergeCells/cellCoords.js +1 -1
- package/plugins/mergeCells/cellCoords.mjs +1 -1
- package/plugins/mergeCells/cellsCollection.js +118 -2
- package/plugins/mergeCells/cellsCollection.mjs +118 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
- package/plugins/mergeCells/focusOrder.js +305 -0
- package/plugins/mergeCells/focusOrder.mjs +300 -0
- package/plugins/mergeCells/mergeCells.js +500 -398
- package/plugins/mergeCells/mergeCells.mjs +500 -398
- package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
- package/plugins/nestedHeaders/nestedHeaders.js +206 -254
- package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
- package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
- package/plugins/nestedHeaders/stateManager/index.js +30 -41
- package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +2 -2
- package/plugins/nestedRows/data/dataManager.mjs +2 -2
- package/plugins/nestedRows/nestedRows.js +154 -185
- package/plugins/nestedRows/nestedRows.mjs +155 -186
- package/plugins/nestedRows/ui/_base.js +1 -1
- package/plugins/nestedRows/ui/_base.mjs +1 -1
- package/plugins/nestedRows/ui/contextMenu.js +13 -17
- package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
- package/plugins/nestedRows/utils/rowMoveController.js +6 -6
- package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
- package/plugins/persistentState/persistentState.js +1 -1
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/persistentState/storage.js +3 -3
- package/plugins/persistentState/storage.mjs +3 -3
- package/plugins/search/search.js +8 -8
- package/plugins/search/search.mjs +8 -8
- package/plugins/touchScroll/touchScroll.js +16 -20
- package/plugins/touchScroll/touchScroll.mjs +17 -21
- package/plugins/trimRows/trimRows.js +7 -7
- package/plugins/trimRows/trimRows.mjs +7 -7
- package/plugins/undoRedo/index.js +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
- package/selection/highlight/highlight.js +16 -18
- package/selection/highlight/highlight.mjs +15 -17
- package/selection/highlight/visualSelection.js +3 -1
- package/selection/highlight/visualSelection.mjs +3 -1
- package/selection/range.js +3 -5
- package/selection/range.mjs +2 -4
- package/selection/selection.js +227 -69
- package/selection/selection.mjs +225 -67
- package/selection/transformation.js +149 -118
- package/selection/transformation.mjs +149 -118
- package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
- package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
- package/shortcutContexts/commands/editor/open.js +18 -3
- package/shortcutContexts/commands/editor/open.mjs +18 -3
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
- package/shortcutContexts/grid.js +9 -3
- package/shortcutContexts/grid.mjs +9 -3
- package/shortcuts/context.js +3 -2
- package/shortcuts/context.mjs +3 -2
- package/shortcuts/manager.js +2 -2
- package/shortcuts/manager.mjs +2 -2
- package/tableView.js +53 -79
- package/tableView.mjs +53 -79
- package/translations/changesObservable/observable.js +21 -38
- package/translations/changesObservable/observable.mjs +21 -38
- package/translations/changesObservable/observer.js +7 -12
- package/translations/changesObservable/observer.mjs +6 -11
- package/translations/indexMapper.js +1 -1
- package/translations/indexMapper.mjs +1 -1
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/mapCollections/mapCollection.js +1 -1
- package/translations/mapCollections/mapCollection.mjs +1 -1
- package/translations/maps/indexMap.js +2 -2
- package/translations/maps/indexMap.mjs +2 -2
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
- package/utils/dataStructures/linkedList.js +7 -2
- package/utils/dataStructures/linkedList.mjs +7 -2
- package/utils/dataStructures/tree.js +2 -2
- package/utils/dataStructures/tree.mjs +2 -2
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/utils/interval.js +27 -45
- package/utils/interval.mjs +27 -45
- package/utils/samplesGenerator.js +1 -1
- package/utils/samplesGenerator.mjs +1 -1
@@ -18,14 +18,11 @@ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclarati
|
|
18
18
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
19
19
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
20
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
22
22
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
23
|
-
function
|
24
|
-
function
|
25
|
-
function
|
26
|
-
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
27
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
28
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
23
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
24
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
25
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
29
26
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'comments';
|
30
27
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 60;
|
31
28
|
const META_COMMENT = exports.META_COMMENT = 'comment';
|
@@ -132,75 +129,16 @@ var _preventEditorHiding = /*#__PURE__*/new WeakMap();
|
|
132
129
|
var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
|
133
130
|
var _cellBelowCursor = /*#__PURE__*/new WeakMap();
|
134
131
|
var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
|
135
|
-
var
|
136
|
-
var _onMouseOver = /*#__PURE__*/new WeakSet();
|
137
|
-
var _onMouseUp = /*#__PURE__*/new WeakSet();
|
138
|
-
var _onAfterRenderer = /*#__PURE__*/new WeakSet();
|
139
|
-
var _onEditorBlur = /*#__PURE__*/new WeakSet();
|
140
|
-
var _onEditorFocus = /*#__PURE__*/new WeakSet();
|
141
|
-
var _onEditorMouseDown = /*#__PURE__*/new WeakSet();
|
142
|
-
var _onEditorMouseUp = /*#__PURE__*/new WeakSet();
|
143
|
-
var _onAfterDocumentKeyDown = /*#__PURE__*/new WeakSet();
|
144
|
-
var _onAfterScroll = /*#__PURE__*/new WeakSet();
|
132
|
+
var _Comments_brand = /*#__PURE__*/new WeakSet();
|
145
133
|
class Comments extends _base.BasePlugin {
|
146
134
|
constructor() {
|
147
135
|
super(...arguments);
|
148
|
-
/**
|
149
|
-
* Observes the changes in the scroll position if triggered it hides the comment editor.
|
150
|
-
*/
|
151
|
-
_classPrivateMethodInitSpec(this, _onAfterScroll);
|
152
|
-
/**
|
153
|
-
* Observes the pressed keys and if there is already opened the comment editor prevents open
|
154
|
-
* the table editor into the fast edit mode.
|
155
|
-
*
|
156
|
-
* @param {Event} event The keydown event.
|
157
|
-
*/
|
158
|
-
_classPrivateMethodInitSpec(this, _onAfterDocumentKeyDown);
|
159
|
-
/**
|
160
|
-
* `mouseup` hook. Along with `onEditorMouseDown` used to simulate the textarea resizing event.
|
161
|
-
*
|
162
|
-
* @param {MouseEvent} event The `mouseup` event.
|
163
|
-
*/
|
164
|
-
_classPrivateMethodInitSpec(this, _onEditorMouseUp);
|
165
|
-
/**
|
166
|
-
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
167
|
-
*
|
168
|
-
* @param {MouseEvent} event The `mousedown` event.
|
169
|
-
*/
|
170
|
-
_classPrivateMethodInitSpec(this, _onEditorMouseDown);
|
171
|
-
/**
|
172
|
-
* Hook observer the "focus" event from the comments editor element. The hook takes the control of
|
173
|
-
* the keyboard shortcuts by switching the context to plugins one.
|
174
|
-
*/
|
175
|
-
_classPrivateMethodInitSpec(this, _onEditorFocus);
|
176
|
-
/**
|
177
|
-
* Hook observer the "blur" event from the comments editor element. The hook clears the
|
178
|
-
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
179
|
-
*/
|
180
|
-
_classPrivateMethodInitSpec(this, _onEditorBlur);
|
181
|
-
/**
|
182
|
-
* The `afterRenderer` hook callback.
|
183
|
-
*
|
184
|
-
* @param {HTMLTableCellElement} TD The rendered `TD` element.
|
185
|
-
* @param {object} cellProperties The rendered cell's property object.
|
186
|
-
*/
|
187
|
-
_classPrivateMethodInitSpec(this, _onAfterRenderer);
|
188
|
-
/**
|
189
|
-
* `mouseup` event callback.
|
190
|
-
*/
|
191
|
-
_classPrivateMethodInitSpec(this, _onMouseUp);
|
192
|
-
/**
|
193
|
-
* `mouseover` event callback.
|
194
|
-
*
|
195
|
-
* @param {MouseEvent} event The `mouseover` event.
|
196
|
-
*/
|
197
|
-
_classPrivateMethodInitSpec(this, _onMouseOver);
|
198
136
|
/**
|
199
137
|
* `mousedown` event callback.
|
200
138
|
*
|
201
139
|
* @param {MouseEvent} event The `mousedown` event.
|
202
140
|
*/
|
203
|
-
_classPrivateMethodInitSpec(this,
|
141
|
+
_classPrivateMethodInitSpec(this, _Comments_brand);
|
204
142
|
/**
|
205
143
|
* Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
|
206
144
|
*
|
@@ -213,30 +151,21 @@ class Comments extends _base.BasePlugin {
|
|
213
151
|
* @private
|
214
152
|
* @type {CommentEditor}
|
215
153
|
*/
|
216
|
-
_classPrivateFieldInitSpec(this, _editor,
|
217
|
-
writable: true,
|
218
|
-
value: null
|
219
|
-
});
|
154
|
+
_classPrivateFieldInitSpec(this, _editor, null);
|
220
155
|
/**
|
221
156
|
* Instance of {@link DisplaySwitch}.
|
222
157
|
*
|
223
158
|
* @private
|
224
159
|
* @type {DisplaySwitch}
|
225
160
|
*/
|
226
|
-
_classPrivateFieldInitSpec(this, _displaySwitch,
|
227
|
-
writable: true,
|
228
|
-
value: null
|
229
|
-
});
|
161
|
+
_classPrivateFieldInitSpec(this, _displaySwitch, null);
|
230
162
|
/**
|
231
163
|
* Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
|
232
164
|
*
|
233
165
|
* @private
|
234
166
|
* @type {boolean}
|
235
167
|
*/
|
236
|
-
_classPrivateFieldInitSpec(this, _preventEditorAutoSwitch,
|
237
|
-
writable: true,
|
238
|
-
value: false
|
239
|
-
});
|
168
|
+
_classPrivateFieldInitSpec(this, _preventEditorAutoSwitch, false);
|
240
169
|
/**
|
241
170
|
* Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
|
242
171
|
* keyboard shortcut that insert or edits the comment.
|
@@ -244,40 +173,28 @@ class Comments extends _base.BasePlugin {
|
|
244
173
|
* @private
|
245
174
|
* @type {boolean}
|
246
175
|
*/
|
247
|
-
_classPrivateFieldInitSpec(this, _preventEditorHiding,
|
248
|
-
writable: true,
|
249
|
-
value: false
|
250
|
-
});
|
176
|
+
_classPrivateFieldInitSpec(this, _preventEditorHiding, false);
|
251
177
|
/**
|
252
178
|
* The property for holding editor dimensions for further processing.
|
253
179
|
*
|
254
180
|
* @private
|
255
181
|
* @type {object}
|
256
182
|
*/
|
257
|
-
_classPrivateFieldInitSpec(this, _tempEditorDimensions, {
|
258
|
-
writable: true,
|
259
|
-
value: {}
|
260
|
-
});
|
183
|
+
_classPrivateFieldInitSpec(this, _tempEditorDimensions, {});
|
261
184
|
/**
|
262
185
|
* The flag that allows processing mousedown event correctly when comments editor is triggered.
|
263
186
|
*
|
264
187
|
* @private
|
265
188
|
* @type {boolean}
|
266
189
|
*/
|
267
|
-
_classPrivateFieldInitSpec(this, _cellBelowCursor,
|
268
|
-
writable: true,
|
269
|
-
value: null
|
270
|
-
});
|
190
|
+
_classPrivateFieldInitSpec(this, _cellBelowCursor, null);
|
271
191
|
/**
|
272
192
|
* Holds the comment value before it's actually saved to the cell meta.
|
273
193
|
*
|
274
194
|
* @private
|
275
195
|
* @type {string}
|
276
196
|
*/
|
277
|
-
_classPrivateFieldInitSpec(this, _commentValueBeforeSave,
|
278
|
-
writable: true,
|
279
|
-
value: ''
|
280
|
-
});
|
197
|
+
_classPrivateFieldInitSpec(this, _commentValueBeforeSave, '');
|
281
198
|
}
|
282
199
|
static get PLUGIN_KEY() {
|
283
200
|
return PLUGIN_KEY;
|
@@ -302,19 +219,19 @@ class Comments extends _base.BasePlugin {
|
|
302
219
|
if (this.enabled) {
|
303
220
|
return;
|
304
221
|
}
|
305
|
-
if (!_classPrivateFieldGet(
|
306
|
-
_classPrivateFieldSet(
|
222
|
+
if (!_classPrivateFieldGet(_editor, this)) {
|
223
|
+
_classPrivateFieldSet(_editor, this, new _commentEditor.default(this.hot.rootDocument, this.hot.isRtl()));
|
307
224
|
}
|
308
|
-
if (!_classPrivateFieldGet(
|
309
|
-
_classPrivateFieldSet(
|
225
|
+
if (!_classPrivateFieldGet(_displaySwitch, this)) {
|
226
|
+
_classPrivateFieldSet(_displaySwitch, this, new _displaySwitch2.default(this.getDisplayDelaySetting()));
|
310
227
|
}
|
311
228
|
this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
|
312
|
-
this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) =>
|
313
|
-
this.addHook('afterScroll', () =>
|
229
|
+
this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => _assertClassBrand(_Comments_brand, this, _onAfterRenderer).call(this, TD, cellProperties));
|
230
|
+
this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
|
314
231
|
this.addHook('afterBeginEditing', () => this.hide());
|
315
|
-
this.addHook('afterDocumentKeyDown', event =>
|
316
|
-
_classPrivateFieldGet(
|
317
|
-
_classPrivateFieldGet(
|
232
|
+
this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
|
233
|
+
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());
|
234
|
+
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));
|
318
235
|
this.registerShortcuts();
|
319
236
|
this.registerListeners();
|
320
237
|
super.enablePlugin();
|
@@ -327,7 +244,7 @@ class Comments extends _base.BasePlugin {
|
|
327
244
|
* - [`comments`](@/api/options.md#comments)
|
328
245
|
*/
|
329
246
|
updatePlugin() {
|
330
|
-
_classPrivateFieldGet(
|
247
|
+
_classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getDisplayDelaySetting());
|
331
248
|
super.updatePlugin();
|
332
249
|
}
|
333
250
|
|
@@ -352,34 +269,34 @@ class Comments extends _base.BasePlugin {
|
|
352
269
|
keys: [['Control', 'Alt', 'M']],
|
353
270
|
callback: () => {
|
354
271
|
const range = this.hot.getSelectedRangeLast();
|
355
|
-
_classPrivateFieldSet(
|
272
|
+
_classPrivateFieldSet(_preventEditorHiding, this, true);
|
356
273
|
this.hot.scrollToFocusedCell(() => {
|
357
274
|
this.setRange(range);
|
358
275
|
this.show();
|
359
276
|
this.focusEditor();
|
360
277
|
manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
361
278
|
this.hot._registerTimeout(() => {
|
362
|
-
_classPrivateFieldSet(
|
279
|
+
_classPrivateFieldSet(_preventEditorHiding, this, false);
|
363
280
|
});
|
364
281
|
});
|
365
282
|
},
|
366
283
|
stopPropagation: true,
|
367
284
|
runOnlyIf: () => {
|
368
285
|
var _this$hot$getSelected;
|
369
|
-
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(
|
286
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(_editor, this).isVisible();
|
370
287
|
},
|
371
288
|
group: SHORTCUTS_GROUP
|
372
289
|
});
|
373
290
|
pluginContext.addShortcut({
|
374
291
|
keys: [['Escape']],
|
375
292
|
callback: () => {
|
376
|
-
_classPrivateFieldGet(
|
293
|
+
_classPrivateFieldGet(_editor, this).setValue(_classPrivateFieldGet(_commentValueBeforeSave, this));
|
377
294
|
this.hide();
|
378
295
|
manager.setActiveContextName('grid');
|
379
296
|
},
|
380
297
|
runOnlyIf: () => {
|
381
298
|
var _this$hot$getSelected2;
|
382
|
-
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(
|
299
|
+
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
|
383
300
|
},
|
384
301
|
group: SHORTCUTS_GROUP
|
385
302
|
});
|
@@ -391,7 +308,7 @@ class Comments extends _base.BasePlugin {
|
|
391
308
|
},
|
392
309
|
runOnlyIf: () => {
|
393
310
|
var _this$hot$getSelected3;
|
394
|
-
return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(
|
311
|
+
return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
|
395
312
|
},
|
396
313
|
group: SHORTCUTS_GROUP
|
397
314
|
});
|
@@ -416,13 +333,13 @@ class Comments extends _base.BasePlugin {
|
|
416
333
|
rootDocument
|
417
334
|
} = this.hot;
|
418
335
|
const editorElement = this.getEditorInputElement();
|
419
|
-
this.eventManager.addEventListener(rootDocument, 'mouseover', event =>
|
420
|
-
this.eventManager.addEventListener(rootDocument, 'mousedown', event =>
|
421
|
-
this.eventManager.addEventListener(rootDocument, 'mouseup', () =>
|
422
|
-
this.eventManager.addEventListener(editorElement, 'focus', () =>
|
423
|
-
this.eventManager.addEventListener(editorElement, 'blur', () =>
|
424
|
-
this.eventManager.addEventListener(editorElement, 'mousedown', event =>
|
425
|
-
this.eventManager.addEventListener(editorElement, 'mouseup', event =>
|
336
|
+
this.eventManager.addEventListener(rootDocument, 'mouseover', event => _assertClassBrand(_Comments_brand, this, _onMouseOver).call(this, event));
|
337
|
+
this.eventManager.addEventListener(rootDocument, 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onMouseDown).call(this, event));
|
338
|
+
this.eventManager.addEventListener(rootDocument, 'mouseup', () => _assertClassBrand(_Comments_brand, this, _onMouseUp).call(this));
|
339
|
+
this.eventManager.addEventListener(editorElement, 'focus', () => _assertClassBrand(_Comments_brand, this, _onEditorFocus).call(this));
|
340
|
+
this.eventManager.addEventListener(editorElement, 'blur', () => _assertClassBrand(_Comments_brand, this, _onEditorBlur).call(this));
|
341
|
+
this.eventManager.addEventListener(editorElement, 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onEditorMouseDown).call(this, event));
|
342
|
+
this.eventManager.addEventListener(editorElement, 'mouseup', event => _assertClassBrand(_Comments_brand, this, _onEditorMouseUp).call(this, event));
|
426
343
|
}
|
427
344
|
|
428
345
|
/**
|
@@ -473,7 +390,7 @@ class Comments extends _base.BasePlugin {
|
|
473
390
|
if (!this.range.from) {
|
474
391
|
throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
|
475
392
|
}
|
476
|
-
const editorValue = _classPrivateFieldGet(
|
393
|
+
const editorValue = _classPrivateFieldGet(_editor, this).getValue();
|
477
394
|
let comment = '';
|
478
395
|
if (value !== null && value !== undefined) {
|
479
396
|
comment = value;
|
@@ -576,9 +493,9 @@ class Comments extends _base.BasePlugin {
|
|
576
493
|
return false;
|
577
494
|
}
|
578
495
|
const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
|
579
|
-
_classPrivateFieldGet(
|
580
|
-
_classPrivateFieldGet(
|
581
|
-
_classPrivateFieldGet(
|
496
|
+
_classPrivateFieldGet(_displaySwitch, this).cancelHiding();
|
497
|
+
_classPrivateFieldGet(_editor, this).setValue((_ref = meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null) !== null && _ref !== void 0 ? _ref : '');
|
498
|
+
_classPrivateFieldGet(_editor, this).show();
|
582
499
|
this.refreshEditor(true);
|
583
500
|
return true;
|
584
501
|
}
|
@@ -601,7 +518,7 @@ class Comments extends _base.BasePlugin {
|
|
601
518
|
* Hides the comment editor.
|
602
519
|
*/
|
603
520
|
hide() {
|
604
|
-
_classPrivateFieldGet(
|
521
|
+
_classPrivateFieldGet(_editor, this).hide();
|
605
522
|
}
|
606
523
|
|
607
524
|
/**
|
@@ -612,7 +529,7 @@ class Comments extends _base.BasePlugin {
|
|
612
529
|
refreshEditor() {
|
613
530
|
var _renderableRow, _renderableColumn;
|
614
531
|
let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
615
|
-
if (!force && (!this.range.from || !_classPrivateFieldGet(
|
532
|
+
if (!force && (!this.range.from || !_classPrivateFieldGet(_editor, this).isVisible())) {
|
616
533
|
return;
|
617
534
|
}
|
618
535
|
const {
|
@@ -630,7 +547,7 @@ class Comments extends _base.BasePlugin {
|
|
630
547
|
|
631
548
|
// Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
|
632
549
|
// previous position
|
633
|
-
_classPrivateFieldGet(
|
550
|
+
_classPrivateFieldGet(_editor, this).setPosition(0, 0);
|
634
551
|
if (renderableRow === null) {
|
635
552
|
renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
|
636
553
|
}
|
@@ -658,9 +575,9 @@ class Comments extends _base.BasePlugin {
|
|
658
575
|
}, true);
|
659
576
|
const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
|
660
577
|
if (commentStyle) {
|
661
|
-
_classPrivateFieldGet(
|
578
|
+
_classPrivateFieldGet(_editor, this).setSize(commentStyle.width, commentStyle.height);
|
662
579
|
} else {
|
663
|
-
_classPrivateFieldGet(
|
580
|
+
_classPrivateFieldGet(_editor, this).resetSize();
|
664
581
|
}
|
665
582
|
const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
|
666
583
|
const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? (0, _element.outerHeight)(TD) : 0;
|
@@ -673,7 +590,7 @@ class Comments extends _base.BasePlugin {
|
|
673
590
|
const {
|
674
591
|
width: editorWidth,
|
675
592
|
height: editorHeight
|
676
|
-
} = _classPrivateFieldGet(
|
593
|
+
} = _classPrivateFieldGet(_editor, this).getSize();
|
677
594
|
const {
|
678
595
|
innerWidth,
|
679
596
|
innerHeight
|
@@ -694,15 +611,15 @@ class Comments extends _base.BasePlugin {
|
|
694
611
|
if (top + editorHeight > innerHeight) {
|
695
612
|
y -= editorHeight - cellHeight + 1;
|
696
613
|
}
|
697
|
-
_classPrivateFieldGet(
|
698
|
-
_classPrivateFieldGet(
|
614
|
+
_classPrivateFieldGet(_editor, this).setPosition(x, y);
|
615
|
+
_classPrivateFieldGet(_editor, this).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
|
699
616
|
}
|
700
617
|
|
701
618
|
/**
|
702
619
|
* Focuses the comments editor element.
|
703
620
|
*/
|
704
621
|
focusEditor() {
|
705
|
-
_classPrivateFieldGet(
|
622
|
+
_classPrivateFieldGet(_editor, this).focus();
|
706
623
|
}
|
707
624
|
|
708
625
|
/**
|
@@ -771,28 +688,28 @@ class Comments extends _base.BasePlugin {
|
|
771
688
|
* @returns {HTMLTextAreaElement}
|
772
689
|
*/
|
773
690
|
getEditorInputElement() {
|
774
|
-
return _classPrivateFieldGet(
|
691
|
+
return _classPrivateFieldGet(_editor, this).getInputElement();
|
775
692
|
}
|
776
693
|
|
777
694
|
/**
|
778
695
|
* Destroys the plugin instance.
|
779
696
|
*/
|
780
697
|
destroy() {
|
781
|
-
if (_classPrivateFieldGet(
|
782
|
-
_classPrivateFieldGet(
|
698
|
+
if (_classPrivateFieldGet(_editor, this)) {
|
699
|
+
_classPrivateFieldGet(_editor, this).destroy();
|
783
700
|
}
|
784
|
-
if (_classPrivateFieldGet(
|
785
|
-
_classPrivateFieldGet(
|
701
|
+
if (_classPrivateFieldGet(_displaySwitch, this)) {
|
702
|
+
_classPrivateFieldGet(_displaySwitch, this).destroy();
|
786
703
|
}
|
787
704
|
super.destroy();
|
788
705
|
}
|
789
706
|
}
|
790
707
|
exports.Comments = Comments;
|
791
|
-
function
|
708
|
+
function _onMouseDown(event) {
|
792
709
|
if (!this.hot.view || !this.hot.view._wt) {
|
793
710
|
return;
|
794
711
|
}
|
795
|
-
if (!_classPrivateFieldGet(
|
712
|
+
if (!_classPrivateFieldGet(_preventEditorAutoSwitch, this) && !this.targetIsCommentTextArea(event)) {
|
796
713
|
const eventCell = (0, _element.closest)(event.target, 'TD', 'TBODY');
|
797
714
|
let coordinates = null;
|
798
715
|
if (eventCell) {
|
@@ -803,49 +720,81 @@ function _onMouseDown2(event) {
|
|
803
720
|
}
|
804
721
|
}
|
805
722
|
}
|
806
|
-
|
723
|
+
/**
|
724
|
+
* `mouseover` event callback.
|
725
|
+
*
|
726
|
+
* @param {MouseEvent} event The `mouseover` event.
|
727
|
+
*/
|
728
|
+
function _onMouseOver(event) {
|
807
729
|
const {
|
808
730
|
rootDocument
|
809
731
|
} = this.hot;
|
810
|
-
if (_classPrivateFieldGet(
|
732
|
+
if (_classPrivateFieldGet(_preventEditorAutoSwitch, this) || _classPrivateFieldGet(_editor, this).isFocused() || (0, _element.hasClass)(event.target, 'wtBorder') || _classPrivateFieldGet(_cellBelowCursor, this) === event.target || !_classPrivateFieldGet(_editor, this)) {
|
811
733
|
return;
|
812
734
|
}
|
813
|
-
_classPrivateFieldSet(
|
735
|
+
_classPrivateFieldSet(_cellBelowCursor, this, rootDocument.elementFromPoint(event.clientX, event.clientY));
|
814
736
|
if (this.targetIsCellWithComment(event)) {
|
815
737
|
const range = this.hot._createCellRange(this.hot.getCoords(event.target));
|
816
|
-
_classPrivateFieldGet(
|
738
|
+
_classPrivateFieldGet(_displaySwitch, this).show(range);
|
817
739
|
} else if ((0, _element.isChildOf)(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
|
818
|
-
_classPrivateFieldGet(
|
740
|
+
_classPrivateFieldGet(_displaySwitch, this).hide();
|
819
741
|
}
|
820
742
|
}
|
821
|
-
|
822
|
-
|
743
|
+
/**
|
744
|
+
* `mouseup` event callback.
|
745
|
+
*/
|
746
|
+
function _onMouseUp() {
|
747
|
+
_classPrivateFieldSet(_preventEditorAutoSwitch, this, false);
|
823
748
|
}
|
824
|
-
|
749
|
+
/**
|
750
|
+
* The `afterRenderer` hook callback.
|
751
|
+
*
|
752
|
+
* @param {HTMLTableCellElement} TD The rendered `TD` element.
|
753
|
+
* @param {object} cellProperties The rendered cell's property object.
|
754
|
+
*/
|
755
|
+
function _onAfterRenderer(TD, cellProperties) {
|
825
756
|
if (cellProperties[META_COMMENT] && cellProperties[META_COMMENT][META_COMMENT_VALUE]) {
|
826
757
|
(0, _element.addClass)(TD, cellProperties.commentedCellClassName);
|
827
758
|
}
|
828
759
|
}
|
829
|
-
|
830
|
-
|
760
|
+
/**
|
761
|
+
* Hook observer the "blur" event from the comments editor element. The hook clears the
|
762
|
+
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
763
|
+
*/
|
764
|
+
function _onEditorBlur() {
|
765
|
+
_classPrivateFieldSet(_commentValueBeforeSave, this, '');
|
831
766
|
this.hot.getShortcutManager().setActiveContextName('grid');
|
832
767
|
this.setComment();
|
833
768
|
}
|
834
|
-
|
835
|
-
|
769
|
+
/**
|
770
|
+
* Hook observer the "focus" event from the comments editor element. The hook takes the control of
|
771
|
+
* the keyboard shortcuts by switching the context to plugins one.
|
772
|
+
*/
|
773
|
+
function _onEditorFocus() {
|
774
|
+
_classPrivateFieldSet(_commentValueBeforeSave, this, this.getComment());
|
836
775
|
this.hot.listen();
|
837
776
|
this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
838
777
|
}
|
839
|
-
|
840
|
-
|
778
|
+
/**
|
779
|
+
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
780
|
+
*
|
781
|
+
* @param {MouseEvent} event The `mousedown` event.
|
782
|
+
*/
|
783
|
+
function _onEditorMouseDown(event) {
|
784
|
+
_classPrivateFieldSet(_tempEditorDimensions, this, {
|
841
785
|
width: (0, _element.outerWidth)(event.target),
|
842
786
|
height: (0, _element.outerHeight)(event.target)
|
843
787
|
});
|
844
788
|
}
|
845
|
-
|
789
|
+
/**
|
790
|
+
* `mouseup` hook. Along with `onEditorMouseDown` used to simulate the textarea resizing event.
|
791
|
+
*
|
792
|
+
* @param {MouseEvent} event The `mouseup` event.
|
793
|
+
*/
|
794
|
+
function _onEditorMouseUp(event) {
|
846
795
|
const currentWidth = (0, _element.outerWidth)(event.target);
|
847
796
|
const currentHeight = (0, _element.outerHeight)(event.target);
|
848
|
-
if (currentWidth !== _classPrivateFieldGet(
|
797
|
+
if (currentWidth !== _classPrivateFieldGet(_tempEditorDimensions, this).width + 1 || currentHeight !== _classPrivateFieldGet(_tempEditorDimensions, this).height + 2) {
|
849
798
|
this.updateCommentMeta(this.range.from.row, this.range.from.col, {
|
850
799
|
[META_STYLE]: {
|
851
800
|
width: currentWidth,
|
@@ -854,13 +803,22 @@ function _onEditorMouseUp2(event) {
|
|
854
803
|
});
|
855
804
|
}
|
856
805
|
}
|
857
|
-
|
858
|
-
|
806
|
+
/**
|
807
|
+
* Observes the pressed keys and if there is already opened the comment editor prevents open
|
808
|
+
* the table editor into the fast edit mode.
|
809
|
+
*
|
810
|
+
* @param {Event} event The keydown event.
|
811
|
+
*/
|
812
|
+
function _onAfterDocumentKeyDown(event) {
|
813
|
+
if (_classPrivateFieldGet(_editor, this).isVisible()) {
|
859
814
|
(0, _event.stopImmediatePropagation)(event);
|
860
815
|
}
|
861
816
|
}
|
862
|
-
|
863
|
-
|
817
|
+
/**
|
818
|
+
* Observes the changes in the scroll position if triggered it hides the comment editor.
|
819
|
+
*/
|
820
|
+
function _onAfterScroll() {
|
821
|
+
if (!_classPrivateFieldGet(_preventEditorHiding, this)) {
|
864
822
|
this.hide();
|
865
823
|
}
|
866
824
|
}
|