handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205
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/calculationType/renderedColumns.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +29 -23
- package/3rdparty/walkontable/src/core/_base.mjs +29 -23
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +12 -6
- package/3rdparty/walkontable/src/facade/core.mjs +12 -6
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +8 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
- package/3rdparty/walkontable/src/overlay/top.js +9 -8
- package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
- package/3rdparty/walkontable/src/overlays.js +10 -26
- package/3rdparty/walkontable/src/overlays.mjs +10 -26
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +4 -2
- package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
- package/3rdparty/walkontable/src/renderer/table.js +13 -4
- package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
- package/3rdparty/walkontable/src/scroll.js +46 -37
- package/3rdparty/walkontable/src/scroll.mjs +46 -37
- package/3rdparty/walkontable/src/selection/border/border.js +52 -58
- package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
- package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
- package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
- package/3rdparty/walkontable/src/selection/index.js +6 -4
- package/3rdparty/walkontable/src/selection/index.mjs +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +3 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
- package/3rdparty/walkontable/src/selection/scanner.js +46 -11
- package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
- package/3rdparty/walkontable/src/settings.js +8 -9
- package/3rdparty/walkontable/src/settings.mjs +8 -9
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +25 -36
- package/3rdparty/walkontable/src/table.mjs +25 -36
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -43
- package/3rdparty/walkontable/src/utils/column.mjs +1 -43
- package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
- package/3rdparty/walkontable/src/viewport.js +94 -91
- package/3rdparty/walkontable/src/viewport.mjs +95 -92
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/base.js +4 -4
- package/base.mjs +3 -3
- package/core/focusCatcher/focusDetector.js +1 -0
- package/core/focusCatcher/focusDetector.mjs +1 -0
- package/core/hooks/bucket.js +184 -0
- package/core/hooks/bucket.mjs +180 -0
- package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
- package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
- package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
- package/core/hooks/index.js +385 -0
- package/core/hooks/index.mjs +381 -0
- package/core/index.js +2 -0
- package/core.d.ts +5 -3
- package/core.js +77 -35
- package/core.mjs +69 -27
- package/dataMap/dataMap.js +3 -0
- package/dataMap/dataMap.mjs +3 -0
- package/dataMap/dataSource.js +2 -0
- package/dataMap/dataSource.mjs +2 -0
- package/dataMap/metaManager/index.js +2 -0
- package/dataMap/metaManager/index.mjs +2 -0
- package/dataMap/metaManager/metaSchema.js +91 -5
- package/dataMap/metaManager/metaSchema.mjs +91 -5
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
- package/dist/handsontable.css +84 -72
- package/dist/handsontable.full.css +317 -304
- package/dist/handsontable.full.js +14826 -7294
- package/dist/handsontable.full.min.css +15 -10
- package/dist/handsontable.full.min.js +262 -69
- package/dist/handsontable.js +7826 -5552
- package/dist/handsontable.min.css +10 -6
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/editorManager.js +2 -2
- package/editorManager.mjs +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
- package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
- package/editors/baseEditor/baseEditor.js +25 -18
- package/editors/baseEditor/baseEditor.mjs +26 -19
- package/editors/dateEditor/dateEditor.js +9 -0
- package/editors/dateEditor/dateEditor.mjs +10 -1
- package/editors/dropdownEditor/dropdownEditor.js +4 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
- package/editors/handsontableEditor/handsontableEditor.js +36 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
- package/editors/passwordEditor/passwordEditor.js +18 -0
- package/editors/passwordEditor/passwordEditor.mjs +18 -0
- package/editors/registry.js +2 -2
- package/editors/registry.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +5 -12
- package/editors/textEditor/textEditor.mjs +6 -13
- package/focusManager.js +5 -7
- package/focusManager.mjs +5 -7
- package/helpers/array.js +2 -0
- package/helpers/array.mjs +2 -0
- package/helpers/data.js +3 -0
- package/helpers/data.mjs +3 -0
- package/helpers/dom/element.js +39 -18
- package/helpers/dom/element.mjs +38 -17
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +3 -3
- package/helpers/moves.js +3 -0
- package/helpers/moves.mjs +3 -0
- package/helpers/number.js +1 -0
- package/helpers/number.mjs +1 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/index.d.ts +8 -0
- package/i18n/languages/ja-JP.d.ts +1 -1
- package/i18n/phraseFormatters/substituteVariables.js +1 -0
- package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
- package/index.d.ts +9 -1
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/package.json +22 -7
- package/plugins/autoColumnSize/autoColumnSize.js +22 -27
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
- package/plugins/autoRowSize/autoRowSize.js +20 -22
- package/plugins/autoRowSize/autoRowSize.mjs +21 -23
- package/plugins/autofill/autofill.js +4 -5
- package/plugins/autofill/autofill.mjs +1 -1
- package/plugins/base/base.d.ts +1 -1
- package/plugins/base/base.js +41 -0
- package/plugins/base/base.mjs +42 -1
- package/plugins/base/index.js +2 -1
- package/plugins/base/index.mjs +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
- package/plugins/columnSorting/columnSorting.js +5 -4
- package/plugins/columnSorting/columnSorting.mjs +3 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/utils.js +3 -0
- package/plugins/columnSorting/utils.mjs +3 -0
- package/plugins/columnSummary/endpoints.js +3 -0
- package/plugins/columnSummary/endpoints.mjs +3 -0
- package/plugins/comments/commentEditor.js +9 -0
- package/plugins/comments/commentEditor.mjs +9 -0
- package/plugins/comments/comments.js +24 -18
- package/plugins/comments/comments.mjs +26 -20
- package/plugins/comments/editorResizeObserver.js +2 -0
- package/plugins/comments/editorResizeObserver.mjs +2 -0
- package/plugins/contextMenu/contextMenu.d.ts +2 -1
- package/plugins/contextMenu/contextMenu.js +6 -7
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/index.js +2 -0
- package/plugins/contextMenu/menu/menu.js +10 -5
- package/plugins/contextMenu/menu/menu.mjs +11 -6
- package/plugins/contextMenu/menu/positioner.js +4 -2
- package/plugins/contextMenu/menu/positioner.mjs +4 -2
- package/plugins/contextMenu/menu/shortcuts.js +3 -1
- package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
- package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
- package/plugins/contextMenu/utils.js +0 -10
- package/plugins/contextMenu/utils.mjs +0 -9
- package/plugins/copyPaste/copyPaste.d.ts +1 -0
- package/plugins/copyPaste/copyPaste.js +32 -23
- package/plugins/copyPaste/copyPaste.mjs +24 -15
- package/plugins/customBorders/utils.js +2 -0
- package/plugins/customBorders/utils.mjs +2 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
- package/plugins/dropdownMenu/dropdownMenu.js +6 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -0
- package/plugins/exportFile/types/csv.mjs +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/operators.js +2 -0
- package/plugins/filters/component/operators.mjs +2 -0
- package/plugins/filters/component/value.js +3 -0
- package/plugins/filters/component/value.mjs +3 -0
- package/plugins/filters/conditionCollection.js +3 -0
- package/plugins/filters/conditionCollection.mjs +3 -0
- package/plugins/filters/conditionUpdateObserver.js +2 -0
- package/plugins/filters/conditionUpdateObserver.mjs +2 -0
- package/plugins/filters/filters.js +43 -13
- package/plugins/filters/filters.mjs +43 -13
- package/plugins/filters/logicalOperations/conjunction.js +2 -0
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunction.js +2 -0
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
- package/plugins/filters/menu/focusController.js +38 -14
- package/plugins/filters/menu/focusController.mjs +38 -14
- package/plugins/filters/ui/multipleSelect.js +10 -0
- package/plugins/filters/ui/multipleSelect.mjs +10 -0
- package/plugins/formulas/engine/register.js +3 -0
- package/plugins/formulas/engine/register.mjs +3 -0
- package/plugins/formulas/engine/settings.js +3 -0
- package/plugins/formulas/engine/settings.mjs +3 -0
- package/plugins/formulas/formulas.js +12 -7
- package/plugins/formulas/formulas.mjs +6 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
- package/plugins/hiddenColumns/hiddenColumns.js +22 -30
- package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
- package/plugins/hiddenRows/hiddenRows.js +21 -29
- package/plugins/hiddenRows/hiddenRows.mjs +17 -25
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -0
- package/plugins/index.mjs +3 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
- package/plugins/manualColumnMove/manualColumnMove.js +6 -6
- package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
- package/plugins/manualColumnResize/manualColumnResize.js +26 -12
- package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
- package/plugins/manualRowMove/manualRowMove.js +8 -6
- package/plugins/manualRowMove/manualRowMove.mjs +6 -4
- package/plugins/manualRowResize/manualRowResize.js +3 -2
- package/plugins/manualRowResize/manualRowResize.mjs +4 -3
- package/plugins/mergeCells/cellsCollection.js +19 -3
- package/plugins/mergeCells/cellsCollection.mjs +20 -4
- package/plugins/mergeCells/mergeCells.d.ts +6 -2
- package/plugins/mergeCells/mergeCells.js +84 -56
- package/plugins/mergeCells/mergeCells.mjs +82 -54
- package/plugins/mergeCells/renderer.js +13 -3
- package/plugins/mergeCells/renderer.mjs +13 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
- package/plugins/nestedHeaders/nestedHeaders.js +63 -16
- package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
- package/plugins/nestedHeaders/stateManager/index.js +1 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/plugins/nestedRows/ui/headers.js +7 -1
- package/plugins/nestedRows/ui/headers.mjs +7 -1
- package/plugins/nestedRows/utils/rowMoveController.js +4 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
- package/plugins/persistentState/persistentState.js +4 -4
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +162 -0
- package/plugins/stretchColumns/calculator.mjs +158 -0
- package/plugins/stretchColumns/index.d.ts +1 -0
- package/plugins/stretchColumns/index.js +7 -0
- package/plugins/stretchColumns/index.mjs +1 -0
- package/plugins/stretchColumns/strategies/_base.js +85 -0
- package/plugins/stretchColumns/strategies/_base.mjs +81 -0
- package/plugins/stretchColumns/strategies/all.js +71 -0
- package/plugins/stretchColumns/strategies/all.mjs +67 -0
- package/plugins/stretchColumns/strategies/last.js +79 -0
- package/plugins/stretchColumns/strategies/last.mjs +75 -0
- package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
- package/plugins/stretchColumns/stretchColumns.js +222 -0
- package/plugins/stretchColumns/stretchColumns.mjs +218 -0
- package/plugins/trimRows/trimRows.js +2 -0
- package/plugins/trimRows/trimRows.mjs +2 -0
- package/plugins/undoRedo/undoRedo.js +9 -5
- package/plugins/undoRedo/undoRedo.mjs +8 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
- package/selection/index.js +2 -0
- package/selection/range.js +2 -0
- package/selection/range.mjs +2 -0
- package/selection/selection.js +7 -2
- package/selection/selection.mjs +7 -2
- package/selection/utils.js +2 -0
- package/selection/utils.mjs +2 -0
- package/settings.d.ts +4 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/index.js +2 -0
- package/shortcutContexts/commands/index.mjs +2 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
- package/shortcutContexts/index.js +2 -0
- package/shortcutContexts/index.mjs +2 -0
- package/shortcuts/context.js +3 -0
- package/shortcuts/context.mjs +3 -0
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +1 -0
- package/shortcuts/utils.mjs +1 -0
- package/styles/handsontable.css +2307 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-horizon.css +607 -0
- package/styles/ht-theme-horizon.min.css +30 -0
- package/styles/ht-theme-main.css +613 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/tableView.js +205 -33
- package/tableView.mjs +206 -34
- package/translations/changesObservable/observable.js +2 -0
- package/translations/changesObservable/observable.mjs +2 -0
- package/translations/index.js +2 -0
- package/translations/indexMapper.js +4 -0
- package/translations/indexMapper.mjs +4 -0
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -0
- package/translations/mapCollections/mapCollection.mjs +2 -0
- package/translations/maps/index.js +2 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/autoResize.js +11 -3
- package/utils/autoResize.mjs +11 -3
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +2 -0
- package/utils/ghostTable.js +7 -3
- package/utils/ghostTable.mjs +7 -3
- package/utils/parseTable.js +4 -0
- package/utils/parseTable.mjs +4 -0
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
var _element = require("../../../helpers/dom/element");
|
6
|
+
var _object = require("../../../helpers/object");
|
6
7
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
7
8
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
8
9
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
@@ -39,15 +40,20 @@ class Scroll {
|
|
39
40
|
* Scrolls viewport to a cell.
|
40
41
|
*
|
41
42
|
* @param {CellCoords} coords The cell coordinates.
|
42
|
-
* @param {
|
43
|
-
*
|
44
|
-
*
|
45
|
-
* @param {
|
43
|
+
* @param {'auto' | 'start' | 'end'} [horizontalSnap='auto'] If `'start'`, viewport is scrolled to show
|
44
|
+
* the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
|
45
|
+
* the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
|
46
|
+
* @param {'auto' | 'top' | 'bottom'} [verticalSnap='auto'] If `'top'`, viewport is scrolled to show
|
47
|
+
* the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on the bottom of
|
48
|
+
* the table. When `'auto'`, the viewport is scrolled only when the row is outside of the viewport.
|
46
49
|
* @returns {boolean}
|
47
50
|
*/
|
48
|
-
scrollViewport(coords,
|
49
|
-
|
50
|
-
|
51
|
+
scrollViewport(coords, horizontalSnap, verticalSnap) {
|
52
|
+
if (coords.col < 0 || coords.row < 0) {
|
53
|
+
return false;
|
54
|
+
}
|
55
|
+
const scrolledHorizontally = this.scrollViewportHorizontally(coords.col, horizontalSnap);
|
56
|
+
const scrolledVertically = this.scrollViewportVertically(coords.row, verticalSnap);
|
51
57
|
return scrolledHorizontally || scrolledVertically;
|
52
58
|
}
|
53
59
|
|
@@ -55,42 +61,43 @@ class Scroll {
|
|
55
61
|
* Scrolls viewport to a column.
|
56
62
|
*
|
57
63
|
* @param {number} column Visual column index.
|
58
|
-
* @param {
|
59
|
-
*
|
64
|
+
* @param {'auto' | 'start' | 'end'} [snapping='auto'] If `'start'`, viewport is scrolled to show
|
65
|
+
* the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
|
66
|
+
* the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
|
60
67
|
* @returns {boolean}
|
61
68
|
*/
|
62
|
-
scrollViewportHorizontally(column
|
69
|
+
scrollViewportHorizontally(column) {
|
70
|
+
let snapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
63
71
|
const {
|
64
72
|
drawn,
|
65
73
|
totalColumns
|
66
74
|
} = this.dataAccessObject;
|
67
|
-
|
68
|
-
|
69
|
-
|
75
|
+
if (!drawn) {
|
76
|
+
return false;
|
77
|
+
}
|
78
|
+
const snappingObject = (0, _object.createObjectPropListener)(snapping);
|
79
|
+
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column, snappingObject);
|
80
|
+
if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
|
70
81
|
return false;
|
71
82
|
}
|
72
|
-
|
83
|
+
snapping = snappingObject.value;
|
73
84
|
const {
|
74
85
|
fixedColumnsStart,
|
75
86
|
inlineStartOverlay
|
76
87
|
} = this.dataAccessObject;
|
88
|
+
const autoSnapping = snapping === 'auto';
|
77
89
|
|
78
|
-
// for auto-snapping
|
79
|
-
// when the columns points to the overlays
|
90
|
+
// for auto-snapping do not scroll the viewport when the columns points to the overlays
|
80
91
|
if (autoSnapping && column < fixedColumnsStart) {
|
81
92
|
return false;
|
82
93
|
}
|
83
|
-
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
|
84
|
-
if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
|
85
|
-
return false;
|
86
|
-
}
|
87
94
|
const firstColumn = this.getFirstVisibleColumn();
|
88
95
|
const lastColumn = this.getLastVisibleColumn();
|
89
96
|
let result = false;
|
90
97
|
if (autoSnapping && (column < firstColumn || column > lastColumn) || !autoSnapping) {
|
91
98
|
// if there is at least one fully visible column determine the snapping direction based on
|
92
|
-
// that columns or by
|
93
|
-
result = inlineStartOverlay.scrollTo(column, autoSnapping ? column >= this.getLastPartiallyVisibleColumn() :
|
99
|
+
// that columns or by snapping flag, if provided.
|
100
|
+
result = inlineStartOverlay.scrollTo(column, autoSnapping ? column >= this.getLastPartiallyVisibleColumn() : snapping === 'end');
|
94
101
|
}
|
95
102
|
return result;
|
96
103
|
}
|
@@ -99,43 +106,45 @@ class Scroll {
|
|
99
106
|
* Scrolls viewport to a row.
|
100
107
|
*
|
101
108
|
* @param {number} row Visual row index.
|
102
|
-
* @param {
|
103
|
-
*
|
109
|
+
* @param {'auto' | 'top' | 'bottom'} [snapping='auto'] If `'top'`, viewport is scrolled to show
|
110
|
+
* the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on
|
111
|
+
* the bottom of the table. When `'auto'`, the viewport is scrolled only when the row is outside of
|
112
|
+
* the viewport.
|
104
113
|
* @returns {boolean}
|
105
114
|
*/
|
106
|
-
scrollViewportVertically(row
|
115
|
+
scrollViewportVertically(row) {
|
116
|
+
let snapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
107
117
|
const {
|
108
118
|
drawn,
|
109
119
|
totalRows
|
110
120
|
} = this.dataAccessObject;
|
111
|
-
|
112
|
-
|
113
|
-
|
121
|
+
if (!drawn) {
|
122
|
+
return false;
|
123
|
+
}
|
124
|
+
const snappingObject = (0, _object.createObjectPropListener)(snapping);
|
125
|
+
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row, snappingObject);
|
126
|
+
if (!Number.isInteger(row) || row < 0 || row > totalRows) {
|
114
127
|
return false;
|
115
128
|
}
|
116
|
-
|
129
|
+
snapping = snappingObject.value;
|
117
130
|
const {
|
118
131
|
fixedRowsBottom,
|
119
132
|
fixedRowsTop,
|
120
133
|
topOverlay
|
121
134
|
} = this.dataAccessObject;
|
135
|
+
const autoSnapping = snapping === 'auto';
|
122
136
|
|
123
|
-
// for auto-snapping
|
124
|
-
// when the rows points to the overlays
|
137
|
+
// for auto-snapping do not scroll the viewport when the rows points to the overlays
|
125
138
|
if (autoSnapping && (row < fixedRowsTop || row > totalRows - fixedRowsBottom - 1)) {
|
126
139
|
return false;
|
127
140
|
}
|
128
|
-
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
|
129
|
-
if (!Number.isInteger(row) || row < 0 || row > totalRows) {
|
130
|
-
return false;
|
131
|
-
}
|
132
141
|
const firstRow = this.getFirstVisibleRow();
|
133
142
|
const lastRow = this.getLastVisibleRow();
|
134
143
|
let result = false;
|
135
144
|
if (autoSnapping && (row < firstRow || row > lastRow) || !autoSnapping) {
|
136
145
|
// if there is at least one fully visible row determine the snapping direction based on
|
137
|
-
// that rows or by
|
138
|
-
result = topOverlay.scrollTo(row, autoSnapping ? row >= this.getLastPartiallyVisibleRow() :
|
146
|
+
// that rows or by snapping flag, if provided.
|
147
|
+
result = topOverlay.scrollTo(row, autoSnapping ? row >= this.getLastPartiallyVisibleRow() : snapping === 'bottom');
|
139
148
|
}
|
140
149
|
return result;
|
141
150
|
}
|
@@ -6,6 +6,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
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
|
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"); }
|
8
8
|
import { innerHeight, innerWidth, getScrollLeft, getScrollTop, offset } from "../../../helpers/dom/element.mjs";
|
9
|
+
import { createObjectPropListener } from "../../../helpers/object.mjs";
|
9
10
|
/**
|
10
11
|
* @class Scroll
|
11
12
|
*/
|
@@ -36,15 +37,20 @@ class Scroll {
|
|
36
37
|
* Scrolls viewport to a cell.
|
37
38
|
*
|
38
39
|
* @param {CellCoords} coords The cell coordinates.
|
39
|
-
* @param {
|
40
|
-
*
|
41
|
-
*
|
42
|
-
* @param {
|
40
|
+
* @param {'auto' | 'start' | 'end'} [horizontalSnap='auto'] If `'start'`, viewport is scrolled to show
|
41
|
+
* the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
|
42
|
+
* the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
|
43
|
+
* @param {'auto' | 'top' | 'bottom'} [verticalSnap='auto'] If `'top'`, viewport is scrolled to show
|
44
|
+
* the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on the bottom of
|
45
|
+
* the table. When `'auto'`, the viewport is scrolled only when the row is outside of the viewport.
|
43
46
|
* @returns {boolean}
|
44
47
|
*/
|
45
|
-
scrollViewport(coords,
|
46
|
-
|
47
|
-
|
48
|
+
scrollViewport(coords, horizontalSnap, verticalSnap) {
|
49
|
+
if (coords.col < 0 || coords.row < 0) {
|
50
|
+
return false;
|
51
|
+
}
|
52
|
+
const scrolledHorizontally = this.scrollViewportHorizontally(coords.col, horizontalSnap);
|
53
|
+
const scrolledVertically = this.scrollViewportVertically(coords.row, verticalSnap);
|
48
54
|
return scrolledHorizontally || scrolledVertically;
|
49
55
|
}
|
50
56
|
|
@@ -52,42 +58,43 @@ class Scroll {
|
|
52
58
|
* Scrolls viewport to a column.
|
53
59
|
*
|
54
60
|
* @param {number} column Visual column index.
|
55
|
-
* @param {
|
56
|
-
*
|
61
|
+
* @param {'auto' | 'start' | 'end'} [snapping='auto'] If `'start'`, viewport is scrolled to show
|
62
|
+
* the cell on the left of the table. If `'end'`, viewport is scrolled to show the cell on the right of
|
63
|
+
* the table. When `'auto'`, the viewport is scrolled only when the column is outside of the viewport.
|
57
64
|
* @returns {boolean}
|
58
65
|
*/
|
59
|
-
scrollViewportHorizontally(column
|
66
|
+
scrollViewportHorizontally(column) {
|
67
|
+
let snapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
60
68
|
const {
|
61
69
|
drawn,
|
62
70
|
totalColumns
|
63
71
|
} = this.dataAccessObject;
|
64
|
-
|
65
|
-
|
66
|
-
|
72
|
+
if (!drawn) {
|
73
|
+
return false;
|
74
|
+
}
|
75
|
+
const snappingObject = createObjectPropListener(snapping);
|
76
|
+
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column, snappingObject);
|
77
|
+
if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
|
67
78
|
return false;
|
68
79
|
}
|
69
|
-
|
80
|
+
snapping = snappingObject.value;
|
70
81
|
const {
|
71
82
|
fixedColumnsStart,
|
72
83
|
inlineStartOverlay
|
73
84
|
} = this.dataAccessObject;
|
85
|
+
const autoSnapping = snapping === 'auto';
|
74
86
|
|
75
|
-
// for auto-snapping
|
76
|
-
// when the columns points to the overlays
|
87
|
+
// for auto-snapping do not scroll the viewport when the columns points to the overlays
|
77
88
|
if (autoSnapping && column < fixedColumnsStart) {
|
78
89
|
return false;
|
79
90
|
}
|
80
|
-
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
|
81
|
-
if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
|
82
|
-
return false;
|
83
|
-
}
|
84
91
|
const firstColumn = this.getFirstVisibleColumn();
|
85
92
|
const lastColumn = this.getLastVisibleColumn();
|
86
93
|
let result = false;
|
87
94
|
if (autoSnapping && (column < firstColumn || column > lastColumn) || !autoSnapping) {
|
88
95
|
// if there is at least one fully visible column determine the snapping direction based on
|
89
|
-
// that columns or by
|
90
|
-
result = inlineStartOverlay.scrollTo(column, autoSnapping ? column >= this.getLastPartiallyVisibleColumn() :
|
96
|
+
// that columns or by snapping flag, if provided.
|
97
|
+
result = inlineStartOverlay.scrollTo(column, autoSnapping ? column >= this.getLastPartiallyVisibleColumn() : snapping === 'end');
|
91
98
|
}
|
92
99
|
return result;
|
93
100
|
}
|
@@ -96,43 +103,45 @@ class Scroll {
|
|
96
103
|
* Scrolls viewport to a row.
|
97
104
|
*
|
98
105
|
* @param {number} row Visual row index.
|
99
|
-
* @param {
|
100
|
-
*
|
106
|
+
* @param {'auto' | 'top' | 'bottom'} [snapping='auto'] If `'top'`, viewport is scrolled to show
|
107
|
+
* the cell on the top of the table. If `'bottom'`, viewport is scrolled to show the cell on
|
108
|
+
* the bottom of the table. When `'auto'`, the viewport is scrolled only when the row is outside of
|
109
|
+
* the viewport.
|
101
110
|
* @returns {boolean}
|
102
111
|
*/
|
103
|
-
scrollViewportVertically(row
|
112
|
+
scrollViewportVertically(row) {
|
113
|
+
let snapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
|
104
114
|
const {
|
105
115
|
drawn,
|
106
116
|
totalRows
|
107
117
|
} = this.dataAccessObject;
|
108
|
-
|
109
|
-
|
110
|
-
|
118
|
+
if (!drawn) {
|
119
|
+
return false;
|
120
|
+
}
|
121
|
+
const snappingObject = createObjectPropListener(snapping);
|
122
|
+
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row, snappingObject);
|
123
|
+
if (!Number.isInteger(row) || row < 0 || row > totalRows) {
|
111
124
|
return false;
|
112
125
|
}
|
113
|
-
|
126
|
+
snapping = snappingObject.value;
|
114
127
|
const {
|
115
128
|
fixedRowsBottom,
|
116
129
|
fixedRowsTop,
|
117
130
|
topOverlay
|
118
131
|
} = this.dataAccessObject;
|
132
|
+
const autoSnapping = snapping === 'auto';
|
119
133
|
|
120
|
-
// for auto-snapping
|
121
|
-
// when the rows points to the overlays
|
134
|
+
// for auto-snapping do not scroll the viewport when the rows points to the overlays
|
122
135
|
if (autoSnapping && (row < fixedRowsTop || row > totalRows - fixedRowsBottom - 1)) {
|
123
136
|
return false;
|
124
137
|
}
|
125
|
-
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
|
126
|
-
if (!Number.isInteger(row) || row < 0 || row > totalRows) {
|
127
|
-
return false;
|
128
|
-
}
|
129
138
|
const firstRow = this.getFirstVisibleRow();
|
130
139
|
const lastRow = this.getLastVisibleRow();
|
131
140
|
let result = false;
|
132
141
|
if (autoSnapping && (row < firstRow || row > lastRow) || !autoSnapping) {
|
133
142
|
// if there is at least one fully visible row determine the snapping direction based on
|
134
|
-
// that rows or by
|
135
|
-
result = topOverlay.scrollTo(row, autoSnapping ? row >= this.getLastPartiallyVisibleRow() :
|
143
|
+
// that rows or by snapping flag, if provided.
|
144
|
+
result = topOverlay.scrollTo(row, autoSnapping ? row >= this.getLastPartiallyVisibleRow() : snapping === 'bottom');
|
136
145
|
}
|
137
146
|
return result;
|
138
147
|
}
|
@@ -5,7 +5,7 @@ var _element = require("../../../../../helpers/dom/element");
|
|
5
5
|
var _event = require("../../../../../helpers/dom/event");
|
6
6
|
var _object = require("../../../../../helpers/object");
|
7
7
|
var _browser = require("../../../../../helpers/browser");
|
8
|
-
var
|
8
|
+
var _utils = require("./utils");
|
9
9
|
/**
|
10
10
|
*
|
11
11
|
*/
|
@@ -35,9 +35,9 @@ class Border {
|
|
35
35
|
this.bottomStyle = null;
|
36
36
|
this.startStyle = null;
|
37
37
|
this.endStyle = null;
|
38
|
-
this.cornerDefaultStyle =
|
38
|
+
this.cornerDefaultStyle = (0, _utils.getCornerStyle)(this.instance);
|
39
39
|
// Offset to moving the corner to be centered relative to the grid.
|
40
|
-
this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);
|
40
|
+
this.cornerCenterPointOffset = -Math.ceil(parseInt(this.cornerDefaultStyle.width, 10) / 2);
|
41
41
|
this.corner = null;
|
42
42
|
this.cornerStyle = null;
|
43
43
|
this.createBorders(settings);
|
@@ -166,9 +166,9 @@ class Border {
|
|
166
166
|
this.corner = this.main.childNodes[4];
|
167
167
|
this.corner.className += ' corner';
|
168
168
|
this.cornerStyle = this.corner.style;
|
169
|
-
this.cornerStyle.width = this.cornerDefaultStyle.width
|
170
|
-
this.cornerStyle.height = this.cornerDefaultStyle.height
|
171
|
-
this.cornerStyle.border = [this.cornerDefaultStyle.borderWidth
|
169
|
+
this.cornerStyle.width = `${this.cornerDefaultStyle.width}px`;
|
170
|
+
this.cornerStyle.height = `${this.cornerDefaultStyle.height}px`;
|
171
|
+
this.cornerStyle.border = [`${this.cornerDefaultStyle.borderWidth}px`, this.cornerDefaultStyle.borderStyle, this.cornerDefaultStyle.borderColor].join(' ');
|
172
172
|
if ((0, _browser.isMobileBrowser)() && this.instance.getSetting('isDataViewInstance')) {
|
173
173
|
this.createMultipleSelectorHandles();
|
174
174
|
}
|
@@ -322,66 +322,52 @@ class Border {
|
|
322
322
|
if (this.disabled) {
|
323
323
|
return;
|
324
324
|
}
|
325
|
+
let [fromRow, fromColumn, toRow, toColumn] = corners;
|
326
|
+
|
327
|
+
// borders can not be rendered on headers so hide them
|
328
|
+
if (fromRow < 0 && toRow < 0 || fromColumn < 0 && toColumn < 0) {
|
329
|
+
this.disappear();
|
330
|
+
return;
|
331
|
+
}
|
325
332
|
const {
|
326
333
|
wtTable,
|
327
334
|
rootDocument,
|
328
335
|
rootWindow
|
329
|
-
} = this.wot;
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
let
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
}
|
345
|
-
for (let i = rowsCount - 1; i >= 0; i -= 1) {
|
346
|
-
const s = wtTable.rowFilter.renderedToSource(i);
|
347
|
-
if (s >= corners[0] && s <= corners[2]) {
|
348
|
-
toRow = s;
|
349
|
-
break;
|
350
|
-
}
|
351
|
-
}
|
352
|
-
const columnsCount = wtTable.getRenderedColumnsCount();
|
353
|
-
for (let i = 0; i < columnsCount; i += 1) {
|
354
|
-
const s = wtTable.columnFilter.renderedToSource(i);
|
355
|
-
if (s >= corners[1] && s <= corners[3]) {
|
356
|
-
fromColumn = s;
|
357
|
-
columnHeader = corners[1];
|
358
|
-
break;
|
336
|
+
} = this.wot;
|
337
|
+
const isMultiple = fromRow !== toRow || fromColumn !== toColumn;
|
338
|
+
const firstRenderedRow = wtTable.getFirstRenderedRow();
|
339
|
+
const lastRenderedRow = wtTable.getLastRenderedRow();
|
340
|
+
const firstRenderedColumn = wtTable.getFirstRenderedColumn();
|
341
|
+
const lastRenderedColumn = wtTable.getLastRenderedColumn();
|
342
|
+
let fromTD;
|
343
|
+
if (isMultiple) {
|
344
|
+
fromColumn = Math.max(fromColumn, firstRenderedColumn);
|
345
|
+
toColumn = Math.min(toColumn, lastRenderedColumn);
|
346
|
+
fromRow = Math.max(fromRow, firstRenderedRow);
|
347
|
+
toRow = Math.min(toRow, lastRenderedRow);
|
348
|
+
if (toColumn < fromColumn || toRow < fromRow) {
|
349
|
+
this.disappear();
|
350
|
+
return;
|
359
351
|
}
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
if (
|
364
|
-
|
365
|
-
|
352
|
+
fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
|
353
|
+
} else {
|
354
|
+
fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
|
355
|
+
if (!(fromTD instanceof HTMLElement)) {
|
356
|
+
this.disappear();
|
357
|
+
return;
|
366
358
|
}
|
367
359
|
}
|
368
|
-
if (fromRow === undefined || fromColumn === undefined) {
|
369
|
-
this.disappear();
|
370
|
-
return;
|
371
|
-
}
|
372
|
-
let fromTD = wtTable.getCell(this.wot.createCellCoords(fromRow, fromColumn));
|
373
|
-
const isMultiple = fromRow !== toRow || fromColumn !== toColumn;
|
374
360
|
const toTD = isMultiple ? wtTable.getCell(this.wot.createCellCoords(toRow, toColumn)) : fromTD;
|
375
361
|
const fromOffset = (0, _element.offset)(fromTD);
|
376
362
|
const toOffset = isMultiple ? (0, _element.offset)(toTD) : fromOffset;
|
377
363
|
const containerOffset = (0, _element.offset)(wtTable.TABLE);
|
378
|
-
const containerWidth = (0, _element.outerWidth)(wtTable.TABLE);
|
379
364
|
const minTop = fromOffset.top;
|
380
365
|
const minLeft = fromOffset.left;
|
381
366
|
const isRtl = this.wot.wtSettings.getSetting('rtlMode');
|
382
367
|
let inlineStartPos = 0;
|
383
368
|
let width = 0;
|
384
369
|
if (isRtl) {
|
370
|
+
const containerWidth = (0, _element.outerWidth)(wtTable.TABLE);
|
385
371
|
const fromWidth = (0, _element.outerWidth)(fromTD);
|
386
372
|
const gridRightPos = rootWindow.innerWidth - containerOffset.left - containerWidth;
|
387
373
|
width = minLeft + fromWidth - toOffset.left;
|
@@ -391,6 +377,7 @@ class Border {
|
|
391
377
|
inlineStartPos = minLeft - containerOffset.left - 1;
|
392
378
|
}
|
393
379
|
if (this.isEntireColumnSelected(fromRow, toRow)) {
|
380
|
+
const rowHeader = fromRow;
|
394
381
|
const modifiedValues = this.getDimensionsFromHeader('columns', fromColumn, toColumn, rowHeader, containerOffset);
|
395
382
|
let fromTH = null;
|
396
383
|
if (modifiedValues) {
|
@@ -403,6 +390,7 @@ class Border {
|
|
403
390
|
let top = minTop - containerOffset.top - 1;
|
404
391
|
let height = toOffset.top + (0, _element.outerHeight)(toTD) - minTop;
|
405
392
|
if (this.isEntireRowSelected(fromColumn, toColumn)) {
|
393
|
+
const columnHeader = fromColumn;
|
406
394
|
const modifiedValues = this.getDimensionsFromHeader('rows', fromRow, toRow, columnHeader, containerOffset);
|
407
395
|
let fromTH = null;
|
408
396
|
if (modifiedValues) {
|
@@ -412,7 +400,7 @@ class Border {
|
|
412
400
|
fromTD = fromTH;
|
413
401
|
}
|
414
402
|
}
|
415
|
-
const style =
|
403
|
+
const style = rootWindow.getComputedStyle(fromTD);
|
416
404
|
if (parseInt(style.borderTopWidth, 10) > 0) {
|
417
405
|
top += 1;
|
418
406
|
height = height > 0 ? height - 1 : 0;
|
@@ -441,7 +429,7 @@ class Border {
|
|
441
429
|
this.endStyle.display = 'block';
|
442
430
|
let cornerVisibleSetting = this.settings.border.cornerVisible;
|
443
431
|
cornerVisibleSetting = typeof cornerVisibleSetting === 'function' ? cornerVisibleSetting(this.settings.layerLevel) : cornerVisibleSetting;
|
444
|
-
const hookResult = this.wot.getSetting('onModifyGetCellCoords', toRow, toColumn);
|
432
|
+
const hookResult = this.wot.getSetting('onModifyGetCellCoords', toRow, toColumn, false, 'render');
|
445
433
|
let [checkRow, checkCol] = [toRow, toColumn];
|
446
434
|
if (hookResult && Array.isArray(hookResult)) {
|
447
435
|
[,, checkRow, checkCol] = hookResult;
|
@@ -449,9 +437,11 @@ class Border {
|
|
449
437
|
if ((0, _browser.isMobileBrowser)() || !cornerVisibleSetting || this.isPartRange(checkRow, checkCol)) {
|
450
438
|
this.cornerStyle.display = 'none';
|
451
439
|
} else {
|
452
|
-
this.cornerStyle.top = `${top + height + this.cornerCenterPointOffset -
|
453
|
-
this.cornerStyle[inlinePosProperty] = `${inlineStartPos + width + this.cornerCenterPointOffset -
|
454
|
-
this.cornerStyle.borderRightWidth = this.cornerDefaultStyle.borderWidth
|
440
|
+
this.cornerStyle.top = `${top + height + this.cornerCenterPointOffset - this.cornerDefaultStyle.borderWidth}px`;
|
441
|
+
this.cornerStyle[inlinePosProperty] = `${inlineStartPos + width + this.cornerCenterPointOffset - this.cornerDefaultStyle.borderWidth}px`;
|
442
|
+
this.cornerStyle.borderRightWidth = `${this.cornerDefaultStyle.borderWidth}px`;
|
443
|
+
this.cornerStyle.borderLeftWidth = `${this.cornerDefaultStyle.borderWidth}px`;
|
444
|
+
this.cornerStyle.borderBottomWidth = `${this.cornerDefaultStyle.borderWidth}px`;
|
455
445
|
this.cornerStyle.width = this.cornerDefaultStyle.width;
|
456
446
|
|
457
447
|
// Hide the fill handle, so the possible further adjustments won't force unneeded scrollbars.
|
@@ -461,8 +451,12 @@ class Border {
|
|
461
451
|
if (trimToWindow) {
|
462
452
|
trimmingContainer = rootDocument.documentElement;
|
463
453
|
}
|
464
|
-
|
465
|
-
|
454
|
+
|
455
|
+
// -1 was initially removed from the base position to compansate for the table border. We need to exclude it from
|
456
|
+
// the corner width.
|
457
|
+
const cornerBorderCompensation = parseInt(this.cornerDefaultStyle.borderWidth, 10) - 1;
|
458
|
+
const cornerHalfWidth = Math.ceil(parseInt(this.cornerDefaultStyle.width, 10) / 2);
|
459
|
+
const cornerHalfHeight = Math.ceil(parseInt(this.cornerDefaultStyle.height, 10) / 2);
|
466
460
|
if (toColumn === this.wot.getSetting('totalColumns') - 1) {
|
467
461
|
const toTdOffsetLeft = trimToWindow ? toTD.getBoundingClientRect().left : toTD.offsetLeft;
|
468
462
|
let cornerOverlappingContainer = false;
|
@@ -475,7 +469,7 @@ class Border {
|
|
475
469
|
cornerOverlappingContainer = cornerEdge >= (0, _element.innerWidth)(trimmingContainer);
|
476
470
|
}
|
477
471
|
if (cornerOverlappingContainer) {
|
478
|
-
this.cornerStyle[inlinePosProperty] = `${Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth)}px`;
|
472
|
+
this.cornerStyle[inlinePosProperty] = `${Math.floor(inlineStartPos + width + this.cornerCenterPointOffset - cornerHalfWidth - cornerBorderCompensation)}px`;
|
479
473
|
this.cornerStyle[isRtl ? 'borderLeftWidth' : 'borderRightWidth'] = 0;
|
480
474
|
}
|
481
475
|
}
|
@@ -484,7 +478,7 @@ class Border {
|
|
484
478
|
const cornerBottomEdge = toTdOffsetTop + (0, _element.outerHeight)(toTD) + parseInt(this.cornerDefaultStyle.height, 10) / 2;
|
485
479
|
const cornerOverlappingContainer = cornerBottomEdge >= (0, _element.innerHeight)(trimmingContainer);
|
486
480
|
if (cornerOverlappingContainer) {
|
487
|
-
this.cornerStyle.top = `${Math.floor(top + height + this.cornerCenterPointOffset - cornerHalfHeight)}px`;
|
481
|
+
this.cornerStyle.top = `${Math.floor(top + height + this.cornerCenterPointOffset - cornerHalfHeight - cornerBorderCompensation)}px`;
|
488
482
|
this.cornerStyle.borderBottomWidth = 0;
|
489
483
|
}
|
490
484
|
}
|