handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410
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/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
@@ -4,14 +4,11 @@ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclarati
|
|
4
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
6
|
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; }
|
7
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
8
8
|
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); }
|
9
|
-
function
|
10
|
-
function
|
11
|
-
function
|
12
|
-
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
13
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
9
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
10
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
11
|
+
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"); }
|
15
12
|
import { addClass, closest, isChildOf, hasClass, outerWidth, outerHeight } from "../../helpers/dom/element.mjs";
|
16
13
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
17
14
|
import { deepClone, deepExtend, isObject } from "../../helpers/object.mjs";
|
@@ -128,75 +125,16 @@ var _preventEditorHiding = /*#__PURE__*/new WeakMap();
|
|
128
125
|
var _tempEditorDimensions = /*#__PURE__*/new WeakMap();
|
129
126
|
var _cellBelowCursor = /*#__PURE__*/new WeakMap();
|
130
127
|
var _commentValueBeforeSave = /*#__PURE__*/new WeakMap();
|
131
|
-
var
|
132
|
-
var _onMouseOver = /*#__PURE__*/new WeakSet();
|
133
|
-
var _onMouseUp = /*#__PURE__*/new WeakSet();
|
134
|
-
var _onAfterRenderer = /*#__PURE__*/new WeakSet();
|
135
|
-
var _onEditorBlur = /*#__PURE__*/new WeakSet();
|
136
|
-
var _onEditorFocus = /*#__PURE__*/new WeakSet();
|
137
|
-
var _onEditorMouseDown = /*#__PURE__*/new WeakSet();
|
138
|
-
var _onEditorMouseUp = /*#__PURE__*/new WeakSet();
|
139
|
-
var _onAfterDocumentKeyDown = /*#__PURE__*/new WeakSet();
|
140
|
-
var _onAfterScroll = /*#__PURE__*/new WeakSet();
|
128
|
+
var _Comments_brand = /*#__PURE__*/new WeakSet();
|
141
129
|
export class Comments extends BasePlugin {
|
142
130
|
constructor() {
|
143
131
|
super(...arguments);
|
144
|
-
/**
|
145
|
-
* Observes the changes in the scroll position if triggered it hides the comment editor.
|
146
|
-
*/
|
147
|
-
_classPrivateMethodInitSpec(this, _onAfterScroll);
|
148
|
-
/**
|
149
|
-
* Observes the pressed keys and if there is already opened the comment editor prevents open
|
150
|
-
* the table editor into the fast edit mode.
|
151
|
-
*
|
152
|
-
* @param {Event} event The keydown event.
|
153
|
-
*/
|
154
|
-
_classPrivateMethodInitSpec(this, _onAfterDocumentKeyDown);
|
155
|
-
/**
|
156
|
-
* `mouseup` hook. Along with `onEditorMouseDown` used to simulate the textarea resizing event.
|
157
|
-
*
|
158
|
-
* @param {MouseEvent} event The `mouseup` event.
|
159
|
-
*/
|
160
|
-
_classPrivateMethodInitSpec(this, _onEditorMouseUp);
|
161
|
-
/**
|
162
|
-
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
163
|
-
*
|
164
|
-
* @param {MouseEvent} event The `mousedown` event.
|
165
|
-
*/
|
166
|
-
_classPrivateMethodInitSpec(this, _onEditorMouseDown);
|
167
|
-
/**
|
168
|
-
* Hook observer the "focus" event from the comments editor element. The hook takes the control of
|
169
|
-
* the keyboard shortcuts by switching the context to plugins one.
|
170
|
-
*/
|
171
|
-
_classPrivateMethodInitSpec(this, _onEditorFocus);
|
172
|
-
/**
|
173
|
-
* Hook observer the "blur" event from the comments editor element. The hook clears the
|
174
|
-
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
175
|
-
*/
|
176
|
-
_classPrivateMethodInitSpec(this, _onEditorBlur);
|
177
|
-
/**
|
178
|
-
* The `afterRenderer` hook callback.
|
179
|
-
*
|
180
|
-
* @param {HTMLTableCellElement} TD The rendered `TD` element.
|
181
|
-
* @param {object} cellProperties The rendered cell's property object.
|
182
|
-
*/
|
183
|
-
_classPrivateMethodInitSpec(this, _onAfterRenderer);
|
184
|
-
/**
|
185
|
-
* `mouseup` event callback.
|
186
|
-
*/
|
187
|
-
_classPrivateMethodInitSpec(this, _onMouseUp);
|
188
|
-
/**
|
189
|
-
* `mouseover` event callback.
|
190
|
-
*
|
191
|
-
* @param {MouseEvent} event The `mouseover` event.
|
192
|
-
*/
|
193
|
-
_classPrivateMethodInitSpec(this, _onMouseOver);
|
194
132
|
/**
|
195
133
|
* `mousedown` event callback.
|
196
134
|
*
|
197
135
|
* @param {MouseEvent} event The `mousedown` event.
|
198
136
|
*/
|
199
|
-
_classPrivateMethodInitSpec(this,
|
137
|
+
_classPrivateMethodInitSpec(this, _Comments_brand);
|
200
138
|
/**
|
201
139
|
* Current cell range, an object with `from` property, with `row` and `col` properties (e.q. `{from: {row: 1, col: 6}}`).
|
202
140
|
*
|
@@ -209,30 +147,21 @@ export class Comments extends BasePlugin {
|
|
209
147
|
* @private
|
210
148
|
* @type {CommentEditor}
|
211
149
|
*/
|
212
|
-
_classPrivateFieldInitSpec(this, _editor,
|
213
|
-
writable: true,
|
214
|
-
value: null
|
215
|
-
});
|
150
|
+
_classPrivateFieldInitSpec(this, _editor, null);
|
216
151
|
/**
|
217
152
|
* Instance of {@link DisplaySwitch}.
|
218
153
|
*
|
219
154
|
* @private
|
220
155
|
* @type {DisplaySwitch}
|
221
156
|
*/
|
222
|
-
_classPrivateFieldInitSpec(this, _displaySwitch,
|
223
|
-
writable: true,
|
224
|
-
value: null
|
225
|
-
});
|
157
|
+
_classPrivateFieldInitSpec(this, _displaySwitch, null);
|
226
158
|
/**
|
227
159
|
* Prevents showing/hiding editor that reacts on the logic triggered by the "mouseover" events.
|
228
160
|
*
|
229
161
|
* @private
|
230
162
|
* @type {boolean}
|
231
163
|
*/
|
232
|
-
_classPrivateFieldInitSpec(this, _preventEditorAutoSwitch,
|
233
|
-
writable: true,
|
234
|
-
value: false
|
235
|
-
});
|
164
|
+
_classPrivateFieldInitSpec(this, _preventEditorAutoSwitch, false);
|
236
165
|
/**
|
237
166
|
* Prevents hiding editor when the table viewport is scrolled and that scroll is triggered by the
|
238
167
|
* keyboard shortcut that insert or edits the comment.
|
@@ -240,40 +169,28 @@ export class Comments extends BasePlugin {
|
|
240
169
|
* @private
|
241
170
|
* @type {boolean}
|
242
171
|
*/
|
243
|
-
_classPrivateFieldInitSpec(this, _preventEditorHiding,
|
244
|
-
writable: true,
|
245
|
-
value: false
|
246
|
-
});
|
172
|
+
_classPrivateFieldInitSpec(this, _preventEditorHiding, false);
|
247
173
|
/**
|
248
174
|
* The property for holding editor dimensions for further processing.
|
249
175
|
*
|
250
176
|
* @private
|
251
177
|
* @type {object}
|
252
178
|
*/
|
253
|
-
_classPrivateFieldInitSpec(this, _tempEditorDimensions, {
|
254
|
-
writable: true,
|
255
|
-
value: {}
|
256
|
-
});
|
179
|
+
_classPrivateFieldInitSpec(this, _tempEditorDimensions, {});
|
257
180
|
/**
|
258
181
|
* The flag that allows processing mousedown event correctly when comments editor is triggered.
|
259
182
|
*
|
260
183
|
* @private
|
261
184
|
* @type {boolean}
|
262
185
|
*/
|
263
|
-
_classPrivateFieldInitSpec(this, _cellBelowCursor,
|
264
|
-
writable: true,
|
265
|
-
value: null
|
266
|
-
});
|
186
|
+
_classPrivateFieldInitSpec(this, _cellBelowCursor, null);
|
267
187
|
/**
|
268
188
|
* Holds the comment value before it's actually saved to the cell meta.
|
269
189
|
*
|
270
190
|
* @private
|
271
191
|
* @type {string}
|
272
192
|
*/
|
273
|
-
_classPrivateFieldInitSpec(this, _commentValueBeforeSave,
|
274
|
-
writable: true,
|
275
|
-
value: ''
|
276
|
-
});
|
193
|
+
_classPrivateFieldInitSpec(this, _commentValueBeforeSave, '');
|
277
194
|
}
|
278
195
|
static get PLUGIN_KEY() {
|
279
196
|
return PLUGIN_KEY;
|
@@ -298,19 +215,19 @@ export class Comments extends BasePlugin {
|
|
298
215
|
if (this.enabled) {
|
299
216
|
return;
|
300
217
|
}
|
301
|
-
if (!_classPrivateFieldGet(
|
302
|
-
_classPrivateFieldSet(
|
218
|
+
if (!_classPrivateFieldGet(_editor, this)) {
|
219
|
+
_classPrivateFieldSet(_editor, this, new CommentEditor(this.hot.rootDocument, this.hot.isRtl()));
|
303
220
|
}
|
304
|
-
if (!_classPrivateFieldGet(
|
305
|
-
_classPrivateFieldSet(
|
221
|
+
if (!_classPrivateFieldGet(_displaySwitch, this)) {
|
222
|
+
_classPrivateFieldSet(_displaySwitch, this, new DisplaySwitch(this.getDisplayDelaySetting()));
|
306
223
|
}
|
307
224
|
this.addHook('afterContextMenuDefaultOptions', options => this.addToContextMenu(options));
|
308
|
-
this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) =>
|
309
|
-
this.addHook('afterScroll', () =>
|
225
|
+
this.addHook('afterRenderer', (TD, row, col, prop, value, cellProperties) => _assertClassBrand(_Comments_brand, this, _onAfterRenderer).call(this, TD, cellProperties));
|
226
|
+
this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
|
310
227
|
this.addHook('afterBeginEditing', () => this.hide());
|
311
|
-
this.addHook('afterDocumentKeyDown', event =>
|
312
|
-
_classPrivateFieldGet(
|
313
|
-
_classPrivateFieldGet(
|
228
|
+
this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
|
229
|
+
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());
|
230
|
+
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));
|
314
231
|
this.registerShortcuts();
|
315
232
|
this.registerListeners();
|
316
233
|
super.enablePlugin();
|
@@ -323,7 +240,7 @@ export class Comments extends BasePlugin {
|
|
323
240
|
* - [`comments`](@/api/options.md#comments)
|
324
241
|
*/
|
325
242
|
updatePlugin() {
|
326
|
-
_classPrivateFieldGet(
|
243
|
+
_classPrivateFieldGet(_displaySwitch, this).updateDelay(this.getDisplayDelaySetting());
|
327
244
|
super.updatePlugin();
|
328
245
|
}
|
329
246
|
|
@@ -348,34 +265,34 @@ export class Comments extends BasePlugin {
|
|
348
265
|
keys: [['Control', 'Alt', 'M']],
|
349
266
|
callback: () => {
|
350
267
|
const range = this.hot.getSelectedRangeLast();
|
351
|
-
_classPrivateFieldSet(
|
268
|
+
_classPrivateFieldSet(_preventEditorHiding, this, true);
|
352
269
|
this.hot.scrollToFocusedCell(() => {
|
353
270
|
this.setRange(range);
|
354
271
|
this.show();
|
355
272
|
this.focusEditor();
|
356
273
|
manager.setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
357
274
|
this.hot._registerTimeout(() => {
|
358
|
-
_classPrivateFieldSet(
|
275
|
+
_classPrivateFieldSet(_preventEditorHiding, this, false);
|
359
276
|
});
|
360
277
|
});
|
361
278
|
},
|
362
279
|
stopPropagation: true,
|
363
280
|
runOnlyIf: () => {
|
364
281
|
var _this$hot$getSelected;
|
365
|
-
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(
|
282
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isCell()) && !_classPrivateFieldGet(_editor, this).isVisible();
|
366
283
|
},
|
367
284
|
group: SHORTCUTS_GROUP
|
368
285
|
});
|
369
286
|
pluginContext.addShortcut({
|
370
287
|
keys: [['Escape']],
|
371
288
|
callback: () => {
|
372
|
-
_classPrivateFieldGet(
|
289
|
+
_classPrivateFieldGet(_editor, this).setValue(_classPrivateFieldGet(_commentValueBeforeSave, this));
|
373
290
|
this.hide();
|
374
291
|
manager.setActiveContextName('grid');
|
375
292
|
},
|
376
293
|
runOnlyIf: () => {
|
377
294
|
var _this$hot$getSelected2;
|
378
|
-
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(
|
295
|
+
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
|
379
296
|
},
|
380
297
|
group: SHORTCUTS_GROUP
|
381
298
|
});
|
@@ -387,7 +304,7 @@ export class Comments extends BasePlugin {
|
|
387
304
|
},
|
388
305
|
runOnlyIf: () => {
|
389
306
|
var _this$hot$getSelected3;
|
390
|
-
return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(
|
307
|
+
return ((_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight.isCell()) && _classPrivateFieldGet(_editor, this).isVisible();
|
391
308
|
},
|
392
309
|
group: SHORTCUTS_GROUP
|
393
310
|
});
|
@@ -412,13 +329,13 @@ export class Comments extends BasePlugin {
|
|
412
329
|
rootDocument
|
413
330
|
} = this.hot;
|
414
331
|
const editorElement = this.getEditorInputElement();
|
415
|
-
this.eventManager.addEventListener(rootDocument, 'mouseover', event =>
|
416
|
-
this.eventManager.addEventListener(rootDocument, 'mousedown', event =>
|
417
|
-
this.eventManager.addEventListener(rootDocument, 'mouseup', () =>
|
418
|
-
this.eventManager.addEventListener(editorElement, 'focus', () =>
|
419
|
-
this.eventManager.addEventListener(editorElement, 'blur', () =>
|
420
|
-
this.eventManager.addEventListener(editorElement, 'mousedown', event =>
|
421
|
-
this.eventManager.addEventListener(editorElement, 'mouseup', event =>
|
332
|
+
this.eventManager.addEventListener(rootDocument, 'mouseover', event => _assertClassBrand(_Comments_brand, this, _onMouseOver).call(this, event));
|
333
|
+
this.eventManager.addEventListener(rootDocument, 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onMouseDown).call(this, event));
|
334
|
+
this.eventManager.addEventListener(rootDocument, 'mouseup', () => _assertClassBrand(_Comments_brand, this, _onMouseUp).call(this));
|
335
|
+
this.eventManager.addEventListener(editorElement, 'focus', () => _assertClassBrand(_Comments_brand, this, _onEditorFocus).call(this));
|
336
|
+
this.eventManager.addEventListener(editorElement, 'blur', () => _assertClassBrand(_Comments_brand, this, _onEditorBlur).call(this));
|
337
|
+
this.eventManager.addEventListener(editorElement, 'mousedown', event => _assertClassBrand(_Comments_brand, this, _onEditorMouseDown).call(this, event));
|
338
|
+
this.eventManager.addEventListener(editorElement, 'mouseup', event => _assertClassBrand(_Comments_brand, this, _onEditorMouseUp).call(this, event));
|
422
339
|
}
|
423
340
|
|
424
341
|
/**
|
@@ -469,7 +386,7 @@ export class Comments extends BasePlugin {
|
|
469
386
|
if (!this.range.from) {
|
470
387
|
throw new Error('Before using this method, first set cell range (hot.getPlugin("comment").setRange())');
|
471
388
|
}
|
472
|
-
const editorValue = _classPrivateFieldGet(
|
389
|
+
const editorValue = _classPrivateFieldGet(_editor, this).getValue();
|
473
390
|
let comment = '';
|
474
391
|
if (value !== null && value !== undefined) {
|
475
392
|
comment = value;
|
@@ -572,9 +489,9 @@ export class Comments extends BasePlugin {
|
|
572
489
|
return false;
|
573
490
|
}
|
574
491
|
const meta = this.hot.getCellMeta(this.range.from.row, this.range.from.col);
|
575
|
-
_classPrivateFieldGet(
|
576
|
-
_classPrivateFieldGet(
|
577
|
-
_classPrivateFieldGet(
|
492
|
+
_classPrivateFieldGet(_displaySwitch, this).cancelHiding();
|
493
|
+
_classPrivateFieldGet(_editor, this).setValue((_ref = meta[META_COMMENT] ? meta[META_COMMENT][META_COMMENT_VALUE] : null) !== null && _ref !== void 0 ? _ref : '');
|
494
|
+
_classPrivateFieldGet(_editor, this).show();
|
578
495
|
this.refreshEditor(true);
|
579
496
|
return true;
|
580
497
|
}
|
@@ -597,7 +514,7 @@ export class Comments extends BasePlugin {
|
|
597
514
|
* Hides the comment editor.
|
598
515
|
*/
|
599
516
|
hide() {
|
600
|
-
_classPrivateFieldGet(
|
517
|
+
_classPrivateFieldGet(_editor, this).hide();
|
601
518
|
}
|
602
519
|
|
603
520
|
/**
|
@@ -608,7 +525,7 @@ export class Comments extends BasePlugin {
|
|
608
525
|
refreshEditor() {
|
609
526
|
var _renderableRow, _renderableColumn;
|
610
527
|
let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
611
|
-
if (!force && (!this.range.from || !_classPrivateFieldGet(
|
528
|
+
if (!force && (!this.range.from || !_classPrivateFieldGet(_editor, this).isVisible())) {
|
612
529
|
return;
|
613
530
|
}
|
614
531
|
const {
|
@@ -626,7 +543,7 @@ export class Comments extends BasePlugin {
|
|
626
543
|
|
627
544
|
// Reset the editor position to (0, 0) so the opening direction calculation wouldn't be influenced by its
|
628
545
|
// previous position
|
629
|
-
_classPrivateFieldGet(
|
546
|
+
_classPrivateFieldGet(_editor, this).setPosition(0, 0);
|
630
547
|
if (renderableRow === null) {
|
631
548
|
renderableRow = rowIndexMapper.getRenderableFromVisualIndex(rowIndexMapper.getNearestNotHiddenIndex(visualRow, -1));
|
632
549
|
}
|
@@ -654,9 +571,9 @@ export class Comments extends BasePlugin {
|
|
654
571
|
}, true);
|
655
572
|
const commentStyle = this.getCommentMeta(visualRow, visualColumn, META_STYLE);
|
656
573
|
if (commentStyle) {
|
657
|
-
_classPrivateFieldGet(
|
574
|
+
_classPrivateFieldGet(_editor, this).setSize(commentStyle.width, commentStyle.height);
|
658
575
|
} else {
|
659
|
-
_classPrivateFieldGet(
|
576
|
+
_classPrivateFieldGet(_editor, this).resetSize();
|
660
577
|
}
|
661
578
|
const lastColWidth = isBeforeRenderedColumns ? 0 : wtTable.getStretchedColumnWidth(renderableColumn);
|
662
579
|
const lastRowHeight = targetingPreviousRow && !isBeforeRenderedRows ? outerHeight(TD) : 0;
|
@@ -669,7 +586,7 @@ export class Comments extends BasePlugin {
|
|
669
586
|
const {
|
670
587
|
width: editorWidth,
|
671
588
|
height: editorHeight
|
672
|
-
} = _classPrivateFieldGet(
|
589
|
+
} = _classPrivateFieldGet(_editor, this).getSize();
|
673
590
|
const {
|
674
591
|
innerWidth,
|
675
592
|
innerHeight
|
@@ -690,15 +607,15 @@ export class Comments extends BasePlugin {
|
|
690
607
|
if (top + editorHeight > innerHeight) {
|
691
608
|
y -= editorHeight - cellHeight + 1;
|
692
609
|
}
|
693
|
-
_classPrivateFieldGet(
|
694
|
-
_classPrivateFieldGet(
|
610
|
+
_classPrivateFieldGet(_editor, this).setPosition(x, y);
|
611
|
+
_classPrivateFieldGet(_editor, this).setReadOnlyState(this.getCommentMeta(visualRow, visualColumn, META_READONLY));
|
695
612
|
}
|
696
613
|
|
697
614
|
/**
|
698
615
|
* Focuses the comments editor element.
|
699
616
|
*/
|
700
617
|
focusEditor() {
|
701
|
-
_classPrivateFieldGet(
|
618
|
+
_classPrivateFieldGet(_editor, this).focus();
|
702
619
|
}
|
703
620
|
|
704
621
|
/**
|
@@ -767,27 +684,27 @@ export class Comments extends BasePlugin {
|
|
767
684
|
* @returns {HTMLTextAreaElement}
|
768
685
|
*/
|
769
686
|
getEditorInputElement() {
|
770
|
-
return _classPrivateFieldGet(
|
687
|
+
return _classPrivateFieldGet(_editor, this).getInputElement();
|
771
688
|
}
|
772
689
|
|
773
690
|
/**
|
774
691
|
* Destroys the plugin instance.
|
775
692
|
*/
|
776
693
|
destroy() {
|
777
|
-
if (_classPrivateFieldGet(
|
778
|
-
_classPrivateFieldGet(
|
694
|
+
if (_classPrivateFieldGet(_editor, this)) {
|
695
|
+
_classPrivateFieldGet(_editor, this).destroy();
|
779
696
|
}
|
780
|
-
if (_classPrivateFieldGet(
|
781
|
-
_classPrivateFieldGet(
|
697
|
+
if (_classPrivateFieldGet(_displaySwitch, this)) {
|
698
|
+
_classPrivateFieldGet(_displaySwitch, this).destroy();
|
782
699
|
}
|
783
700
|
super.destroy();
|
784
701
|
}
|
785
702
|
}
|
786
|
-
function
|
703
|
+
function _onMouseDown(event) {
|
787
704
|
if (!this.hot.view || !this.hot.view._wt) {
|
788
705
|
return;
|
789
706
|
}
|
790
|
-
if (!_classPrivateFieldGet(
|
707
|
+
if (!_classPrivateFieldGet(_preventEditorAutoSwitch, this) && !this.targetIsCommentTextArea(event)) {
|
791
708
|
const eventCell = closest(event.target, 'TD', 'TBODY');
|
792
709
|
let coordinates = null;
|
793
710
|
if (eventCell) {
|
@@ -798,49 +715,81 @@ function _onMouseDown2(event) {
|
|
798
715
|
}
|
799
716
|
}
|
800
717
|
}
|
801
|
-
|
718
|
+
/**
|
719
|
+
* `mouseover` event callback.
|
720
|
+
*
|
721
|
+
* @param {MouseEvent} event The `mouseover` event.
|
722
|
+
*/
|
723
|
+
function _onMouseOver(event) {
|
802
724
|
const {
|
803
725
|
rootDocument
|
804
726
|
} = this.hot;
|
805
|
-
if (_classPrivateFieldGet(
|
727
|
+
if (_classPrivateFieldGet(_preventEditorAutoSwitch, this) || _classPrivateFieldGet(_editor, this).isFocused() || hasClass(event.target, 'wtBorder') || _classPrivateFieldGet(_cellBelowCursor, this) === event.target || !_classPrivateFieldGet(_editor, this)) {
|
806
728
|
return;
|
807
729
|
}
|
808
|
-
_classPrivateFieldSet(
|
730
|
+
_classPrivateFieldSet(_cellBelowCursor, this, rootDocument.elementFromPoint(event.clientX, event.clientY));
|
809
731
|
if (this.targetIsCellWithComment(event)) {
|
810
732
|
const range = this.hot._createCellRange(this.hot.getCoords(event.target));
|
811
|
-
_classPrivateFieldGet(
|
733
|
+
_classPrivateFieldGet(_displaySwitch, this).show(range);
|
812
734
|
} else if (isChildOf(event.target, rootDocument) && !this.targetIsCommentTextArea(event)) {
|
813
|
-
_classPrivateFieldGet(
|
735
|
+
_classPrivateFieldGet(_displaySwitch, this).hide();
|
814
736
|
}
|
815
737
|
}
|
816
|
-
|
817
|
-
|
738
|
+
/**
|
739
|
+
* `mouseup` event callback.
|
740
|
+
*/
|
741
|
+
function _onMouseUp() {
|
742
|
+
_classPrivateFieldSet(_preventEditorAutoSwitch, this, false);
|
818
743
|
}
|
819
|
-
|
744
|
+
/**
|
745
|
+
* The `afterRenderer` hook callback.
|
746
|
+
*
|
747
|
+
* @param {HTMLTableCellElement} TD The rendered `TD` element.
|
748
|
+
* @param {object} cellProperties The rendered cell's property object.
|
749
|
+
*/
|
750
|
+
function _onAfterRenderer(TD, cellProperties) {
|
820
751
|
if (cellProperties[META_COMMENT] && cellProperties[META_COMMENT][META_COMMENT_VALUE]) {
|
821
752
|
addClass(TD, cellProperties.commentedCellClassName);
|
822
753
|
}
|
823
754
|
}
|
824
|
-
|
825
|
-
|
755
|
+
/**
|
756
|
+
* Hook observer the "blur" event from the comments editor element. The hook clears the
|
757
|
+
* editor content and gives back the keyboard shortcuts control by switching to the "grid" context.
|
758
|
+
*/
|
759
|
+
function _onEditorBlur() {
|
760
|
+
_classPrivateFieldSet(_commentValueBeforeSave, this, '');
|
826
761
|
this.hot.getShortcutManager().setActiveContextName('grid');
|
827
762
|
this.setComment();
|
828
763
|
}
|
829
|
-
|
830
|
-
|
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
|
+
function _onEditorFocus() {
|
769
|
+
_classPrivateFieldSet(_commentValueBeforeSave, this, this.getComment());
|
831
770
|
this.hot.listen();
|
832
771
|
this.hot.getShortcutManager().setActiveContextName(SHORTCUTS_CONTEXT_NAME);
|
833
772
|
}
|
834
|
-
|
835
|
-
|
773
|
+
/**
|
774
|
+
* `mousedown` hook. Along with `onEditorMouseUp` used to simulate the textarea resizing event.
|
775
|
+
*
|
776
|
+
* @param {MouseEvent} event The `mousedown` event.
|
777
|
+
*/
|
778
|
+
function _onEditorMouseDown(event) {
|
779
|
+
_classPrivateFieldSet(_tempEditorDimensions, this, {
|
836
780
|
width: outerWidth(event.target),
|
837
781
|
height: outerHeight(event.target)
|
838
782
|
});
|
839
783
|
}
|
840
|
-
|
784
|
+
/**
|
785
|
+
* `mouseup` hook. Along with `onEditorMouseDown` used to simulate the textarea resizing event.
|
786
|
+
*
|
787
|
+
* @param {MouseEvent} event The `mouseup` event.
|
788
|
+
*/
|
789
|
+
function _onEditorMouseUp(event) {
|
841
790
|
const currentWidth = outerWidth(event.target);
|
842
791
|
const currentHeight = outerHeight(event.target);
|
843
|
-
if (currentWidth !== _classPrivateFieldGet(
|
792
|
+
if (currentWidth !== _classPrivateFieldGet(_tempEditorDimensions, this).width + 1 || currentHeight !== _classPrivateFieldGet(_tempEditorDimensions, this).height + 2) {
|
844
793
|
this.updateCommentMeta(this.range.from.row, this.range.from.col, {
|
845
794
|
[META_STYLE]: {
|
846
795
|
width: currentWidth,
|
@@ -849,13 +798,22 @@ function _onEditorMouseUp2(event) {
|
|
849
798
|
});
|
850
799
|
}
|
851
800
|
}
|
852
|
-
|
853
|
-
|
801
|
+
/**
|
802
|
+
* Observes the pressed keys and if there is already opened the comment editor prevents open
|
803
|
+
* the table editor into the fast edit mode.
|
804
|
+
*
|
805
|
+
* @param {Event} event The keydown event.
|
806
|
+
*/
|
807
|
+
function _onAfterDocumentKeyDown(event) {
|
808
|
+
if (_classPrivateFieldGet(_editor, this).isVisible()) {
|
854
809
|
stopImmediatePropagation(event);
|
855
810
|
}
|
856
811
|
}
|
857
|
-
|
858
|
-
|
812
|
+
/**
|
813
|
+
* Observes the changes in the scroll position if triggered it hides the comment editor.
|
814
|
+
*/
|
815
|
+
function _onAfterScroll() {
|
816
|
+
if (!_classPrivateFieldGet(_preventEditorHiding, this)) {
|
859
817
|
this.hide();
|
860
818
|
}
|
861
819
|
}
|
@@ -4,7 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
exports.default = addEditCommentItem;
|
5
5
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
6
6
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
7
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
7
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
8
8
|
/**
|
9
9
|
* @param {Comments} plugin The Comments plugin instance.
|
10
10
|
* @returns {object}
|
@@ -6,7 +6,7 @@ var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
|
6
6
|
var _utils = require("../../contextMenu/utils");
|
7
7
|
var _comments = require("../comments");
|
8
8
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
9
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
10
10
|
/**
|
11
11
|
* @param {Comments} plugin The Comments plugin instance.
|
12
12
|
* @returns {object}
|
@@ -4,7 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
exports.default = removeCommentItem;
|
5
5
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
6
6
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
7
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
7
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
8
8
|
/**
|
9
9
|
* @param {Comments} plugin The Comments plugin instance.
|
10
10
|
* @returns {object}
|
@@ -7,7 +7,7 @@ var _object = require("../../helpers/object");
|
|
7
7
|
var _localHooks = _interopRequireDefault(require("../../mixins/localHooks"));
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
9
9
|
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; }
|
10
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
11
11
|
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); }
|
12
12
|
const DEFAULT_DISPLAY_DELAY = 250;
|
13
13
|
const DEFAULT_HIDE_DELAY = 250;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
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; }
|
3
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
4
4
|
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); }
|
5
5
|
import { debounce } from "../../helpers/function.mjs";
|
6
6
|
import { mixin } from "../../helpers/object.mjs";
|
@@ -7,7 +7,7 @@ require("core-js/modules/es.array.unshift.js");
|
|
7
7
|
var _array = require("../../helpers/array");
|
8
8
|
var _object = require("../../helpers/object");
|
9
9
|
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; }
|
10
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
11
11
|
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); }
|
12
12
|
/**
|
13
13
|
* Command executor for ContextMenu.
|
@@ -2,7 +2,7 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
3
|
import "core-js/modules/es.array.unshift.js";
|
4
4
|
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; }
|
5
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
6
6
|
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); }
|
7
7
|
import { arrayEach } from "../../helpers/array.mjs";
|
8
8
|
import { hasOwnProperty } from "../../helpers/object.mjs";
|