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
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
4
|
|
5
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
6
|
+
|
7
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
8
|
+
|
5
9
|
require("core-js/modules/es.object.to-string.js");
|
6
10
|
|
7
11
|
require("core-js/modules/es.reflect.construct.js");
|
@@ -35,20 +39,16 @@ require("core-js/modules/es.weak-map.js");
|
|
35
39
|
exports.__esModule = true;
|
36
40
|
exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.CustomBorders = void 0;
|
37
41
|
|
42
|
+
require("core-js/modules/es.array.concat.js");
|
43
|
+
|
38
44
|
require("core-js/modules/es.object.keys.js");
|
39
45
|
|
40
46
|
require("core-js/modules/es.object.assign.js");
|
41
47
|
|
42
|
-
require("core-js/modules/es.object.values.js");
|
43
|
-
|
44
48
|
require("core-js/modules/es.array.index-of.js");
|
45
49
|
|
46
50
|
require("core-js/modules/es.array.splice.js");
|
47
51
|
|
48
|
-
require("core-js/modules/es.object.set-prototype-of.js");
|
49
|
-
|
50
|
-
require("core-js/modules/es.object.get-prototype-of.js");
|
51
|
-
|
52
52
|
var _base = require("../base");
|
53
53
|
|
54
54
|
var _object = require("../../helpers/object");
|
@@ -57,8 +57,6 @@ var _number = require("../../helpers/number");
|
|
57
57
|
|
58
58
|
var _array = require("../../helpers/array");
|
59
59
|
|
60
|
-
var _src = require("../../3rdparty/walkontable/src");
|
61
|
-
|
62
60
|
var C = _interopRequireWildcard(require("../../i18n/constants"));
|
63
61
|
|
64
62
|
var _contextMenuItem = require("./contextMenuItem");
|
@@ -89,13 +87,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
89
87
|
|
90
88
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
91
89
|
|
92
|
-
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); }
|
90
|
+
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); }
|
93
91
|
|
94
92
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
95
93
|
|
96
94
|
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); }
|
97
95
|
|
98
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
96
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
99
97
|
|
100
98
|
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); }; }
|
101
99
|
|
@@ -105,11 +103,15 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
105
103
|
|
106
104
|
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; } }
|
107
105
|
|
108
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
106
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
107
|
+
|
108
|
+
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; }
|
109
109
|
|
110
110
|
var PLUGIN_KEY = 'customBorders';
|
111
111
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
112
112
|
var PLUGIN_PRIORITY = 90;
|
113
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
114
|
+
|
113
115
|
/**
|
114
116
|
* @plugin CustomBorders
|
115
117
|
* @class CustomBorders
|
@@ -121,7 +123,8 @@ var PLUGIN_PRIORITY = 90;
|
|
121
123
|
* To initialize Handsontable with predefined custom borders, provide cell coordinates and border styles in a form
|
122
124
|
* of an array.
|
123
125
|
*
|
124
|
-
* See [
|
126
|
+
* See [`customBorders` configuration option](@/api/options.md#customBorders) or go to
|
127
|
+
* [Custom cell borders demo](@/guides/cell-features/formatting-cells.md#custom-cell-borders) for more examples.
|
125
128
|
*
|
126
129
|
* @example
|
127
130
|
* ```js
|
@@ -137,8 +140,8 @@ var PLUGIN_PRIORITY = 90;
|
|
137
140
|
* col: 4
|
138
141
|
* },
|
139
142
|
* },
|
140
|
-
*
|
141
|
-
*
|
143
|
+
* start: {},
|
144
|
+
* end: {},
|
142
145
|
* top: {},
|
143
146
|
* bottom: {},
|
144
147
|
* },
|
@@ -148,11 +151,11 @@ var PLUGIN_PRIORITY = 90;
|
|
148
151
|
* customBorders: [
|
149
152
|
* { row: 2,
|
150
153
|
* col: 2,
|
151
|
-
*
|
154
|
+
* start: {
|
152
155
|
* width: 2,
|
153
156
|
* color: 'red',
|
154
157
|
* },
|
155
|
-
*
|
158
|
+
* end: {
|
156
159
|
* width: 1,
|
157
160
|
* color: 'green',
|
158
161
|
* },
|
@@ -170,33 +173,32 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
170
173
|
|
171
174
|
var _super = _createSuper(CustomBorders);
|
172
175
|
|
173
|
-
function CustomBorders(
|
176
|
+
function CustomBorders() {
|
174
177
|
var _this;
|
175
178
|
|
176
179
|
_classCallCheck(this, CustomBorders);
|
177
180
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
181
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
182
|
+
args[_key] = arguments[_key];
|
183
|
+
}
|
184
|
+
|
185
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
186
|
+
|
187
|
+
_defineProperty(_assertThisInitialized(_this), "savedBorders", []);
|
185
188
|
|
186
|
-
_this.savedBorders = [];
|
187
189
|
return _this;
|
188
190
|
}
|
189
|
-
/**
|
190
|
-
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
191
|
-
* hook and if it returns `true` than the {@link CustomBorders#enablePlugin} method is called.
|
192
|
-
*
|
193
|
-
* @returns {boolean}
|
194
|
-
*/
|
195
|
-
|
196
191
|
|
197
192
|
_createClass(CustomBorders, [{
|
198
193
|
key: "isEnabled",
|
199
|
-
value:
|
194
|
+
value:
|
195
|
+
/**
|
196
|
+
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
197
|
+
* hook and if it returns `true` than the {@link CustomBorders#enablePlugin} method is called.
|
198
|
+
*
|
199
|
+
* @returns {boolean}
|
200
|
+
*/
|
201
|
+
function isEnabled() {
|
200
202
|
return !!this.hot.getSettings()[PLUGIN_KEY];
|
201
203
|
}
|
202
204
|
/**
|
@@ -233,7 +235,10 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
233
235
|
_get(_getPrototypeOf(CustomBorders.prototype), "disablePlugin", this).call(this);
|
234
236
|
}
|
235
237
|
/**
|
236
|
-
* Updates the plugin state.
|
238
|
+
* Updates the plugin's state.
|
239
|
+
*
|
240
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
241
|
+
* - [`customBorders`](@/api/options.md#customborders)
|
237
242
|
*/
|
238
243
|
|
239
244
|
}, {
|
@@ -253,17 +258,17 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
253
258
|
* const customBordersPlugin = hot.getPlugin('customBorders');
|
254
259
|
*
|
255
260
|
* // Using an array of arrays (produced by `.getSelected()` method).
|
256
|
-
* customBordersPlugin.setBorders([[1, 1, 2, 2], [6, 2, 0, 2]], {
|
261
|
+
* customBordersPlugin.setBorders([[1, 1, 2, 2], [6, 2, 0, 2]], {start: {width: 2, color: 'blue'}});
|
257
262
|
*
|
258
263
|
* // Using an array of CellRange objects (produced by `.getSelectedRange()` method).
|
259
264
|
* // Selecting a cell range.
|
260
265
|
* hot.selectCell(0, 0, 2, 2);
|
261
266
|
* // Returning selected cells' range with the getSelectedRange method.
|
262
|
-
* customBordersPlugin.setBorders(hot.getSelectedRange(), {
|
267
|
+
* customBordersPlugin.setBorders(hot.getSelectedRange(), {start: {hide: false, width: 2, color: 'blue'}});
|
263
268
|
* ```
|
264
269
|
*
|
265
270
|
* @param {Array[]|CellRange[]} selectionRanges Array of selection ranges.
|
266
|
-
* @param {object} borderObject Object with `top`, `right`, `bottom` and `
|
271
|
+
* @param {object} borderObject Object with `top`, `right`, `bottom` and `start` properties.
|
267
272
|
*/
|
268
273
|
|
269
274
|
}, {
|
@@ -271,8 +276,15 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
271
276
|
value: function setBorders(selectionRanges, borderObject) {
|
272
277
|
var _this3 = this;
|
273
278
|
|
274
|
-
var
|
275
|
-
var
|
279
|
+
var borderKeys = ['top', 'bottom', 'start', 'end'];
|
280
|
+
var normBorder = null;
|
281
|
+
|
282
|
+
if (borderObject) {
|
283
|
+
this.checkSettingsCohesion([borderObject]);
|
284
|
+
borderKeys = Object.keys(borderObject);
|
285
|
+
normBorder = (0, _utils.normalizeBorder)(borderObject);
|
286
|
+
}
|
287
|
+
|
276
288
|
var selectionType = (0, _selection.detectSelectionType)(selectionRanges);
|
277
289
|
var selectionSchemaNormalizer = (0, _selection.normalizeSelectionFactory)(selectionType);
|
278
290
|
(0, _array.arrayEach)(selectionRanges, function (selection) {
|
@@ -286,7 +298,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
286
298
|
var _loop = function _loop(row) {
|
287
299
|
var _loop2 = function _loop2(col) {
|
288
300
|
(0, _array.arrayEach)(borderKeys, function (borderKey) {
|
289
|
-
_this3.prepareBorderFromCustomAdded(row, col,
|
301
|
+
_this3.prepareBorderFromCustomAdded(row, col, normBorder, (0, _utils.toInlinePropName)(borderKey));
|
290
302
|
});
|
291
303
|
};
|
292
304
|
|
@@ -353,7 +365,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
353
365
|
var _loop4 = function _loop4(col) {
|
354
366
|
(0, _array.arrayEach)(_this4.savedBorders, function (border) {
|
355
367
|
if (border.row === row && border.col === col) {
|
356
|
-
selectedBorders.push(border);
|
368
|
+
selectedBorders.push((0, _utils.denormalizeBorder)(border));
|
357
369
|
}
|
358
370
|
});
|
359
371
|
};
|
@@ -409,8 +421,8 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
409
421
|
* Insert WalkontableSelection instance into Walkontable settings.
|
410
422
|
*
|
411
423
|
* @private
|
412
|
-
* @param {object} border Object with `row` and `col`, `
|
413
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
424
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
425
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
414
426
|
*/
|
415
427
|
|
416
428
|
}, {
|
@@ -422,7 +434,8 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
422
434
|
this.savedBorders.push(border);
|
423
435
|
}
|
424
436
|
|
425
|
-
var visualCellRange =
|
437
|
+
var visualCellRange = this.hot._createCellRange(this.hot._createCellCoords(border.row, border.col));
|
438
|
+
|
426
439
|
var hasCustomSelections = this.checkCustomSelections(border, visualCellRange, place);
|
427
440
|
|
428
441
|
if (!hasCustomSelections) {
|
@@ -438,8 +451,8 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
438
451
|
* @private
|
439
452
|
* @param {number} row Visual row index.
|
440
453
|
* @param {number} column Visual column index.
|
441
|
-
* @param {object} borderDescriptor Object with `row` and `col`, `
|
442
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
454
|
+
* @param {object} borderDescriptor Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.
|
455
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
443
456
|
*/
|
444
457
|
|
445
458
|
}, {
|
@@ -460,31 +473,31 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
460
473
|
if (border.id === customSelection.settings.id) {
|
461
474
|
Object.assign(customSelection.settings, borderDescriptor);
|
462
475
|
border.id = customSelection.settings.id;
|
463
|
-
border.left = customSelection.settings.left;
|
464
|
-
border.right = customSelection.settings.right;
|
465
476
|
border.top = customSelection.settings.top;
|
466
477
|
border.bottom = customSelection.settings.bottom;
|
478
|
+
border.start = customSelection.settings.start;
|
479
|
+
border.end = customSelection.settings.end;
|
467
480
|
return false; // breaks forAll
|
468
481
|
}
|
469
482
|
});
|
470
483
|
}
|
471
484
|
|
472
|
-
this.hot.setCellMeta(row, column, 'borders', border);
|
485
|
+
this.hot.setCellMeta(row, column, 'borders', (0, _utils.denormalizeBorder)(border));
|
473
486
|
this.insertBorderIntoSettings(border, place);
|
474
487
|
}
|
475
488
|
/**
|
476
489
|
* Prepare borders from setting (object).
|
477
490
|
*
|
478
491
|
* @private
|
479
|
-
* @param {object}
|
492
|
+
* @param {object} range {CellRange} The CellRange object.
|
493
|
+
* @param {object} customBorder Object with `start`, `end`, `top` and `bottom` properties.
|
480
494
|
*/
|
481
495
|
|
482
496
|
}, {
|
483
497
|
key: "prepareBorderFromCustomAddedRange",
|
484
|
-
value: function prepareBorderFromCustomAddedRange(
|
498
|
+
value: function prepareBorderFromCustomAddedRange(range, customBorder) {
|
485
499
|
var _this6 = this;
|
486
500
|
|
487
|
-
var range = rowDecriptor.range;
|
488
501
|
var lastRowIndex = Math.min(range.to.row, this.hot.countRows() - 1);
|
489
502
|
var lastColumnIndex = Math.min(range.to.col, this.hot.countCols() - 1);
|
490
503
|
(0, _number.rangeEach)(range.from.row, lastRowIndex, function (rowIndex) {
|
@@ -493,37 +506,37 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
493
506
|
var add = 0;
|
494
507
|
|
495
508
|
if (rowIndex === range.from.row) {
|
496
|
-
if ((0, _object.hasOwnProperty)(
|
509
|
+
if ((0, _object.hasOwnProperty)(customBorder, 'top')) {
|
497
510
|
add += 1;
|
498
|
-
border.top =
|
511
|
+
border.top = customBorder.top;
|
499
512
|
}
|
500
513
|
} // Please keep in mind that `range.to.row` may be beyond the table boundaries. The border won't be rendered.
|
501
514
|
|
502
515
|
|
503
516
|
if (rowIndex === range.to.row) {
|
504
|
-
if ((0, _object.hasOwnProperty)(
|
517
|
+
if ((0, _object.hasOwnProperty)(customBorder, 'bottom')) {
|
505
518
|
add += 1;
|
506
|
-
border.bottom =
|
519
|
+
border.bottom = customBorder.bottom;
|
507
520
|
}
|
508
521
|
}
|
509
522
|
|
510
523
|
if (colIndex === range.from.col) {
|
511
|
-
if ((0, _object.hasOwnProperty)(
|
524
|
+
if ((0, _object.hasOwnProperty)(customBorder, 'start')) {
|
512
525
|
add += 1;
|
513
|
-
border.
|
526
|
+
border.start = customBorder.start;
|
514
527
|
}
|
515
528
|
} // Please keep in mind that `range.to.col` may be beyond the table boundaries. The border won't be rendered.
|
516
529
|
|
517
530
|
|
518
531
|
if (colIndex === range.to.col) {
|
519
|
-
if ((0, _object.hasOwnProperty)(
|
532
|
+
if ((0, _object.hasOwnProperty)(customBorder, 'end')) {
|
520
533
|
add += 1;
|
521
|
-
border.
|
534
|
+
border.end = customBorder.end;
|
522
535
|
}
|
523
536
|
}
|
524
537
|
|
525
538
|
if (add > 0) {
|
526
|
-
_this6.hot.setCellMeta(rowIndex, colIndex, 'borders', border);
|
539
|
+
_this6.hot.setCellMeta(rowIndex, colIndex, 'borders', (0, _utils.denormalizeBorder)(border));
|
527
540
|
|
528
541
|
_this6.insertBorderIntoSettings(border);
|
529
542
|
} else {// TODO sometimes it enters here. Why?
|
@@ -554,7 +567,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
554
567
|
* @private
|
555
568
|
* @param {number} row Visual row index.
|
556
569
|
* @param {number} column Visual column index.
|
557
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
570
|
+
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.
|
558
571
|
* @param {boolean} remove True when remove borders, and false when add borders.
|
559
572
|
*/
|
560
573
|
|
@@ -565,6 +578,8 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
565
578
|
|
566
579
|
if (!bordersMeta || bordersMeta.border === void 0) {
|
567
580
|
bordersMeta = (0, _utils.createEmptyBorders)(row, column);
|
581
|
+
} else {
|
582
|
+
bordersMeta = (0, _utils.normalizeBorder)(bordersMeta);
|
568
583
|
}
|
569
584
|
|
570
585
|
if (remove) {
|
@@ -580,7 +595,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
580
595
|
this.insertBorderIntoSettings(bordersMeta);
|
581
596
|
}
|
582
597
|
|
583
|
-
this.hot.setCellMeta(row, column, 'borders', bordersMeta);
|
598
|
+
this.hot.setCellMeta(row, column, 'borders', (0, _utils.denormalizeBorder)(bordersMeta));
|
584
599
|
}
|
585
600
|
} else {
|
586
601
|
bordersMeta[place] = (0, _utils.createDefaultCustomBorder)();
|
@@ -591,7 +606,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
591
606
|
this.insertBorderIntoSettings(bordersMeta);
|
592
607
|
}
|
593
608
|
|
594
|
-
this.hot.setCellMeta(row, column, 'borders', bordersMeta);
|
609
|
+
this.hot.setCellMeta(row, column, 'borders', (0, _utils.denormalizeBorder)(bordersMeta));
|
595
610
|
}
|
596
611
|
}
|
597
612
|
/**
|
@@ -634,21 +649,21 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
634
649
|
});
|
635
650
|
break;
|
636
651
|
|
637
|
-
case 'right':
|
638
|
-
(0, _number.rangeEach)(start.row, end.row, function (rowRight) {
|
639
|
-
_this7.setBorder(rowRight, end.col, place, remove);
|
640
|
-
});
|
641
|
-
break;
|
642
|
-
|
643
652
|
case 'bottom':
|
644
653
|
(0, _number.rangeEach)(start.col, end.col, function (bottomCol) {
|
645
654
|
_this7.setBorder(end.row, bottomCol, place, remove);
|
646
655
|
});
|
647
656
|
break;
|
648
657
|
|
649
|
-
case '
|
650
|
-
(0, _number.rangeEach)(start.row, end.row, function (
|
651
|
-
_this7.setBorder(
|
658
|
+
case 'start':
|
659
|
+
(0, _number.rangeEach)(start.row, end.row, function (rowStart) {
|
660
|
+
_this7.setBorder(rowStart, start.col, place, remove);
|
661
|
+
});
|
662
|
+
break;
|
663
|
+
|
664
|
+
case 'end':
|
665
|
+
(0, _number.rangeEach)(start.row, end.row, function (rowEnd) {
|
666
|
+
_this7.setBorder(rowEnd, end.col, place, remove);
|
652
667
|
});
|
653
668
|
break;
|
654
669
|
|
@@ -662,7 +677,7 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
662
677
|
* Create borders from settings.
|
663
678
|
*
|
664
679
|
* @private
|
665
|
-
* @param {Array} customBorders Object with `row` and `col`, `
|
680
|
+
* @param {Array} customBorders Object with `row` and `col`, `start`, `end`, `top` and `bottom` properties.
|
666
681
|
*/
|
667
682
|
|
668
683
|
}, {
|
@@ -671,10 +686,12 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
671
686
|
var _this8 = this;
|
672
687
|
|
673
688
|
(0, _array.arrayEach)(customBorders, function (customBorder) {
|
689
|
+
var normCustomBorder = (0, _utils.normalizeBorder)(customBorder);
|
690
|
+
|
674
691
|
if (customBorder.range) {
|
675
|
-
_this8.prepareBorderFromCustomAddedRange(customBorder);
|
692
|
+
_this8.prepareBorderFromCustomAddedRange(customBorder.range, normCustomBorder);
|
676
693
|
} else {
|
677
|
-
_this8.prepareBorderFromCustomAdded(customBorder.row, customBorder.col,
|
694
|
+
_this8.prepareBorderFromCustomAdded(customBorder.row, customBorder.col, normCustomBorder);
|
678
695
|
}
|
679
696
|
});
|
680
697
|
}
|
@@ -682,18 +699,23 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
682
699
|
* Count hide property in border object.
|
683
700
|
*
|
684
701
|
* @private
|
685
|
-
* @param {object} border Object with `row` and `col`, `
|
702
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
703
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
686
704
|
* @returns {number}
|
687
705
|
*/
|
688
706
|
|
689
707
|
}, {
|
690
708
|
key: "countHide",
|
691
709
|
value: function countHide(border) {
|
692
|
-
var
|
710
|
+
var top = border.top,
|
711
|
+
bottom = border.bottom,
|
712
|
+
start = border.start,
|
713
|
+
end = border.end;
|
714
|
+
var values = [top, bottom, start, end];
|
693
715
|
return (0, _array.arrayReduce)(values, function (accumulator, value) {
|
694
716
|
var result = accumulator;
|
695
717
|
|
696
|
-
if (value.hide) {
|
718
|
+
if (value && value.hide) {
|
697
719
|
result += 1;
|
698
720
|
}
|
699
721
|
|
@@ -778,7 +800,8 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
778
800
|
* Check if an border already exists in the savedBorders array, and if true update border in savedBorders.
|
779
801
|
*
|
780
802
|
* @private
|
781
|
-
* @param {object} border Object with `row` and `col`, `
|
803
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
804
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
782
805
|
*
|
783
806
|
* @returns {boolean}
|
784
807
|
*/
|
@@ -810,8 +833,9 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
810
833
|
* Check if an border already exists in the customSelections, and if true call toggleHiddenClass method.
|
811
834
|
*
|
812
835
|
* @private
|
813
|
-
* @param {object} border Object with `row` and `col`, `
|
814
|
-
*
|
836
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
837
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
838
|
+
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `start`, `end` and `noBorders`.
|
815
839
|
* @param {boolean} remove True when remove borders, and false when add borders.
|
816
840
|
*
|
817
841
|
* @returns {boolean}
|
@@ -836,9 +860,10 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
836
860
|
* Check if an border already exists in the customSelections, and if true reset cellRange.
|
837
861
|
*
|
838
862
|
* @private
|
839
|
-
* @param {object} border Object with `row` and `col`, `
|
863
|
+
* @param {object} border Object with `row` and `col`, `start`, `end`, `top` and `bottom`, `id` and
|
864
|
+
* `border` ({Object} with `color`, `width` and `cornerVisible` property) properties.
|
840
865
|
* @param {CellRange} cellRange The selection range to check.
|
841
|
-
* @param {string} place Coordinate where add/remove border - `top`, `bottom`, `
|
866
|
+
* @param {string} [place] Coordinate where add/remove border - `top`, `bottom`, `start`, `end`.
|
842
867
|
* @returns {boolean}
|
843
868
|
*/
|
844
869
|
|
@@ -883,15 +908,40 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
883
908
|
var customBorders = this.hot.getSettings()[PLUGIN_KEY];
|
884
909
|
|
885
910
|
if (Array.isArray(customBorders)) {
|
886
|
-
|
887
|
-
|
911
|
+
var bordersClone = (0, _object.deepClone)(customBorders);
|
912
|
+
this.checkSettingsCohesion(bordersClone);
|
913
|
+
|
914
|
+
if (!bordersClone.length) {
|
915
|
+
this.savedBorders = bordersClone;
|
888
916
|
}
|
889
917
|
|
890
|
-
this.createCustomBorders(
|
918
|
+
this.createCustomBorders(bordersClone);
|
891
919
|
} else if (customBorders !== void 0) {
|
892
920
|
this.createCustomBorders(this.savedBorders);
|
893
921
|
}
|
894
922
|
}
|
923
|
+
/**
|
924
|
+
* Checks the settings cohesion. The properties such like "left"/"right" are supported only
|
925
|
+
* in the LTR mode and the "left"/"right" options can not be used together with "start"/"end" properties.
|
926
|
+
*
|
927
|
+
* @private
|
928
|
+
* @param {object[]} customBorders The user defined custom border objects array.
|
929
|
+
*/
|
930
|
+
|
931
|
+
}, {
|
932
|
+
key: "checkSettingsCohesion",
|
933
|
+
value: function checkSettingsCohesion(customBorders) {
|
934
|
+
var hasLeftOrRight = (0, _utils.hasLeftRightTypeOptions)(customBorders);
|
935
|
+
var hasStartOrEnd = (0, _utils.hasStartEndTypeOptions)(customBorders);
|
936
|
+
|
937
|
+
if (hasLeftOrRight && hasStartOrEnd) {
|
938
|
+
throw new Error('The "left"/"right" and "start"/"end" options should not be used together. ' + 'Please use only the option "start"/"end".');
|
939
|
+
}
|
940
|
+
|
941
|
+
if (this.hot.isRtl() && hasLeftOrRight) {
|
942
|
+
throw new Error('The "left"/"right" properties are not supported for RTL. Please use option "start"/"end".');
|
943
|
+
}
|
944
|
+
}
|
895
945
|
/**
|
896
946
|
* Add border options to context menu.
|
897
947
|
*
|
@@ -951,6 +1001,13 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
951
1001
|
get: function get() {
|
952
1002
|
return PLUGIN_PRIORITY;
|
953
1003
|
}
|
1004
|
+
/**
|
1005
|
+
* Saved borders.
|
1006
|
+
*
|
1007
|
+
* @private
|
1008
|
+
* @type {Array}
|
1009
|
+
*/
|
1010
|
+
|
954
1011
|
}]);
|
955
1012
|
|
956
1013
|
return CustomBorders;
|