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
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
8
8
|
|
9
9
|
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); }
|
10
10
|
|
11
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
11
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
12
12
|
|
13
13
|
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); }; }
|
14
14
|
|
@@ -18,7 +18,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
18
18
|
|
19
19
|
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; } }
|
20
20
|
|
21
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
21
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
22
22
|
|
23
23
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
24
24
|
|
@@ -65,8 +65,8 @@ import Hooks from "../../pluginHooks.mjs";
|
|
65
65
|
import { arrayMap, arrayEach } from "../../helpers/array.mjs";
|
66
66
|
import { rangeEach } from "../../helpers/number.mjs";
|
67
67
|
import { inherit, deepClone } from "../../helpers/object.mjs";
|
68
|
-
import { stopImmediatePropagation, isImmediatePropagationStopped } from "../../helpers/dom/event.mjs";
|
69
68
|
import { align } from "../contextMenu/utils.mjs";
|
69
|
+
var SHORTCUTS_GROUP = 'undoRedo';
|
70
70
|
export var PLUGIN_KEY = 'undoRedo';
|
71
71
|
/**
|
72
72
|
* @description
|
@@ -172,7 +172,7 @@ function UndoRedo(instance) {
|
|
172
172
|
|
173
173
|
var columnsMap = instance.columnIndexMapper.getIndexesSequence();
|
174
174
|
var rowsMap = instance.rowIndexMapper.getIndexesSequence();
|
175
|
-
return new UndoRedo.RemoveColumnAction(columnIndex, indexes, removedData, headers, columnsMap, rowsMap, instance.getSettings().
|
175
|
+
return new UndoRedo.RemoveColumnAction(columnIndex, indexes, removedData, headers, columnsMap, rowsMap, instance.getSettings().fixedColumnsStart);
|
176
176
|
};
|
177
177
|
|
178
178
|
plugin.done(wrappedAction, source);
|
@@ -401,7 +401,7 @@ UndoRedo.prototype.enable = function () {
|
|
401
401
|
var hot = this.instance;
|
402
402
|
this.enabled = true;
|
403
403
|
exposeUndoRedoMethods(hot);
|
404
|
-
|
404
|
+
this.registerShortcuts();
|
405
405
|
hot.addHook('afterChange', onAfterChange);
|
406
406
|
};
|
407
407
|
/**
|
@@ -420,7 +420,7 @@ UndoRedo.prototype.disable = function () {
|
|
420
420
|
var hot = this.instance;
|
421
421
|
this.enabled = false;
|
422
422
|
removeExposedUndoRedoMethods(hot);
|
423
|
-
|
423
|
+
this.unregisterShortcuts();
|
424
424
|
hot.removeHook('afterChange', onAfterChange);
|
425
425
|
};
|
426
426
|
/**
|
@@ -609,11 +609,12 @@ UndoRedo.CreateColumnAction.prototype.redo = function (instance, redoneCallback)
|
|
609
609
|
* @param {Array} headers The header values.
|
610
610
|
* @param {number[]} columnPositions The column position.
|
611
611
|
* @param {number[]} rowPositions The row position.
|
612
|
-
* @param {number}
|
612
|
+
* @param {number} fixedColumnsStart Number of fixed columns on the left. Remove column action change it sometimes.
|
613
613
|
*/
|
614
614
|
|
615
615
|
|
616
|
-
UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPositions, rowPositions,
|
616
|
+
UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPositions, rowPositions, fixedColumnsStart) {
|
617
|
+
// eslint-disable-line max-len
|
617
618
|
this.index = index;
|
618
619
|
this.indexes = indexes;
|
619
620
|
this.data = data;
|
@@ -622,7 +623,7 @@ UndoRedo.RemoveColumnAction = function (index, indexes, data, headers, columnPos
|
|
622
623
|
this.columnPositions = columnPositions.slice(0);
|
623
624
|
this.rowPositions = rowPositions.slice(0);
|
624
625
|
this.actionType = 'remove_col';
|
625
|
-
this.
|
626
|
+
this.fixedColumnsStart = fixedColumnsStart;
|
626
627
|
};
|
627
628
|
|
628
629
|
inherit(UndoRedo.RemoveColumnAction, UndoRedo.Action);
|
@@ -632,7 +633,7 @@ UndoRedo.RemoveColumnAction.prototype.undo = function (instance, undoneCallback)
|
|
632
633
|
|
633
634
|
var settings = instance.getSettings(); // Changing by the reference as `updateSettings` doesn't work the best.
|
634
635
|
|
635
|
-
settings.
|
636
|
+
settings.fixedColumnsStart = this.fixedColumnsStart;
|
636
637
|
var ascendingIndexes = this.indexes.slice(0).sort();
|
637
638
|
|
638
639
|
var sortByIndexes = function sortByIndexes(elem, j, arr) {
|
@@ -768,11 +769,11 @@ var MergeCellsAction = /*#__PURE__*/function (_UndoRedo$Action) {
|
|
768
769
|
_this4 = _super.call(this);
|
769
770
|
_this4.cellRange = cellRange;
|
770
771
|
|
771
|
-
var
|
772
|
+
var topStartCorner = _this4.cellRange.getTopStartCorner();
|
772
773
|
|
773
|
-
var
|
774
|
+
var bottomEndCorner = _this4.cellRange.getBottomEndCorner();
|
774
775
|
|
775
|
-
_this4.rangeData = instance.getData(
|
776
|
+
_this4.rangeData = instance.getData(topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col);
|
776
777
|
return _this4;
|
777
778
|
}
|
778
779
|
|
@@ -782,8 +783,8 @@ var MergeCellsAction = /*#__PURE__*/function (_UndoRedo$Action) {
|
|
782
783
|
var mergeCellsPlugin = instance.getPlugin('mergeCells');
|
783
784
|
instance.addHookOnce('afterViewRender', undoneCallback);
|
784
785
|
mergeCellsPlugin.unmergeRange(this.cellRange, true);
|
785
|
-
var
|
786
|
-
instance.populateFromArray(
|
786
|
+
var topStartCorner = this.cellRange.getTopStartCorner();
|
787
|
+
instance.populateFromArray(topStartCorner.row, topStartCorner.col, this.rangeData, void 0, void 0, 'MergeCells');
|
787
788
|
}
|
788
789
|
}, {
|
789
790
|
key: "redo",
|
@@ -916,45 +917,50 @@ UndoRedo.prototype.init = function () {
|
|
916
917
|
}
|
917
918
|
};
|
918
919
|
/**
|
919
|
-
*
|
920
|
+
* Registers shortcuts responsible for performing undo/redo.
|
921
|
+
*
|
922
|
+
* @private
|
920
923
|
*/
|
921
924
|
|
922
925
|
|
923
|
-
function
|
924
|
-
|
925
|
-
return;
|
926
|
-
}
|
927
|
-
|
928
|
-
var instance = this;
|
929
|
-
var editor = instance.getActiveEditor();
|
926
|
+
UndoRedo.prototype.registerShortcuts = function () {
|
927
|
+
var _this7 = this;
|
930
928
|
|
931
|
-
|
932
|
-
|
933
|
-
}
|
929
|
+
var shortcutManager = this.instance.getShortcutManager();
|
930
|
+
var gridContext = shortcutManager.getContext('grid');
|
934
931
|
|
935
|
-
var
|
936
|
-
|
937
|
-
|
938
|
-
metaKey = event.metaKey,
|
939
|
-
shiftKey = event.shiftKey;
|
940
|
-
var isCtrlDown = (ctrlKey || metaKey) && !altKey;
|
932
|
+
var runOnlyIf = function runOnlyIf(event) {
|
933
|
+
return !event.altKey; // right ALT in some systems triggers ALT+CTR
|
934
|
+
};
|
941
935
|
|
942
|
-
|
943
|
-
|
944
|
-
|
936
|
+
var config = {
|
937
|
+
runOnlyIf: runOnlyIf,
|
938
|
+
group: SHORTCUTS_GROUP
|
939
|
+
};
|
940
|
+
gridContext.addShortcuts([{
|
941
|
+
keys: [['Control/Meta', 'z']],
|
942
|
+
callback: function callback() {
|
943
|
+
_this7.undo();
|
944
|
+
}
|
945
|
+
}, {
|
946
|
+
keys: [['Control/Meta', 'y'], ['Control/Meta', 'Shift', 'z']],
|
947
|
+
callback: function callback() {
|
948
|
+
_this7.redo();
|
949
|
+
}
|
950
|
+
}], config);
|
951
|
+
};
|
952
|
+
/**
|
953
|
+
* Unregister shortcuts responsible for performing undo/redo.
|
954
|
+
*
|
955
|
+
* @private
|
956
|
+
*/
|
945
957
|
|
946
|
-
var isRedoHotkey = keyCode === 89 || shiftKey && keyCode === 90;
|
947
958
|
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
// CTRL + Z
|
954
|
-
instance.undoRedo.undo();
|
955
|
-
stopImmediatePropagation(event);
|
956
|
-
}
|
957
|
-
}
|
959
|
+
UndoRedo.prototype.unregisterShortcuts = function () {
|
960
|
+
var shortcutManager = this.instance.getShortcutManager();
|
961
|
+
var gridContext = shortcutManager.getContext('grid');
|
962
|
+
gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
|
963
|
+
};
|
958
964
|
/**
|
959
965
|
* @param {Array} changes 2D array containing information about each of the edited cells.
|
960
966
|
* @param {string} source String that identifies source of hook call.
|
@@ -1058,4 +1064,5 @@ hook.register('afterUndo');
|
|
1058
1064
|
hook.register('beforeRedo');
|
1059
1065
|
hook.register('afterRedo');
|
1060
1066
|
UndoRedo.PLUGIN_KEY = PLUGIN_KEY;
|
1067
|
+
UndoRedo.SETTING_KEYS = true;
|
1061
1068
|
export default UndoRedo;
|
@@ -8,8 +8,6 @@ var _htmlRenderer = require("../htmlRenderer");
|
|
8
8
|
|
9
9
|
var _textRenderer = require("../textRenderer");
|
10
10
|
|
11
|
-
var _src = require("../../3rdparty/walkontable/src");
|
12
|
-
|
13
11
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
14
12
|
|
15
13
|
var _element = require("../../helpers/dom/element");
|
@@ -55,7 +53,7 @@ function autocompleteRenderer(instance, TD, row, col, prop, value, cellPropertie
|
|
55
53
|
|
56
54
|
instance.acArrowListener = function (event) {
|
57
55
|
if ((0, _element.hasClass)(event.target, 'htAutocompleteArrow')) {
|
58
|
-
instance.view.
|
56
|
+
instance.view._wt.getSetting('onCellDblClick', null, instance._createCellCoords(row, col), TD);
|
59
57
|
}
|
60
58
|
};
|
61
59
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { htmlRenderer } from "../htmlRenderer/index.mjs";
|
2
2
|
import { textRenderer } from "../textRenderer/index.mjs";
|
3
|
-
import { CellCoords } from "../../3rdparty/walkontable/src/index.mjs";
|
4
3
|
import EventManager from "../../eventManager.mjs";
|
5
4
|
import { addClass, hasClass } from "../../helpers/dom/element.mjs";
|
6
5
|
export var RENDERER_TYPE = 'autocomplete';
|
@@ -40,7 +39,7 @@ export function autocompleteRenderer(instance, TD, row, col, prop, value, cellPr
|
|
40
39
|
|
41
40
|
instance.acArrowListener = function (event) {
|
42
41
|
if (hasClass(event.target, 'htAutocompleteArrow')) {
|
43
|
-
instance.view.
|
42
|
+
instance.view._wt.getSetting('onCellDblClick', null, instance._createCellCoords(row, col), TD);
|
44
43
|
}
|
45
44
|
};
|
46
45
|
|
@@ -28,13 +28,9 @@ var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
|
28
28
|
|
29
29
|
var _element = require("../../helpers/dom/element");
|
30
30
|
|
31
|
-
var _event = require("../../helpers/dom/event");
|
32
|
-
|
33
|
-
var _function = require("../../helpers/function");
|
34
|
-
|
35
31
|
var _mixed = require("../../helpers/mixed");
|
36
32
|
|
37
|
-
var
|
33
|
+
var _editorManager = require("../../editorManager");
|
38
34
|
|
39
35
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
40
36
|
|
@@ -45,6 +41,7 @@ var isCheckboxListenerAdded = new WeakMap();
|
|
45
41
|
var BAD_VALUE_CLASS = 'htBadValue';
|
46
42
|
var ATTR_ROW = 'data-row';
|
47
43
|
var ATTR_COLUMN = 'data-col';
|
44
|
+
var SHORTCUTS_GROUP = 'checkboxRenderer';
|
48
45
|
var RENDERER_TYPE = 'checkbox';
|
49
46
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
50
47
|
|
@@ -167,39 +164,45 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
167
164
|
|
168
165
|
if (!isListeningKeyDownEvent.has(instance)) {
|
169
166
|
isListeningKeyDownEvent.set(instance, true);
|
170
|
-
|
167
|
+
registerShortcuts();
|
171
168
|
}
|
172
169
|
/**
|
173
|
-
*
|
170
|
+
* Register shortcuts responsible for toggling checkbox state.
|
174
171
|
*
|
175
172
|
* @private
|
176
|
-
* @param {Event} event The keyboard event object.
|
177
173
|
*/
|
178
174
|
|
179
175
|
|
180
|
-
function
|
181
|
-
var
|
182
|
-
var
|
183
|
-
var
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
176
|
+
function registerShortcuts() {
|
177
|
+
var shortcutManager = instance.getShortcutManager();
|
178
|
+
var gridContext = shortcutManager.getContext('grid');
|
179
|
+
var config = {
|
180
|
+
group: SHORTCUTS_GROUP
|
181
|
+
};
|
182
|
+
gridContext.addShortcuts([{
|
183
|
+
keys: [['space']],
|
184
|
+
callback: function callback() {
|
185
|
+
changeSelectedCheckboxesState();
|
186
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
187
|
+
}
|
188
|
+
}, {
|
189
|
+
keys: [['enter']],
|
190
|
+
callback: function callback() {
|
191
|
+
changeSelectedCheckboxesState();
|
192
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
193
|
+
},
|
194
|
+
runOnlyIf: function runOnlyIf() {
|
195
|
+
return instance.getSettings().enterBeginsEditing;
|
196
|
+
}
|
197
|
+
}, {
|
198
|
+
keys: [['delete'], ['backspace']],
|
199
|
+
callback: function callback() {
|
200
|
+
changeSelectedCheckboxesState(true);
|
201
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
202
|
+
},
|
203
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
204
|
+
position: 'before'
|
205
|
+
}], config);
|
203
206
|
}
|
204
207
|
/**
|
205
208
|
* Change checkbox checked property.
|
@@ -218,11 +221,11 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
218
221
|
}
|
219
222
|
|
220
223
|
for (var key = 0; key < selRange.length; key++) {
|
221
|
-
var _selRange$key$
|
222
|
-
startRow = _selRange$key$
|
223
|
-
startColumn = _selRange$key$
|
224
|
+
var _selRange$key$getTopS = selRange[key].getTopStartCorner(),
|
225
|
+
startRow = _selRange$key$getTopS.row,
|
226
|
+
startColumn = _selRange$key$getTopS.col;
|
224
227
|
|
225
|
-
var _selRange$key$getBott = selRange[key].
|
228
|
+
var _selRange$key$getBott = selRange[key].getBottomEndCorner(),
|
226
229
|
endRow = _selRange$key$getBott.row,
|
227
230
|
endColumn = _selRange$key$getBott.col;
|
228
231
|
|
@@ -272,14 +275,14 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
272
275
|
}
|
273
276
|
}
|
274
277
|
/**
|
275
|
-
*
|
278
|
+
* Check whether all selected cells are with checkbox type.
|
276
279
|
*
|
280
|
+
* @returns {boolean}
|
277
281
|
* @private
|
278
|
-
* @param {Function} callback The callback function.
|
279
282
|
*/
|
280
283
|
|
281
284
|
|
282
|
-
function
|
285
|
+
function areSelectedCheckboxCells() {
|
283
286
|
var selRange = instance.getSelectedRange();
|
284
287
|
|
285
288
|
if (!selRange) {
|
@@ -287,31 +290,33 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
287
290
|
}
|
288
291
|
|
289
292
|
for (var key = 0; key < selRange.length; key++) {
|
290
|
-
var topLeft = selRange[key].
|
291
|
-
var bottomRight = selRange[key].
|
293
|
+
var topLeft = selRange[key].getTopStartCorner();
|
294
|
+
var bottomRight = selRange[key].getBottomEndCorner();
|
292
295
|
|
293
296
|
for (var visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
294
297
|
for (var visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
295
298
|
var cachedCellProperties = instance.getCellMeta(visualRow, visualColumn);
|
296
299
|
|
297
300
|
if (cachedCellProperties.type !== 'checkbox') {
|
298
|
-
return;
|
301
|
+
return false;
|
299
302
|
}
|
300
303
|
|
301
304
|
var cell = instance.getCell(visualRow, visualColumn);
|
302
305
|
|
303
306
|
if (cell === null || cell === void 0) {
|
304
|
-
|
307
|
+
return true;
|
305
308
|
} else {
|
306
309
|
var checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
307
310
|
|
308
311
|
if (checkboxes.length > 0 && !cachedCellProperties.readOnly) {
|
309
|
-
|
312
|
+
return true;
|
310
313
|
}
|
311
314
|
}
|
312
315
|
}
|
313
316
|
}
|
314
317
|
}
|
318
|
+
|
319
|
+
return false;
|
315
320
|
}
|
316
321
|
}
|
317
322
|
|
@@ -10,16 +10,15 @@ import "core-js/modules/web.timers.js";
|
|
10
10
|
import { baseRenderer } from "../baseRenderer/index.mjs";
|
11
11
|
import EventManager from "../../eventManager.mjs";
|
12
12
|
import { empty, addClass } from "../../helpers/dom/element.mjs";
|
13
|
-
import { stopImmediatePropagation, isImmediatePropagationStopped } from "../../helpers/dom/event.mjs";
|
14
|
-
import { partial } from "../../helpers/function.mjs";
|
15
13
|
import { isEmpty, stringify } from "../../helpers/mixed.mjs";
|
16
|
-
import {
|
14
|
+
import { SHORTCUTS_GROUP_EDITOR } from "../../editorManager.mjs";
|
17
15
|
import Hooks from "../../pluginHooks.mjs";
|
18
16
|
var isListeningKeyDownEvent = new WeakMap();
|
19
17
|
var isCheckboxListenerAdded = new WeakMap();
|
20
18
|
var BAD_VALUE_CLASS = 'htBadValue';
|
21
19
|
var ATTR_ROW = 'data-row';
|
22
20
|
var ATTR_COLUMN = 'data-col';
|
21
|
+
var SHORTCUTS_GROUP = 'checkboxRenderer';
|
23
22
|
export var RENDERER_TYPE = 'checkbox';
|
24
23
|
Hooks.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellMeta, cellValue) {
|
25
24
|
var label = cellMeta.label,
|
@@ -137,39 +136,45 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
137
136
|
|
138
137
|
if (!isListeningKeyDownEvent.has(instance)) {
|
139
138
|
isListeningKeyDownEvent.set(instance, true);
|
140
|
-
|
139
|
+
registerShortcuts();
|
141
140
|
}
|
142
141
|
/**
|
143
|
-
*
|
142
|
+
* Register shortcuts responsible for toggling checkbox state.
|
144
143
|
*
|
145
144
|
* @private
|
146
|
-
* @param {Event} event The keyboard event object.
|
147
145
|
*/
|
148
146
|
|
149
147
|
|
150
|
-
function
|
151
|
-
var
|
152
|
-
var
|
153
|
-
var
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
148
|
+
function registerShortcuts() {
|
149
|
+
var shortcutManager = instance.getShortcutManager();
|
150
|
+
var gridContext = shortcutManager.getContext('grid');
|
151
|
+
var config = {
|
152
|
+
group: SHORTCUTS_GROUP
|
153
|
+
};
|
154
|
+
gridContext.addShortcuts([{
|
155
|
+
keys: [['space']],
|
156
|
+
callback: function callback() {
|
157
|
+
changeSelectedCheckboxesState();
|
158
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
159
|
+
}
|
160
|
+
}, {
|
161
|
+
keys: [['enter']],
|
162
|
+
callback: function callback() {
|
163
|
+
changeSelectedCheckboxesState();
|
164
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
165
|
+
},
|
166
|
+
runOnlyIf: function runOnlyIf() {
|
167
|
+
return instance.getSettings().enterBeginsEditing;
|
168
|
+
}
|
169
|
+
}, {
|
170
|
+
keys: [['delete'], ['backspace']],
|
171
|
+
callback: function callback() {
|
172
|
+
changeSelectedCheckboxesState(true);
|
173
|
+
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
174
|
+
},
|
175
|
+
relativeToGroup: SHORTCUTS_GROUP_EDITOR,
|
176
|
+
position: 'before'
|
177
|
+
}], config);
|
173
178
|
}
|
174
179
|
/**
|
175
180
|
* Change checkbox checked property.
|
@@ -188,11 +193,11 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
188
193
|
}
|
189
194
|
|
190
195
|
for (var key = 0; key < selRange.length; key++) {
|
191
|
-
var _selRange$key$
|
192
|
-
startRow = _selRange$key$
|
193
|
-
startColumn = _selRange$key$
|
196
|
+
var _selRange$key$getTopS = selRange[key].getTopStartCorner(),
|
197
|
+
startRow = _selRange$key$getTopS.row,
|
198
|
+
startColumn = _selRange$key$getTopS.col;
|
194
199
|
|
195
|
-
var _selRange$key$getBott = selRange[key].
|
200
|
+
var _selRange$key$getBott = selRange[key].getBottomEndCorner(),
|
196
201
|
endRow = _selRange$key$getBott.row,
|
197
202
|
endColumn = _selRange$key$getBott.col;
|
198
203
|
|
@@ -242,14 +247,14 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
242
247
|
}
|
243
248
|
}
|
244
249
|
/**
|
245
|
-
*
|
250
|
+
* Check whether all selected cells are with checkbox type.
|
246
251
|
*
|
252
|
+
* @returns {boolean}
|
247
253
|
* @private
|
248
|
-
* @param {Function} callback The callback function.
|
249
254
|
*/
|
250
255
|
|
251
256
|
|
252
|
-
function
|
257
|
+
function areSelectedCheckboxCells() {
|
253
258
|
var selRange = instance.getSelectedRange();
|
254
259
|
|
255
260
|
if (!selRange) {
|
@@ -257,31 +262,33 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
257
262
|
}
|
258
263
|
|
259
264
|
for (var key = 0; key < selRange.length; key++) {
|
260
|
-
var topLeft = selRange[key].
|
261
|
-
var bottomRight = selRange[key].
|
265
|
+
var topLeft = selRange[key].getTopStartCorner();
|
266
|
+
var bottomRight = selRange[key].getBottomEndCorner();
|
262
267
|
|
263
268
|
for (var visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
|
264
269
|
for (var visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
|
265
270
|
var cachedCellProperties = instance.getCellMeta(visualRow, visualColumn);
|
266
271
|
|
267
272
|
if (cachedCellProperties.type !== 'checkbox') {
|
268
|
-
return;
|
273
|
+
return false;
|
269
274
|
}
|
270
275
|
|
271
276
|
var cell = instance.getCell(visualRow, visualColumn);
|
272
277
|
|
273
278
|
if (cell === null || cell === void 0) {
|
274
|
-
|
279
|
+
return true;
|
275
280
|
} else {
|
276
281
|
var checkboxes = cell.querySelectorAll('input[type=checkbox]');
|
277
282
|
|
278
283
|
if (checkboxes.length > 0 && !cachedCellProperties.readOnly) {
|
279
|
-
|
284
|
+
return true;
|
280
285
|
}
|
281
286
|
}
|
282
287
|
}
|
283
288
|
}
|
284
289
|
}
|
290
|
+
|
291
|
+
return false;
|
285
292
|
}
|
286
293
|
}
|
287
294
|
checkboxRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
package/renderers/index.d.ts
CHANGED
@@ -5,6 +5,7 @@ import { htmlRenderer, RENDERER_TYPE as HTML_RENDERER } from './htmlRenderer';
|
|
5
5
|
import { numericRenderer, RENDERER_TYPE as NUMERIC_RENDERER } from './numericRenderer';
|
6
6
|
import { passwordRenderer, RENDERER_TYPE as PASSWORD_RENDERER } from './passwordRenderer';
|
7
7
|
import { textRenderer, RENDERER_TYPE as TEXT_RENDERER } from './textRenderer';
|
8
|
+
import { timeRenderer, RENDERER_TYPE as TIME_RENDERER } from './timeRenderer';
|
8
9
|
|
9
10
|
export function registerAllRenderers(): void;
|
10
11
|
|
@@ -16,6 +17,7 @@ export interface Renderers {
|
|
16
17
|
numeric: typeof numericRenderer;
|
17
18
|
password: typeof passwordRenderer;
|
18
19
|
text: typeof textRenderer;
|
20
|
+
time: typeof timeRenderer;
|
19
21
|
}
|
20
22
|
|
21
23
|
/**
|
@@ -30,7 +32,8 @@ export {
|
|
30
32
|
htmlRenderer, HTML_RENDERER,
|
31
33
|
numericRenderer, NUMERIC_RENDERER,
|
32
34
|
passwordRenderer, PASSWORD_RENDERER,
|
33
|
-
textRenderer, TEXT_RENDERER
|
35
|
+
textRenderer, TEXT_RENDERER,
|
36
|
+
timeRenderer, TIME_RENDERER
|
34
37
|
};
|
35
38
|
export {
|
36
39
|
getRegisteredRendererNames,
|
package/renderers/index.js
CHANGED
@@ -39,6 +39,11 @@ var _textRenderer = require("./textRenderer");
|
|
39
39
|
exports.textRenderer = _textRenderer.textRenderer;
|
40
40
|
exports.TEXT_RENDERER = _textRenderer.RENDERER_TYPE;
|
41
41
|
|
42
|
+
var _timeRenderer = require("./timeRenderer");
|
43
|
+
|
44
|
+
exports.timeRenderer = _timeRenderer.timeRenderer;
|
45
|
+
exports.TIME_RENDERER = _timeRenderer.RENDERER_TYPE;
|
46
|
+
|
42
47
|
var _registry = require("./registry");
|
43
48
|
|
44
49
|
exports.registerRenderer = _registry.registerRenderer;
|
@@ -58,4 +63,5 @@ function registerAllRenderers() {
|
|
58
63
|
(0, _registry.registerRenderer)(_numericRenderer.numericRenderer);
|
59
64
|
(0, _registry.registerRenderer)(_passwordRenderer.passwordRenderer);
|
60
65
|
(0, _registry.registerRenderer)(_textRenderer.textRenderer);
|
66
|
+
(0, _registry.registerRenderer)(_timeRenderer.timeRenderer);
|
61
67
|
}
|
package/renderers/index.mjs
CHANGED
@@ -5,6 +5,7 @@ import { htmlRenderer, RENDERER_TYPE as HTML_RENDERER } from "./htmlRenderer/ind
|
|
5
5
|
import { numericRenderer, RENDERER_TYPE as NUMERIC_RENDERER } from "./numericRenderer/index.mjs";
|
6
6
|
import { passwordRenderer, RENDERER_TYPE as PASSWORD_RENDERER } from "./passwordRenderer/index.mjs";
|
7
7
|
import { textRenderer, RENDERER_TYPE as TEXT_RENDERER } from "./textRenderer/index.mjs";
|
8
|
+
import { timeRenderer, RENDERER_TYPE as TIME_RENDERER } from "./timeRenderer/index.mjs";
|
8
9
|
import { registerRenderer } from "./registry.mjs";
|
9
10
|
/**
|
10
11
|
* Registers all available renderers.
|
@@ -18,6 +19,7 @@ export function registerAllRenderers() {
|
|
18
19
|
registerRenderer(numericRenderer);
|
19
20
|
registerRenderer(passwordRenderer);
|
20
21
|
registerRenderer(textRenderer);
|
22
|
+
registerRenderer(timeRenderer);
|
21
23
|
}
|
22
|
-
export { autocompleteRenderer, AUTOCOMPLETE_RENDERER, baseRenderer, BASE_RENDERER, checkboxRenderer, CHECKBOX_RENDERER, htmlRenderer, HTML_RENDERER, numericRenderer, NUMERIC_RENDERER, passwordRenderer, PASSWORD_RENDERER, textRenderer, TEXT_RENDERER };
|
24
|
+
export { autocompleteRenderer, AUTOCOMPLETE_RENDERER, baseRenderer, BASE_RENDERER, checkboxRenderer, CHECKBOX_RENDERER, htmlRenderer, HTML_RENDERER, numericRenderer, NUMERIC_RENDERER, passwordRenderer, PASSWORD_RENDERER, textRenderer, TEXT_RENDERER, timeRenderer, TIME_RENDERER };
|
23
25
|
export { getRegisteredRendererNames, getRegisteredRenderers, getRenderer, hasRenderer, registerRenderer } from "./registry.mjs";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, timeRenderer } from './timeRenderer';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, timeRenderer } from "./timeRenderer.mjs";
|