handsontable 13.1.0 → 14.0.0-next-d97b156-20231027
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/calculator/constants.js +3 -6
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
- package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
- package/3rdparty/walkontable/src/cell/coords.js +81 -13
- package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +39 -9
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +13 -12
- package/3rdparty/walkontable/src/event.mjs +12 -10
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/filter/column.js +1 -2
- package/3rdparty/walkontable/src/filter/row.js +1 -2
- package/3rdparty/walkontable/src/index.js +12 -4
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +13 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
- package/3rdparty/walkontable/src/overlay/constants.js +7 -14
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/overlays.js +1 -2
- package/3rdparty/walkontable/src/renderer/cells.js +10 -0
- package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +13 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -0
- package/3rdparty/walkontable/src/renderer/rows.js +13 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
- package/3rdparty/walkontable/src/renderer/table.js +9 -0
- package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
- package/3rdparty/walkontable/src/scroll.js +3 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +54 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +274 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +100 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +13 -4
- package/3rdparty/walkontable/src/settings.mjs +13 -4
- package/3rdparty/walkontable/src/table/bottom.js +1 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
- package/3rdparty/walkontable/src/table/master.js +3 -6
- package/3rdparty/walkontable/src/table/master.mjs +2 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table/top.js +1 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table.js +20 -80
- package/3rdparty/walkontable/src/table.mjs +20 -79
- package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
- package/3rdparty/walkontable/src/viewport.js +1 -2
- package/CHANGELOG.md +51 -0
- package/base.js +3 -4
- package/base.mjs +2 -2
- package/cellTypes/autocompleteType/autocompleteType.js +3 -5
- package/cellTypes/checkboxType/checkboxType.js +3 -5
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +5 -7
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/dropdownType/dropdownType.js +3 -5
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +5 -7
- package/cellTypes/handsontableType/handsontableType.mjs +2 -2
- package/cellTypes/index.d.ts +3 -0
- package/cellTypes/index.js +4 -0
- package/cellTypes/index.mjs +3 -1
- package/cellTypes/numericType/numericType.js +3 -5
- package/cellTypes/passwordType/passwordType.js +3 -5
- package/cellTypes/selectType/index.d.ts +1 -0
- package/cellTypes/selectType/index.js +6 -0
- package/cellTypes/selectType/index.mjs +1 -0
- package/cellTypes/selectType/selectType.d.ts +14 -0
- package/cellTypes/selectType/selectType.js +11 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/cellTypes/textType/textType.js +3 -5
- package/cellTypes/timeType/timeType.js +3 -5
- package/common.d.ts +1 -1
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +148 -0
- package/core/focusCatcher/index.mjs +144 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +10 -5
- package/core.js +327 -359
- package/core.mjs +327 -359
- package/dataMap/dataMap.js +1 -2
- package/dataMap/dataSource.js +1 -2
- package/dataMap/metaManager/metaSchema.js +65 -0
- package/dataMap/metaManager/metaSchema.mjs +65 -0
- package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
- package/dataMap/replaceData.js +5 -0
- package/dataMap/replaceData.mjs +5 -0
- package/dist/handsontable.css +94 -76
- package/dist/handsontable.full.css +94 -76
- package/dist/handsontable.full.js +21236 -14104
- package/dist/handsontable.full.min.css +8 -8
- package/dist/handsontable.full.min.js +170 -152
- package/dist/handsontable.js +22016 -15254
- package/dist/handsontable.min.css +7 -7
- package/dist/handsontable.min.js +31 -23
- package/dist/languages/all.js +47 -40
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +1 -2
- package/dist/languages/cs-CZ.js +1 -2
- package/dist/languages/de-CH.js +1 -2
- package/dist/languages/de-DE.js +1 -2
- package/dist/languages/en-US.js +15 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +1 -2
- package/dist/languages/fr-FR.js +1 -2
- package/dist/languages/it-IT.js +1 -2
- package/dist/languages/ja-JP.js +1 -2
- package/dist/languages/ko-KR.js +1 -2
- package/dist/languages/lv-LV.js +1 -2
- package/dist/languages/nb-NO.js +1 -2
- package/dist/languages/nl-NL.js +1 -2
- package/dist/languages/pl-PL.js +15 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +1 -2
- package/dist/languages/ru-RU.js +1 -2
- package/dist/languages/sr-SP.js +1 -2
- package/dist/languages/zh-CN.js +1 -2
- package/dist/languages/zh-TW.js +1 -2
- package/editorManager.js +17 -91
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
- package/editors/baseEditor/baseEditor.js +19 -13
- package/editors/baseEditor/baseEditor.mjs +16 -7
- package/editors/checkboxEditor/checkboxEditor.js +1 -2
- package/editors/dateEditor/dateEditor.js +27 -9
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/dropdownEditor/dropdownEditor.js +1 -2
- package/editors/handsontableEditor/handsontableEditor.js +14 -7
- package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
- package/editors/numericEditor/numericEditor.js +1 -2
- package/editors/passwordEditor/passwordEditor.js +1 -2
- package/editors/selectEditor/selectEditor.js +1 -2
- package/editors/textEditor/textEditor.js +20 -29
- package/editors/textEditor/textEditor.mjs +22 -30
- package/editors/timeEditor/timeEditor.js +1 -2
- package/eventManager.js +1 -2
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +81 -0
- package/helpers/a11y.mjs +39 -0
- package/helpers/dom/element.js +224 -12
- package/helpers/dom/element.mjs +216 -10
- package/helpers/dom/event.d.ts +1 -0
- package/helpers/dom/event.js +25 -0
- package/helpers/dom/event.mjs +24 -0
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/unicode.js +1 -2
- package/i18n/constants.js +97 -160
- package/i18n/constants.mjs +17 -1
- package/i18n/languages/ar-AR.js +3 -4
- package/i18n/languages/cs-CZ.js +3 -4
- package/i18n/languages/de-CH.js +3 -4
- package/i18n/languages/de-DE.js +3 -4
- package/i18n/languages/en-US.js +17 -5
- package/i18n/languages/en-US.mjs +14 -1
- package/i18n/languages/es-MX.js +3 -4
- package/i18n/languages/fr-FR.js +3 -4
- package/i18n/languages/it-IT.js +3 -4
- package/i18n/languages/ja-JP.js +3 -4
- package/i18n/languages/ko-KR.js +3 -4
- package/i18n/languages/lv-LV.js +3 -4
- package/i18n/languages/nb-NO.js +3 -4
- package/i18n/languages/nl-NL.js +3 -4
- package/i18n/languages/pl-PL.js +17 -5
- package/i18n/languages/pl-PL.mjs +14 -1
- package/i18n/languages/pt-BR.js +3 -4
- package/i18n/languages/ru-RU.js +3 -4
- package/i18n/languages/sr-SP.js +3 -4
- package/i18n/languages/zh-CN.js +3 -4
- package/i18n/languages/zh-TW.js +3 -4
- package/i18n/registry.js +4 -6
- package/index.js +3 -4
- package/languages/all.js +47 -40
- package/languages/ar-AR.js +1 -2
- package/languages/cs-CZ.js +1 -2
- package/languages/de-CH.js +1 -2
- package/languages/de-DE.js +1 -2
- package/languages/en-US.js +15 -3
- package/languages/en-US.mjs +14 -1
- package/languages/es-MX.js +1 -2
- package/languages/fr-FR.js +1 -2
- package/languages/index.js +47 -40
- package/languages/it-IT.js +1 -2
- package/languages/ja-JP.js +1 -2
- package/languages/ko-KR.js +1 -2
- package/languages/lv-LV.js +1 -2
- package/languages/nb-NO.js +1 -2
- package/languages/nl-NL.js +1 -2
- package/languages/pl-PL.js +15 -3
- package/languages/pl-PL.mjs +14 -1
- package/languages/pt-BR.js +1 -2
- package/languages/ru-RU.js +1 -2
- package/languages/sr-SP.js +1 -2
- package/languages/zh-CN.js +1 -2
- package/languages/zh-TW.js +1 -2
- package/mixins/hooksRefRegisterer.js +1 -2
- package/mixins/localHooks.js +1 -2
- package/package.json +119 -96
- package/pluginHooks.d.ts +42 -7
- package/pluginHooks.js +301 -65
- package/pluginHooks.mjs +300 -63
- package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
- package/plugins/autoColumnSize/autoColumnSize.js +2 -4
- package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
- package/plugins/autoRowSize/autoRowSize.js +15 -10
- package/plugins/autoRowSize/autoRowSize.mjs +13 -6
- package/plugins/autofill/autofill.js +2 -4
- package/plugins/autofill/utils.js +1 -2
- package/plugins/base/base.js +1 -2
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
- package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
- package/plugins/columnSorting/columnSorting.js +71 -6
- package/plugins/columnSorting/columnSorting.mjs +70 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
- package/plugins/columnSorting/sortFunction/date.js +1 -2
- package/plugins/columnSorting/sortFunction/default.js +1 -2
- package/plugins/columnSorting/sortFunction/numeric.js +1 -2
- package/plugins/columnSorting/sortService/engine.js +3 -6
- package/plugins/columnSorting/utils.js +3 -6
- package/plugins/columnSummary/columnSummary.js +2 -4
- package/plugins/columnSummary/endpoints.js +1 -2
- package/plugins/comments/commentEditor.js +2 -2
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +254 -197
- package/plugins/comments/comments.mjs +251 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/comments/displaySwitch.js +1 -2
- package/plugins/contextMenu/commandExecutor.js +2 -3
- package/plugins/contextMenu/commandExecutor.mjs +2 -3
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +77 -40
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
- package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
- package/plugins/contextMenu/menu/navigator.js +27 -0
- package/plugins/contextMenu/menu/navigator.mjs +23 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/shortcuts.js +114 -0
- package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/index.js +75 -0
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
- package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/redo.js +3 -4
- package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/separator.js +1 -2
- package/plugins/contextMenu/predefinedItems/undo.js +3 -4
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
- package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
- package/plugins/copyPaste/clipboardData/index.js +9 -0
- package/plugins/copyPaste/clipboardData/index.mjs +4 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +9 -2
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +160 -167
- package/plugins/copyPaste/copyPaste.mjs +161 -166
- package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
- package/plugins/customBorders/contextMenuItem/left.js +2 -2
- package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
- package/plugins/customBorders/contextMenuItem/right.js +2 -2
- package/plugins/customBorders/contextMenuItem/top.js +2 -2
- package/plugins/customBorders/customBorders.js +27 -26
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dragToScroll/dragToScroll.js +2 -4
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +130 -44
- package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
- package/plugins/exportFile/dataProvider.js +1 -2
- package/plugins/exportFile/exportFile.js +4 -6
- package/plugins/exportFile/typeFactory.js +5 -8
- package/plugins/exportFile/types/_base.js +1 -2
- package/plugins/exportFile/types/csv.js +1 -2
- package/plugins/filters/component/_base.js +23 -8
- package/plugins/filters/component/_base.mjs +23 -8
- package/plugins/filters/component/actionBar.js +31 -29
- package/plugins/filters/component/actionBar.mjs +26 -23
- package/plugins/filters/component/condition.js +48 -61
- package/plugins/filters/component/condition.mjs +40 -52
- package/plugins/filters/component/operators.js +21 -22
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +37 -28
- package/plugins/filters/component/value.mjs +32 -22
- package/plugins/filters/condition/beginsWith.js +3 -4
- package/plugins/filters/condition/between.js +3 -4
- package/plugins/filters/condition/byValue.js +1 -2
- package/plugins/filters/condition/contains.js +3 -4
- package/plugins/filters/condition/date/after.js +3 -4
- package/plugins/filters/condition/date/before.js +3 -4
- package/plugins/filters/condition/date/today.js +3 -4
- package/plugins/filters/condition/date/tomorrow.js +3 -4
- package/plugins/filters/condition/date/yesterday.js +3 -4
- package/plugins/filters/condition/empty.js +3 -4
- package/plugins/filters/condition/endsWith.js +3 -4
- package/plugins/filters/condition/equal.js +3 -4
- package/plugins/filters/condition/false.js +1 -2
- package/plugins/filters/condition/greaterThan.js +3 -4
- package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
- package/plugins/filters/condition/lessThan.js +3 -4
- package/plugins/filters/condition/lessThanOrEqual.js +3 -4
- package/plugins/filters/condition/none.js +3 -4
- package/plugins/filters/condition/notBetween.js +3 -4
- package/plugins/filters/condition/notContains.js +3 -4
- package/plugins/filters/condition/notEmpty.js +3 -4
- package/plugins/filters/condition/notEqual.js +3 -4
- package/plugins/filters/condition/true.js +1 -2
- package/plugins/filters/conditionCollection.d.ts +3 -2
- package/plugins/filters/conditionCollection.js +1 -2
- package/plugins/filters/conditionRegisterer.js +1 -2
- package/plugins/filters/conditionUpdateObserver.js +1 -2
- package/plugins/filters/constants.js +4 -8
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/dataFilter.js +1 -2
- package/plugins/filters/filters.d.ts +3 -5
- package/plugins/filters/filters.js +108 -66
- package/plugins/filters/filters.mjs +99 -55
- package/plugins/filters/logicalOperationRegisterer.js +1 -2
- package/plugins/filters/logicalOperations/conjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
- package/plugins/filters/menu/focusController.js +123 -0
- package/plugins/filters/menu/focusController.mjs +119 -0
- package/plugins/filters/menu/focusNavigator.js +30 -0
- package/plugins/filters/menu/focusNavigator.mjs +26 -0
- package/plugins/filters/ui/_base.js +37 -15
- package/plugins/filters/ui/_base.mjs +35 -13
- package/plugins/filters/ui/input.js +43 -35
- package/plugins/filters/ui/input.mjs +42 -33
- package/plugins/filters/ui/link.js +44 -12
- package/plugins/filters/ui/link.mjs +44 -11
- package/plugins/filters/ui/multipleSelect.js +237 -133
- package/plugins/filters/ui/multipleSelect.mjs +232 -127
- package/plugins/filters/ui/radioInput.js +42 -18
- package/plugins/filters/ui/radioInput.mjs +42 -17
- package/plugins/filters/ui/select.js +152 -77
- package/plugins/filters/ui/select.mjs +148 -72
- package/plugins/formulas/engine/settings.js +2 -4
- package/plugins/formulas/formulas.js +3 -6
- package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
- package/plugins/formulas/indexSyncer/index.js +1 -2
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
- package/plugins/hiddenColumns/hiddenColumns.js +49 -6
- package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
- package/plugins/hiddenRows/hiddenRows.js +49 -6
- package/plugins/hiddenRows/hiddenRows.mjs +48 -3
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
- package/plugins/manualColumnMove/manualColumnMove.js +9 -17
- package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
- package/plugins/manualColumnMove/ui/_base.js +1 -2
- package/plugins/manualColumnMove/ui/backlight.js +1 -2
- package/plugins/manualColumnMove/ui/guideline.js +1 -2
- package/plugins/manualColumnResize/manualColumnResize.js +2 -4
- package/plugins/manualRowMove/manualRowMove.js +6 -23
- package/plugins/manualRowMove/manualRowMove.mjs +4 -19
- package/plugins/manualRowMove/ui/_base.js +1 -2
- package/plugins/manualRowMove/ui/backlight.js +1 -2
- package/plugins/manualRowMove/ui/guideline.js +1 -2
- package/plugins/manualRowResize/manualRowResize.js +2 -4
- package/plugins/mergeCells/calculations/autofill.js +1 -2
- package/plugins/mergeCells/calculations/selection.js +1 -2
- package/plugins/mergeCells/cellCoords.js +1 -2
- package/plugins/mergeCells/cellsCollection.js +1 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
- package/plugins/mergeCells/mergeCells.js +7 -20
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
- package/plugins/nestedHeaders/nestedHeaders.js +263 -36
- package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
- package/plugins/nestedRows/data/dataManager.js +1 -2
- package/plugins/nestedRows/nestedRows.js +47 -10
- package/plugins/nestedRows/nestedRows.mjs +45 -6
- package/plugins/nestedRows/ui/_base.js +1 -2
- package/plugins/nestedRows/ui/collapsing.js +1 -2
- package/plugins/nestedRows/ui/contextMenu.js +3 -4
- package/plugins/nestedRows/ui/headers.js +13 -3
- package/plugins/nestedRows/ui/headers.mjs +13 -2
- package/plugins/persistentState/persistentState.js +2 -4
- package/plugins/persistentState/storage.js +1 -2
- package/plugins/search/search.js +2 -4
- package/plugins/touchScroll/touchScroll.js +2 -4
- package/plugins/trimRows/trimRows.js +2 -4
- package/plugins/undoRedo/index.js +2 -2
- package/plugins/undoRedo/undoRedo.js +2 -4
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +18 -2
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +28 -0
- package/renderers/dateRenderer/dateRenderer.mjs +24 -0
- package/renderers/dateRenderer/index.d.ts +1 -0
- package/renderers/dateRenderer/index.js +6 -0
- package/renderers/dateRenderer/index.mjs +1 -0
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
- package/renderers/handsontableRenderer/handsontableRenderer.js +28 -0
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
- package/renderers/handsontableRenderer/index.d.ts +1 -0
- package/renderers/handsontableRenderer/index.js +6 -0
- package/renderers/handsontableRenderer/index.mjs +1 -0
- package/renderers/htmlRenderer/htmlRenderer.js +1 -2
- package/renderers/index.d.ts +9 -0
- package/renderers/numericRenderer/numericRenderer.js +1 -2
- package/renderers/passwordRenderer/passwordRenderer.js +1 -2
- package/renderers/selectRenderer/index.d.ts +1 -0
- package/renderers/selectRenderer/index.js +6 -0
- package/renderers/selectRenderer/index.mjs +1 -0
- package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
- package/renderers/selectRenderer/selectRenderer.js +26 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/renderers/textRenderer/textRenderer.js +1 -2
- package/renderers/timeRenderer/timeRenderer.js +1 -2
- package/selection/highlight/highlight.js +257 -73
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +32 -29
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +7 -1
- package/selection/mouseEventHandler.mjs +7 -1
- package/selection/range.js +9 -10
- package/selection/range.mjs +8 -8
- package/selection/selection.js +334 -154
- package/selection/selection.mjs +330 -151
- package/selection/transformation.js +233 -94
- package/selection/transformation.mjs +232 -92
- package/selection/utils.js +20 -31
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +15 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +26 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +10 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +11 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +167 -0
- package/shortcutContexts/grid.mjs +163 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.d.ts +1 -0
- package/shortcuts/context.js +23 -4
- package/shortcuts/context.mjs +23 -5
- package/shortcuts/manager.js +31 -7
- package/shortcuts/manager.mjs +32 -7
- package/shortcuts/recorder.js +30 -14
- package/shortcuts/recorder.mjs +30 -14
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +113 -16
- package/tableView.mjs +113 -15
- package/utils/dataStructures/linkedList.js +1 -2
- package/utils/dataStructures/priorityMap.js +2 -4
- package/utils/dataStructures/queue.js +1 -2
- package/utils/dataStructures/stack.js +1 -2
- package/utils/dataStructures/tree.js +3 -6
- package/utils/ghostTable.js +32 -17
- package/utils/ghostTable.mjs +31 -15
- package/utils/interval.js +1 -2
- package/utils/paginator.js +151 -0
- package/utils/paginator.mjs +147 -0
- package/utils/parseTable.js +527 -83
- package/utils/parseTable.mjs +523 -82
- package/utils/rootInstance.js +2 -4
- package/utils/samplesGenerator.js +21 -13
- package/utils/samplesGenerator.mjs +20 -11
- package/utils/staticRegister.js +1 -2
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
- package/validators/dateValidator/dateValidator.js +1 -2
- package/validators/numericValidator/numericValidator.js +1 -2
- package/validators/timeValidator/timeValidator.js +1 -2
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.js +0 -76
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/clipboardData.js +0 -18
- package/plugins/copyPaste/clipboardData.mjs +0 -14
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/plugins/copyPaste/pasteEvent.js +0 -14
- package/plugins/copyPaste/pasteEvent.mjs +0 -9
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -5,11 +5,12 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
6
6
|
import { HandsontableEditor } from "../handsontableEditor/index.mjs";
|
7
7
|
import { arrayMap, pivot } from "../../helpers/array.mjs";
|
8
|
-
import { addClass, getCaretPosition, getScrollbarWidth, getSelectionEndPosition, getTrimmingContainer, offset, outerHeight, outerWidth, setCaretPosition } from "../../helpers/dom/element.mjs";
|
8
|
+
import { addClass, getCaretPosition, getScrollbarWidth, getSelectionEndPosition, getTrimmingContainer, offset, outerHeight, outerWidth, setAttribute, setCaretPosition } from "../../helpers/dom/element.mjs";
|
9
9
|
import { isDefined, stringify } from "../../helpers/mixed.mjs";
|
10
10
|
import { stripTags } from "../../helpers/string.mjs";
|
11
11
|
import { KEY_CODES, isPrintableChar } from "../../helpers/unicode.mjs";
|
12
12
|
import { textRenderer } from "../../renderers/textRenderer/index.mjs";
|
13
|
+
import { A11Y_ACTIVEDESCENDANT, A11Y_AUTOCOMPLETE, A11Y_COMBOBOX, A11Y_CONTROLS, A11Y_EXPANDED, A11Y_HASPOPUP, A11Y_LISTBOX, A11Y_LIVE, A11Y_OPTION, A11Y_POSINSET, A11Y_PRESENTATION, A11Y_RELEVANT, A11Y_SELECTED, A11Y_SETSIZE, A11Y_TEXT } from "../../helpers/a11y.mjs";
|
13
14
|
const privatePool = new WeakMap();
|
14
15
|
export const EDITOR_TYPE = 'autocomplete';
|
15
16
|
|
@@ -109,7 +110,8 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
109
110
|
this.rawChoices = [];
|
110
111
|
privatePool.set(this, {
|
111
112
|
skipOne: false,
|
112
|
-
isMacOS: this.hot.rootWindow.navigator.platform.indexOf('Mac') > -1
|
113
|
+
isMacOS: this.hot.rootWindow.navigator.platform.indexOf('Mac') > -1,
|
114
|
+
idPrefix: instance.guid.slice(0, 9)
|
113
115
|
});
|
114
116
|
}
|
115
117
|
|
@@ -136,6 +138,27 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
136
138
|
super.createElements();
|
137
139
|
addClass(this.htContainer, 'autocompleteEditor');
|
138
140
|
addClass(this.htContainer, this.hot.rootWindow.navigator.platform.indexOf('Mac') === -1 ? '' : 'htMacScroll');
|
141
|
+
if (this.hot.getSettings().ariaTags) {
|
142
|
+
setAttribute(this.TEXTAREA, [A11Y_TEXT(), A11Y_COMBOBOX(), A11Y_HASPOPUP('listbox'), A11Y_AUTOCOMPLETE()]);
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
/**
|
147
|
+
* Prepares editor's metadata and configuration of the internal Handsontable's instance.
|
148
|
+
*
|
149
|
+
* @param {number} row The visual row index.
|
150
|
+
* @param {number} col The visual column index.
|
151
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
152
|
+
* @param {HTMLTableCellElement} td The rendered cell element.
|
153
|
+
* @param {*} value The rendered value.
|
154
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
155
|
+
*/
|
156
|
+
prepare(row, col, prop, td, value, cellProperties) {
|
157
|
+
const priv = privatePool.get(this);
|
158
|
+
super.prepare(row, col, prop, td, value, cellProperties);
|
159
|
+
if (this.hot.getSettings().ariaTags) {
|
160
|
+
setAttribute(this.TEXTAREA, [A11Y_EXPANDED('false'), A11Y_CONTROLS(`${priv.idPrefix}-listbox-${row}-${col}`)]);
|
161
|
+
}
|
139
162
|
}
|
140
163
|
|
141
164
|
/**
|
@@ -144,8 +167,14 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
144
167
|
open() {
|
145
168
|
const priv = privatePool.get(this);
|
146
169
|
super.open();
|
147
|
-
const choicesListHot = this.htEditor.getInstance();
|
148
170
|
const trimDropdown = this.cellProperties.trimDropdown === void 0 ? true : this.cellProperties.trimDropdown;
|
171
|
+
const rootInstanceAriaTagsEnabled = this.hot.getSettings().ariaTags;
|
172
|
+
const sourceArray = Array.isArray(this.cellProperties.source) ? this.cellProperties.source : null;
|
173
|
+
const sourceSize = sourceArray === null || sourceArray === void 0 ? void 0 : sourceArray.length;
|
174
|
+
const {
|
175
|
+
row: rowIndex,
|
176
|
+
col: colIndex
|
177
|
+
} = this;
|
149
178
|
this.showEditableElement();
|
150
179
|
this.focus();
|
151
180
|
let scrollbarWidth = getScrollbarWidth();
|
@@ -154,9 +183,10 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
154
183
|
}
|
155
184
|
|
156
185
|
this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
|
157
|
-
|
186
|
+
this.htEditor.updateSettings({
|
158
187
|
colWidths: trimDropdown ? [outerWidth(this.TEXTAREA) - 2] : void 0,
|
159
188
|
width: trimDropdown ? outerWidth(this.TEXTAREA) + scrollbarWidth : void 0,
|
189
|
+
autoColumnSize: true,
|
160
190
|
renderer: (instance, TD, row, col, prop, value, cellProperties) => {
|
161
191
|
textRenderer(instance, TD, row, col, prop, value, cellProperties);
|
162
192
|
const {
|
@@ -175,10 +205,27 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
175
205
|
cellValue = cellValue.replace(match, `<strong>${match}</strong>`);
|
176
206
|
}
|
177
207
|
}
|
208
|
+
if (rootInstanceAriaTagsEnabled) {
|
209
|
+
setAttribute(TD, [A11Y_OPTION(),
|
210
|
+
// Add `setsize` and `posinset` only if the source is an array.
|
211
|
+
...(sourceArray ? [A11Y_SETSIZE(sourceSize)] : []), ...(sourceArray ? [A11Y_POSINSET(sourceArray.indexOf(value) + 1)] : []), ['id', `${this.htEditor.rootElement.id}_${row}-${col}`]]);
|
212
|
+
}
|
178
213
|
TD.innerHTML = cellValue;
|
179
214
|
},
|
180
|
-
|
215
|
+
afterSelection: (startRow, startCol) => {
|
216
|
+
if (rootInstanceAriaTagsEnabled) {
|
217
|
+
const TD = this.htEditor.getCell(startRow, startCol, true);
|
218
|
+
setAttribute(TD, [A11Y_SELECTED()]);
|
219
|
+
setAttribute(this.TEXTAREA, ...A11Y_ACTIVEDESCENDANT(TD.id));
|
220
|
+
}
|
221
|
+
}
|
181
222
|
});
|
223
|
+
if (rootInstanceAriaTagsEnabled) {
|
224
|
+
// Add `role=presentation` to the main table to prevent the readers from treating the option list as a table.
|
225
|
+
setAttribute(this.htEditor.view._wt.wtOverlays.wtTable.TABLE, ...A11Y_PRESENTATION());
|
226
|
+
setAttribute(this.htEditor.rootElement, [A11Y_LISTBOX(), A11Y_LIVE('polite'), A11Y_RELEVANT('text'), ['id', `${priv.idPrefix}-listbox-${rowIndex}-${colIndex}`]]);
|
227
|
+
setAttribute(this.TEXTAREA, ...A11Y_EXPANDED('true'));
|
228
|
+
}
|
182
229
|
if (priv.skipOne) {
|
183
230
|
priv.skipOne = false;
|
184
231
|
}
|
@@ -193,6 +240,9 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
193
240
|
close() {
|
194
241
|
this.removeHooksByKey('beforeKeyDown');
|
195
242
|
super.close();
|
243
|
+
if (this.hot.getSettings().ariaTags) {
|
244
|
+
setAttribute(this.TEXTAREA, [A11Y_EXPANDED('false')]);
|
245
|
+
}
|
196
246
|
}
|
197
247
|
|
198
248
|
/**
|
@@ -267,10 +317,15 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
267
317
|
}
|
268
318
|
this.strippedChoices = choices;
|
269
319
|
this.htEditor.loadData(pivot([choices]));
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
this.
|
320
|
+
if (choices.length === 0) {
|
321
|
+
this.htEditor.rootElement.style.display = 'none';
|
322
|
+
} else {
|
323
|
+
this.htEditor.rootElement.style.display = '';
|
324
|
+
this.updateDropdownHeight();
|
325
|
+
this.flipDropdownIfNeeded();
|
326
|
+
if (this.cellProperties.strict === true) {
|
327
|
+
this.highlightBestMatchingChoice(highlightIndex);
|
328
|
+
}
|
274
329
|
}
|
275
330
|
this.hot.listen();
|
276
331
|
setCaretPosition(this.TEXTAREA, pos, pos === endPos ? void 0 : endPos);
|
@@ -407,7 +462,7 @@ export class AutocompleteEditor extends HandsontableEditor {
|
|
407
462
|
* @returns {number}
|
408
463
|
*/
|
409
464
|
getDropdownHeight() {
|
410
|
-
const firstRowHeight = this.htEditor.
|
465
|
+
const firstRowHeight = this.htEditor.getRowHeight(0) || 23;
|
411
466
|
const visibleRows = this.cellProperties.visibleRows;
|
412
467
|
return this.strippedChoices.length >= visibleRows ? visibleRows * firstRowHeight : this.strippedChoices.length * firstRowHeight + 8; // eslint-disable-line max-len
|
413
468
|
}
|
@@ -8,9 +8,8 @@ var _editorManager = require("../../editorManager");
|
|
8
8
|
var _hooksRefRegisterer = _interopRequireDefault(require("../../mixins/hooksRefRegisterer"));
|
9
9
|
var _element = require("../../helpers/dom/element");
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
-
const EDITOR_TYPE = 'base';
|
12
|
-
exports.
|
13
|
-
const EDITOR_STATE = Object.freeze({
|
11
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'base';
|
12
|
+
const EDITOR_STATE = exports.EDITOR_STATE = Object.freeze({
|
14
13
|
VIRGIN: 'STATE_VIRGIN',
|
15
14
|
// before editing
|
16
15
|
EDITING: 'STATE_EDITING',
|
@@ -18,13 +17,11 @@ const EDITOR_STATE = Object.freeze({
|
|
18
17
|
// waiting for async validation
|
19
18
|
FINISHED: 'STATE_FINISHED'
|
20
19
|
});
|
21
|
-
exports.
|
22
|
-
const SHORTCUTS_GROUP_EDITOR = 'baseEditor';
|
20
|
+
const SHORTCUTS_GROUP_EDITOR = exports.SHORTCUTS_GROUP_EDITOR = 'baseEditor';
|
23
21
|
|
24
22
|
/**
|
25
23
|
* @class BaseEditor
|
26
24
|
*/
|
27
|
-
exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
|
28
25
|
class BaseEditor {
|
29
26
|
static get EDITOR_TYPE() {
|
30
27
|
return EDITOR_TYPE;
|
@@ -492,21 +489,30 @@ class BaseEditor {
|
|
492
489
|
const horizontalScrollPosition = Math.abs(wtOverlays.inlineStartOverlay.getScrollPosition());
|
493
490
|
const verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();
|
494
491
|
const scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
|
495
|
-
|
496
|
-
|
492
|
+
let cellTopOffset = TD.offsetTop;
|
493
|
+
if (['inline_start', 'master'].includes(overlayName)) {
|
494
|
+
cellTopOffset += firstRowOffset - verticalScrollPosition;
|
495
|
+
}
|
496
|
+
if (['bottom', 'bottom_inline_start_corner'].includes(overlayName)) {
|
497
|
+
const {
|
498
|
+
wtViewport: bottomWtViewport,
|
499
|
+
wtTable: bottomWtTable
|
500
|
+
} = wtOverlays.bottomOverlay.clone;
|
501
|
+
cellTopOffset += bottomWtViewport.getWorkspaceHeight() - bottomWtTable.getHeight() - scrollbarWidth;
|
502
|
+
}
|
503
|
+
let cellStartOffset = TD.offsetLeft;
|
497
504
|
if (this.hot.isRtl()) {
|
498
|
-
|
499
|
-
if (cellOffset >= 0) {
|
505
|
+
if (cellStartOffset >= 0) {
|
500
506
|
cellStartOffset = overlayTable.getWidth() - TD.offsetLeft;
|
501
507
|
} else {
|
502
508
|
// The `offsetLeft` returns negative values when the parent offset element has position relative
|
503
509
|
// (it happens when on the cell the selection is applied - the `area` CSS class).
|
504
510
|
// When it happens the `offsetLeft` value is calculated from the right edge of the parent element.
|
505
|
-
cellStartOffset = Math.abs(
|
511
|
+
cellStartOffset = Math.abs(cellStartOffset);
|
506
512
|
}
|
507
513
|
cellStartOffset += firstColumnOffset - horizontalScrollPosition - cellWidth;
|
508
|
-
} else {
|
509
|
-
cellStartOffset
|
514
|
+
} else if (['top', 'master', 'bottom'].includes(overlayName)) {
|
515
|
+
cellStartOffset += firstColumnOffset - horizontalScrollPosition;
|
510
516
|
}
|
511
517
|
const cellComputedStyle = (0, _element.getComputedStyle)(this.TD, this.hot.rootWindow);
|
512
518
|
const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
|
@@ -485,21 +485,30 @@ export class BaseEditor {
|
|
485
485
|
const horizontalScrollPosition = Math.abs(wtOverlays.inlineStartOverlay.getScrollPosition());
|
486
486
|
const verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();
|
487
487
|
const scrollbarWidth = getScrollbarWidth(this.hot.rootDocument);
|
488
|
-
|
489
|
-
|
488
|
+
let cellTopOffset = TD.offsetTop;
|
489
|
+
if (['inline_start', 'master'].includes(overlayName)) {
|
490
|
+
cellTopOffset += firstRowOffset - verticalScrollPosition;
|
491
|
+
}
|
492
|
+
if (['bottom', 'bottom_inline_start_corner'].includes(overlayName)) {
|
493
|
+
const {
|
494
|
+
wtViewport: bottomWtViewport,
|
495
|
+
wtTable: bottomWtTable
|
496
|
+
} = wtOverlays.bottomOverlay.clone;
|
497
|
+
cellTopOffset += bottomWtViewport.getWorkspaceHeight() - bottomWtTable.getHeight() - scrollbarWidth;
|
498
|
+
}
|
499
|
+
let cellStartOffset = TD.offsetLeft;
|
490
500
|
if (this.hot.isRtl()) {
|
491
|
-
|
492
|
-
if (cellOffset >= 0) {
|
501
|
+
if (cellStartOffset >= 0) {
|
493
502
|
cellStartOffset = overlayTable.getWidth() - TD.offsetLeft;
|
494
503
|
} else {
|
495
504
|
// The `offsetLeft` returns negative values when the parent offset element has position relative
|
496
505
|
// (it happens when on the cell the selection is applied - the `area` CSS class).
|
497
506
|
// When it happens the `offsetLeft` value is calculated from the right edge of the parent element.
|
498
|
-
cellStartOffset = Math.abs(
|
507
|
+
cellStartOffset = Math.abs(cellStartOffset);
|
499
508
|
}
|
500
509
|
cellStartOffset += firstColumnOffset - horizontalScrollPosition - cellWidth;
|
501
|
-
} else {
|
502
|
-
cellStartOffset
|
510
|
+
} else if (['top', 'master', 'bottom'].includes(overlayName)) {
|
511
|
+
cellStartOffset += firstColumnOffset - horizontalScrollPosition;
|
503
512
|
}
|
504
513
|
const cellComputedStyle = getComputedStyle(this.TD, this.hot.rootWindow);
|
505
514
|
const borderPhysicalWidthProp = this.hot.isRtl() ? 'borderRightWidth' : 'borderLeftWidth';
|
@@ -3,13 +3,12 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _baseEditor = require("../baseEditor");
|
5
5
|
var _element = require("../../helpers/dom/element");
|
6
|
-
const EDITOR_TYPE = 'checkbox';
|
6
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'checkbox';
|
7
7
|
|
8
8
|
/**
|
9
9
|
* @private
|
10
10
|
* @class CheckboxEditor
|
11
11
|
*/
|
12
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
13
12
|
class CheckboxEditor extends _baseEditor.BaseEditor {
|
14
13
|
static get EDITOR_TYPE() {
|
15
14
|
return EDITOR_TYPE;
|
@@ -7,11 +7,11 @@ var _pikaday = _interopRequireDefault(require("pikaday"));
|
|
7
7
|
var _textEditor = require("../textEditor");
|
8
8
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
9
9
|
var _element = require("../../helpers/dom/element");
|
10
|
+
var _a11y = require("../../helpers/a11y");
|
10
11
|
var _object = require("../../helpers/object");
|
11
12
|
var _unicode = require("../../helpers/unicode");
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
-
const EDITOR_TYPE = 'date';
|
14
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
14
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'date';
|
15
15
|
const SHORTCUTS_GROUP_EDITOR = 'dateEditor';
|
16
16
|
|
17
17
|
/**
|
@@ -44,7 +44,7 @@ class DateEditor extends _textEditor.TextEditor {
|
|
44
44
|
throw new Error('You need to include Pikaday to your project.');
|
45
45
|
}
|
46
46
|
super.init();
|
47
|
-
this.
|
47
|
+
this.hot.addHook('afterDestroy', () => {
|
48
48
|
this.parentDestroyed = true;
|
49
49
|
this.destroyElements();
|
50
50
|
});
|
@@ -69,7 +69,21 @@ class DateEditor extends _textEditor.TextEditor {
|
|
69
69
|
/**
|
70
70
|
* Prevent recognizing clicking on datepicker as clicking outside of table.
|
71
71
|
*/
|
72
|
-
eventManager.addEventListener(this.datePicker, 'mousedown', event =>
|
72
|
+
eventManager.addEventListener(this.datePicker, 'mousedown', event => {
|
73
|
+
if ((0, _element.hasClass)(event.target, 'pika-day')) {
|
74
|
+
this.hideDatepicker();
|
75
|
+
}
|
76
|
+
event.stopPropagation();
|
77
|
+
});
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Prevent caret movement in the TEXTAREA when navigating over the date picker.
|
81
|
+
*/
|
82
|
+
eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
|
83
|
+
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
|
84
|
+
event.preventDefault();
|
85
|
+
}
|
86
|
+
});
|
73
87
|
}
|
74
88
|
|
75
89
|
/**
|
@@ -110,6 +124,9 @@ class DateEditor extends _textEditor.TextEditor {
|
|
110
124
|
const editorContext = shortcutManager.getContext('editor');
|
111
125
|
super.open();
|
112
126
|
this.showDatepicker(event);
|
127
|
+
if (this.hot.getSettings().ariaTags) {
|
128
|
+
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
|
129
|
+
}
|
113
130
|
editorContext.addShortcut({
|
114
131
|
keys: [['Enter']],
|
115
132
|
callback: keyboardEvent => {
|
@@ -132,9 +149,12 @@ class DateEditor extends _textEditor.TextEditor {
|
|
132
149
|
if ((_this$$datePicker = this.$datePicker) !== null && _this$$datePicker !== void 0 && _this$$datePicker.destroy) {
|
133
150
|
this.$datePicker.destroy();
|
134
151
|
}
|
135
|
-
this.
|
136
|
-
this.
|
152
|
+
this.hot._registerTimeout(() => {
|
153
|
+
this.hot._refreshBorders();
|
137
154
|
});
|
155
|
+
if (this.TD && this.hot.getSettings().ariaTags) {
|
156
|
+
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
|
157
|
+
}
|
138
158
|
const shortcutManager = this.hot.getShortcutManager();
|
139
159
|
const editorContext = shortcutManager.getContext('editor');
|
140
160
|
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
@@ -152,7 +172,6 @@ class DateEditor extends _textEditor.TextEditor {
|
|
152
172
|
let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
153
173
|
if (restoreOriginalValue) {
|
154
174
|
// pressed ESC, restore original value
|
155
|
-
// var value = this.instance.getDataAtCell(this.row, this.col);
|
156
175
|
const value = this.originalValue;
|
157
176
|
if (value !== void 0) {
|
158
177
|
this.setValue(value);
|
@@ -169,7 +188,7 @@ class DateEditor extends _textEditor.TextEditor {
|
|
169
188
|
showDatepicker(event) {
|
170
189
|
const offset = this.TD.getBoundingClientRect();
|
171
190
|
const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
|
172
|
-
const isMouseDown = this.
|
191
|
+
const isMouseDown = this.hot.view.isMouseDown();
|
173
192
|
const isMeta = event ? (0, _unicode.isFunctionKey)(event.keyCode) : false;
|
174
193
|
let dateStr;
|
175
194
|
this.datePicker.style.display = 'block';
|
@@ -248,7 +267,6 @@ class DateEditor extends _textEditor.TextEditor {
|
|
248
267
|
dateStr = (0, _moment.default)(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
|
249
268
|
}
|
250
269
|
this.setValue(dateStr);
|
251
|
-
this.hideDatepicker();
|
252
270
|
if (origOnSelect) {
|
253
271
|
origOnSelect();
|
254
272
|
}
|
@@ -3,7 +3,8 @@ import moment from 'moment';
|
|
3
3
|
import Pikaday from 'pikaday';
|
4
4
|
import { TextEditor } from "../textEditor/index.mjs";
|
5
5
|
import EventManager from "../../eventManager.mjs";
|
6
|
-
import { addClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
6
|
+
import { addClass, hasClass, outerHeight, outerWidth, setAttribute } from "../../helpers/dom/element.mjs";
|
7
|
+
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
7
8
|
import { deepExtend } from "../../helpers/object.mjs";
|
8
9
|
import { isFunctionKey } from "../../helpers/unicode.mjs";
|
9
10
|
export const EDITOR_TYPE = 'date';
|
@@ -39,7 +40,7 @@ export class DateEditor extends TextEditor {
|
|
39
40
|
throw new Error('You need to include Pikaday to your project.');
|
40
41
|
}
|
41
42
|
super.init();
|
42
|
-
this.
|
43
|
+
this.hot.addHook('afterDestroy', () => {
|
43
44
|
this.parentDestroyed = true;
|
44
45
|
this.destroyElements();
|
45
46
|
});
|
@@ -64,7 +65,21 @@ export class DateEditor extends TextEditor {
|
|
64
65
|
/**
|
65
66
|
* Prevent recognizing clicking on datepicker as clicking outside of table.
|
66
67
|
*/
|
67
|
-
eventManager.addEventListener(this.datePicker, 'mousedown', event =>
|
68
|
+
eventManager.addEventListener(this.datePicker, 'mousedown', event => {
|
69
|
+
if (hasClass(event.target, 'pika-day')) {
|
70
|
+
this.hideDatepicker();
|
71
|
+
}
|
72
|
+
event.stopPropagation();
|
73
|
+
});
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Prevent caret movement in the TEXTAREA when navigating over the date picker.
|
77
|
+
*/
|
78
|
+
eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
|
79
|
+
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
|
80
|
+
event.preventDefault();
|
81
|
+
}
|
82
|
+
});
|
68
83
|
}
|
69
84
|
|
70
85
|
/**
|
@@ -105,6 +120,9 @@ export class DateEditor extends TextEditor {
|
|
105
120
|
const editorContext = shortcutManager.getContext('editor');
|
106
121
|
super.open();
|
107
122
|
this.showDatepicker(event);
|
123
|
+
if (this.hot.getSettings().ariaTags) {
|
124
|
+
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
125
|
+
}
|
108
126
|
editorContext.addShortcut({
|
109
127
|
keys: [['Enter']],
|
110
128
|
callback: keyboardEvent => {
|
@@ -127,9 +145,12 @@ export class DateEditor extends TextEditor {
|
|
127
145
|
if ((_this$$datePicker = this.$datePicker) !== null && _this$$datePicker !== void 0 && _this$$datePicker.destroy) {
|
128
146
|
this.$datePicker.destroy();
|
129
147
|
}
|
130
|
-
this.
|
131
|
-
this.
|
148
|
+
this.hot._registerTimeout(() => {
|
149
|
+
this.hot._refreshBorders();
|
132
150
|
});
|
151
|
+
if (this.TD && this.hot.getSettings().ariaTags) {
|
152
|
+
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
153
|
+
}
|
133
154
|
const shortcutManager = this.hot.getShortcutManager();
|
134
155
|
const editorContext = shortcutManager.getContext('editor');
|
135
156
|
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
@@ -147,7 +168,6 @@ export class DateEditor extends TextEditor {
|
|
147
168
|
let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
148
169
|
if (restoreOriginalValue) {
|
149
170
|
// pressed ESC, restore original value
|
150
|
-
// var value = this.instance.getDataAtCell(this.row, this.col);
|
151
171
|
const value = this.originalValue;
|
152
172
|
if (value !== void 0) {
|
153
173
|
this.setValue(value);
|
@@ -164,7 +184,7 @@ export class DateEditor extends TextEditor {
|
|
164
184
|
showDatepicker(event) {
|
165
185
|
const offset = this.TD.getBoundingClientRect();
|
166
186
|
const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
|
167
|
-
const isMouseDown = this.
|
187
|
+
const isMouseDown = this.hot.view.isMouseDown();
|
168
188
|
const isMeta = event ? isFunctionKey(event.keyCode) : false;
|
169
189
|
let dateStr;
|
170
190
|
this.datePicker.style.display = 'block';
|
@@ -243,7 +263,6 @@ export class DateEditor extends TextEditor {
|
|
243
263
|
dateStr = moment(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
|
244
264
|
}
|
245
265
|
this.setValue(dateStr);
|
246
|
-
this.hideDatepicker();
|
247
266
|
if (origOnSelect) {
|
248
267
|
origOnSelect();
|
249
268
|
}
|
@@ -4,13 +4,12 @@ exports.__esModule = true;
|
|
4
4
|
var _autocompleteEditor = require("../autocompleteEditor");
|
5
5
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
|
-
const EDITOR_TYPE = 'dropdown';
|
7
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'dropdown';
|
8
8
|
|
9
9
|
/**
|
10
10
|
* @private
|
11
11
|
* @class DropdownEditor
|
12
12
|
*/
|
13
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
14
13
|
class DropdownEditor extends _autocompleteEditor.AutocompleteEditor {
|
15
14
|
static get EDITOR_TYPE() {
|
16
15
|
return EDITOR_TYPE;
|
@@ -6,14 +6,14 @@ var _element = require("../../helpers/dom/element");
|
|
6
6
|
var _event = require("../../helpers/dom/event");
|
7
7
|
var _object = require("../../helpers/object");
|
8
8
|
var _editorManager = require("../../editorManager");
|
9
|
+
var _a11y = require("../../helpers/a11y");
|
9
10
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
10
|
-
const EDITOR_TYPE = 'handsontable';
|
11
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'handsontable';
|
11
12
|
|
12
13
|
/**
|
13
14
|
* @private
|
14
15
|
* @class HandsontableEditor
|
15
16
|
*/
|
16
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
17
17
|
class HandsontableEditor extends _textEditor.TextEditor {
|
18
18
|
static get EDITOR_TYPE() {
|
19
19
|
return EDITOR_TYPE;
|
@@ -42,6 +42,9 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
42
42
|
}
|
43
43
|
(0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
44
44
|
this.refreshDimensions();
|
45
|
+
if (this.hot.getSettings().ariaTags) {
|
46
|
+
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
|
47
|
+
}
|
45
48
|
}
|
46
49
|
|
47
50
|
/**
|
@@ -53,6 +56,9 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
53
56
|
}
|
54
57
|
this.removeHooksByKey('beforeKeyDown');
|
55
58
|
super.close();
|
59
|
+
if (this.hot.getSettings().ariaTags) {
|
60
|
+
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
|
61
|
+
}
|
56
62
|
}
|
57
63
|
|
58
64
|
/**
|
@@ -81,6 +87,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
81
87
|
fillHandle: false,
|
82
88
|
autoWrapCol: false,
|
83
89
|
autoWrapRow: false,
|
90
|
+
ariaTags: false,
|
84
91
|
afterOnCellMouseDown(_, coords) {
|
85
92
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
86
93
|
|
@@ -139,7 +146,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
139
146
|
}
|
140
147
|
|
141
148
|
if (this.htEditor && this.htEditor.getSelectedLast()) {
|
142
|
-
const value = this.htEditor.
|
149
|
+
const value = this.htEditor.getValue();
|
143
150
|
if (value !== void 0) {
|
144
151
|
// if the value is undefined then it means we don't want to set the value
|
145
152
|
this.setValue(value);
|
@@ -149,7 +156,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
149
156
|
}
|
150
157
|
|
151
158
|
/**
|
152
|
-
*
|
159
|
+
* Assigns afterDestroy callback to prevent memory leaks.
|
153
160
|
*
|
154
161
|
* @private
|
155
162
|
*/
|
@@ -176,7 +183,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
176
183
|
position: 'before'
|
177
184
|
};
|
178
185
|
const action = (rowToSelect, event) => {
|
179
|
-
const innerHOT = this.htEditor
|
186
|
+
const innerHOT = this.htEditor;
|
180
187
|
if (rowToSelect !== void 0) {
|
181
188
|
if (rowToSelect < 0 || innerHOT.flipped && rowToSelect > innerHOT.countRows() - 1) {
|
182
189
|
innerHOT.deselectCell();
|
@@ -195,7 +202,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
195
202
|
editorContext.addShortcuts([{
|
196
203
|
keys: [['ArrowUp']],
|
197
204
|
callback: event => {
|
198
|
-
const innerHOT = this.htEditor
|
205
|
+
const innerHOT = this.htEditor;
|
199
206
|
let rowToSelect;
|
200
207
|
let selectedRow;
|
201
208
|
if (!innerHOT.getSelectedLast() && innerHOT.flipped) {
|
@@ -215,7 +222,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
215
222
|
}, {
|
216
223
|
keys: [['ArrowDown']],
|
217
224
|
callback: event => {
|
218
|
-
const innerHOT = this.htEditor
|
225
|
+
const innerHOT = this.htEditor;
|
219
226
|
let rowToSelect;
|
220
227
|
let selectedRow;
|
221
228
|
if (!innerHOT.getSelectedLast() && !innerHOT.flipped) {
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { TextEditor } from "../textEditor/index.mjs";
|
2
|
-
import { setCaretPosition } from "../../helpers/dom/element.mjs";
|
2
|
+
import { setAttribute, setCaretPosition } from "../../helpers/dom/element.mjs";
|
3
3
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
4
4
|
import { extend } from "../../helpers/object.mjs";
|
5
5
|
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
6
|
+
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
6
7
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
7
8
|
export const EDITOR_TYPE = 'handsontable';
|
8
9
|
|
@@ -38,6 +39,9 @@ export class HandsontableEditor extends TextEditor {
|
|
38
39
|
}
|
39
40
|
setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
40
41
|
this.refreshDimensions();
|
42
|
+
if (this.hot.getSettings().ariaTags) {
|
43
|
+
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
44
|
+
}
|
41
45
|
}
|
42
46
|
|
43
47
|
/**
|
@@ -49,6 +53,9 @@ export class HandsontableEditor extends TextEditor {
|
|
49
53
|
}
|
50
54
|
this.removeHooksByKey('beforeKeyDown');
|
51
55
|
super.close();
|
56
|
+
if (this.hot.getSettings().ariaTags) {
|
57
|
+
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
58
|
+
}
|
52
59
|
}
|
53
60
|
|
54
61
|
/**
|
@@ -77,6 +84,7 @@ export class HandsontableEditor extends TextEditor {
|
|
77
84
|
fillHandle: false,
|
78
85
|
autoWrapCol: false,
|
79
86
|
autoWrapRow: false,
|
87
|
+
ariaTags: false,
|
80
88
|
afterOnCellMouseDown(_, coords) {
|
81
89
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
82
90
|
|
@@ -135,7 +143,7 @@ export class HandsontableEditor extends TextEditor {
|
|
135
143
|
}
|
136
144
|
|
137
145
|
if (this.htEditor && this.htEditor.getSelectedLast()) {
|
138
|
-
const value = this.htEditor.
|
146
|
+
const value = this.htEditor.getValue();
|
139
147
|
if (value !== void 0) {
|
140
148
|
// if the value is undefined then it means we don't want to set the value
|
141
149
|
this.setValue(value);
|
@@ -145,7 +153,7 @@ export class HandsontableEditor extends TextEditor {
|
|
145
153
|
}
|
146
154
|
|
147
155
|
/**
|
148
|
-
*
|
156
|
+
* Assigns afterDestroy callback to prevent memory leaks.
|
149
157
|
*
|
150
158
|
* @private
|
151
159
|
*/
|
@@ -172,7 +180,7 @@ export class HandsontableEditor extends TextEditor {
|
|
172
180
|
position: 'before'
|
173
181
|
};
|
174
182
|
const action = (rowToSelect, event) => {
|
175
|
-
const innerHOT = this.htEditor
|
183
|
+
const innerHOT = this.htEditor;
|
176
184
|
if (rowToSelect !== void 0) {
|
177
185
|
if (rowToSelect < 0 || innerHOT.flipped && rowToSelect > innerHOT.countRows() - 1) {
|
178
186
|
innerHOT.deselectCell();
|
@@ -191,7 +199,7 @@ export class HandsontableEditor extends TextEditor {
|
|
191
199
|
editorContext.addShortcuts([{
|
192
200
|
keys: [['ArrowUp']],
|
193
201
|
callback: event => {
|
194
|
-
const innerHOT = this.htEditor
|
202
|
+
const innerHOT = this.htEditor;
|
195
203
|
let rowToSelect;
|
196
204
|
let selectedRow;
|
197
205
|
if (!innerHOT.getSelectedLast() && innerHOT.flipped) {
|
@@ -211,7 +219,7 @@ export class HandsontableEditor extends TextEditor {
|
|
211
219
|
}, {
|
212
220
|
keys: [['ArrowDown']],
|
213
221
|
callback: event => {
|
214
|
-
const innerHOT = this.htEditor
|
222
|
+
const innerHOT = this.htEditor;
|
215
223
|
let rowToSelect;
|
216
224
|
let selectedRow;
|
217
225
|
if (!innerHOT.getSelectedLast() && !innerHOT.flipped) {
|
@@ -2,13 +2,12 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _textEditor = require("../textEditor");
|
5
|
-
const EDITOR_TYPE = 'numeric';
|
5
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'numeric';
|
6
6
|
|
7
7
|
/**
|
8
8
|
* @private
|
9
9
|
* @class NumericEditor
|
10
10
|
*/
|
11
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
12
11
|
class NumericEditor extends _textEditor.TextEditor {
|
13
12
|
static get EDITOR_TYPE() {
|
14
13
|
return EDITOR_TYPE;
|
@@ -3,13 +3,12 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _textEditor = require("../textEditor");
|
5
5
|
var _element = require("../../helpers/dom/element");
|
6
|
-
const EDITOR_TYPE = 'password';
|
6
|
+
const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
|
7
7
|
|
8
8
|
/**
|
9
9
|
* @private
|
10
10
|
* @class PasswordEditor
|
11
11
|
*/
|
12
|
-
exports.EDITOR_TYPE = EDITOR_TYPE;
|
13
12
|
class PasswordEditor extends _textEditor.TextEditor {
|
14
13
|
static get EDITOR_TYPE() {
|
15
14
|
return EDITOR_TYPE;
|