handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|