handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +29 -23
- package/3rdparty/walkontable/src/core/_base.mjs +29 -23
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +12 -6
- package/3rdparty/walkontable/src/facade/core.mjs +12 -6
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +8 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
- package/3rdparty/walkontable/src/overlay/top.js +9 -8
- package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
- package/3rdparty/walkontable/src/overlays.js +10 -26
- package/3rdparty/walkontable/src/overlays.mjs +10 -26
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +4 -2
- package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
- package/3rdparty/walkontable/src/renderer/table.js +13 -4
- package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
- package/3rdparty/walkontable/src/scroll.js +46 -37
- package/3rdparty/walkontable/src/scroll.mjs +46 -37
- package/3rdparty/walkontable/src/selection/border/border.js +52 -58
- package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
- package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
- package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
- package/3rdparty/walkontable/src/selection/index.js +6 -4
- package/3rdparty/walkontable/src/selection/index.mjs +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +3 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
- package/3rdparty/walkontable/src/selection/scanner.js +46 -11
- package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
- package/3rdparty/walkontable/src/settings.js +8 -9
- package/3rdparty/walkontable/src/settings.mjs +8 -9
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +25 -36
- package/3rdparty/walkontable/src/table.mjs +25 -36
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -43
- package/3rdparty/walkontable/src/utils/column.mjs +1 -43
- package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
- package/3rdparty/walkontable/src/viewport.js +94 -91
- package/3rdparty/walkontable/src/viewport.mjs +95 -92
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/base.js +4 -4
- package/base.mjs +3 -3
- package/core/focusCatcher/focusDetector.js +1 -0
- package/core/focusCatcher/focusDetector.mjs +1 -0
- package/core/hooks/bucket.js +184 -0
- package/core/hooks/bucket.mjs +180 -0
- package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
- package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
- package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
- package/core/hooks/index.js +385 -0
- package/core/hooks/index.mjs +381 -0
- package/core/index.js +2 -0
- package/core.d.ts +5 -3
- package/core.js +77 -35
- package/core.mjs +69 -27
- package/dataMap/dataMap.js +3 -0
- package/dataMap/dataMap.mjs +3 -0
- package/dataMap/dataSource.js +2 -0
- package/dataMap/dataSource.mjs +2 -0
- package/dataMap/metaManager/index.js +2 -0
- package/dataMap/metaManager/index.mjs +2 -0
- package/dataMap/metaManager/metaSchema.js +91 -5
- package/dataMap/metaManager/metaSchema.mjs +91 -5
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
- package/dist/handsontable.css +84 -72
- package/dist/handsontable.full.css +317 -304
- package/dist/handsontable.full.js +14826 -7294
- package/dist/handsontable.full.min.css +15 -10
- package/dist/handsontable.full.min.js +262 -69
- package/dist/handsontable.js +7826 -5552
- package/dist/handsontable.min.css +10 -6
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/editorManager.js +2 -2
- package/editorManager.mjs +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
- package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
- package/editors/baseEditor/baseEditor.js +25 -18
- package/editors/baseEditor/baseEditor.mjs +26 -19
- package/editors/dateEditor/dateEditor.js +9 -0
- package/editors/dateEditor/dateEditor.mjs +10 -1
- package/editors/dropdownEditor/dropdownEditor.js +4 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
- package/editors/handsontableEditor/handsontableEditor.js +36 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
- package/editors/passwordEditor/passwordEditor.js +18 -0
- package/editors/passwordEditor/passwordEditor.mjs +18 -0
- package/editors/registry.js +2 -2
- package/editors/registry.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +5 -12
- package/editors/textEditor/textEditor.mjs +6 -13
- package/focusManager.js +5 -7
- package/focusManager.mjs +5 -7
- package/helpers/array.js +2 -0
- package/helpers/array.mjs +2 -0
- package/helpers/data.js +3 -0
- package/helpers/data.mjs +3 -0
- package/helpers/dom/element.js +39 -18
- package/helpers/dom/element.mjs +38 -17
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +3 -3
- package/helpers/moves.js +3 -0
- package/helpers/moves.mjs +3 -0
- package/helpers/number.js +1 -0
- package/helpers/number.mjs +1 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/index.d.ts +8 -0
- package/i18n/languages/ja-JP.d.ts +1 -1
- package/i18n/phraseFormatters/substituteVariables.js +1 -0
- package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
- package/index.d.ts +9 -1
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/package.json +22 -7
- package/plugins/autoColumnSize/autoColumnSize.js +22 -27
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
- package/plugins/autoRowSize/autoRowSize.js +20 -22
- package/plugins/autoRowSize/autoRowSize.mjs +21 -23
- package/plugins/autofill/autofill.js +4 -5
- package/plugins/autofill/autofill.mjs +1 -1
- package/plugins/base/base.d.ts +1 -1
- package/plugins/base/base.js +41 -0
- package/plugins/base/base.mjs +42 -1
- package/plugins/base/index.js +2 -1
- package/plugins/base/index.mjs +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
- package/plugins/columnSorting/columnSorting.js +5 -4
- package/plugins/columnSorting/columnSorting.mjs +3 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/utils.js +3 -0
- package/plugins/columnSorting/utils.mjs +3 -0
- package/plugins/columnSummary/endpoints.js +3 -0
- package/plugins/columnSummary/endpoints.mjs +3 -0
- package/plugins/comments/commentEditor.js +9 -0
- package/plugins/comments/commentEditor.mjs +9 -0
- package/plugins/comments/comments.js +24 -18
- package/plugins/comments/comments.mjs +26 -20
- package/plugins/comments/editorResizeObserver.js +2 -0
- package/plugins/comments/editorResizeObserver.mjs +2 -0
- package/plugins/contextMenu/contextMenu.d.ts +2 -1
- package/plugins/contextMenu/contextMenu.js +6 -7
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/index.js +2 -0
- package/plugins/contextMenu/menu/menu.js +10 -5
- package/plugins/contextMenu/menu/menu.mjs +11 -6
- package/plugins/contextMenu/menu/positioner.js +4 -2
- package/plugins/contextMenu/menu/positioner.mjs +4 -2
- package/plugins/contextMenu/menu/shortcuts.js +3 -1
- package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
- package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
- package/plugins/contextMenu/utils.js +0 -10
- package/plugins/contextMenu/utils.mjs +0 -9
- package/plugins/copyPaste/copyPaste.d.ts +1 -0
- package/plugins/copyPaste/copyPaste.js +32 -23
- package/plugins/copyPaste/copyPaste.mjs +24 -15
- package/plugins/customBorders/utils.js +2 -0
- package/plugins/customBorders/utils.mjs +2 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
- package/plugins/dropdownMenu/dropdownMenu.js +6 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -0
- package/plugins/exportFile/types/csv.mjs +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/operators.js +2 -0
- package/plugins/filters/component/operators.mjs +2 -0
- package/plugins/filters/component/value.js +3 -0
- package/plugins/filters/component/value.mjs +3 -0
- package/plugins/filters/conditionCollection.js +3 -0
- package/plugins/filters/conditionCollection.mjs +3 -0
- package/plugins/filters/conditionUpdateObserver.js +2 -0
- package/plugins/filters/conditionUpdateObserver.mjs +2 -0
- package/plugins/filters/filters.js +43 -13
- package/plugins/filters/filters.mjs +43 -13
- package/plugins/filters/logicalOperations/conjunction.js +2 -0
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunction.js +2 -0
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
- package/plugins/filters/menu/focusController.js +38 -14
- package/plugins/filters/menu/focusController.mjs +38 -14
- package/plugins/filters/ui/multipleSelect.js +10 -0
- package/plugins/filters/ui/multipleSelect.mjs +10 -0
- package/plugins/formulas/engine/register.js +3 -0
- package/plugins/formulas/engine/register.mjs +3 -0
- package/plugins/formulas/engine/settings.js +3 -0
- package/plugins/formulas/engine/settings.mjs +3 -0
- package/plugins/formulas/formulas.js +12 -7
- package/plugins/formulas/formulas.mjs +6 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
- package/plugins/hiddenColumns/hiddenColumns.js +22 -30
- package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
- package/plugins/hiddenRows/hiddenRows.js +21 -29
- package/plugins/hiddenRows/hiddenRows.mjs +17 -25
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -0
- package/plugins/index.mjs +3 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
- package/plugins/manualColumnMove/manualColumnMove.js +6 -6
- package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
- package/plugins/manualColumnResize/manualColumnResize.js +26 -12
- package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
- package/plugins/manualRowMove/manualRowMove.js +8 -6
- package/plugins/manualRowMove/manualRowMove.mjs +6 -4
- package/plugins/manualRowResize/manualRowResize.js +3 -2
- package/plugins/manualRowResize/manualRowResize.mjs +4 -3
- package/plugins/mergeCells/cellsCollection.js +19 -3
- package/plugins/mergeCells/cellsCollection.mjs +20 -4
- package/plugins/mergeCells/mergeCells.d.ts +6 -2
- package/plugins/mergeCells/mergeCells.js +84 -56
- package/plugins/mergeCells/mergeCells.mjs +82 -54
- package/plugins/mergeCells/renderer.js +13 -3
- package/plugins/mergeCells/renderer.mjs +13 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
- package/plugins/nestedHeaders/nestedHeaders.js +63 -16
- package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
- package/plugins/nestedHeaders/stateManager/index.js +1 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/plugins/nestedRows/ui/headers.js +7 -1
- package/plugins/nestedRows/ui/headers.mjs +7 -1
- package/plugins/nestedRows/utils/rowMoveController.js +4 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
- package/plugins/persistentState/persistentState.js +4 -4
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +162 -0
- package/plugins/stretchColumns/calculator.mjs +158 -0
- package/plugins/stretchColumns/index.d.ts +1 -0
- package/plugins/stretchColumns/index.js +7 -0
- package/plugins/stretchColumns/index.mjs +1 -0
- package/plugins/stretchColumns/strategies/_base.js +85 -0
- package/plugins/stretchColumns/strategies/_base.mjs +81 -0
- package/plugins/stretchColumns/strategies/all.js +71 -0
- package/plugins/stretchColumns/strategies/all.mjs +67 -0
- package/plugins/stretchColumns/strategies/last.js +79 -0
- package/plugins/stretchColumns/strategies/last.mjs +75 -0
- package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
- package/plugins/stretchColumns/stretchColumns.js +222 -0
- package/plugins/stretchColumns/stretchColumns.mjs +218 -0
- package/plugins/trimRows/trimRows.js +2 -0
- package/plugins/trimRows/trimRows.mjs +2 -0
- package/plugins/undoRedo/undoRedo.js +9 -5
- package/plugins/undoRedo/undoRedo.mjs +8 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
- package/selection/index.js +2 -0
- package/selection/range.js +2 -0
- package/selection/range.mjs +2 -0
- package/selection/selection.js +7 -2
- package/selection/selection.mjs +7 -2
- package/selection/utils.js +2 -0
- package/selection/utils.mjs +2 -0
- package/settings.d.ts +4 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/index.js +2 -0
- package/shortcutContexts/commands/index.mjs +2 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
- package/shortcutContexts/index.js +2 -0
- package/shortcutContexts/index.mjs +2 -0
- package/shortcuts/context.js +3 -0
- package/shortcuts/context.mjs +3 -0
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +1 -0
- package/shortcuts/utils.mjs +1 -0
- package/styles/handsontable.css +2307 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-horizon.css +607 -0
- package/styles/ht-theme-horizon.min.css +30 -0
- package/styles/ht-theme-main.css +613 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/tableView.js +205 -33
- package/tableView.mjs +206 -34
- package/translations/changesObservable/observable.js +2 -0
- package/translations/changesObservable/observable.mjs +2 -0
- package/translations/index.js +2 -0
- package/translations/indexMapper.js +4 -0
- package/translations/indexMapper.mjs +4 -0
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -0
- package/translations/mapCollections/mapCollection.mjs +2 -0
- package/translations/maps/index.js +2 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/autoResize.js +11 -3
- package/utils/autoResize.mjs +11 -3
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +2 -0
- package/utils/ghostTable.js +7 -3
- package/utils/ghostTable.mjs +7 -3
- package/utils/parseTable.js +4 -0
- package/utils/parseTable.mjs +4 -0
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -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);
|