handsontable 13.1.0 → 14.0.0-next-d97b156-20231027
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/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
package/tableView.js
CHANGED
@@ -9,6 +9,7 @@ var _event = require("./helpers/dom/event");
|
|
9
9
|
var _src = _interopRequireDefault(require("./3rdparty/walkontable/src"));
|
10
10
|
var _mouseEventHandler = require("./selection/mouseEventHandler");
|
11
11
|
var _rootInstance = require("./utils/rootInstance");
|
12
|
+
var _a11y = require("./helpers/a11y");
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
14
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
14
15
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
@@ -259,6 +260,10 @@ class TableView {
|
|
259
260
|
if (this.instance.getSettings().tableClassName) {
|
260
261
|
(0, _element.addClass)(priv.table, this.instance.getSettings().tableClassName);
|
261
262
|
}
|
263
|
+
if (this.settings.ariaTags) {
|
264
|
+
(0, _element.setAttribute)(priv.table, [(0, _a11y.A11Y_PRESENTATION)()]);
|
265
|
+
(0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(this.instance.countRows()), (0, _a11y.A11Y_COLCOUNT)(this.instance.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
|
266
|
+
}
|
262
267
|
this.THEAD = rootDocument.createElement('THEAD');
|
263
268
|
priv.table.appendChild(this.THEAD);
|
264
269
|
this.TBODY = rootDocument.createElement('TBODY');
|
@@ -312,11 +317,14 @@ class TableView {
|
|
312
317
|
});
|
313
318
|
this.eventManager.addEventListener(documentElement, 'mouseup', event => {
|
314
319
|
if (selection.isInProgress() && (0, _event.isLeftClick)(event)) {
|
315
|
-
// is left mouse button
|
316
320
|
selection.finish();
|
317
321
|
}
|
318
322
|
priv.mouseDown = false;
|
319
|
-
|
323
|
+
const isOutsideInputElement = (0, _element.isOutsideInput)(rootDocument.activeElement);
|
324
|
+
if (!isOutsideInputElement) {
|
325
|
+
return;
|
326
|
+
}
|
327
|
+
if (isOutsideInputElement || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !(0, _event.isRightClick)(event)) {
|
320
328
|
this.instance.unlisten();
|
321
329
|
}
|
322
330
|
});
|
@@ -550,6 +558,40 @@ class TableView {
|
|
550
558
|
return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
|
551
559
|
}
|
552
560
|
|
561
|
+
/**
|
562
|
+
* The function returns the number of renderable column indexes within the passed range of the visual indexes.
|
563
|
+
*
|
564
|
+
* @param {number} columnStart The column visual start index.
|
565
|
+
* @param {number} columnEnd The column visual end index.
|
566
|
+
* @returns {number}
|
567
|
+
*/
|
568
|
+
countRenderableColumnsInRange(columnStart, columnEnd) {
|
569
|
+
let count = 0;
|
570
|
+
for (let column = columnStart; column <= columnEnd; column++) {
|
571
|
+
if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
|
572
|
+
count += 1;
|
573
|
+
}
|
574
|
+
}
|
575
|
+
return count;
|
576
|
+
}
|
577
|
+
|
578
|
+
/**
|
579
|
+
* The function returns the number of renderable row indexes within the passed range of the visual indexes.
|
580
|
+
*
|
581
|
+
* @param {number} rowStart The row visual start index.
|
582
|
+
* @param {number} rowEnd The row visual end index.
|
583
|
+
* @returns {number}
|
584
|
+
*/
|
585
|
+
countRenderableRowsInRange(rowStart, rowEnd) {
|
586
|
+
let count = 0;
|
587
|
+
for (let row = rowStart; row <= rowEnd; row++) {
|
588
|
+
if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
|
589
|
+
count += 1;
|
590
|
+
}
|
591
|
+
}
|
592
|
+
return count;
|
593
|
+
}
|
594
|
+
|
553
595
|
/**
|
554
596
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
555
597
|
* bottom overlay.
|
@@ -570,6 +612,7 @@ class TableView {
|
|
570
612
|
initializeWalkontable() {
|
571
613
|
const priv = privatePool.get(this);
|
572
614
|
const walkontableConfig = {
|
615
|
+
ariaTags: this.settings.ariaTags,
|
573
616
|
rtlMode: this.instance.isRtl(),
|
574
617
|
externalRowCalculator: this.instance.getPlugin('autoRowSize') && this.instance.getPlugin('autoRowSize').isEnabled(),
|
575
618
|
table: priv.table,
|
@@ -670,7 +713,7 @@ class TableView {
|
|
670
713
|
}
|
671
714
|
},
|
672
715
|
onContainerElementResize: () => {
|
673
|
-
if (this.instance && !this.instance.isDestroyed) {
|
716
|
+
if (this.instance && !this.instance.isDestroyed && (0, _element.isVisible)(this.instance.rootElement)) {
|
674
717
|
this.instance.refreshDimensions();
|
675
718
|
}
|
676
719
|
},
|
@@ -769,20 +812,78 @@ class TableView {
|
|
769
812
|
},
|
770
813
|
beforeDraw: (force, skipRender) => this.beforeRender(force, skipRender),
|
771
814
|
onDraw: force => this.afterRender(force),
|
772
|
-
|
773
|
-
|
815
|
+
onBeforeViewportScrollVertically: renderableRow => {
|
816
|
+
const rowMapper = this.instance.rowIndexMapper;
|
817
|
+
const areColumnHeadersSelected = renderableRow < 0;
|
818
|
+
let visualRow = renderableRow;
|
819
|
+
if (!areColumnHeadersSelected) {
|
820
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
821
|
+
|
822
|
+
// for an empty data return index as is
|
823
|
+
if (visualRow === null) {
|
824
|
+
return renderableRow;
|
825
|
+
}
|
826
|
+
}
|
827
|
+
visualRow = this.instance.runHooks('beforeViewportScrollVertically', visualRow);
|
828
|
+
this.instance.runHooks('beforeViewportScroll');
|
829
|
+
if (!areColumnHeadersSelected) {
|
830
|
+
return rowMapper.getRenderableFromVisualIndex(visualRow);
|
831
|
+
}
|
832
|
+
return visualRow;
|
833
|
+
},
|
834
|
+
onBeforeViewportScrollHorizontally: renderableColumn => {
|
835
|
+
const columnMapper = this.instance.columnIndexMapper;
|
836
|
+
const areRowHeadersSelected = renderableColumn < 0;
|
837
|
+
let visualColumn = renderableColumn;
|
838
|
+
if (!areRowHeadersSelected) {
|
839
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
840
|
+
|
841
|
+
// for an empty data return index as is
|
842
|
+
if (visualColumn === null) {
|
843
|
+
return renderableColumn;
|
844
|
+
}
|
845
|
+
}
|
846
|
+
visualColumn = this.instance.runHooks('beforeViewportScrollHorizontally', visualColumn);
|
847
|
+
this.instance.runHooks('beforeViewportScroll');
|
848
|
+
if (!areRowHeadersSelected) {
|
849
|
+
return columnMapper.getRenderableFromVisualIndex(visualColumn);
|
850
|
+
}
|
851
|
+
return visualColumn;
|
852
|
+
},
|
853
|
+
onScrollVertically: () => {
|
854
|
+
this.instance.runHooks('afterScrollVertically');
|
855
|
+
this.instance.runHooks('afterScroll');
|
856
|
+
},
|
857
|
+
onScrollHorizontally: () => {
|
858
|
+
this.instance.runHooks('afterScrollHorizontally');
|
859
|
+
this.instance.runHooks('afterScroll');
|
860
|
+
},
|
774
861
|
onBeforeRemoveCellClassNames: () => this.instance.runHooks('beforeRemoveCellClassNames'),
|
775
862
|
onBeforeHighlightingRowHeader: (renderableRow, headerLevel, highlightMeta) => {
|
776
863
|
const rowMapper = this.instance.rowIndexMapper;
|
777
|
-
const
|
864
|
+
const areColumnHeadersSelected = renderableRow < 0;
|
865
|
+
let visualRow = renderableRow;
|
866
|
+
if (!areColumnHeadersSelected) {
|
867
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
868
|
+
}
|
778
869
|
const newVisualRow = this.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
|
779
|
-
|
870
|
+
if (!areColumnHeadersSelected) {
|
871
|
+
return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
|
872
|
+
}
|
873
|
+
return newVisualRow;
|
780
874
|
},
|
781
875
|
onBeforeHighlightingColumnHeader: (renderableColumn, headerLevel, highlightMeta) => {
|
782
876
|
const columnMapper = this.instance.columnIndexMapper;
|
783
|
-
const
|
877
|
+
const areRowHeadersSelected = renderableColumn < 0;
|
878
|
+
let visualColumn = renderableColumn;
|
879
|
+
if (!areRowHeadersSelected) {
|
880
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
881
|
+
}
|
784
882
|
const newVisualColumn = this.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
|
785
|
-
|
883
|
+
if (!areRowHeadersSelected) {
|
884
|
+
return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
|
885
|
+
}
|
886
|
+
return newVisualColumn;
|
786
887
|
},
|
787
888
|
onAfterDrawSelection: (currentRow, currentColumn, layerLevel) => {
|
788
889
|
let cornersOfSelection;
|
@@ -790,10 +891,7 @@ class TableView {
|
|
790
891
|
const selectedRange = this.instance.selection.getSelectedRange();
|
791
892
|
const selectionRangeSize = selectedRange.size();
|
792
893
|
if (selectionRangeSize > 0) {
|
793
|
-
|
794
|
-
// Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
|
795
|
-
const selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
|
796
|
-
const selectionForLayer = selectedRange.peekByIndex(selectionOffset);
|
894
|
+
const selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
|
797
895
|
cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
|
798
896
|
}
|
799
897
|
return this.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
|
@@ -946,7 +1044,7 @@ class TableView {
|
|
946
1044
|
*/
|
947
1045
|
isSelectedOnlyCell() {
|
948
1046
|
var _this$instance$getSel, _this$instance$getSel2;
|
949
|
-
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.
|
1047
|
+
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
|
950
1048
|
}
|
951
1049
|
|
952
1050
|
/**
|
@@ -1206,5 +1304,4 @@ class TableView {
|
|
1206
1304
|
this.eventManager.destroy();
|
1207
1305
|
}
|
1208
1306
|
}
|
1209
|
-
var _default = TableView;
|
1210
|
-
exports.default = _default;
|
1307
|
+
var _default = exports.default = TableView;
|
package/tableView.mjs
CHANGED
@@ -10,12 +10,13 @@ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) {
|
|
10
10
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
11
11
|
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
12
12
|
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
13
|
-
import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput } from "./helpers/dom/element.mjs";
|
13
|
+
import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput, isVisible, setAttribute } from "./helpers/dom/element.mjs";
|
14
14
|
import EventManager from "./eventManager.mjs";
|
15
15
|
import { isImmediatePropagationStopped, isRightClick, isLeftClick } from "./helpers/dom/event.mjs";
|
16
16
|
import Walkontable from "./3rdparty/walkontable/src/index.mjs";
|
17
17
|
import { handleMouseEvent } from "./selection/mouseEventHandler.mjs";
|
18
18
|
import { isRootInstance } from "./utils/rootInstance.mjs";
|
19
|
+
import { A11Y_COLCOUNT, A11Y_MULTISELECTABLE, A11Y_PRESENTATION, A11Y_ROWCOUNT, A11Y_TREEGRID } from "./helpers/a11y.mjs";
|
19
20
|
const privatePool = new WeakMap();
|
20
21
|
|
21
22
|
/**
|
@@ -255,6 +256,10 @@ class TableView {
|
|
255
256
|
if (this.instance.getSettings().tableClassName) {
|
256
257
|
addClass(priv.table, this.instance.getSettings().tableClassName);
|
257
258
|
}
|
259
|
+
if (this.settings.ariaTags) {
|
260
|
+
setAttribute(priv.table, [A11Y_PRESENTATION()]);
|
261
|
+
setAttribute(rootElement, [A11Y_TREEGRID(), A11Y_ROWCOUNT(this.instance.countRows()), A11Y_COLCOUNT(this.instance.countCols()), A11Y_MULTISELECTABLE()]);
|
262
|
+
}
|
258
263
|
this.THEAD = rootDocument.createElement('THEAD');
|
259
264
|
priv.table.appendChild(this.THEAD);
|
260
265
|
this.TBODY = rootDocument.createElement('TBODY');
|
@@ -308,11 +313,14 @@ class TableView {
|
|
308
313
|
});
|
309
314
|
this.eventManager.addEventListener(documentElement, 'mouseup', event => {
|
310
315
|
if (selection.isInProgress() && isLeftClick(event)) {
|
311
|
-
// is left mouse button
|
312
316
|
selection.finish();
|
313
317
|
}
|
314
318
|
priv.mouseDown = false;
|
315
|
-
|
319
|
+
const isOutsideInputElement = isOutsideInput(rootDocument.activeElement);
|
320
|
+
if (!isOutsideInputElement) {
|
321
|
+
return;
|
322
|
+
}
|
323
|
+
if (isOutsideInputElement || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !isRightClick(event)) {
|
316
324
|
this.instance.unlisten();
|
317
325
|
}
|
318
326
|
});
|
@@ -546,6 +554,40 @@ class TableView {
|
|
546
554
|
return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
|
547
555
|
}
|
548
556
|
|
557
|
+
/**
|
558
|
+
* The function returns the number of renderable column indexes within the passed range of the visual indexes.
|
559
|
+
*
|
560
|
+
* @param {number} columnStart The column visual start index.
|
561
|
+
* @param {number} columnEnd The column visual end index.
|
562
|
+
* @returns {number}
|
563
|
+
*/
|
564
|
+
countRenderableColumnsInRange(columnStart, columnEnd) {
|
565
|
+
let count = 0;
|
566
|
+
for (let column = columnStart; column <= columnEnd; column++) {
|
567
|
+
if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
|
568
|
+
count += 1;
|
569
|
+
}
|
570
|
+
}
|
571
|
+
return count;
|
572
|
+
}
|
573
|
+
|
574
|
+
/**
|
575
|
+
* The function returns the number of renderable row indexes within the passed range of the visual indexes.
|
576
|
+
*
|
577
|
+
* @param {number} rowStart The row visual start index.
|
578
|
+
* @param {number} rowEnd The row visual end index.
|
579
|
+
* @returns {number}
|
580
|
+
*/
|
581
|
+
countRenderableRowsInRange(rowStart, rowEnd) {
|
582
|
+
let count = 0;
|
583
|
+
for (let row = rowStart; row <= rowEnd; row++) {
|
584
|
+
if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
|
585
|
+
count += 1;
|
586
|
+
}
|
587
|
+
}
|
588
|
+
return count;
|
589
|
+
}
|
590
|
+
|
549
591
|
/**
|
550
592
|
* Checks if at least one cell than belongs to the main table is not covered by the top, left or
|
551
593
|
* bottom overlay.
|
@@ -566,6 +608,7 @@ class TableView {
|
|
566
608
|
initializeWalkontable() {
|
567
609
|
const priv = privatePool.get(this);
|
568
610
|
const walkontableConfig = {
|
611
|
+
ariaTags: this.settings.ariaTags,
|
569
612
|
rtlMode: this.instance.isRtl(),
|
570
613
|
externalRowCalculator: this.instance.getPlugin('autoRowSize') && this.instance.getPlugin('autoRowSize').isEnabled(),
|
571
614
|
table: priv.table,
|
@@ -666,7 +709,7 @@ class TableView {
|
|
666
709
|
}
|
667
710
|
},
|
668
711
|
onContainerElementResize: () => {
|
669
|
-
if (this.instance && !this.instance.isDestroyed) {
|
712
|
+
if (this.instance && !this.instance.isDestroyed && isVisible(this.instance.rootElement)) {
|
670
713
|
this.instance.refreshDimensions();
|
671
714
|
}
|
672
715
|
},
|
@@ -765,20 +808,78 @@ class TableView {
|
|
765
808
|
},
|
766
809
|
beforeDraw: (force, skipRender) => this.beforeRender(force, skipRender),
|
767
810
|
onDraw: force => this.afterRender(force),
|
768
|
-
|
769
|
-
|
811
|
+
onBeforeViewportScrollVertically: renderableRow => {
|
812
|
+
const rowMapper = this.instance.rowIndexMapper;
|
813
|
+
const areColumnHeadersSelected = renderableRow < 0;
|
814
|
+
let visualRow = renderableRow;
|
815
|
+
if (!areColumnHeadersSelected) {
|
816
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
817
|
+
|
818
|
+
// for an empty data return index as is
|
819
|
+
if (visualRow === null) {
|
820
|
+
return renderableRow;
|
821
|
+
}
|
822
|
+
}
|
823
|
+
visualRow = this.instance.runHooks('beforeViewportScrollVertically', visualRow);
|
824
|
+
this.instance.runHooks('beforeViewportScroll');
|
825
|
+
if (!areColumnHeadersSelected) {
|
826
|
+
return rowMapper.getRenderableFromVisualIndex(visualRow);
|
827
|
+
}
|
828
|
+
return visualRow;
|
829
|
+
},
|
830
|
+
onBeforeViewportScrollHorizontally: renderableColumn => {
|
831
|
+
const columnMapper = this.instance.columnIndexMapper;
|
832
|
+
const areRowHeadersSelected = renderableColumn < 0;
|
833
|
+
let visualColumn = renderableColumn;
|
834
|
+
if (!areRowHeadersSelected) {
|
835
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
836
|
+
|
837
|
+
// for an empty data return index as is
|
838
|
+
if (visualColumn === null) {
|
839
|
+
return renderableColumn;
|
840
|
+
}
|
841
|
+
}
|
842
|
+
visualColumn = this.instance.runHooks('beforeViewportScrollHorizontally', visualColumn);
|
843
|
+
this.instance.runHooks('beforeViewportScroll');
|
844
|
+
if (!areRowHeadersSelected) {
|
845
|
+
return columnMapper.getRenderableFromVisualIndex(visualColumn);
|
846
|
+
}
|
847
|
+
return visualColumn;
|
848
|
+
},
|
849
|
+
onScrollVertically: () => {
|
850
|
+
this.instance.runHooks('afterScrollVertically');
|
851
|
+
this.instance.runHooks('afterScroll');
|
852
|
+
},
|
853
|
+
onScrollHorizontally: () => {
|
854
|
+
this.instance.runHooks('afterScrollHorizontally');
|
855
|
+
this.instance.runHooks('afterScroll');
|
856
|
+
},
|
770
857
|
onBeforeRemoveCellClassNames: () => this.instance.runHooks('beforeRemoveCellClassNames'),
|
771
858
|
onBeforeHighlightingRowHeader: (renderableRow, headerLevel, highlightMeta) => {
|
772
859
|
const rowMapper = this.instance.rowIndexMapper;
|
773
|
-
const
|
860
|
+
const areColumnHeadersSelected = renderableRow < 0;
|
861
|
+
let visualRow = renderableRow;
|
862
|
+
if (!areColumnHeadersSelected) {
|
863
|
+
visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
|
864
|
+
}
|
774
865
|
const newVisualRow = this.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
|
775
|
-
|
866
|
+
if (!areColumnHeadersSelected) {
|
867
|
+
return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
|
868
|
+
}
|
869
|
+
return newVisualRow;
|
776
870
|
},
|
777
871
|
onBeforeHighlightingColumnHeader: (renderableColumn, headerLevel, highlightMeta) => {
|
778
872
|
const columnMapper = this.instance.columnIndexMapper;
|
779
|
-
const
|
873
|
+
const areRowHeadersSelected = renderableColumn < 0;
|
874
|
+
let visualColumn = renderableColumn;
|
875
|
+
if (!areRowHeadersSelected) {
|
876
|
+
visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
|
877
|
+
}
|
780
878
|
const newVisualColumn = this.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
|
781
|
-
|
879
|
+
if (!areRowHeadersSelected) {
|
880
|
+
return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
|
881
|
+
}
|
882
|
+
return newVisualColumn;
|
782
883
|
},
|
783
884
|
onAfterDrawSelection: (currentRow, currentColumn, layerLevel) => {
|
784
885
|
let cornersOfSelection;
|
@@ -786,10 +887,7 @@ class TableView {
|
|
786
887
|
const selectedRange = this.instance.selection.getSelectedRange();
|
787
888
|
const selectionRangeSize = selectedRange.size();
|
788
889
|
if (selectionRangeSize > 0) {
|
789
|
-
|
790
|
-
// Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
|
791
|
-
const selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
|
792
|
-
const selectionForLayer = selectedRange.peekByIndex(selectionOffset);
|
890
|
+
const selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
|
793
891
|
cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
|
794
892
|
}
|
795
893
|
return this.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
|
@@ -942,7 +1040,7 @@ class TableView {
|
|
942
1040
|
*/
|
943
1041
|
isSelectedOnlyCell() {
|
944
1042
|
var _this$instance$getSel, _this$instance$getSel2;
|
945
|
-
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.
|
1043
|
+
return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
|
946
1044
|
}
|
947
1045
|
|
948
1046
|
/**
|
@@ -5,10 +5,8 @@ exports.createPriorityMap = createPriorityMap;
|
|
5
5
|
require("core-js/modules/es.error.cause.js");
|
6
6
|
var _number = require("../../helpers/number");
|
7
7
|
var _function = require("../../helpers/function");
|
8
|
-
const ASC = 'asc';
|
9
|
-
exports.
|
10
|
-
const DESC = 'desc';
|
11
|
-
exports.DESC = DESC;
|
8
|
+
const ASC = exports.ASC = 'asc';
|
9
|
+
const DESC = exports.DESC = 'desc';
|
12
10
|
const ORDER_MAP = new Map([[ASC, [-1, 1]], [DESC, [1, -1]]]);
|
13
11
|
const DEFAULT_ERROR_PRIORITY_EXISTS = priority => `The priority '${priority}' is already declared in a map.`;
|
14
12
|
const DEFAULT_ERROR_PRIORITY_NAN = priority => `The priority '${priority}' is not a number.`;
|
@@ -12,13 +12,12 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
12
12
|
*
|
13
13
|
* @type {string}
|
14
14
|
*/
|
15
|
-
const TRAVERSAL_DF_PRE = 'DF-pre-order';
|
15
|
+
const TRAVERSAL_DF_PRE = exports.TRAVERSAL_DF_PRE = 'DF-pre-order';
|
16
16
|
/**
|
17
17
|
* @param {Function} callback A callback which will be called on each visited node.
|
18
18
|
* @param {*} context A context to pass through.
|
19
19
|
* @returns {boolean}
|
20
20
|
*/
|
21
|
-
exports.TRAVERSAL_DF_PRE = TRAVERSAL_DF_PRE;
|
22
21
|
function depthFirstPreOrder(callback, context) {
|
23
22
|
let continueTraverse = callback.call(context, this);
|
24
23
|
for (let i = 0; i < this.childs.length; i++) {
|
@@ -35,13 +34,12 @@ function depthFirstPreOrder(callback, context) {
|
|
35
34
|
*
|
36
35
|
* @type {string}
|
37
36
|
*/
|
38
|
-
const TRAVERSAL_DF_POST = 'DF-post-order';
|
37
|
+
const TRAVERSAL_DF_POST = exports.TRAVERSAL_DF_POST = 'DF-post-order';
|
39
38
|
/**
|
40
39
|
* @param {Function} callback A callback which will be called on each visited node.
|
41
40
|
* @param {*} context A context to pass through.
|
42
41
|
* @returns {boolean}
|
43
42
|
*/
|
44
|
-
exports.TRAVERSAL_DF_POST = TRAVERSAL_DF_POST;
|
45
43
|
function depthFirstPostOrder(callback, context) {
|
46
44
|
for (let i = 0; i < this.childs.length; i++) {
|
47
45
|
const continueTraverse = depthFirstPostOrder.call(this.childs[i], callback, context);
|
@@ -57,12 +55,11 @@ function depthFirstPostOrder(callback, context) {
|
|
57
55
|
*
|
58
56
|
* @type {string}
|
59
57
|
*/
|
60
|
-
const TRAVERSAL_BF = 'BF';
|
58
|
+
const TRAVERSAL_BF = exports.TRAVERSAL_BF = 'BF';
|
61
59
|
/**
|
62
60
|
* @param {Function} callback A callback which will be called on each visited node.
|
63
61
|
* @param {*} context A context to pass through.
|
64
62
|
*/
|
65
|
-
exports.TRAVERSAL_BF = TRAVERSAL_BF;
|
66
63
|
function breadthFirst(callback, context) {
|
67
64
|
const queue = [this];
|
68
65
|
|
package/utils/ghostTable.js
CHANGED
@@ -5,6 +5,9 @@ require("core-js/modules/es.error.cause.js");
|
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
6
|
var _element = require("./../helpers/dom/element");
|
7
7
|
var _array = require("./../helpers/array");
|
8
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
9
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
10
|
+
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); }
|
8
11
|
/**
|
9
12
|
* @class GhostTable
|
10
13
|
*/
|
@@ -15,47 +18,48 @@ class GhostTable {
|
|
15
18
|
*
|
16
19
|
* @type {Core}
|
17
20
|
*/
|
18
|
-
this
|
21
|
+
_defineProperty(this, "hot", null);
|
19
22
|
/**
|
20
23
|
* Container element where every table will be injected.
|
21
24
|
*
|
22
25
|
* @type {HTMLElement|null}
|
23
26
|
*/
|
24
|
-
this
|
27
|
+
_defineProperty(this, "container", null);
|
25
28
|
/**
|
26
29
|
* Flag which determine is table was injected to DOM.
|
27
30
|
*
|
28
31
|
* @type {boolean}
|
29
32
|
*/
|
30
|
-
this
|
33
|
+
_defineProperty(this, "injected", false);
|
31
34
|
/**
|
32
35
|
* Added rows collection.
|
33
36
|
*
|
34
37
|
* @type {Array}
|
35
38
|
*/
|
36
|
-
this
|
39
|
+
_defineProperty(this, "rows", []);
|
37
40
|
/**
|
38
41
|
* Added columns collection.
|
39
42
|
*
|
40
43
|
* @type {Array}
|
41
44
|
*/
|
42
|
-
this
|
45
|
+
_defineProperty(this, "columns", []);
|
43
46
|
/**
|
44
47
|
* Samples prepared for calculations.
|
45
48
|
*
|
46
49
|
* @type {Map}
|
47
50
|
* @default {null}
|
48
51
|
*/
|
49
|
-
this
|
52
|
+
_defineProperty(this, "samples", null);
|
50
53
|
/**
|
51
54
|
* Ghost table settings.
|
52
55
|
*
|
53
56
|
* @type {object}
|
54
57
|
* @default {Object}
|
55
58
|
*/
|
56
|
-
this
|
59
|
+
_defineProperty(this, "settings", {
|
57
60
|
useHeaders: true
|
58
|
-
};
|
61
|
+
});
|
62
|
+
this.hot = hotInstance;
|
59
63
|
}
|
60
64
|
|
61
65
|
/**
|
@@ -77,7 +81,7 @@ class GhostTable {
|
|
77
81
|
this.rows.push(rowObject);
|
78
82
|
this.samples = samples;
|
79
83
|
this.table = this.createTable(this.hot.table.className);
|
80
|
-
this.table.colGroup.appendChild(this.createColGroupsCol());
|
84
|
+
this.table.colGroup.appendChild(this.createColGroupsCol(row));
|
81
85
|
this.table.tr.appendChild(this.createRow(row));
|
82
86
|
this.container.container.appendChild(this.table.fragment);
|
83
87
|
rowObject.table = this.table.table;
|
@@ -221,16 +225,17 @@ class GhostTable {
|
|
221
225
|
/**
|
222
226
|
* Create colgroup col elements.
|
223
227
|
*
|
228
|
+
* @param {number} row Visual row index.
|
224
229
|
* @returns {DocumentFragment}
|
225
230
|
*/
|
226
|
-
createColGroupsCol() {
|
231
|
+
createColGroupsCol(row) {
|
227
232
|
const fragment = this.hot.rootDocument.createDocumentFragment();
|
228
233
|
if (this.hot.hasRowHeaders()) {
|
229
|
-
fragment.appendChild(this.createColElement(-1));
|
234
|
+
fragment.appendChild(this.createColElement(-1, -1));
|
230
235
|
}
|
231
236
|
this.samples.forEach(sample => {
|
232
237
|
(0, _array.arrayEach)(sample.strings, string => {
|
233
|
-
fragment.appendChild(this.createColElement(string.col));
|
238
|
+
fragment.appendChild(this.createColElement(string.col, row));
|
234
239
|
});
|
235
240
|
});
|
236
241
|
return fragment;
|
@@ -377,12 +382,23 @@ class GhostTable {
|
|
377
382
|
/**
|
378
383
|
* Create col element.
|
379
384
|
*
|
380
|
-
* @param {number} column
|
385
|
+
* @param {number} column Visual column index.
|
386
|
+
* @param {number} row Visual row index.
|
381
387
|
* @returns {HTMLElement}
|
382
388
|
*/
|
383
|
-
createColElement(column) {
|
389
|
+
createColElement(column, row) {
|
384
390
|
const col = this.hot.rootDocument.createElement('col');
|
385
|
-
|
391
|
+
let colspan = 0;
|
392
|
+
if (row >= 0 && column >= 0) {
|
393
|
+
colspan = this.hot.getCellMeta(row, column).colspan;
|
394
|
+
}
|
395
|
+
let width = this.hot.view._wt.wtTable.getStretchedColumnWidth(column);
|
396
|
+
if (colspan > 1) {
|
397
|
+
for (let nextColumn = column + 1; nextColumn < column + colspan; nextColumn++) {
|
398
|
+
width += this.hot.view._wt.wtTable.getStretchedColumnWidth(nextColumn);
|
399
|
+
}
|
400
|
+
}
|
401
|
+
col.style.width = `${width}px`;
|
386
402
|
return col;
|
387
403
|
}
|
388
404
|
|
@@ -471,5 +487,4 @@ class GhostTable {
|
|
471
487
|
return !!(this.columns.length && !this.rows.length);
|
472
488
|
}
|
473
489
|
}
|
474
|
-
var _default = GhostTable;
|
475
|
-
exports.default = _default;
|
490
|
+
var _default = exports.default = GhostTable;
|