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
@@ -0,0 +1,218 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
4
|
+
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
5
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
6
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
7
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
8
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
9
|
+
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"); }
|
10
|
+
import { BasePlugin } from "../base/index.mjs";
|
11
|
+
import { StretchCalculator } from "./calculator.mjs";
|
12
|
+
export const PLUGIN_KEY = 'stretchColumns';
|
13
|
+
export const PLUGIN_PRIORITY = 155;
|
14
|
+
|
15
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
16
|
+
/**
|
17
|
+
* @plugin StretchColumns
|
18
|
+
* @class StretchColumns
|
19
|
+
*
|
20
|
+
* @description
|
21
|
+
* This plugin allows to set column widths based on their widest cells.
|
22
|
+
*
|
23
|
+
* By default, the plugin is declared as `'none'`, which makes it disabled (same as if it was declared as `false`).
|
24
|
+
*
|
25
|
+
* The plugin determines what happens when the declared grid width is different from the calculated sum of all column widths.
|
26
|
+
*
|
27
|
+
* ```js
|
28
|
+
* // fit the grid to the container, by stretching only the last column
|
29
|
+
* stretchH: 'last',
|
30
|
+
*
|
31
|
+
* // fit the grid to the container, by stretching all columns evenly
|
32
|
+
* stretchH: 'all',
|
33
|
+
* ```
|
34
|
+
*
|
35
|
+
* To configure this plugin see {@link Options#stretchH}.
|
36
|
+
*
|
37
|
+
* @example
|
38
|
+
*
|
39
|
+
* ::: only-for javascript
|
40
|
+
* ```js
|
41
|
+
* const hot = new Handsontable(document.getElementById('example'), {
|
42
|
+
* data: getData(),
|
43
|
+
* stretchH: 'all',
|
44
|
+
* });
|
45
|
+
* ```
|
46
|
+
* :::
|
47
|
+
*
|
48
|
+
* ::: only-for react
|
49
|
+
* ```jsx
|
50
|
+
* const hotRef = useRef(null);
|
51
|
+
*
|
52
|
+
* ...
|
53
|
+
*
|
54
|
+
* // First, let's construct Handsontable
|
55
|
+
* <HotTable
|
56
|
+
* ref={hotRef}
|
57
|
+
* data={getData()}
|
58
|
+
* stretchH={'all'}
|
59
|
+
* />
|
60
|
+
* ```
|
61
|
+
* :::
|
62
|
+
*/
|
63
|
+
/* eslint-enable jsdoc/require-description-complete-sentence */
|
64
|
+
var _stretchCalculator = /*#__PURE__*/new WeakMap();
|
65
|
+
var _previousTableWidth = /*#__PURE__*/new WeakMap();
|
66
|
+
var _resizeObserver = /*#__PURE__*/new WeakMap();
|
67
|
+
var _StretchColumns_brand = /*#__PURE__*/new WeakSet();
|
68
|
+
export class StretchColumns extends BasePlugin {
|
69
|
+
constructor() {
|
70
|
+
super(...arguments);
|
71
|
+
/**
|
72
|
+
* Hook that modifies the column width - applies by the stretching logic.
|
73
|
+
*
|
74
|
+
* @param {number} width The column width.
|
75
|
+
* @param {number} column The visual column index.
|
76
|
+
* @param {string} source The source of the modification.
|
77
|
+
* @returns {number}
|
78
|
+
*/
|
79
|
+
_classPrivateMethodInitSpec(this, _StretchColumns_brand);
|
80
|
+
/**
|
81
|
+
* The stretch calculator.
|
82
|
+
*
|
83
|
+
* @type {StretchCalculator}
|
84
|
+
*/
|
85
|
+
_classPrivateFieldInitSpec(this, _stretchCalculator, new StretchCalculator(this.hot));
|
86
|
+
/**
|
87
|
+
* The previous width of the root element. Helps to determine if the width has changed.
|
88
|
+
*
|
89
|
+
* @type {number | null}
|
90
|
+
*/
|
91
|
+
_classPrivateFieldInitSpec(this, _previousTableWidth, null);
|
92
|
+
/**
|
93
|
+
* It observes the root element to detect changes in its width, and if detected, then it triggers
|
94
|
+
* the table dimension calculations. In a situation where the browser's vertical scrollbar
|
95
|
+
* appears - caused by some external UI element, the observer triggers the render.
|
96
|
+
*
|
97
|
+
* @type {ResizeObserver}
|
98
|
+
*/
|
99
|
+
_classPrivateFieldInitSpec(this, _resizeObserver, new ResizeObserver(entries => {
|
100
|
+
requestAnimationFrame(() => {
|
101
|
+
var _this$hot;
|
102
|
+
if (!((_this$hot = this.hot) !== null && _this$hot !== void 0 && _this$hot.view.isHorizontallyScrollableByWindow())) {
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
entries.forEach(_ref => {
|
106
|
+
let {
|
107
|
+
contentRect
|
108
|
+
} = _ref;
|
109
|
+
if (_classPrivateFieldGet(_previousTableWidth, this) !== null && _classPrivateFieldGet(_previousTableWidth, this) !== contentRect.width) {
|
110
|
+
this.hot.refreshDimensions();
|
111
|
+
this.hot.view.adjustElementsSize();
|
112
|
+
}
|
113
|
+
_classPrivateFieldSet(_previousTableWidth, this, contentRect.width);
|
114
|
+
});
|
115
|
+
});
|
116
|
+
}));
|
117
|
+
}
|
118
|
+
static get PLUGIN_KEY() {
|
119
|
+
return PLUGIN_KEY;
|
120
|
+
}
|
121
|
+
static get PLUGIN_PRIORITY() {
|
122
|
+
return PLUGIN_PRIORITY;
|
123
|
+
}
|
124
|
+
static get SETTING_KEYS() {
|
125
|
+
return true;
|
126
|
+
}
|
127
|
+
/**
|
128
|
+
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
129
|
+
* hook and if it returns `true` then the {@link #enablePlugin} method is called.
|
130
|
+
*
|
131
|
+
* @returns {boolean}
|
132
|
+
*/
|
133
|
+
isEnabled() {
|
134
|
+
return ['all', 'last'].includes(this.hot.getSettings().stretchH);
|
135
|
+
}
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Enables the plugin functionality for this Handsontable instance.
|
139
|
+
*/
|
140
|
+
enablePlugin() {
|
141
|
+
var _this = this;
|
142
|
+
if (this.enabled) {
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
_classPrivateFieldGet(_stretchCalculator, this).useStrategy(this.hot.getSettings().stretchH);
|
146
|
+
_classPrivateFieldGet(_resizeObserver, this).observe(this.hot.rootElement);
|
147
|
+
this.addHook('beforeRender', function () {
|
148
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
149
|
+
args[_key] = arguments[_key];
|
150
|
+
}
|
151
|
+
return _assertClassBrand(_StretchColumns_brand, _this, _onBeforeRender).call(_this, ...args);
|
152
|
+
});
|
153
|
+
this.addHook('modifyColWidth', function () {
|
154
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
155
|
+
args[_key2] = arguments[_key2];
|
156
|
+
}
|
157
|
+
return _assertClassBrand(_StretchColumns_brand, _this, _onModifyColWidth).call(_this, ...args);
|
158
|
+
}, 10);
|
159
|
+
super.enablePlugin();
|
160
|
+
}
|
161
|
+
|
162
|
+
/**
|
163
|
+
* Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
|
164
|
+
*/
|
165
|
+
updatePlugin() {
|
166
|
+
_classPrivateFieldGet(_stretchCalculator, this).useStrategy(this.hot.getSettings().stretchH);
|
167
|
+
super.updatePlugin();
|
168
|
+
}
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Disables the plugin functionality for this Handsontable instance.
|
172
|
+
*/
|
173
|
+
disablePlugin() {
|
174
|
+
super.disablePlugin();
|
175
|
+
_classPrivateFieldGet(_resizeObserver, this).unobserve(this.hot.rootElement);
|
176
|
+
}
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Gets the calculated column width based on the stretching
|
180
|
+
* strategy defined by {@link Options#stretchH} option.
|
181
|
+
*
|
182
|
+
* @param {number} columnVisualIndex The visual index of the column.
|
183
|
+
* @returns {number | null}
|
184
|
+
*/
|
185
|
+
getColumnWidth(columnVisualIndex) {
|
186
|
+
return _classPrivateFieldGet(_stretchCalculator, this).getStretchedWidth(columnVisualIndex);
|
187
|
+
}
|
188
|
+
/**
|
189
|
+
* Destroys the plugin instance.
|
190
|
+
*/
|
191
|
+
destroy() {
|
192
|
+
_classPrivateFieldGet(_resizeObserver, this).disconnect();
|
193
|
+
_classPrivateFieldSet(_resizeObserver, this, null);
|
194
|
+
_classPrivateFieldSet(_stretchCalculator, this, null);
|
195
|
+
super.destroy();
|
196
|
+
}
|
197
|
+
}
|
198
|
+
function _onModifyColWidth(width, column, source) {
|
199
|
+
if (source === this.pluginName) {
|
200
|
+
return;
|
201
|
+
}
|
202
|
+
const newWidth = this.getColumnWidth(column);
|
203
|
+
if (typeof newWidth === 'number') {
|
204
|
+
return newWidth;
|
205
|
+
}
|
206
|
+
return width;
|
207
|
+
}
|
208
|
+
/**
|
209
|
+
* On each before render the plugin recalculates the column widths
|
210
|
+
* based on the chosen stretching strategy.
|
211
|
+
*
|
212
|
+
* @param {boolean} fullRender If `true` then the full render is in progress.
|
213
|
+
*/
|
214
|
+
function _onBeforeRender(fullRender) {
|
215
|
+
if (fullRender) {
|
216
|
+
_classPrivateFieldGet(_stretchCalculator, this).refreshStretching();
|
217
|
+
}
|
218
|
+
}
|
@@ -10,6 +10,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
10
10
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
11
11
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
12
12
|
require("core-js/modules/es.set.union.v2.js");
|
13
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
14
|
+
require("core-js/modules/esnext.iterator.every.js");
|
13
15
|
var _base = require("../base");
|
14
16
|
var _translations = require("../../translations");
|
15
17
|
var _array = require("../../helpers/array");
|
@@ -7,6 +7,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
|
|
7
7
|
import "core-js/modules/es.set.is-superset-of.v2.js";
|
8
8
|
import "core-js/modules/es.set.symmetric-difference.v2.js";
|
9
9
|
import "core-js/modules/es.set.union.v2.js";
|
10
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
11
|
+
import "core-js/modules/esnext.iterator.every.js";
|
10
12
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
11
13
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
12
14
|
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; }
|
@@ -3,13 +3,17 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
5
|
require("core-js/modules/es.object.from-entries.js");
|
6
|
-
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
8
|
+
require("core-js/modules/esnext.iterator.find.js");
|
9
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
10
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
11
|
+
var _hooks = require("../../core/hooks");
|
7
12
|
var _array = require("../../helpers/array");
|
8
13
|
var _number = require("../../helpers/number");
|
9
14
|
var _object = require("../../helpers/object");
|
10
15
|
var _utils = require("../contextMenu/utils");
|
11
16
|
var _moves = require("../../helpers/moves");
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
13
17
|
const SHORTCUTS_GROUP = 'undoRedo';
|
14
18
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'undoRedo';
|
15
19
|
|
@@ -401,8 +405,8 @@ UndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {
|
|
401
405
|
if (selectedLast !== undefined) {
|
402
406
|
const [changedRow, changedColumn] = data[0];
|
403
407
|
const [selectedRow, selectedColumn] = selectedLast;
|
404
|
-
const firstFullyVisibleRow = instance.
|
405
|
-
const firstFullyVisibleColumn = instance.
|
408
|
+
const firstFullyVisibleRow = instance.getFirstFullyVisibleRow();
|
409
|
+
const firstFullyVisibleColumn = instance.getFirstFullyVisibleColumn();
|
406
410
|
const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;
|
407
411
|
const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;
|
408
412
|
const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;
|
@@ -972,7 +976,7 @@ function removeExposedUndoRedoMethods(instance) {
|
|
972
976
|
delete instance.isRedoAvailable;
|
973
977
|
delete instance.clearUndo;
|
974
978
|
}
|
975
|
-
const hook =
|
979
|
+
const hook = _hooks.Hooks.getSingleton();
|
976
980
|
hook.add('afterUpdateSettings', function () {
|
977
981
|
var _this$getPlugin;
|
978
982
|
(_this$getPlugin = this.getPlugin('undoRedo')) === null || _this$getPlugin === void 0 || _this$getPlugin.init();
|
@@ -1,6 +1,11 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import "core-js/modules/es.object.from-entries.js";
|
3
|
-
import
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
5
|
+
import "core-js/modules/esnext.iterator.find.js";
|
6
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
7
|
+
import "core-js/modules/esnext.iterator.reduce.js";
|
8
|
+
import { Hooks } from "../../core/hooks/index.mjs";
|
4
9
|
import { arrayMap, arrayEach } from "../../helpers/array.mjs";
|
5
10
|
import { rangeEach } from "../../helpers/number.mjs";
|
6
11
|
import { inherit, deepClone } from "../../helpers/object.mjs";
|
@@ -397,8 +402,8 @@ UndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {
|
|
397
402
|
if (selectedLast !== undefined) {
|
398
403
|
const [changedRow, changedColumn] = data[0];
|
399
404
|
const [selectedRow, selectedColumn] = selectedLast;
|
400
|
-
const firstFullyVisibleRow = instance.
|
401
|
-
const firstFullyVisibleColumn = instance.
|
405
|
+
const firstFullyVisibleRow = instance.getFirstFullyVisibleRow();
|
406
|
+
const firstFullyVisibleColumn = instance.getFirstFullyVisibleColumn();
|
402
407
|
const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;
|
403
408
|
const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;
|
404
409
|
const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;
|
@@ -3,12 +3,15 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.checkboxRenderer = checkboxRenderer;
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.every.js");
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
6
9
|
var _baseRenderer = require("../baseRenderer");
|
7
10
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
8
11
|
var _element = require("../../helpers/dom/element");
|
9
12
|
var _mixed = require("../../helpers/mixed");
|
10
13
|
var _shortcutContexts = require("../../shortcutContexts");
|
11
|
-
var
|
14
|
+
var _hooks = require("../../core/hooks");
|
12
15
|
var _a11y = require("../../helpers/a11y");
|
13
16
|
var _constants = require("../../i18n/constants");
|
14
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -19,7 +22,7 @@ const ATTR_ROW = 'data-row';
|
|
19
22
|
const ATTR_COLUMN = 'data-col';
|
20
23
|
const SHORTCUTS_GROUP = 'checkboxRenderer';
|
21
24
|
const RENDERER_TYPE = exports.RENDERER_TYPE = 'checkbox';
|
22
|
-
|
25
|
+
_hooks.Hooks.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellMeta, cellValue) {
|
23
26
|
const {
|
24
27
|
label,
|
25
28
|
type,
|
@@ -161,7 +164,7 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
|
|
161
164
|
},
|
162
165
|
runOnlyIf: () => {
|
163
166
|
const range = hotInstance.getSelectedRangeLast();
|
164
|
-
return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.
|
167
|
+
return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.highlight.isCell()) && !hotInstance.selection.isMultiple();
|
165
168
|
}
|
166
169
|
}, {
|
167
170
|
keys: [['delete'], ['backspace']],
|
@@ -204,6 +207,11 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
|
|
204
207
|
for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
|
205
208
|
for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
|
206
209
|
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
210
|
+
|
211
|
+
/* eslint-disable no-continue */
|
212
|
+
if (cachedCellProperties.hidden) {
|
213
|
+
continue;
|
214
|
+
}
|
207
215
|
const templates = {
|
208
216
|
checkedTemplate: cachedCellProperties.checkedTemplate,
|
209
217
|
uncheckedTemplate: cachedCellProperties.uncheckedTemplate
|
@@ -294,13 +302,16 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
|
|
294
302
|
const bottomRight = selRange[key].getBottomEndCorner();
|
295
303
|
for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
296
304
|
for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
297
|
-
const
|
305
|
+
const cellMeta = hotInstance.getCellMeta(visualRow, visualColumn);
|
306
|
+
|
307
|
+
/* eslint-disable no-continue */
|
308
|
+
if (cellMeta.readOnly) {
|
309
|
+
continue;
|
310
|
+
}
|
298
311
|
const cell = hotInstance.getCell(visualRow, visualColumn);
|
299
|
-
if (cell
|
300
|
-
return true;
|
301
|
-
} else {
|
312
|
+
if (cell instanceof HTMLElement) {
|
302
313
|
const checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
303
|
-
if (checkboxes.length > 0
|
314
|
+
if (checkboxes.length > 0) {
|
304
315
|
return true;
|
305
316
|
}
|
306
317
|
}
|
@@ -1,10 +1,13 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.every.js";
|
4
|
+
import "core-js/modules/esnext.iterator.map.js";
|
2
5
|
import { baseRenderer } from "../baseRenderer/index.mjs";
|
3
6
|
import EventManager from "../../eventManager.mjs";
|
4
7
|
import { empty, addClass, setAttribute } from "../../helpers/dom/element.mjs";
|
5
8
|
import { isEmpty, stringify } from "../../helpers/mixed.mjs";
|
6
9
|
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
|
7
|
-
import Hooks from "../../
|
10
|
+
import { Hooks } from "../../core/hooks/index.mjs";
|
8
11
|
import { A11Y_CHECKBOX, A11Y_CHECKED, A11Y_LABEL } from "../../helpers/a11y.mjs";
|
9
12
|
import { CHECKBOX_CHECKED, CHECKBOX_UNCHECKED } from "../../i18n/constants.mjs";
|
10
13
|
const isListeningKeyDownEvent = new WeakMap();
|
@@ -156,7 +159,7 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
|
|
156
159
|
},
|
157
160
|
runOnlyIf: () => {
|
158
161
|
const range = hotInstance.getSelectedRangeLast();
|
159
|
-
return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.
|
162
|
+
return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.highlight.isCell()) && !hotInstance.selection.isMultiple();
|
160
163
|
}
|
161
164
|
}, {
|
162
165
|
keys: [['delete'], ['backspace']],
|
@@ -199,6 +202,11 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
|
|
199
202
|
for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
|
200
203
|
for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
|
201
204
|
const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
|
205
|
+
|
206
|
+
/* eslint-disable no-continue */
|
207
|
+
if (cachedCellProperties.hidden) {
|
208
|
+
continue;
|
209
|
+
}
|
202
210
|
const templates = {
|
203
211
|
checkedTemplate: cachedCellProperties.checkedTemplate,
|
204
212
|
uncheckedTemplate: cachedCellProperties.uncheckedTemplate
|
@@ -289,13 +297,16 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
|
|
289
297
|
const bottomRight = selRange[key].getBottomEndCorner();
|
290
298
|
for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
291
299
|
for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
292
|
-
const
|
300
|
+
const cellMeta = hotInstance.getCellMeta(visualRow, visualColumn);
|
301
|
+
|
302
|
+
/* eslint-disable no-continue */
|
303
|
+
if (cellMeta.readOnly) {
|
304
|
+
continue;
|
305
|
+
}
|
293
306
|
const cell = hotInstance.getCell(visualRow, visualColumn);
|
294
|
-
if (cell
|
295
|
-
return true;
|
296
|
-
} else {
|
307
|
+
if (cell instanceof HTMLElement) {
|
297
308
|
const checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
298
|
-
if (checkboxes.length > 0
|
309
|
+
if (checkboxes.length > 0) {
|
299
310
|
return true;
|
300
311
|
}
|
301
312
|
}
|
package/selection/index.js
CHANGED
package/selection/range.js
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.some.js");
|
6
8
|
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; }
|
7
9
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
8
10
|
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); }
|
package/selection/range.mjs
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.some.js";
|
3
5
|
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; }
|
4
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
5
7
|
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); }
|
package/selection/selection.js
CHANGED
@@ -10,6 +10,9 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
10
10
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
11
11
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
12
12
|
require("core-js/modules/es.set.union.v2.js");
|
13
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
14
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
15
|
+
require("core-js/modules/esnext.iterator.some.js");
|
13
16
|
var _highlight = _interopRequireWildcard(require("./highlight/highlight"));
|
14
17
|
var _range = _interopRequireDefault(require("./range"));
|
15
18
|
var _object = require("./../helpers/object");
|
@@ -1205,9 +1208,11 @@ class Selection {
|
|
1205
1208
|
if (!this.isSelected()) {
|
1206
1209
|
return;
|
1207
1210
|
}
|
1208
|
-
const focusHighlight = this.highlight.getFocus();
|
1209
1211
|
const currentLayer = this.getLayerLevel();
|
1210
|
-
|
1212
|
+
const cellRange = this.selectedRange.current();
|
1213
|
+
if (this.highlight.isEnabledFor(_highlight.FOCUS_TYPE, cellRange.highlight)) {
|
1214
|
+
this.highlight.getFocus().commit().syncWith(cellRange);
|
1215
|
+
}
|
1211
1216
|
|
1212
1217
|
// Rewriting rendered ranges going through all layers.
|
1213
1218
|
for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
|
package/selection/selection.mjs
CHANGED
@@ -7,6 +7,9 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
|
|
7
7
|
import "core-js/modules/es.set.is-superset-of.v2.js";
|
8
8
|
import "core-js/modules/es.set.symmetric-difference.v2.js";
|
9
9
|
import "core-js/modules/es.set.union.v2.js";
|
10
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
11
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
12
|
+
import "core-js/modules/esnext.iterator.some.js";
|
10
13
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
11
14
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
12
15
|
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; }
|
@@ -1199,9 +1202,11 @@ class Selection {
|
|
1199
1202
|
if (!this.isSelected()) {
|
1200
1203
|
return;
|
1201
1204
|
}
|
1202
|
-
const focusHighlight = this.highlight.getFocus();
|
1203
1205
|
const currentLayer = this.getLayerLevel();
|
1204
|
-
|
1206
|
+
const cellRange = this.selectedRange.current();
|
1207
|
+
if (this.highlight.isEnabledFor(FOCUS_TYPE, cellRange.highlight)) {
|
1208
|
+
this.highlight.getFocus().commit().syncWith(cellRange);
|
1209
|
+
}
|
1205
1210
|
|
1206
1211
|
// Rewriting rendered ranges going through all layers.
|
1207
1212
|
for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
|
package/selection/utils.js
CHANGED
@@ -14,6 +14,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
14
14
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
15
15
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
16
16
|
require("core-js/modules/es.set.union.v2.js");
|
17
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
18
|
+
require("core-js/modules/esnext.iterator.some.js");
|
17
19
|
var _src = require("./../3rdparty/walkontable/src");
|
18
20
|
var _array = require("./../helpers/array");
|
19
21
|
var _mixed = require("./../helpers/mixed");
|
package/selection/utils.mjs
CHANGED
@@ -7,6 +7,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
|
|
7
7
|
import "core-js/modules/es.set.is-superset-of.v2.js";
|
8
8
|
import "core-js/modules/es.set.symmetric-difference.v2.js";
|
9
9
|
import "core-js/modules/es.set.union.v2.js";
|
10
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
11
|
+
import "core-js/modules/esnext.iterator.some.js";
|
10
12
|
import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
|
11
13
|
import { arrayEach, arrayReduce } from "./../helpers/array.mjs";
|
12
14
|
import { isUndefined } from "./../helpers/mixed.mjs";
|
package/settings.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PikadayOptions } from '@handsontable/pikaday';
|
2
2
|
import Core from './core';
|
3
|
-
import { Events } from './
|
3
|
+
import { Events } from './core/hooks';
|
4
4
|
import {
|
5
5
|
CellValue,
|
6
6
|
ColumnDataGetterSetterFunction,
|
@@ -214,6 +214,7 @@ export interface GridSettings extends Events {
|
|
214
214
|
strict?: boolean;
|
215
215
|
tableClassName?: string | string[];
|
216
216
|
tabMoves?: CellCoords | SimpleCellCoords | ((event: KeyboardEvent) => CellCoords | SimpleCellCoords);
|
217
|
+
themeName?: string;
|
217
218
|
title?: string;
|
218
219
|
trimDropdown?: boolean;
|
219
220
|
trimRows?: TrimRowsSettings;
|
@@ -224,6 +225,8 @@ export interface GridSettings extends Events {
|
|
224
225
|
validator?: BaseValidator | RegExp | ValidatorType | string;
|
225
226
|
viewportColumnRenderingOffset?: number | 'auto';
|
226
227
|
viewportRowRenderingOffset?: number | 'auto';
|
228
|
+
viewportColumnRenderingThreshold?: number | 'auto';
|
229
|
+
viewportRowRenderingThreshold?: number | 'auto';
|
227
230
|
visibleRows?: number;
|
228
231
|
width?: number | string | (() => number | string);
|
229
232
|
wordWrap?: boolean;
|
@@ -11,7 +11,7 @@ const command = exports.command = {
|
|
11
11
|
const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, -1);
|
12
12
|
if (row !== null) {
|
13
13
|
const coords = hot._createCellCoords(row, to.col);
|
14
|
-
const scrollPadding = to.row - hot.
|
14
|
+
const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
|
15
15
|
const nextVerticalScroll = Math.min(coords.row - scrollPadding, hot.countRows() - 1);
|
16
16
|
hot.selection.setRangeEnd(coords);
|
17
17
|
hot.scrollViewportTo({
|
@@ -8,7 +8,7 @@ export const command = {
|
|
8
8
|
const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, -1);
|
9
9
|
if (row !== null) {
|
10
10
|
const coords = hot._createCellCoords(row, to.col);
|
11
|
-
const scrollPadding = to.row - hot.
|
11
|
+
const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
|
12
12
|
const nextVerticalScroll = Math.min(coords.row - scrollPadding, hot.countRows() - 1);
|
13
13
|
hot.selection.setRangeEnd(coords);
|
14
14
|
hot.scrollViewportTo({
|
@@ -11,7 +11,7 @@ const command = exports.command = {
|
|
11
11
|
const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, 1);
|
12
12
|
if (row !== null) {
|
13
13
|
const coords = hot._createCellCoords(row, to.col);
|
14
|
-
const scrollPadding = to.row - hot.
|
14
|
+
const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
|
15
15
|
const nextVerticalScroll = Math.max(coords.row - scrollPadding, 0);
|
16
16
|
hot.selection.setRangeEnd(coords);
|
17
17
|
hot.scrollViewportTo({
|
@@ -8,7 +8,7 @@ export const command = {
|
|
8
8
|
const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, 1);
|
9
9
|
if (row !== null) {
|
10
10
|
const coords = hot._createCellCoords(row, to.col);
|
11
|
-
const scrollPadding = to.row - hot.
|
11
|
+
const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
|
12
12
|
const nextVerticalScroll = Math.max(coords.row - scrollPadding, 0);
|
13
13
|
hot.selection.setRangeEnd(coords);
|
14
14
|
hot.scrollViewportTo({
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.createKeyboardShortcutCommandsPool = createKeyboardShortcutCommandsPool;
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
6
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
5
7
|
var _editor = require("./editor");
|
6
8
|
var _extendCellsSelection = require("./extendCellsSelection");
|
7
9
|
var _moveCellSelection = require("./moveCellSelection");
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
2
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
1
3
|
import { getAllCommands as getAllEditorCommands } from "./editor/index.mjs";
|
2
4
|
import { getAllCommands as getAllSelectionExtendCommands } from "./extendCellsSelection/index.mjs";
|
3
5
|
import { getAllCommands as getAllSelectionMoveCommands } from "./moveCellSelection/index.mjs";
|
@@ -7,10 +7,10 @@ const command = exports.command = {
|
|
7
7
|
const {
|
8
8
|
highlight
|
9
9
|
} = hot.getSelectedRangeLast();
|
10
|
-
const firstVisibleRow = hot.
|
11
|
-
const firstVisibleColumn = hot.
|
12
|
-
const lastVisibleRow = hot.
|
13
|
-
const lastVisibleColumn = hot.
|
10
|
+
const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
|
11
|
+
const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
|
12
|
+
const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
|
13
|
+
const lastVisibleColumn = hot.getLastFullyVisibleColumn() + 1;
|
14
14
|
const visibleCoordsFrom = hot._createCellCoords(firstVisibleRow, firstVisibleColumn);
|
15
15
|
const visibleCoordsTo = hot._createCellCoords(lastVisibleRow, lastVisibleColumn);
|
16
16
|
const visibleRange = hot._createCellRange(visibleCoordsFrom, visibleCoordsFrom, visibleCoordsTo);
|
@@ -4,10 +4,10 @@ export const command = {
|
|
4
4
|
const {
|
5
5
|
highlight
|
6
6
|
} = hot.getSelectedRangeLast();
|
7
|
-
const firstVisibleRow = hot.
|
8
|
-
const firstVisibleColumn = hot.
|
9
|
-
const lastVisibleRow = hot.
|
10
|
-
const lastVisibleColumn = hot.
|
7
|
+
const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
|
8
|
+
const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
|
9
|
+
const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
|
10
|
+
const lastVisibleColumn = hot.getLastFullyVisibleColumn() + 1;
|
11
11
|
const visibleCoordsFrom = hot._createCellCoords(firstVisibleRow, firstVisibleColumn);
|
12
12
|
const visibleCoordsTo = hot._createCellCoords(lastVisibleRow, lastVisibleColumn);
|
13
13
|
const visibleRange = hot._createCellRange(visibleCoordsFrom, visibleCoordsFrom, visibleCoordsTo);
|