handsontable 11.1.0 → 12.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/border.js +120 -98
- package/3rdparty/walkontable/src/border.mjs +120 -94
- package/3rdparty/walkontable/src/cell/coords.js +59 -17
- package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
- package/3rdparty/walkontable/src/cell/range.js +278 -99
- package/3rdparty/walkontable/src/cell/range.mjs +273 -99
- package/3rdparty/walkontable/src/core/_base.js +452 -0
- package/3rdparty/walkontable/src/core/_base.mjs +440 -0
- package/3rdparty/walkontable/src/core/clone.js +97 -0
- package/3rdparty/walkontable/src/core/clone.mjs +80 -0
- package/3rdparty/walkontable/src/core/core.js +183 -0
- package/3rdparty/walkontable/src/core/core.mjs +160 -0
- package/3rdparty/walkontable/src/event.js +99 -66
- package/3rdparty/walkontable/src/event.mjs +99 -63
- package/3rdparty/walkontable/src/facade/core.js +251 -0
- package/3rdparty/walkontable/src/facade/core.mjs +243 -0
- package/3rdparty/walkontable/src/index.js +2 -46
- package/3rdparty/walkontable/src/index.mjs +3 -13
- package/3rdparty/walkontable/src/overlay/_base.js +124 -57
- package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
- package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
- package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
- package/3rdparty/walkontable/src/overlay/constants.js +25 -9
- package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
- package/3rdparty/walkontable/src/overlay/index.js +10 -19
- package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
- package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
- package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
- package/3rdparty/walkontable/src/overlay/top.js +93 -68
- package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
- package/3rdparty/walkontable/src/overlays.js +225 -156
- package/3rdparty/walkontable/src/overlays.mjs +224 -154
- package/3rdparty/walkontable/src/renderer/cells.js +4 -3
- package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
- package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rows.js +2 -2
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/scroll.js +125 -104
- package/3rdparty/walkontable/src/scroll.mjs +124 -104
- package/3rdparty/walkontable/src/selection.js +10 -14
- package/3rdparty/walkontable/src/selection.mjs +10 -12
- package/3rdparty/walkontable/src/settings.js +235 -126
- package/3rdparty/walkontable/src/settings.mjs +235 -125
- package/3rdparty/walkontable/src/table/bottom.js +16 -5
- package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
- package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
- package/3rdparty/walkontable/src/table/master.js +22 -12
- package/3rdparty/walkontable/src/table/master.mjs +22 -12
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
- package/3rdparty/walkontable/src/table/top.js +16 -5
- package/3rdparty/walkontable/src/table/top.mjs +15 -5
- package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table.js +235 -140
- package/3rdparty/walkontable/src/table.mjs +231 -134
- package/3rdparty/walkontable/src/types.js +103 -0
- package/3rdparty/walkontable/src/types.mjs +102 -0
- package/3rdparty/walkontable/src/utils/column.js +22 -33
- package/3rdparty/walkontable/src/utils/column.mjs +22 -30
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
- package/3rdparty/walkontable/src/utils/row.js +9 -4
- package/3rdparty/walkontable/src/utils/row.mjs +9 -4
- package/3rdparty/walkontable/src/viewport.js +89 -100
- package/3rdparty/walkontable/src/viewport.mjs +89 -97
- package/CHANGELOG.md +92 -0
- package/LICENSE.txt +1 -1
- package/README.md +0 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/timeType/timeType.d.ts +6 -6
- package/cellTypes/timeType/timeType.js +4 -5
- package/cellTypes/timeType/timeType.mjs +4 -5
- package/core.d.ts +6 -1
- package/core.js +508 -80
- package/core.mjs +517 -92
- package/dataMap/index.js +4 -0
- package/dataMap/index.mjs +2 -1
- package/dataMap/metaManager/index.js +2 -2
- package/dataMap/metaManager/index.mjs +2 -2
- package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
- package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
- package/dataMap/metaManager/metaSchema.js +282 -187
- package/dataMap/metaManager/metaSchema.mjs +282 -187
- package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
- package/dataMap/replaceData.js +3 -17
- package/dataMap/replaceData.mjs +3 -17
- package/dist/handsontable.css +268 -92
- package/dist/handsontable.full.css +269 -103
- package/dist/handsontable.full.js +41990 -35658
- package/dist/handsontable.full.min.css +9 -9
- package/dist/handsontable.full.min.js +144 -144
- package/dist/handsontable.js +29561 -25597
- package/dist/handsontable.min.css +8 -8
- package/dist/handsontable.min.js +4 -4
- package/dist/languages/all.js +131 -34
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +167 -0
- package/dist/languages/ar-AR.min.js +1 -0
- package/dist/languages/cs-CZ.js +167 -0
- package/dist/languages/cs-CZ.min.js +1 -0
- package/dist/languages/de-CH.js +31 -29
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +4 -2
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +4 -2
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +4 -2
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.js +4 -2
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/it-IT.js +4 -2
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +36 -38
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +36 -39
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +2 -2
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +2 -2
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +2 -2
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +2 -2
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +2 -2
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +2 -2
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +171 -0
- package/dist/languages/sr-SP.min.js +1 -0
- package/dist/languages/zh-CN.js +24 -24
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +24 -24
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +120 -267
- package/editorManager.mjs +128 -278
- package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
- package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
- package/editors/baseEditor/baseEditor.js +205 -34
- package/editors/baseEditor/baseEditor.mjs +200 -32
- package/editors/checkboxEditor/checkboxEditor.js +2 -2
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
- package/editors/dateEditor/dateEditor.js +21 -8
- package/editors/dateEditor/dateEditor.mjs +22 -9
- package/editors/dropdownEditor/dropdownEditor.js +3 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
- package/editors/handsontableEditor/handsontableEditor.js +106 -55
- package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
- package/editors/index.d.ts +3 -0
- package/editors/index.js +6 -0
- package/editors/index.mjs +3 -1
- package/editors/numericEditor/numericEditor.js +2 -2
- package/editors/numericEditor/numericEditor.mjs +2 -2
- package/editors/passwordEditor/passwordEditor.js +3 -3
- package/editors/passwordEditor/passwordEditor.mjs +3 -3
- package/editors/selectEditor/selectEditor.js +65 -110
- package/editors/selectEditor/selectEditor.mjs +66 -109
- package/editors/textEditor/caretPositioner.js +49 -0
- package/editors/textEditor/caretPositioner.mjs +42 -0
- package/editors/textEditor/textEditor.js +205 -181
- package/editors/textEditor/textEditor.mjs +199 -179
- package/editors/timeEditor/index.d.ts +1 -0
- package/editors/timeEditor/index.js +9 -0
- package/editors/timeEditor/index.mjs +1 -0
- package/editors/timeEditor/timeEditor.d.ts +7 -0
- package/editors/timeEditor/timeEditor.js +105 -0
- package/editors/timeEditor/timeEditor.mjs +84 -0
- package/eventManager.js +4 -2
- package/eventManager.mjs +4 -2
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/ar-AR.js +41 -0
- package/i18n/languages/ar-AR.mjs +17 -0
- package/i18n/languages/cs-CZ.js +40 -0
- package/i18n/languages/cs-CZ.mjs +16 -0
- package/i18n/languages/index.js +12 -0
- package/i18n/languages/index.mjs +4 -1
- package/i18n/languages/sr-SP.js +40 -0
- package/i18n/languages/sr-SP.mjs +16 -0
- package/index.d.ts +4 -0
- package/languages/all.js +131 -34
- package/languages/ar-AR.js +167 -0
- package/languages/ar-AR.mjs +19 -0
- package/languages/cs-CZ.js +167 -0
- package/languages/cs-CZ.mjs +18 -0
- package/languages/de-CH.js +31 -29
- package/languages/de-DE.js +4 -2
- package/languages/en-US.js +4 -2
- package/languages/es-MX.js +4 -2
- package/languages/fr-FR.js +4 -2
- package/languages/index.js +131 -34
- package/languages/index.mjs +4 -1
- package/languages/it-IT.js +4 -2
- package/languages/ja-JP.js +36 -38
- package/languages/ko-KR.js +36 -39
- package/languages/lv-LV.js +2 -2
- package/languages/nb-NO.js +2 -2
- package/languages/nl-NL.js +2 -2
- package/languages/pl-PL.js +2 -2
- package/languages/pt-BR.js +2 -2
- package/languages/ru-RU.js +2 -2
- package/languages/sr-SP.js +171 -0
- package/languages/sr-SP.mjs +18 -0
- package/languages/zh-CN.js +24 -24
- package/languages/zh-TW.js +24 -24
- package/package.json +44 -4
- package/pluginHooks.js +49 -13
- package/pluginHooks.mjs +49 -13
- package/plugins/autoColumnSize/autoColumnSize.js +15 -10
- package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
- package/plugins/autoRowSize/autoRowSize.js +14 -9
- package/plugins/autoRowSize/autoRowSize.mjs +14 -9
- package/plugins/autofill/autofill.js +49 -33
- package/plugins/autofill/autofill.mjs +49 -32
- package/plugins/autofill/utils.js +10 -11
- package/plugins/autofill/utils.mjs +10 -10
- package/plugins/base/base.d.ts +8 -2
- package/plugins/base/base.js +67 -4
- package/plugins/base/base.mjs +66 -4
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
- package/plugins/columnSorting/columnSorting.js +5 -7
- package/plugins/columnSorting/columnSorting.mjs +5 -6
- package/plugins/columnSummary/columnSummary.js +3 -3
- package/plugins/columnSummary/columnSummary.mjs +3 -3
- package/plugins/comments/commentEditor.js +18 -2
- package/plugins/comments/commentEditor.mjs +19 -3
- package/plugins/comments/comments.js +57 -46
- package/plugins/comments/comments.mjs +58 -46
- package/plugins/contextMenu/contextMenu.js +10 -6
- package/plugins/contextMenu/contextMenu.mjs +10 -6
- package/plugins/contextMenu/menu.js +222 -110
- package/plugins/contextMenu/menu.mjs +219 -111
- package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
- package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
- package/plugins/contextMenu/utils.js +2 -2
- package/plugins/contextMenu/utils.mjs +2 -2
- package/plugins/copyPaste/copyPaste.js +31 -21
- package/plugins/copyPaste/copyPaste.mjs +30 -21
- package/plugins/customBorders/contextMenuItem/left.js +4 -3
- package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
- package/plugins/customBorders/contextMenuItem/right.js +4 -3
- package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
- package/plugins/customBorders/customBorders.js +144 -87
- package/plugins/customBorders/customBorders.mjs +143 -85
- package/plugins/customBorders/utils.js +131 -27
- package/plugins/customBorders/utils.mjs +115 -27
- package/plugins/dragToScroll/dragToScroll.js +10 -5
- package/plugins/dragToScroll/dragToScroll.mjs +10 -5
- package/plugins/dropdownMenu/dropdownMenu.js +9 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +2 -2
- package/plugins/exportFile/types/csv.js +2 -2
- package/plugins/exportFile/types/csv.mjs +2 -2
- package/plugins/filters/component/actionBar.js +2 -2
- package/plugins/filters/component/actionBar.mjs +2 -2
- package/plugins/filters/component/condition.js +3 -3
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +2 -2
- package/plugins/filters/component/operators.mjs +2 -2
- package/plugins/filters/component/value.js +3 -3
- package/plugins/filters/component/value.mjs +3 -3
- package/plugins/filters/filters.js +11 -8
- package/plugins/filters/filters.mjs +11 -8
- package/plugins/filters/ui/input.js +3 -3
- package/plugins/filters/ui/input.mjs +3 -3
- package/plugins/filters/ui/link.js +3 -3
- package/plugins/filters/ui/link.mjs +3 -3
- package/plugins/filters/ui/multipleSelect.js +18 -31
- package/plugins/filters/ui/multipleSelect.mjs +18 -31
- package/plugins/filters/ui/radioInput.js +3 -3
- package/plugins/filters/ui/radioInput.mjs +3 -3
- package/plugins/filters/ui/select.js +4 -4
- package/plugins/filters/ui/select.mjs +4 -4
- package/plugins/formulas/formulas.js +14 -9
- package/plugins/formulas/formulas.mjs +14 -9
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
- package/plugins/hiddenColumns/hiddenColumns.js +9 -4
- package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
- package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
- package/plugins/hiddenRows/hiddenRows.js +9 -4
- package/plugins/hiddenRows/hiddenRows.mjs +9 -4
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
- package/plugins/manualColumnMove/manualColumnMove.js +70 -70
- package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
- package/plugins/manualColumnMove/ui/_base.js +25 -12
- package/plugins/manualColumnMove/ui/_base.mjs +24 -12
- package/plugins/manualColumnMove/ui/backlight.js +3 -3
- package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
- package/plugins/manualColumnMove/ui/guideline.js +3 -3
- package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
- package/plugins/manualColumnResize/manualColumnResize.js +37 -21
- package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
- package/plugins/manualRowMove/manualRowMove.js +26 -34
- package/plugins/manualRowMove/manualRowMove.mjs +26 -34
- package/plugins/manualRowMove/ui/backlight.js +3 -3
- package/plugins/manualRowMove/ui/backlight.mjs +3 -3
- package/plugins/manualRowMove/ui/guideline.js +3 -3
- package/plugins/manualRowMove/ui/guideline.mjs +3 -3
- package/plugins/manualRowResize/manualRowResize.js +34 -19
- package/plugins/manualRowResize/manualRowResize.mjs +34 -19
- package/plugins/mergeCells/calculations/autofill.js +6 -5
- package/plugins/mergeCells/calculations/autofill.mjs +6 -4
- package/plugins/mergeCells/calculations/selection.js +9 -4
- package/plugins/mergeCells/calculations/selection.mjs +9 -4
- package/plugins/mergeCells/cellCoords.js +16 -4
- package/plugins/mergeCells/cellCoords.mjs +16 -3
- package/plugins/mergeCells/cellsCollection.js +30 -23
- package/plugins/mergeCells/cellsCollection.mjs +30 -22
- package/plugins/mergeCells/mergeCells.js +94 -61
- package/plugins/mergeCells/mergeCells.mjs +94 -59
- package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
- package/plugins/nestedHeaders/nestedHeaders.js +31 -20
- package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
- package/plugins/nestedHeaders/stateManager/utils.js +3 -4
- package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
- package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
- package/plugins/nestedRows/nestedRows.js +9 -4
- package/plugins/nestedRows/nestedRows.mjs +9 -4
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +2 -2
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
- package/plugins/nestedRows/ui/headers.js +2 -2
- package/plugins/nestedRows/ui/headers.mjs +2 -2
- package/plugins/nestedRows/utils/rowMoveController.js +2 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
- package/plugins/persistentState/persistentState.js +9 -4
- package/plugins/persistentState/persistentState.mjs +9 -4
- package/plugins/search/search.js +9 -4
- package/plugins/search/search.mjs +9 -4
- package/plugins/touchScroll/touchScroll.js +27 -21
- package/plugins/touchScroll/touchScroll.mjs +27 -21
- package/plugins/trimRows/trimRows.js +9 -4
- package/plugins/trimRows/trimRows.mjs +9 -4
- package/plugins/undoRedo/undoRedo.js +53 -47
- package/plugins/undoRedo/undoRedo.mjs +53 -46
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
- package/renderers/index.d.ts +4 -1
- package/renderers/index.js +6 -0
- package/renderers/index.mjs +3 -1
- package/renderers/numericRenderer/numericRenderer.js +1 -0
- package/renderers/numericRenderer/numericRenderer.mjs +1 -0
- package/renderers/timeRenderer/index.d.ts +1 -0
- package/renderers/timeRenderer/index.js +9 -0
- package/renderers/timeRenderer/index.mjs +1 -0
- package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
- package/renderers/timeRenderer/timeRenderer.js +31 -0
- package/renderers/timeRenderer/timeRenderer.mjs +20 -0
- package/selection/highlight/visualSelection.js +94 -220
- package/selection/highlight/visualSelection.mjs +91 -213
- package/selection/mouseEventHandler.js +15 -10
- package/selection/mouseEventHandler.mjs +15 -9
- package/selection/range.js +4 -5
- package/selection/range.mjs +4 -5
- package/selection/selection.js +35 -22
- package/selection/selection.mjs +35 -20
- package/selection/transformation.js +4 -6
- package/selection/transformation.mjs +4 -5
- package/settings.d.ts +3 -1
- package/shortcuts/context.d.ts +20 -0
- package/shortcuts/context.js +296 -0
- package/shortcuts/context.mjs +268 -0
- package/shortcuts/index.d.ts +1 -0
- package/shortcuts/index.js +8 -0
- package/shortcuts/index.mjs +1 -0
- package/shortcuts/keyObserver.js +67 -0
- package/shortcuts/keyObserver.mjs +58 -0
- package/shortcuts/manager.d.ts +10 -0
- package/shortcuts/manager.js +185 -0
- package/shortcuts/manager.mjs +176 -0
- package/shortcuts/recorder.js +192 -0
- package/shortcuts/recorder.mjs +180 -0
- package/shortcuts/utils.js +77 -0
- package/shortcuts/utils.mjs +54 -0
- package/tableView.js +164 -84
- package/tableView.mjs +164 -74
- package/translations/changesObservable/observer.js +0 -1
- package/translations/changesObservable/observer.mjs +0 -1
- package/translations/indexMapper.d.ts +3 -1
- package/translations/indexMapper.js +89 -11
- package/translations/indexMapper.mjs +91 -20
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/maps/hidingMap.js +4 -2
- package/translations/maps/hidingMap.mjs +4 -2
- package/translations/maps/indexMap.js +2 -0
- package/translations/maps/indexMap.mjs +2 -0
- package/translations/maps/indexesSequence.js +5 -3
- package/translations/maps/indexesSequence.mjs +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
- package/translations/maps/physicalIndexToValueMap.js +5 -3
- package/translations/maps/physicalIndexToValueMap.mjs +5 -3
- package/translations/maps/trimmingMap.js +4 -2
- package/translations/maps/trimmingMap.mjs +4 -2
- package/utils/dataStructures/uniqueMap.js +14 -1
- package/utils/dataStructures/uniqueMap.mjs +14 -1
- package/utils/dataStructures/uniqueSet.js +9 -0
- package/utils/dataStructures/uniqueSet.mjs +9 -0
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/3rdparty/walkontable/src/core.js +0 -309
- package/3rdparty/walkontable/src/core.mjs +0 -293
- package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
- package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
- package/utils/keyStateObserver.js +0 -121
- package/utils/keyStateObserver.mjs +0 -103
@@ -69,13 +69,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
69
69
|
|
70
70
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
71
71
|
|
72
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
72
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
73
73
|
|
74
74
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
75
75
|
|
76
76
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
77
77
|
|
78
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
78
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
79
79
|
|
80
80
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
81
81
|
|
@@ -85,7 +85,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
85
85
|
|
86
86
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
87
87
|
|
88
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
88
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
89
89
|
|
90
90
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
91
91
|
|
@@ -106,6 +106,8 @@ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) {
|
|
106
106
|
var PLUGIN_KEY = 'nestedHeaders';
|
107
107
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
108
108
|
var PLUGIN_PRIORITY = 280;
|
109
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
110
|
+
|
109
111
|
/**
|
110
112
|
* @plugin NestedHeaders
|
111
113
|
* @class NestedHeaders
|
@@ -166,7 +168,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
166
168
|
value: null
|
167
169
|
});
|
168
170
|
|
169
|
-
_defineProperty(_assertThisInitialized(_this), "ghostTable", new _ghostTable.default(
|
171
|
+
_defineProperty(_assertThisInitialized(_this), "ghostTable", new _ghostTable.default(_this.hot, function (row, column) {
|
172
|
+
return _this.getHeaderSettings(row, column);
|
173
|
+
}));
|
170
174
|
|
171
175
|
_defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
|
172
176
|
|
@@ -237,7 +241,10 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
237
241
|
this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
|
238
242
|
}
|
239
243
|
/**
|
240
|
-
* Updates the plugin state.
|
244
|
+
* Updates the plugin's state.
|
245
|
+
*
|
246
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
247
|
+
* - [`nestedHeaders`](@/api/options.md#nestedheaders)
|
241
248
|
*/
|
242
249
|
|
243
250
|
}, {
|
@@ -287,10 +294,12 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
287
294
|
_classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, columnIndex);
|
288
295
|
}
|
289
296
|
});
|
297
|
+
|
298
|
+
_this3.ghostTable.buildWidthsMap();
|
290
299
|
}));
|
291
300
|
}
|
292
301
|
|
293
|
-
this.ghostTable.
|
302
|
+
this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();
|
294
303
|
|
295
304
|
_get(_getPrototypeOf(NestedHeaders.prototype), "updatePlugin", this).call(this);
|
296
305
|
}
|
@@ -366,11 +375,11 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
366
375
|
return;
|
367
376
|
}
|
368
377
|
|
369
|
-
var wt = this.hot.view.
|
378
|
+
var wt = this.hot.view._wt;
|
370
379
|
var headerLevels = wt.getSetting('columnHeaders').length;
|
371
380
|
var mainHeaders = wt.wtTable.THEAD;
|
372
381
|
var topHeaders = wt.wtOverlays.topOverlay.clone.wtTable.THEAD;
|
373
|
-
var topLeftCornerHeaders = wt.wtOverlays.
|
382
|
+
var topLeftCornerHeaders = wt.wtOverlays.topInlineStartCornerOverlay ? wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;
|
374
383
|
|
375
384
|
for (var i = 0; i < headerLevels; i++) {
|
376
385
|
var masterLevel = mainHeaders.childNodes[i];
|
@@ -413,7 +422,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
413
422
|
value: function headerRendererFactory(headerLevel) {
|
414
423
|
var _this4 = this;
|
415
424
|
|
416
|
-
var
|
425
|
+
var fixedColumnsStart = this.hot.view._wt.getSetting('fixedColumnsStart');
|
426
|
+
|
417
427
|
return function (renderedColumnIndex, TH) {
|
418
428
|
var _classPrivateFieldGet2;
|
419
429
|
|
@@ -441,12 +451,13 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
441
451
|
if (isPlaceholder || isHidden) {
|
442
452
|
(0, _element.addClass)(TH, 'hiddenHeader');
|
443
453
|
} else if (colspan > 1) {
|
444
|
-
var
|
454
|
+
var _wtOverlays$topInline, _wtOverlays$inlineSta;
|
445
455
|
|
446
|
-
var
|
447
|
-
var
|
456
|
+
var wtOverlays = view._wt.wtOverlays;
|
457
|
+
var isTopInlineStartOverlay = (_wtOverlays$topInline = wtOverlays.topInlineStartCornerOverlay) === null || _wtOverlays$topInline === void 0 ? void 0 : _wtOverlays$topInline.clone.wtTable.THEAD.contains(TH);
|
458
|
+
var isInlineStartOverlay = (_wtOverlays$inlineSta = wtOverlays.inlineStartOverlay) === null || _wtOverlays$inlineSta === void 0 ? void 0 : _wtOverlays$inlineSta.clone.wtTable.THEAD.contains(TH); // Check if there is a fixed column enabled, if so then reduce colspan to fixed column width.
|
448
459
|
|
449
|
-
var correctedColspan =
|
460
|
+
var correctedColspan = isTopInlineStartOverlay || isInlineStartOverlay ? Math.min(colspan, fixedColumnsStart - renderedColumnIndex) : colspan;
|
450
461
|
|
451
462
|
if (correctedColspan > 1) {
|
452
463
|
TH.setAttribute('colspan', correctedColspan);
|
@@ -558,9 +569,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
558
569
|
|
559
570
|
if (event.shiftKey && currentSelection) {
|
560
571
|
if (coords.col < currentSelection.from.col) {
|
561
|
-
columnsToSelect.push(currentSelection.
|
572
|
+
columnsToSelect.push(currentSelection.getTopEndCorner().col, columnIndex, coords.row);
|
562
573
|
} else if (coords.col > currentSelection.from.col) {
|
563
|
-
columnsToSelect.push(currentSelection.
|
574
|
+
columnsToSelect.push(currentSelection.getTopStartCorner().col, columnIndex + origColspan - 1, coords.row);
|
564
575
|
} else {
|
565
576
|
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
|
566
577
|
}
|
@@ -600,8 +611,8 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
600
611
|
var columnIndex = headerNodeData.columnIndex,
|
601
612
|
origColspan = headerNodeData.origColspan;
|
602
613
|
var selectedRange = this.hot.getSelectedRangeLast();
|
603
|
-
var
|
604
|
-
var
|
614
|
+
var topStartCoords = selectedRange.getTopStartCorner();
|
615
|
+
var bottomEndCoords = selectedRange.getBottomEndCorner();
|
605
616
|
var from = selectedRange.from; // Block the Selection module in controlling how the columns and cells are selected.
|
606
617
|
// From now on, the plugin is responsible for the selection.
|
607
618
|
|
@@ -610,9 +621,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
610
621
|
var columnsToSelect = [];
|
611
622
|
|
612
623
|
if (coords.col < from.col) {
|
613
|
-
columnsToSelect.push(
|
624
|
+
columnsToSelect.push(bottomEndCoords.col, columnIndex);
|
614
625
|
} else if (coords.col > from.col) {
|
615
|
-
columnsToSelect.push(
|
626
|
+
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
|
616
627
|
} else {
|
617
628
|
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
|
618
629
|
}
|
@@ -686,7 +697,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
686
697
|
}, {
|
687
698
|
key: "onModifyColWidth",
|
688
699
|
value: function onModifyColWidth(width, column) {
|
689
|
-
var cachedWidth = this.ghostTable.
|
700
|
+
var cachedWidth = this.ghostTable.getWidth(column);
|
690
701
|
return width > cachedWidth ? width : cachedWidth;
|
691
702
|
}
|
692
703
|
/**
|
@@ -29,13 +29,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
29
29
|
|
30
30
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
31
31
|
|
32
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
32
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
33
33
|
|
34
34
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
35
35
|
|
36
36
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
37
37
|
|
38
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
38
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
39
39
|
|
40
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
41
41
|
|
@@ -45,7 +45,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
45
45
|
|
46
46
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
47
47
|
|
48
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
48
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
49
49
|
|
50
50
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
51
51
|
|
@@ -74,6 +74,8 @@ import StateManager from "./stateManager/index.mjs";
|
|
74
74
|
import GhostTable from "./utils/ghostTable.mjs";
|
75
75
|
export var PLUGIN_KEY = 'nestedHeaders';
|
76
76
|
export var PLUGIN_PRIORITY = 280;
|
77
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
78
|
+
|
77
79
|
/**
|
78
80
|
* @plugin NestedHeaders
|
79
81
|
* @class NestedHeaders
|
@@ -132,7 +134,9 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
132
134
|
value: null
|
133
135
|
});
|
134
136
|
|
135
|
-
_defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(
|
137
|
+
_defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(_this.hot, function (row, column) {
|
138
|
+
return _this.getHeaderSettings(row, column);
|
139
|
+
}));
|
136
140
|
|
137
141
|
_defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
|
138
142
|
|
@@ -203,7 +207,10 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
203
207
|
this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
|
204
208
|
}
|
205
209
|
/**
|
206
|
-
* Updates the plugin state.
|
210
|
+
* Updates the plugin's state.
|
211
|
+
*
|
212
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
213
|
+
* - [`nestedHeaders`](@/api/options.md#nestedheaders)
|
207
214
|
*/
|
208
215
|
|
209
216
|
}, {
|
@@ -253,10 +260,12 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
253
260
|
_classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, columnIndex);
|
254
261
|
}
|
255
262
|
});
|
263
|
+
|
264
|
+
_this3.ghostTable.buildWidthsMap();
|
256
265
|
}));
|
257
266
|
}
|
258
267
|
|
259
|
-
this.ghostTable.
|
268
|
+
this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();
|
260
269
|
|
261
270
|
_get(_getPrototypeOf(NestedHeaders.prototype), "updatePlugin", this).call(this);
|
262
271
|
}
|
@@ -332,11 +341,11 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
332
341
|
return;
|
333
342
|
}
|
334
343
|
|
335
|
-
var wt = this.hot.view.
|
344
|
+
var wt = this.hot.view._wt;
|
336
345
|
var headerLevels = wt.getSetting('columnHeaders').length;
|
337
346
|
var mainHeaders = wt.wtTable.THEAD;
|
338
347
|
var topHeaders = wt.wtOverlays.topOverlay.clone.wtTable.THEAD;
|
339
|
-
var topLeftCornerHeaders = wt.wtOverlays.
|
348
|
+
var topLeftCornerHeaders = wt.wtOverlays.topInlineStartCornerOverlay ? wt.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD : null;
|
340
349
|
|
341
350
|
for (var i = 0; i < headerLevels; i++) {
|
342
351
|
var masterLevel = mainHeaders.childNodes[i];
|
@@ -379,7 +388,8 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
379
388
|
value: function headerRendererFactory(headerLevel) {
|
380
389
|
var _this4 = this;
|
381
390
|
|
382
|
-
var
|
391
|
+
var fixedColumnsStart = this.hot.view._wt.getSetting('fixedColumnsStart');
|
392
|
+
|
383
393
|
return function (renderedColumnIndex, TH) {
|
384
394
|
var _classPrivateFieldGet2;
|
385
395
|
|
@@ -407,12 +417,13 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
407
417
|
if (isPlaceholder || isHidden) {
|
408
418
|
addClass(TH, 'hiddenHeader');
|
409
419
|
} else if (colspan > 1) {
|
410
|
-
var
|
420
|
+
var _wtOverlays$topInline, _wtOverlays$inlineSta;
|
411
421
|
|
412
|
-
var
|
413
|
-
var
|
422
|
+
var wtOverlays = view._wt.wtOverlays;
|
423
|
+
var isTopInlineStartOverlay = (_wtOverlays$topInline = wtOverlays.topInlineStartCornerOverlay) === null || _wtOverlays$topInline === void 0 ? void 0 : _wtOverlays$topInline.clone.wtTable.THEAD.contains(TH);
|
424
|
+
var isInlineStartOverlay = (_wtOverlays$inlineSta = wtOverlays.inlineStartOverlay) === null || _wtOverlays$inlineSta === void 0 ? void 0 : _wtOverlays$inlineSta.clone.wtTable.THEAD.contains(TH); // Check if there is a fixed column enabled, if so then reduce colspan to fixed column width.
|
414
425
|
|
415
|
-
var correctedColspan =
|
426
|
+
var correctedColspan = isTopInlineStartOverlay || isInlineStartOverlay ? Math.min(colspan, fixedColumnsStart - renderedColumnIndex) : colspan;
|
416
427
|
|
417
428
|
if (correctedColspan > 1) {
|
418
429
|
TH.setAttribute('colspan', correctedColspan);
|
@@ -524,9 +535,9 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
524
535
|
|
525
536
|
if (event.shiftKey && currentSelection) {
|
526
537
|
if (coords.col < currentSelection.from.col) {
|
527
|
-
columnsToSelect.push(currentSelection.
|
538
|
+
columnsToSelect.push(currentSelection.getTopEndCorner().col, columnIndex, coords.row);
|
528
539
|
} else if (coords.col > currentSelection.from.col) {
|
529
|
-
columnsToSelect.push(currentSelection.
|
540
|
+
columnsToSelect.push(currentSelection.getTopStartCorner().col, columnIndex + origColspan - 1, coords.row);
|
530
541
|
} else {
|
531
542
|
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, coords.row);
|
532
543
|
}
|
@@ -566,8 +577,8 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
566
577
|
var columnIndex = headerNodeData.columnIndex,
|
567
578
|
origColspan = headerNodeData.origColspan;
|
568
579
|
var selectedRange = this.hot.getSelectedRangeLast();
|
569
|
-
var
|
570
|
-
var
|
580
|
+
var topStartCoords = selectedRange.getTopStartCorner();
|
581
|
+
var bottomEndCoords = selectedRange.getBottomEndCorner();
|
571
582
|
var from = selectedRange.from; // Block the Selection module in controlling how the columns and cells are selected.
|
572
583
|
// From now on, the plugin is responsible for the selection.
|
573
584
|
|
@@ -576,9 +587,9 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
576
587
|
var columnsToSelect = [];
|
577
588
|
|
578
589
|
if (coords.col < from.col) {
|
579
|
-
columnsToSelect.push(
|
590
|
+
columnsToSelect.push(bottomEndCoords.col, columnIndex);
|
580
591
|
} else if (coords.col > from.col) {
|
581
|
-
columnsToSelect.push(
|
592
|
+
columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
|
582
593
|
} else {
|
583
594
|
columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
|
584
595
|
}
|
@@ -652,7 +663,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
652
663
|
}, {
|
653
664
|
key: "onModifyColWidth",
|
654
665
|
value: function onModifyColWidth(width, column) {
|
655
|
-
var cachedWidth = this.ghostTable.
|
666
|
+
var cachedWidth = this.ghostTable.getWidth(column);
|
656
667
|
return width > cachedWidth ? width : cachedWidth;
|
657
668
|
}
|
658
669
|
/**
|
@@ -9,15 +9,14 @@ exports.createPlaceholderHeaderSettings = createPlaceholderHeaderSettings;
|
|
9
9
|
* @property {string} label The name/label of the column header.
|
10
10
|
* @property {number} colspan Current calculated colspan value of the rendered column header element.
|
11
11
|
* @property {number} origColspan Original colspan value, set once while parsing user-defined nested header settings.
|
12
|
-
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be
|
12
|
+
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be collapsed/expanded).
|
13
13
|
* @property {number[]} crossHiddenColumns The list of visual column indexes which indicates that the specified columns within
|
14
14
|
* the header settings are hidden.
|
15
15
|
* @property {boolean} isCollapsed The flag determines whether the node is collapsed.
|
16
16
|
* @property {boolean} isHidden The flag determines whether the column header at specified index is hidden. If true
|
17
17
|
* the TH element will be rendered as hidden (display: none).
|
18
|
-
* @property {boolean} isRoot The flag which determines whether the column header settings is
|
18
|
+
* @property {boolean} isRoot The flag which determines whether the column header settings is actually not renderable. That kind
|
19
19
|
* of objects are generated after colspaned header to fill an array to correct size.
|
20
|
-
*
|
21
20
|
* For example for header with colspan = 8 the 7 blank objects are generated to fill the array settings
|
22
21
|
* to length = 8.
|
23
22
|
* @property {boolean} isPlaceholder The flag determines whether the column header at the specified index is non-renderable.
|
@@ -63,7 +62,7 @@ function createDefaultHeaderSettings() {
|
|
63
62
|
};
|
64
63
|
}
|
65
64
|
/**
|
66
|
-
* Creates the header settings
|
65
|
+
* Creates the placeholder header settings object. Those settings tell the header renderers
|
67
66
|
* that this TH element should not be rendered (the node will be overlapped by the previously
|
68
67
|
* created node with colspan bigger than 1).
|
69
68
|
*
|
@@ -3,15 +3,14 @@
|
|
3
3
|
* @property {string} label The name/label of the column header.
|
4
4
|
* @property {number} colspan Current calculated colspan value of the rendered column header element.
|
5
5
|
* @property {number} origColspan Original colspan value, set once while parsing user-defined nested header settings.
|
6
|
-
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be
|
6
|
+
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be collapsed/expanded).
|
7
7
|
* @property {number[]} crossHiddenColumns The list of visual column indexes which indicates that the specified columns within
|
8
8
|
* the header settings are hidden.
|
9
9
|
* @property {boolean} isCollapsed The flag determines whether the node is collapsed.
|
10
10
|
* @property {boolean} isHidden The flag determines whether the column header at specified index is hidden. If true
|
11
11
|
* the TH element will be rendered as hidden (display: none).
|
12
|
-
* @property {boolean} isRoot The flag which determines whether the column header settings is
|
12
|
+
* @property {boolean} isRoot The flag which determines whether the column header settings is actually not renderable. That kind
|
13
13
|
* of objects are generated after colspaned header to fill an array to correct size.
|
14
|
-
*
|
15
14
|
* For example for header with colspan = 8 the 7 blank objects are generated to fill the array settings
|
16
15
|
* to length = 8.
|
17
16
|
* @property {boolean} isPlaceholder The flag determines whether the column header at the specified index is non-renderable.
|
@@ -57,7 +56,7 @@ export function createDefaultHeaderSettings() {
|
|
57
56
|
};
|
58
57
|
}
|
59
58
|
/**
|
60
|
-
* Creates the header settings
|
59
|
+
* Creates the placeholder header settings object. Those settings tell the header renderers
|
61
60
|
* that this TH element should not be rendered (the node will be overlapped by the previously
|
62
61
|
* created node with colspan bigger than 1).
|
63
62
|
*
|
@@ -5,66 +5,125 @@ exports.default = void 0;
|
|
5
5
|
|
6
6
|
var _element = require("../../../helpers/dom/element");
|
7
7
|
|
8
|
-
var _object = require("../../../helpers/object");
|
9
|
-
|
10
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
11
9
|
|
12
10
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
13
11
|
|
14
12
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
15
13
|
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
15
|
+
|
16
16
|
/**
|
17
|
+
* The class generates the nested headers structure in the DOM and reads the column width for
|
18
|
+
* each column. The hierarchy is built only for visible, non-hidden columns. Each time the
|
19
|
+
* column is shown or hidden, the structure is rebuilt, and the width of the columns in the
|
20
|
+
* map updated.
|
21
|
+
*
|
17
22
|
* @private
|
18
23
|
*/
|
19
24
|
var GhostTable = /*#__PURE__*/function () {
|
20
|
-
|
25
|
+
/**
|
26
|
+
* Reference to the Handsontable instance.
|
27
|
+
*
|
28
|
+
* @private
|
29
|
+
* @type {Handsontable}
|
30
|
+
*/
|
31
|
+
|
32
|
+
/**
|
33
|
+
* The function for retrieving the nested headers settings.
|
34
|
+
*
|
35
|
+
* @private
|
36
|
+
* @type {Function}
|
37
|
+
*/
|
38
|
+
|
39
|
+
/**
|
40
|
+
* The value that holds information about the number of the nested header layers (header rows).
|
41
|
+
*
|
42
|
+
* @private
|
43
|
+
* @type {number}
|
44
|
+
*/
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Temporary element created to get minimal headers widths.
|
48
|
+
*
|
49
|
+
* @private
|
50
|
+
* @type {*}
|
51
|
+
*/
|
52
|
+
|
53
|
+
/**
|
54
|
+
* PhysicalIndexToValueMap to keep and track of the columns' widths.
|
55
|
+
*
|
56
|
+
* @private
|
57
|
+
* @type {PhysicalIndexToValueMap}
|
58
|
+
*/
|
59
|
+
function GhostTable(hot, nestedHeaderSettingsGetter) {
|
21
60
|
_classCallCheck(this, GhostTable);
|
22
61
|
|
23
|
-
|
24
|
-
* Reference to NestedHeaders plugin.
|
25
|
-
*
|
26
|
-
* @type {NestedHeaders}
|
27
|
-
*/
|
28
|
-
this.nestedHeaders = plugin;
|
29
|
-
/**
|
30
|
-
* Temporary element created to get minimal headers widths.
|
31
|
-
*
|
32
|
-
* @type {*}
|
33
|
-
*/
|
62
|
+
_defineProperty(this, "hot", void 0);
|
34
63
|
|
35
|
-
this
|
36
|
-
/**
|
37
|
-
* Cached the headers widths.
|
38
|
-
*
|
39
|
-
* @type {Array}
|
40
|
-
*/
|
64
|
+
_defineProperty(this, "nestedHeaderSettingsGetter", void 0);
|
41
65
|
|
42
|
-
this
|
66
|
+
_defineProperty(this, "layersCount", 0);
|
67
|
+
|
68
|
+
_defineProperty(this, "container", void 0);
|
69
|
+
|
70
|
+
_defineProperty(this, "widthsMap", void 0);
|
71
|
+
|
72
|
+
this.hot = hot;
|
73
|
+
this.nestedHeaderSettingsGetter = nestedHeaderSettingsGetter;
|
74
|
+
this.widthsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap('nestedHeaders.widthsMap', 'physicalIndexToValue');
|
43
75
|
}
|
44
76
|
/**
|
45
|
-
*
|
77
|
+
* Sets the number of nested headers layers count.
|
46
78
|
*
|
47
|
-
* @
|
79
|
+
* @param {number} layersCount Total number of headers levels.
|
80
|
+
* @returns {GhostTable}
|
48
81
|
*/
|
49
82
|
|
50
83
|
|
51
84
|
_createClass(GhostTable, [{
|
52
|
-
key: "
|
53
|
-
value: function
|
54
|
-
this.
|
55
|
-
this
|
56
|
-
|
85
|
+
key: "setLayersCount",
|
86
|
+
value: function setLayersCount(layersCount) {
|
87
|
+
this.layersCount = layersCount;
|
88
|
+
return this;
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Gets the column width based on the visual column index.
|
92
|
+
*
|
93
|
+
* @param {number} visualColumn Visual column index.
|
94
|
+
* @returns {number|null}
|
95
|
+
*/
|
96
|
+
|
97
|
+
}, {
|
98
|
+
key: "getWidth",
|
99
|
+
value: function getWidth(visualColumn) {
|
100
|
+
return this.widthsMap.getValueAtIndex(this.hot.toPhysicalColumn(visualColumn));
|
101
|
+
}
|
102
|
+
/**
|
103
|
+
* Build cache of the headers widths.
|
104
|
+
*/
|
105
|
+
|
106
|
+
}, {
|
107
|
+
key: "buildWidthsMap",
|
108
|
+
value: function buildWidthsMap() {
|
109
|
+
this.container = this.hot.rootDocument.createElement('div');
|
110
|
+
this.container.classList.add('handsontable', 'htGhostTable', 'htAutoSize');
|
111
|
+
|
112
|
+
this._buildGhostTable(this.container);
|
113
|
+
|
114
|
+
this.hot.rootDocument.body.appendChild(this.container);
|
57
115
|
var columns = this.container.querySelectorAll('tr:last-of-type th');
|
58
116
|
var maxColumns = columns.length;
|
59
|
-
this.
|
117
|
+
this.widthsMap.clear();
|
60
118
|
|
61
|
-
for (var
|
62
|
-
this.
|
119
|
+
for (var column = 0; column < maxColumns; column++) {
|
120
|
+
var visualColumnsIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(column);
|
121
|
+
var physicalColumnIndex = this.hot.toPhysicalColumn(visualColumnsIndex);
|
122
|
+
this.widthsMap.setValueAtIndex(physicalColumnIndex, columns[column].offsetWidth);
|
63
123
|
}
|
64
124
|
|
65
125
|
this.container.parentNode.removeChild(this.container);
|
66
126
|
this.container = null;
|
67
|
-
this.nestedHeaders.hot.render();
|
68
127
|
}
|
69
128
|
/**
|
70
129
|
* Build temporary table for getting minimal columns widths.
|
@@ -74,63 +133,43 @@ var GhostTable = /*#__PURE__*/function () {
|
|
74
133
|
*/
|
75
134
|
|
76
135
|
}, {
|
77
|
-
key: "
|
78
|
-
value: function
|
79
|
-
var
|
136
|
+
key: "_buildGhostTable",
|
137
|
+
value: function _buildGhostTable(container) {
|
138
|
+
var _this$hot = this.hot,
|
139
|
+
rootDocument = _this$hot.rootDocument,
|
140
|
+
columnIndexMapper = _this$hot.columnIndexMapper;
|
80
141
|
var fragment = rootDocument.createDocumentFragment();
|
81
142
|
var table = rootDocument.createElement('table');
|
82
|
-
var
|
83
|
-
var
|
84
|
-
var maxRows = this.nestedHeaders.getLayersCount();
|
85
|
-
var maxCols = this.nestedHeaders.hot.countCols();
|
86
|
-
var lastRowIndex = maxRows - 1;
|
143
|
+
var isDropdownEnabled = !!this.hot.getSettings().dropdownMenu;
|
144
|
+
var maxRenderedCols = columnIndexMapper.getRenderableIndexesLength();
|
87
145
|
|
88
|
-
for (var row = 0; row <
|
146
|
+
for (var row = 0; row < this.layersCount; row++) {
|
89
147
|
var tr = rootDocument.createElement('tr');
|
90
|
-
lastRowColspan = false;
|
91
148
|
|
92
|
-
for (var col = 0; col <
|
93
|
-
var
|
94
|
-
var headerObj = (0, _object.clone)(this.nestedHeaders.getHeaderSettings(row, col));
|
149
|
+
for (var col = 0; col < maxRenderedCols; col++) {
|
150
|
+
var visualColumnsIndex = columnIndexMapper.getVisualFromRenderableIndex(col);
|
95
151
|
|
96
|
-
if (
|
97
|
-
|
98
|
-
|
99
|
-
lastRowColspan = true;
|
100
|
-
}
|
152
|
+
if (visualColumnsIndex === null) {
|
153
|
+
visualColumnsIndex = col;
|
154
|
+
}
|
101
155
|
|
102
|
-
|
103
|
-
|
104
|
-
}
|
105
|
-
}
|
156
|
+
var th = rootDocument.createElement('th');
|
157
|
+
var headerSettings = this.nestedHeaderSettingsGetter(row, visualColumnsIndex);
|
106
158
|
|
107
|
-
|
108
|
-
|
159
|
+
if (headerSettings && (!headerSettings.isPlaceholder || headerSettings.isHidden)) {
|
160
|
+
var label = headerSettings.label;
|
109
161
|
|
110
|
-
if (
|
111
|
-
|
162
|
+
if (isDropdownEnabled) {
|
163
|
+
label += '<button class="changeType"></button>';
|
112
164
|
}
|
113
165
|
|
114
|
-
|
166
|
+
(0, _element.fastInnerHTML)(th, label);
|
167
|
+
th.colSpan = headerSettings.colspan;
|
168
|
+
tr.appendChild(th);
|
115
169
|
}
|
116
170
|
}
|
117
171
|
|
118
172
|
table.appendChild(tr);
|
119
|
-
} // We have to be sure the last row contains only the single columns.
|
120
|
-
|
121
|
-
|
122
|
-
if (lastRowColspan) {
|
123
|
-
{
|
124
|
-
var _tr = rootDocument.createElement('tr');
|
125
|
-
|
126
|
-
for (var _col = 0; _col < maxCols; _col++) {
|
127
|
-
var _td = rootDocument.createElement('th');
|
128
|
-
|
129
|
-
_tr.appendChild(_td);
|
130
|
-
}
|
131
|
-
|
132
|
-
table.appendChild(_tr);
|
133
|
-
}
|
134
173
|
}
|
135
174
|
|
136
175
|
fragment.appendChild(table);
|
@@ -143,8 +182,8 @@ var GhostTable = /*#__PURE__*/function () {
|
|
143
182
|
}, {
|
144
183
|
key: "clear",
|
145
184
|
value: function clear() {
|
185
|
+
this.widthsMap.clear();
|
146
186
|
this.container = null;
|
147
|
-
this.widthsCache.length = 0;
|
148
187
|
}
|
149
188
|
}]);
|
150
189
|
|