handsontable 11.1.0 → 12.1.0
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/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
@@ -12,9 +12,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
12
12
|
|
13
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
14
14
|
|
15
|
+
import "core-js/modules/es.array.concat.js";
|
15
16
|
import "core-js/modules/es.object.keys.js";
|
16
17
|
import "core-js/modules/es.object.assign.js";
|
17
|
-
import "core-js/modules/es.object.values.js";
|
18
18
|
import "core-js/modules/es.array.index-of.js";
|
19
19
|
import "core-js/modules/es.array.splice.js";
|
20
20
|
import "core-js/modules/es.object.set-prototype-of.js";
|
@@ -40,13 +40,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
40
40
|
|
41
41
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
42
42
|
|
43
|
-
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); }
|
43
|
+
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); }
|
44
44
|
|
45
45
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
46
46
|
|
47
47
|
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); }
|
48
48
|
|
49
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
49
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
50
50
|
|
51
51
|
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); }; }
|
52
52
|
|
@@ -56,19 +56,22 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
56
56
|
|
57
57
|
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; } }
|
58
58
|
|
59
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
59
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
60
|
+
|
61
|
+
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; }
|
60
62
|
|
61
63
|
import { BasePlugin } from "../base/index.mjs";
|
62
|
-
import { hasOwnProperty, objectEach } from "../../helpers/object.mjs";
|
64
|
+
import { hasOwnProperty, objectEach, deepClone } from "../../helpers/object.mjs";
|
63
65
|
import { rangeEach } from "../../helpers/number.mjs";
|
64
66
|
import { arrayEach, arrayReduce, arrayMap } from "../../helpers/array.mjs";
|
65
|
-
import { CellRange, CellCoords } from "../../3rdparty/walkontable/src/index.mjs";
|
66
67
|
import * as C from "../../i18n/constants.mjs";
|
67
|
-
import { bottom, left
|
68
|
-
import { createId, createDefaultCustomBorder, createSingleEmptyBorder, createEmptyBorders, extendDefaultBorder } from "./utils.mjs";
|
68
|
+
import { top as menuItemTop, bottom as menuItemBottom, left as menuItemLeft, right as menuItemRight, noBorders as menuItemNoBorders } from "./contextMenuItem/index.mjs";
|
69
|
+
import { createId, createDefaultCustomBorder, createSingleEmptyBorder, createEmptyBorders, extendDefaultBorder, hasLeftRightTypeOptions, hasStartEndTypeOptions, toInlinePropName, normalizeBorder, denormalizeBorder } from "./utils.mjs";
|
69
70
|
import { detectSelectionType, normalizeSelectionFactory } from "../../selection/index.mjs";
|
70
71
|
export var PLUGIN_KEY = 'customBorders';
|
71
72
|
export var PLUGIN_PRIORITY = 90;
|
73
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
74
|
+
|
72
75
|
/**
|
73
76
|
* @plugin CustomBorders
|
74
77
|
* @class CustomBorders
|
@@ -80,7 +83,8 @@ export var PLUGIN_PRIORITY = 90;
|
|
80
83
|
* To initialize Handsontable with predefined custom borders, provide cell coordinates and border styles in a form
|
81
84
|
* of an array.
|
82
85
|
*
|
83
|
-
* See [
|
86
|
+
* See [`customBorders` configuration option](@/api/options.md#customBorders) or go to
|
87
|
+
* [Custom cell borders demo](@/guides/cell-features/formatting-cells.md#custom-cell-borders) for more examples.
|
84
88
|
*
|
85
89
|
* @example
|
86
90
|
* ```js
|
@@ -96,8 +100,8 @@ export var PLUGIN_PRIORITY = 90;
|
|
96
100
|
* col: 4
|
97
101
|
* },
|
98
102
|
* },
|
99
|
-
*
|
100
|
-
*
|
103
|
+
* start: {},
|
104
|
+
* end: {},
|
101
105
|
* top: {},
|
102
106
|
* bottom: {},
|
103
107
|
* },
|
@@ -107,11 +111,11 @@ export var PLUGIN_PRIORITY = 90;
|
|
107
111
|
* customBorders: [
|
108
112
|
* { row: 2,
|
109
113
|
* col: 2,
|
110
|
-
*
|
114
|
+
* start: {
|
111
115
|
* width: 2,
|
112
116
|
* color: 'red',
|
113
117
|
* },
|
114
|
-
*
|
118
|
+
* end: {
|
115
119
|
* width: 1,
|
116
120
|
* color: 'green',
|
117
121
|
* },
|
@@ -127,33 +131,32 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
127
131
|
|
128
132
|
var _super = _createSuper(CustomBorders);
|
129
133
|
|
130
|
-
function CustomBorders(
|
134
|
+
function CustomBorders() {
|
131
135
|
var _this;
|
132
136
|
|
133
137
|
_classCallCheck(this, CustomBorders);
|
134
138
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
139
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
140
|
+
args[_key] = arguments[_key];
|
141
|
+
}
|
142
|
+
|
143
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
144
|
+
|
145
|
+
_defineProperty(_assertThisInitialized(_this), "savedBorders", []);
|
142
146
|
|
143
|
-
_this.savedBorders = [];
|
144
147
|
return _this;
|
145
148
|
}
|
146
|
-
/**
|
147
|
-
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
148
|
-
* hook and if it returns `true` than the {@link CustomBorders#enablePlugin} method is called.
|
149
|
-
*
|
150
|
-
* @returns {boolean}
|
151
|
-
*/
|
152
|
-
|
153
149
|
|
154
150
|
_createClass(CustomBorders, [{
|
155
151
|
key: "isEnabled",
|
156
|
-
value:
|
152
|
+
value:
|
153
|
+
/**
|
154
|
+
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
155
|
+
* hook and if it returns `true` than the {@link CustomBorders#enablePlugin} method is called.
|
156
|
+
*
|
157
|
+
* @returns {boolean}
|
158
|
+
*/
|
159
|
+
function isEnabled() {
|
157
160
|
return !!this.hot.getSettings()[PLUGIN_KEY];
|
158
161
|
}
|
159
162
|
/**
|
@@ -190,7 +193,10 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
190
193
|
_get(_getPrototypeOf(CustomBorders.prototype), "disablePlugin", this).call(this);
|
191
194
|
}
|
192
195
|
/**
|
193
|
-
* Updates the plugin state.
|
196
|
+
* Updates the plugin's state.
|
197
|
+
*
|
198
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
199
|
+
* - [`customBorders`](@/api/options.md#customborders)
|
194
200
|
*/
|
195
201
|
|
196
202
|
}, {
|
@@ -210,17 +216,17 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
210
216
|
* const customBordersPlugin = hot.getPlugin('customBorders');
|
211
217
|
*
|
212
218
|
* // Using an array of arrays (produced by `.getSelected()` method).
|
213
|
-
* customBordersPlugin.setBorders([[1, 1, 2, 2], [6, 2, 0, 2]], {
|
219
|
+
* customBordersPlugin.setBorders([[1, 1, 2, 2], [6, 2, 0, 2]], {start: {width: 2, color: 'blue'}});
|
214
220
|
*
|
215
221
|
* // Using an array of CellRange objects (produced by `.getSelectedRange()` method).
|
216
222
|
* // Selecting a cell range.
|
217
223
|
* hot.selectCell(0, 0, 2, 2);
|
218
224
|
* // Returning selected cells' range with the getSelectedRange method.
|
219
|
-
* customBordersPlugin.setBorders(hot.getSelectedRange(), {
|
225
|
+
* customBordersPlugin.setBorders(hot.getSelectedRange(), {start: {hide: false, width: 2, color: 'blue'}});
|
220
226
|
* ```
|
221
227
|
*
|
222
228
|
* @param {Array[]|CellRange[]} selectionRanges Array of selection ranges.
|
223
|
-
* @param {object} borderObject Object with `top`, `right`, `bottom` and `
|
229
|
+
* @param {object} borderObject Object with `top`, `right`, `bottom` and `start` properties.
|
224
230
|
*/
|
225
231
|
|
226
232
|
}, {
|
@@ -228,8 +234,15 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
228
234
|
value: function setBorders(selectionRanges, borderObject) {
|
229
235
|
var _this3 = this;
|
230
236
|
|
231
|
-
var
|
232
|
-
var
|
237
|
+
var borderKeys = ['top', 'bottom', 'start', 'end'];
|
238
|
+
var normBorder = null;
|
239
|
+
|
240
|
+
if (borderObject) {
|
241
|
+
this.checkSettingsCohesion([borderObject]);
|
242
|
+
borderKeys = Object.keys(borderObject);
|
243
|
+
normBorder = normalizeBorder(borderObject);
|
244
|
+
}
|
245
|
+
|
233
246
|
var selectionType = detectSelectionType(selectionRanges);
|
234
247
|
var selectionSchemaNormalizer = normalizeSelectionFactory(selectionType);
|
235
248
|
arrayEach(selectionRanges, function (selection) {
|
@@ -243,7 +256,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
243
256
|
var _loop = function _loop(row) {
|
244
257
|
var _loop2 = function _loop2(col) {
|
245
258
|
arrayEach(borderKeys, function (borderKey) {
|
246
|
-
_this3.prepareBorderFromCustomAdded(row, col,
|
259
|
+
_this3.prepareBorderFromCustomAdded(row, col, normBorder, toInlinePropName(borderKey));
|
247
260
|
});
|
248
261
|
};
|
249
262
|
|
@@ -310,7 +323,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
310
323
|
var _loop4 = function _loop4(col) {
|
311
324
|
arrayEach(_this4.savedBorders, function (border) {
|
312
325
|
if (border.row === row && border.col === col) {
|
313
|
-
selectedBorders.push(border);
|
326
|
+
selectedBorders.push(denormalizeBorder(border));
|
314
327
|
}
|
315
328
|
});
|
316
329
|
};
|
@@ -366,8 +379,8 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
366
379
|
* Insert WalkontableSelection instance into Walkontable settings.
|
367
380
|
*
|
368
381
|
* @private
|
369
|
-
* @param {object} border Object with `row` and `col`, `
|
370
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
382
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
383
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
371
384
|
*/
|
372
385
|
|
373
386
|
}, {
|
@@ -379,7 +392,8 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
379
392
|
this.savedBorders.push(border);
|
380
393
|
}
|
381
394
|
|
382
|
-
var visualCellRange =
|
395
|
+
var visualCellRange = this.hot._createCellRange(this.hot._createCellCoords(border.row, border.col));
|
396
|
+
|
383
397
|
var hasCustomSelections = this.checkCustomSelections(border, visualCellRange, place);
|
384
398
|
|
385
399
|
if (!hasCustomSelections) {
|
@@ -395,8 +409,8 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
395
409
|
* @private
|
396
410
|
* @param {number} row Visual row index.
|
397
411
|
* @param {number} column Visual column index.
|
398
|
-
* @param {object} borderDescriptor Object with `row` and `col`, `
|
399
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
412
|
+
* @param {object} borderDescriptor Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.
|
413
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
400
414
|
*/
|
401
415
|
|
402
416
|
}, {
|
@@ -417,31 +431,31 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
417
431
|
if (border.id === customSelection.settings.id) {
|
418
432
|
Object.assign(customSelection.settings, borderDescriptor);
|
419
433
|
border.id = customSelection.settings.id;
|
420
|
-
border.left = customSelection.settings.left;
|
421
|
-
border.right = customSelection.settings.right;
|
422
434
|
border.top = customSelection.settings.top;
|
423
435
|
border.bottom = customSelection.settings.bottom;
|
436
|
+
border.start = customSelection.settings.start;
|
437
|
+
border.end = customSelection.settings.end;
|
424
438
|
return false; // breaks forAll
|
425
439
|
}
|
426
440
|
});
|
427
441
|
}
|
428
442
|
|
429
|
-
this.hot.setCellMeta(row, column, 'borders', border);
|
443
|
+
this.hot.setCellMeta(row, column, 'borders', denormalizeBorder(border));
|
430
444
|
this.insertBorderIntoSettings(border, place);
|
431
445
|
}
|
432
446
|
/**
|
433
447
|
* Prepare borders from setting (object).
|
434
448
|
*
|
435
449
|
* @private
|
436
|
-
* @param {object}
|
450
|
+
* @param {object} range {CellRange} The CellRange object.
|
451
|
+
* @param {object} customBorder Object with `start`, `end`, `top` and `bottom` properties.
|
437
452
|
*/
|
438
453
|
|
439
454
|
}, {
|
440
455
|
key: "prepareBorderFromCustomAddedRange",
|
441
|
-
value: function prepareBorderFromCustomAddedRange(
|
456
|
+
value: function prepareBorderFromCustomAddedRange(range, customBorder) {
|
442
457
|
var _this6 = this;
|
443
458
|
|
444
|
-
var range = rowDecriptor.range;
|
445
459
|
var lastRowIndex = Math.min(range.to.row, this.hot.countRows() - 1);
|
446
460
|
var lastColumnIndex = Math.min(range.to.col, this.hot.countCols() - 1);
|
447
461
|
rangeEach(range.from.row, lastRowIndex, function (rowIndex) {
|
@@ -450,37 +464,37 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
450
464
|
var add = 0;
|
451
465
|
|
452
466
|
if (rowIndex === range.from.row) {
|
453
|
-
if (hasOwnProperty(
|
467
|
+
if (hasOwnProperty(customBorder, 'top')) {
|
454
468
|
add += 1;
|
455
|
-
border.top =
|
469
|
+
border.top = customBorder.top;
|
456
470
|
}
|
457
471
|
} // Please keep in mind that `range.to.row` may be beyond the table boundaries. The border won't be rendered.
|
458
472
|
|
459
473
|
|
460
474
|
if (rowIndex === range.to.row) {
|
461
|
-
if (hasOwnProperty(
|
475
|
+
if (hasOwnProperty(customBorder, 'bottom')) {
|
462
476
|
add += 1;
|
463
|
-
border.bottom =
|
477
|
+
border.bottom = customBorder.bottom;
|
464
478
|
}
|
465
479
|
}
|
466
480
|
|
467
481
|
if (colIndex === range.from.col) {
|
468
|
-
if (hasOwnProperty(
|
482
|
+
if (hasOwnProperty(customBorder, 'start')) {
|
469
483
|
add += 1;
|
470
|
-
border.
|
484
|
+
border.start = customBorder.start;
|
471
485
|
}
|
472
486
|
} // Please keep in mind that `range.to.col` may be beyond the table boundaries. The border won't be rendered.
|
473
487
|
|
474
488
|
|
475
489
|
if (colIndex === range.to.col) {
|
476
|
-
if (hasOwnProperty(
|
490
|
+
if (hasOwnProperty(customBorder, 'end')) {
|
477
491
|
add += 1;
|
478
|
-
border.
|
492
|
+
border.end = customBorder.end;
|
479
493
|
}
|
480
494
|
}
|
481
495
|
|
482
496
|
if (add > 0) {
|
483
|
-
_this6.hot.setCellMeta(rowIndex, colIndex, 'borders', border);
|
497
|
+
_this6.hot.setCellMeta(rowIndex, colIndex, 'borders', denormalizeBorder(border));
|
484
498
|
|
485
499
|
_this6.insertBorderIntoSettings(border);
|
486
500
|
} else {// TODO sometimes it enters here. Why?
|
@@ -511,7 +525,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
511
525
|
* @private
|
512
526
|
* @param {number} row Visual row index.
|
513
527
|
* @param {number} column Visual column index.
|
514
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
528
|
+
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.
|
515
529
|
* @param {boolean} remove True when remove borders, and false when add borders.
|
516
530
|
*/
|
517
531
|
|
@@ -522,6 +536,8 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
522
536
|
|
523
537
|
if (!bordersMeta || bordersMeta.border === void 0) {
|
524
538
|
bordersMeta = createEmptyBorders(row, column);
|
539
|
+
} else {
|
540
|
+
bordersMeta = normalizeBorder(bordersMeta);
|
525
541
|
}
|
526
542
|
|
527
543
|
if (remove) {
|
@@ -537,7 +553,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
537
553
|
this.insertBorderIntoSettings(bordersMeta);
|
538
554
|
}
|
539
555
|
|
540
|
-
this.hot.setCellMeta(row, column, 'borders', bordersMeta);
|
556
|
+
this.hot.setCellMeta(row, column, 'borders', denormalizeBorder(bordersMeta));
|
541
557
|
}
|
542
558
|
} else {
|
543
559
|
bordersMeta[place] = createDefaultCustomBorder();
|
@@ -548,7 +564,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
548
564
|
this.insertBorderIntoSettings(bordersMeta);
|
549
565
|
}
|
550
566
|
|
551
|
-
this.hot.setCellMeta(row, column, 'borders', bordersMeta);
|
567
|
+
this.hot.setCellMeta(row, column, 'borders', denormalizeBorder(bordersMeta));
|
552
568
|
}
|
553
569
|
}
|
554
570
|
/**
|
@@ -591,21 +607,21 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
591
607
|
});
|
592
608
|
break;
|
593
609
|
|
594
|
-
case 'right':
|
595
|
-
rangeEach(start.row, end.row, function (rowRight) {
|
596
|
-
_this7.setBorder(rowRight, end.col, place, remove);
|
597
|
-
});
|
598
|
-
break;
|
599
|
-
|
600
610
|
case 'bottom':
|
601
611
|
rangeEach(start.col, end.col, function (bottomCol) {
|
602
612
|
_this7.setBorder(end.row, bottomCol, place, remove);
|
603
613
|
});
|
604
614
|
break;
|
605
615
|
|
606
|
-
case '
|
607
|
-
rangeEach(start.row, end.row, function (
|
608
|
-
_this7.setBorder(
|
616
|
+
case 'start':
|
617
|
+
rangeEach(start.row, end.row, function (rowStart) {
|
618
|
+
_this7.setBorder(rowStart, start.col, place, remove);
|
619
|
+
});
|
620
|
+
break;
|
621
|
+
|
622
|
+
case 'end':
|
623
|
+
rangeEach(start.row, end.row, function (rowEnd) {
|
624
|
+
_this7.setBorder(rowEnd, end.col, place, remove);
|
609
625
|
});
|
610
626
|
break;
|
611
627
|
|
@@ -619,7 +635,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
619
635
|
* Create borders from settings.
|
620
636
|
*
|
621
637
|
* @private
|
622
|
-
* @param {Array} customBorders Object with `row` and `col`, `
|
638
|
+
* @param {Array} customBorders Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.
|
623
639
|
*/
|
624
640
|
|
625
641
|
}, {
|
@@ -628,10 +644,12 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
628
644
|
var _this8 = this;
|
629
645
|
|
630
646
|
arrayEach(customBorders, function (customBorder) {
|
647
|
+
var normCustomBorder = normalizeBorder(customBorder);
|
648
|
+
|
631
649
|
if (customBorder.range) {
|
632
|
-
_this8.prepareBorderFromCustomAddedRange(customBorder);
|
650
|
+
_this8.prepareBorderFromCustomAddedRange(customBorder.range, normCustomBorder);
|
633
651
|
} else {
|
634
|
-
_this8.prepareBorderFromCustomAdded(customBorder.row, customBorder.col,
|
652
|
+
_this8.prepareBorderFromCustomAdded(customBorder.row, customBorder.col, normCustomBorder);
|
635
653
|
}
|
636
654
|
});
|
637
655
|
}
|
@@ -639,18 +657,23 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
639
657
|
* Count hide property in border object.
|
640
658
|
*
|
641
659
|
* @private
|
642
|
-
* @param {object} border Object with `row` and `col`, `
|
660
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
661
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
643
662
|
* @returns {number}
|
644
663
|
*/
|
645
664
|
|
646
665
|
}, {
|
647
666
|
key: "countHide",
|
648
667
|
value: function countHide(border) {
|
649
|
-
var
|
668
|
+
var top = border.top,
|
669
|
+
bottom = border.bottom,
|
670
|
+
start = border.start,
|
671
|
+
end = border.end;
|
672
|
+
var values = [top, bottom, start, end];
|
650
673
|
return arrayReduce(values, function (accumulator, value) {
|
651
674
|
var result = accumulator;
|
652
675
|
|
653
|
-
if (value.hide) {
|
676
|
+
if (value && value.hide) {
|
654
677
|
result += 1;
|
655
678
|
}
|
656
679
|
|
@@ -735,7 +758,8 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
735
758
|
* Check if an border already exists in the savedBorders array, and if true update border in savedBorders.
|
736
759
|
*
|
737
760
|
* @private
|
738
|
-
* @param {object} border Object with `row` and `col`, `
|
761
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
762
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
739
763
|
*
|
740
764
|
* @returns {boolean}
|
741
765
|
*/
|
@@ -767,8 +791,9 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
767
791
|
* Check if an border already exists in the customSelections, and if true call toggleHiddenClass method.
|
768
792
|
*
|
769
793
|
* @private
|
770
|
-
* @param {object} border Object with `row` and `col`, `
|
771
|
-
*
|
794
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
795
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
796
|
+
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.
|
772
797
|
* @param {boolean} remove True when remove borders, and false when add borders.
|
773
798
|
*
|
774
799
|
* @returns {boolean}
|
@@ -793,9 +818,10 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
793
818
|
* Check if an border already exists in the customSelections, and if true reset cellRange.
|
794
819
|
*
|
795
820
|
* @private
|
796
|
-
* @param {object} border Object with `row` and `col`, `
|
821
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
822
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
797
823
|
* @param {CellRange} cellRange The selection range to check.
|
798
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
824
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
799
825
|
* @returns {boolean}
|
800
826
|
*/
|
801
827
|
|
@@ -840,15 +866,40 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
840
866
|
var customBorders = this.hot.getSettings()[PLUGIN_KEY];
|
841
867
|
|
842
868
|
if (Array.isArray(customBorders)) {
|
843
|
-
|
844
|
-
|
869
|
+
var bordersClone = deepClone(customBorders);
|
870
|
+
this.checkSettingsCohesion(bordersClone);
|
871
|
+
|
872
|
+
if (!bordersClone.length) {
|
873
|
+
this.savedBorders = bordersClone;
|
845
874
|
}
|
846
875
|
|
847
|
-
this.createCustomBorders(
|
876
|
+
this.createCustomBorders(bordersClone);
|
848
877
|
} else if (customBorders !== void 0) {
|
849
878
|
this.createCustomBorders(this.savedBorders);
|
850
879
|
}
|
851
880
|
}
|
881
|
+
/**
|
882
|
+
* Checks the settings cohesion. The properties such like "left"/"right" are supported only
|
883
|
+
* in the LTR mode and the "left"/"right" options can not be used together with "start"/"end" properties.
|
884
|
+
*
|
885
|
+
* @private
|
886
|
+
* @param {object[]} customBorders The user defined custom border objects array.
|
887
|
+
*/
|
888
|
+
|
889
|
+
}, {
|
890
|
+
key: "checkSettingsCohesion",
|
891
|
+
value: function checkSettingsCohesion(customBorders) {
|
892
|
+
var hasLeftOrRight = hasLeftRightTypeOptions(customBorders);
|
893
|
+
var hasStartOrEnd = hasStartEndTypeOptions(customBorders);
|
894
|
+
|
895
|
+
if (hasLeftOrRight && hasStartOrEnd) {
|
896
|
+
throw new Error('The "left"/"right" and "start"/"end" options should not be used together. ' + 'Please use only the option "start"/"end".');
|
897
|
+
}
|
898
|
+
|
899
|
+
if (this.hot.isRtl() && hasLeftOrRight) {
|
900
|
+
throw new Error('The "left"/"right" properties are not supported for RTL. Please use option "start"/"end".');
|
901
|
+
}
|
902
|
+
}
|
852
903
|
/**
|
853
904
|
* Add border options to context menu.
|
854
905
|
*
|
@@ -874,7 +925,7 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
874
925
|
return this.selection.isSelectedByCorner();
|
875
926
|
},
|
876
927
|
submenu: {
|
877
|
-
items: [
|
928
|
+
items: [menuItemTop(this), menuItemRight(this), menuItemBottom(this), menuItemLeft(this), menuItemNoBorders(this)]
|
878
929
|
}
|
879
930
|
});
|
880
931
|
}
|
@@ -908,6 +959,13 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
908
959
|
get: function get() {
|
909
960
|
return PLUGIN_PRIORITY;
|
910
961
|
}
|
962
|
+
/**
|
963
|
+
* Saved borders.
|
964
|
+
*
|
965
|
+
* @private
|
966
|
+
* @type {Array}
|
967
|
+
*/
|
968
|
+
|
911
969
|
}]);
|
912
970
|
|
913
971
|
return CustomBorders;
|