handsontable 14.0.0-next-07c0a60-20231107 → 14.0.0-next-7ee54cb-20231108
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/SheetClip/SheetClip.js +2 -2
- package/3rdparty/SheetClip/SheetClip.mjs +2 -2
- package/3rdparty/autoResize/autoResize.js +2 -2
- package/3rdparty/autoResize/autoResize.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
- package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
- package/3rdparty/walkontable/src/cell/coords.js +7 -5
- package/3rdparty/walkontable/src/cell/coords.mjs +7 -5
- package/3rdparty/walkontable/src/core/clone.js +6 -0
- package/3rdparty/walkontable/src/core/clone.mjs +6 -0
- package/3rdparty/walkontable/src/event.js +125 -74
- package/3rdparty/walkontable/src/event.mjs +125 -74
- package/3rdparty/walkontable/src/filter/column.js +16 -0
- package/3rdparty/walkontable/src/filter/column.mjs +16 -0
- package/3rdparty/walkontable/src/filter/row.js +16 -0
- package/3rdparty/walkontable/src/filter/row.mjs +16 -0
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/_base.js +12 -5
- package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
- package/3rdparty/walkontable/src/renderer/cells.js +6 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rows.js +5 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/table.js +24 -17
- package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
- package/3rdparty/walkontable/src/scroll.js +2 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -2
- package/3rdparty/walkontable/src/selection/border/border.js +1 -1
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +10 -10
- package/3rdparty/walkontable/src/settings.mjs +10 -10
- package/3rdparty/walkontable/src/table.js +3 -3
- package/3rdparty/walkontable/src/table.mjs +3 -3
- package/3rdparty/walkontable/src/utils/column.js +19 -4
- package/3rdparty/walkontable/src/utils/column.mjs +19 -4
- package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
- package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
- package/3rdparty/walkontable/src/utils/row.js +14 -2
- package/3rdparty/walkontable/src/utils/row.mjs +14 -2
- package/3rdparty/walkontable/src/viewport.js +9 -9
- package/3rdparty/walkontable/src/viewport.mjs +9 -9
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +31 -26
- package/core.mjs +31 -26
- package/dataMap/dataMap.js +99 -90
- package/dataMap/dataMap.mjs +99 -90
- package/dataMap/dataSource.js +14 -8
- package/dataMap/dataSource.mjs +14 -8
- package/dataMap/metaManager/lazyFactoryMap.js +19 -7
- package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
- package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
- package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
- package/dataMap/metaManager/metaSchema.js +55 -55
- package/dataMap/metaManager/metaSchema.mjs +55 -55
- package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
- package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
- package/dataMap/metaManager/utils.js +2 -2
- package/dataMap/metaManager/utils.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +7337 -6394
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +154 -154
- package/dist/handsontable.js +7336 -6393
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +28 -28
- package/editorManager.js +105 -95
- package/editorManager.mjs +105 -95
- package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
- package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
- package/editors/baseEditor/baseEditor.js +23 -26
- package/editors/baseEditor/baseEditor.mjs +23 -26
- package/editors/dateEditor/dateEditor.js +24 -15
- package/editors/dateEditor/dateEditor.mjs +24 -15
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
- package/editors/handsontableEditor/handsontableEditor.js +4 -4
- package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
- package/editors/textEditor/textEditor.js +23 -17
- package/editors/textEditor/textEditor.mjs +24 -18
- package/eventManager.js +8 -0
- package/eventManager.mjs +8 -0
- package/helpers/array.js +2 -2
- package/helpers/array.mjs +2 -2
- package/helpers/dom/element.js +7 -7
- package/helpers/dom/element.mjs +7 -7
- package/helpers/function.js +1 -1
- package/helpers/function.mjs +1 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +4 -4
- package/helpers/object.mjs +4 -4
- package/helpers/string.js +1 -1
- package/helpers/string.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.d.ts +0 -2
- package/pluginHooks.js +12 -3
- package/pluginHooks.mjs +12 -3
- package/plugins/autoColumnSize/autoColumnSize.js +141 -130
- package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
- package/plugins/autoRowSize/autoRowSize.js +112 -125
- package/plugins/autoRowSize/autoRowSize.mjs +110 -123
- package/plugins/autofill/autofill.js +98 -102
- package/plugins/autofill/autofill.mjs +97 -101
- package/plugins/base/base.js +61 -28
- package/plugins/base/base.mjs +60 -28
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
- package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
- package/plugins/columnSorting/columnSorting.js +107 -99
- package/plugins/columnSorting/columnSorting.mjs +106 -98
- package/plugins/columnSorting/columnStatesManager.js +12 -6
- package/plugins/columnSorting/columnStatesManager.mjs +12 -6
- package/plugins/columnSummary/columnSummary.js +71 -58
- package/plugins/columnSummary/columnSummary.mjs +70 -57
- package/plugins/columnSummary/endpoints.js +20 -14
- package/plugins/columnSummary/endpoints.mjs +20 -14
- package/plugins/comments/commentEditor.js +30 -2
- package/plugins/comments/commentEditor.mjs +30 -2
- package/plugins/comments/comments.js +158 -169
- package/plugins/comments/comments.mjs +157 -168
- package/plugins/comments/displaySwitch.js +7 -3
- package/plugins/comments/displaySwitch.mjs +7 -3
- package/plugins/contextMenu/commandExecutor.js +15 -2
- package/plugins/contextMenu/commandExecutor.mjs +15 -2
- package/plugins/contextMenu/contextMenu.js +96 -102
- package/plugins/contextMenu/contextMenu.mjs +95 -101
- package/plugins/contextMenu/itemsFactory.js +19 -4
- package/plugins/contextMenu/itemsFactory.mjs +19 -4
- package/plugins/contextMenu/menu/cursor.js +36 -0
- package/plugins/contextMenu/menu/cursor.mjs +36 -0
- package/plugins/contextMenu/menu/menu.js +57 -5
- package/plugins/contextMenu/menu/menu.mjs +57 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +57 -50
- package/plugins/customBorders/customBorders.mjs +56 -49
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +136 -131
- package/plugins/dropdownMenu/dropdownMenu.mjs +136 -131
- package/plugins/exportFile/dataProvider.js +7 -2
- package/plugins/exportFile/dataProvider.mjs +7 -2
- package/plugins/exportFile/exportFile.js +1 -1
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +14 -6
- package/plugins/exportFile/types/_base.mjs +14 -6
- package/plugins/filters/component/actionBar.js +9 -0
- package/plugins/filters/component/actionBar.mjs +9 -0
- package/plugins/filters/component/condition.js +13 -0
- package/plugins/filters/component/condition.mjs +13 -0
- package/plugins/filters/component/operators.js +9 -0
- package/plugins/filters/component/operators.mjs +9 -0
- package/plugins/filters/component/value.js +9 -0
- package/plugins/filters/component/value.mjs +9 -0
- package/plugins/filters/conditionCollection.js +9 -4
- package/plugins/filters/conditionCollection.mjs +9 -4
- package/plugins/filters/conditionUpdateObserver.js +53 -42
- package/plugins/filters/conditionUpdateObserver.mjs +53 -42
- package/plugins/filters/dataFilter.js +9 -3
- package/plugins/filters/dataFilter.mjs +9 -3
- package/plugins/filters/filters.js +184 -189
- package/plugins/filters/filters.mjs +182 -187
- package/plugins/filters/ui/_base.js +1 -1
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/utils.js +1 -1
- package/plugins/filters/utils.mjs +1 -1
- package/plugins/formulas/engine/settings.js +1 -1
- package/plugins/formulas/engine/settings.mjs +1 -1
- package/plugins/formulas/formulas.js +684 -602
- package/plugins/formulas/formulas.mjs +682 -600
- package/plugins/hiddenColumns/hiddenColumns.js +174 -169
- package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
- package/plugins/hiddenRows/hiddenRows.js +170 -165
- package/plugins/hiddenRows/hiddenRows.mjs +169 -164
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +66 -53
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
- package/plugins/manualColumnMove/manualColumnMove.js +287 -232
- package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
- package/plugins/manualColumnMove/ui/_base.js +9 -3
- package/plugins/manualColumnMove/ui/_base.mjs +9 -3
- package/plugins/manualColumnResize/manualColumnResize.js +291 -246
- package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
- package/plugins/manualRowMove/manualRowMove.js +223 -208
- package/plugins/manualRowMove/manualRowMove.mjs +222 -207
- package/plugins/manualRowMove/ui/_base.js +10 -5
- package/plugins/manualRowMove/ui/_base.mjs +10 -5
- package/plugins/manualRowResize/manualRowResize.js +254 -209
- package/plugins/manualRowResize/manualRowResize.mjs +253 -207
- package/plugins/mergeCells/calculations/autofill.js +9 -3
- package/plugins/mergeCells/calculations/autofill.mjs +9 -3
- package/plugins/mergeCells/calculations/selection.js +10 -4
- package/plugins/mergeCells/calculations/selection.mjs +10 -4
- package/plugins/mergeCells/cellCoords.js +16 -6
- package/plugins/mergeCells/cellCoords.mjs +16 -6
- package/plugins/mergeCells/cellsCollection.js +10 -4
- package/plugins/mergeCells/cellsCollection.mjs +10 -4
- package/plugins/mergeCells/mergeCells.js +582 -502
- package/plugins/mergeCells/mergeCells.mjs +580 -500
- package/plugins/multiColumnSorting/multiColumnSorting.js +15 -11
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +15 -11
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
- package/plugins/nestedHeaders/nestedHeaders.js +542 -499
- package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
- package/plugins/nestedHeaders/stateManager/index.js +1 -1
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +21 -15
- package/plugins/nestedRows/data/dataManager.mjs +21 -15
- package/plugins/nestedRows/nestedRows.js +328 -279
- package/plugins/nestedRows/nestedRows.mjs +327 -278
- package/plugins/nestedRows/ui/_base.js +7 -1
- package/plugins/nestedRows/ui/_base.mjs +7 -1
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +28 -18
- package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
- package/plugins/nestedRows/utils/rowMoveController.js +12 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
- package/plugins/persistentState/persistentState.js +14 -11
- package/plugins/persistentState/persistentState.mjs +14 -11
- package/plugins/persistentState/storage.js +11 -6
- package/plugins/persistentState/storage.mjs +11 -6
- package/plugins/registry.js +2 -2
- package/plugins/registry.mjs +2 -2
- package/plugins/search/search.js +57 -46
- package/plugins/search/search.mjs +56 -45
- package/plugins/touchScroll/touchScroll.js +102 -100
- package/plugins/touchScroll/touchScroll.mjs +100 -98
- package/plugins/trimRows/trimRows.js +33 -28
- package/plugins/trimRows/trimRows.mjs +32 -27
- package/plugins/undoRedo/undoRedo.js +2 -2
- package/plugins/undoRedo/undoRedo.mjs +2 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
- package/renderers/baseRenderer/baseRenderer.js +2 -2
- package/renderers/baseRenderer/baseRenderer.mjs +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
- package/renderers/dateRenderer/dateRenderer.js +4 -4
- package/renderers/dateRenderer/dateRenderer.mjs +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
- package/renderers/htmlRenderer/htmlRenderer.js +4 -4
- package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
- package/renderers/numericRenderer/numericRenderer.js +3 -3
- package/renderers/numericRenderer/numericRenderer.mjs +3 -3
- package/renderers/passwordRenderer/passwordRenderer.js +3 -3
- package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
- package/renderers/selectRenderer/selectRenderer.js +4 -4
- package/renderers/selectRenderer/selectRenderer.mjs +4 -4
- package/renderers/textRenderer/textRenderer.js +5 -5
- package/renderers/textRenderer/textRenderer.mjs +5 -5
- package/renderers/timeRenderer/timeRenderer.js +3 -3
- package/renderers/timeRenderer/timeRenderer.mjs +3 -3
- package/selection/highlight/highlight.js +1 -4
- package/selection/highlight/highlight.mjs +1 -4
- package/selection/range.js +12 -2
- package/selection/range.mjs +12 -2
- package/selection/selection.js +28 -10
- package/selection/selection.mjs +28 -10
- package/selection/utils.js +24 -14
- package/selection/utils.mjs +25 -15
- package/shortcuts/manager.js +1 -1
- package/shortcuts/manager.mjs +1 -1
- package/tableView.js +208 -200
- package/tableView.mjs +208 -200
- package/translations/changesObservable/utils.js +2 -2
- package/translations/changesObservable/utils.mjs +2 -2
- package/translations/indexMapper.js +25 -22
- package/translations/indexMapper.mjs +25 -22
- package/translations/mapCollections/aggregatedCollection.js +8 -2
- package/translations/mapCollections/aggregatedCollection.mjs +8 -2
- package/translations/mapCollections/mapCollection.js +5 -2
- package/translations/mapCollections/mapCollection.mjs +5 -2
- package/translations/maps/indexMap.js +6 -1
- package/translations/maps/indexMap.mjs +6 -1
- package/translations/maps/utils/physicallyIndexed.js +2 -2
- package/translations/maps/utils/physicallyIndexed.mjs +2 -2
- package/utils/dataStructures/linkedList.js +10 -6
- package/utils/dataStructures/linkedList.mjs +10 -6
- package/utils/dataStructures/queue.js +1 -1
- package/utils/dataStructures/queue.mjs +1 -1
- package/utils/dataStructures/stack.js +1 -1
- package/utils/dataStructures/stack.mjs +1 -1
- package/utils/ghostTable.js +2 -2
- package/utils/ghostTable.mjs +2 -2
- package/utils/interval.js +73 -36
- package/utils/interval.mjs +73 -36
- package/utils/parseTable.js +1 -1
- package/utils/parseTable.mjs +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
- package/validators/dateValidator/dateValidator.js +1 -1
- package/validators/dateValidator/dateValidator.mjs +1 -1
- package/validators/numericValidator/numericValidator.js +1 -1
- package/validators/numericValidator/numericValidator.mjs +1 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
6
|
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; }
|
@@ -7,6 +8,7 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
7
8
|
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
9
|
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
9
10
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
11
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
10
12
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
11
13
|
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
14
|
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; } }
|
@@ -15,7 +17,6 @@ import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
|
|
15
17
|
import { rangeEach } from "../../helpers/number.mjs";
|
16
18
|
import { warn } from "../../helpers/console.mjs";
|
17
19
|
import { addClass, hasClass, removeClass, fastInnerText, removeAttribute, setAttribute } from "../../helpers/dom/element.mjs";
|
18
|
-
import EventManager from "../../eventManager.mjs";
|
19
20
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
20
21
|
import { A11Y_DESCRIPTION, A11Y_EXPANDED, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
21
22
|
import { COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN, COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN } from "../../i18n/constants.mjs";
|
@@ -106,23 +107,48 @@ const actionDictionary = new Map([['collapse', {
|
|
106
107
|
* :::
|
107
108
|
*/
|
108
109
|
var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
|
110
|
+
var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
|
111
|
+
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
112
|
+
var _onInit = /*#__PURE__*/new WeakSet();
|
113
|
+
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
109
114
|
export class CollapsibleColumns extends BasePlugin {
|
110
115
|
constructor() {
|
111
116
|
super(...arguments);
|
112
117
|
/**
|
113
|
-
*
|
118
|
+
* Updates the plugin state after new dataset load.
|
114
119
|
*
|
115
|
-
* @
|
116
|
-
* @
|
120
|
+
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
121
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
122
|
+
* during the initialization.
|
117
123
|
*/
|
118
|
-
|
124
|
+
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
125
|
+
/**
|
126
|
+
* Updates the plugin state after HoT initialization.
|
127
|
+
*/
|
128
|
+
_classPrivateMethodInitSpec(this, _onInit);
|
129
|
+
/**
|
130
|
+
* Indicator mouse event callback.
|
131
|
+
*
|
132
|
+
* @param {object} event Mouse event.
|
133
|
+
* @param {object} coords Event coordinates.
|
134
|
+
*/
|
135
|
+
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
136
|
+
/**
|
137
|
+
* Adds the indicator to the headers.
|
138
|
+
*
|
139
|
+
* @param {number} column Column index.
|
140
|
+
* @param {HTMLElement} TH TH element.
|
141
|
+
* @param {number} headerLevel The index of header level counting from the top (positive
|
142
|
+
* values counting from 0 to N).
|
143
|
+
*/
|
144
|
+
_classPrivateMethodInitSpec(this, _onAfterGetColHeader);
|
119
145
|
/**
|
120
|
-
*
|
146
|
+
* Cached reference to the NestedHeaders plugin.
|
121
147
|
*
|
122
148
|
* @private
|
123
|
-
* @type {
|
149
|
+
* @type {NestedHeaders}
|
124
150
|
*/
|
125
|
-
_defineProperty(this, "
|
151
|
+
_defineProperty(this, "nestedHeadersPlugin", null);
|
126
152
|
/**
|
127
153
|
* The NestedHeaders plugin StateManager instance.
|
128
154
|
*
|
@@ -180,14 +206,20 @@ export class CollapsibleColumns extends BasePlugin {
|
|
180
206
|
_classPrivateFieldSet(this, _collapsedColumnsMap, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
|
181
207
|
this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
|
182
208
|
this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
|
183
|
-
this.addHook('init', () => this.
|
209
|
+
this.addHook('init', () => _classPrivateMethodGet(this, _onInit, _onInit2).call(this));
|
184
210
|
this.addHook('afterLoadData', function () {
|
185
|
-
|
211
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
212
|
+
args[_key] = arguments[_key];
|
213
|
+
}
|
214
|
+
return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
|
186
215
|
});
|
187
216
|
this.addHook('afterGetColHeader', function () {
|
188
|
-
|
217
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
218
|
+
args[_key2] = arguments[_key2];
|
219
|
+
}
|
220
|
+
return _classPrivateMethodGet(_this, _onAfterGetColHeader, _onAfterGetColHeader2).call(_this, ...args);
|
189
221
|
});
|
190
|
-
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.
|
222
|
+
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => _classPrivateMethodGet(this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(this, event, coords, TD));
|
191
223
|
this.registerShortcuts();
|
192
224
|
super.enablePlugin();
|
193
225
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
@@ -481,109 +513,75 @@ export class CollapsibleColumns extends BasePlugin {
|
|
481
513
|
getCollapsedColumns() {
|
482
514
|
return _classPrivateFieldGet(this, _collapsedColumnsMap).getHiddenIndexes();
|
483
515
|
}
|
484
|
-
|
485
516
|
/**
|
486
|
-
*
|
487
|
-
*
|
488
|
-
* @private
|
489
|
-
* @param {number} column Column index.
|
490
|
-
* @param {HTMLElement} TH TH element.
|
491
|
-
* @param {number} headerLevel The index of header level counting from the top (positive
|
492
|
-
* values counting from 0 to N).
|
517
|
+
* Destroys the plugin instance.
|
493
518
|
*/
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
} else {
|
521
|
-
addClass(collapsibleElement, 'expanded');
|
522
|
-
fastInnerText(collapsibleElement, '-');
|
519
|
+
destroy() {
|
520
|
+
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
521
|
+
super.destroy();
|
522
|
+
}
|
523
|
+
}
|
524
|
+
function _onAfterGetColHeader2(column, TH, headerLevel) {
|
525
|
+
var _this$headerStateMana3;
|
526
|
+
const {
|
527
|
+
collapsible,
|
528
|
+
origColspan,
|
529
|
+
isCollapsed
|
530
|
+
} = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
|
531
|
+
const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
|
532
|
+
const isAriaTagsEnabled = this.hot.getSettings().ariaTags;
|
533
|
+
let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
|
534
|
+
removeAttribute(TH, [A11Y_EXPANDED('')[0]]);
|
535
|
+
if (isNodeCollapsible) {
|
536
|
+
if (!collapsibleElement) {
|
537
|
+
collapsibleElement = this.hot.rootDocument.createElement('div');
|
538
|
+
addClass(collapsibleElement, COLLAPSIBLE_ELEMENT_CLASS);
|
539
|
+
TH.querySelector('div:first-child').appendChild(collapsibleElement);
|
540
|
+
}
|
541
|
+
removeClass(collapsibleElement, ['collapsed', 'expanded']);
|
542
|
+
if (isCollapsed) {
|
543
|
+
addClass(collapsibleElement, 'collapsed');
|
544
|
+
fastInnerText(collapsibleElement, '+');
|
523
545
|
|
524
|
-
|
525
|
-
if (isAriaTagsEnabled) {
|
526
|
-
setAttribute(TH, [A11Y_EXPANDED(true), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN))]);
|
527
|
-
}
|
528
|
-
}
|
546
|
+
// Add ARIA tags
|
529
547
|
if (isAriaTagsEnabled) {
|
530
|
-
setAttribute(
|
548
|
+
setAttribute(TH, [A11Y_EXPANDED(false), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN))]);
|
531
549
|
}
|
532
550
|
} else {
|
533
|
-
|
534
|
-
(
|
535
|
-
}
|
536
|
-
}
|
551
|
+
addClass(collapsibleElement, 'expanded');
|
552
|
+
fastInnerText(collapsibleElement, '-');
|
537
553
|
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
* @private
|
542
|
-
* @param {object} event Mouse event.
|
543
|
-
* @param {object} coords Event coordinates.
|
544
|
-
*/
|
545
|
-
onBeforeOnCellMouseDown(event, coords) {
|
546
|
-
if (hasClass(event.target, COLLAPSIBLE_ELEMENT_CLASS)) {
|
547
|
-
if (hasClass(event.target, 'expanded')) {
|
548
|
-
this.eventManager.fireEvent(event.target, 'mouseup');
|
549
|
-
this.toggleCollapsibleSection([coords], 'collapse');
|
550
|
-
} else if (hasClass(event.target, 'collapsed')) {
|
551
|
-
this.eventManager.fireEvent(event.target, 'mouseup');
|
552
|
-
this.toggleCollapsibleSection([coords], 'expand');
|
554
|
+
// Add ARIA tags
|
555
|
+
if (isAriaTagsEnabled) {
|
556
|
+
setAttribute(TH, [A11Y_EXPANDED(true), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN))]);
|
553
557
|
}
|
554
|
-
stopImmediatePropagation(event);
|
555
558
|
}
|
559
|
+
if (isAriaTagsEnabled) {
|
560
|
+
setAttribute(collapsibleElement, ...A11Y_HIDDEN());
|
561
|
+
}
|
562
|
+
} else {
|
563
|
+
var _collapsibleElement;
|
564
|
+
(_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 || _collapsibleElement.remove();
|
556
565
|
}
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
}
|
567
|
-
|
568
|
-
/**
|
569
|
-
* Updates the plugin state after new dataset load.
|
570
|
-
*
|
571
|
-
* @private
|
572
|
-
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
573
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
574
|
-
* during the initialization.
|
575
|
-
*/
|
576
|
-
onAfterLoadData(sourceData, initialLoad) {
|
577
|
-
if (!initialLoad) {
|
578
|
-
this.updatePlugin();
|
566
|
+
}
|
567
|
+
function _onBeforeOnCellMouseDown2(event, coords) {
|
568
|
+
if (hasClass(event.target, COLLAPSIBLE_ELEMENT_CLASS)) {
|
569
|
+
if (hasClass(event.target, 'expanded')) {
|
570
|
+
this.eventManager.fireEvent(event.target, 'mouseup');
|
571
|
+
this.toggleCollapsibleSection([coords], 'collapse');
|
572
|
+
} else if (hasClass(event.target, 'collapsed')) {
|
573
|
+
this.eventManager.fireEvent(event.target, 'mouseup');
|
574
|
+
this.toggleCollapsibleSection([coords], 'expand');
|
579
575
|
}
|
576
|
+
stopImmediatePropagation(event);
|
580
577
|
}
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
578
|
+
}
|
579
|
+
function _onInit2() {
|
580
|
+
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
581
|
+
this.updatePlugin();
|
582
|
+
}
|
583
|
+
function _onAfterLoadData2(sourceData, initialLoad) {
|
584
|
+
if (!initialLoad) {
|
585
|
+
this.updatePlugin();
|
588
586
|
}
|
589
587
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
|
+
require("core-js/modules/es.error.cause.js");
|
5
6
|
var _element = require("../../helpers/dom/element");
|
6
7
|
var _mixed = require("../../helpers/mixed");
|
7
8
|
var _object = require("../../helpers/object");
|
@@ -18,6 +19,12 @@ var _sortService = require("./sortService");
|
|
18
19
|
var _a11y = require("../../helpers/a11y");
|
19
20
|
var _constants = require("../../i18n/constants");
|
20
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
23
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
24
|
+
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; }
|
25
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
26
|
+
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); }
|
27
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
21
28
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'columnSorting';
|
22
29
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 50;
|
23
30
|
const APPEND_COLUMN_CONFIG_STRATEGY = exports.APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
@@ -78,45 +85,75 @@ _pluginHooks.default.getSingleton().register('afterColumnSort');
|
|
78
85
|
* }]
|
79
86
|
* ```
|
80
87
|
*/
|
88
|
+
var _loadOrSortBySettings = /*#__PURE__*/new WeakSet();
|
89
|
+
var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
|
90
|
+
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
91
|
+
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
81
92
|
class ColumnSorting extends _base.BasePlugin {
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
93
|
+
constructor() {
|
94
|
+
super(...arguments);
|
95
|
+
/**
|
96
|
+
* Changes the behavior of selection / dragging.
|
97
|
+
*
|
98
|
+
* @param {MouseEvent} event The `mousedown` event.
|
99
|
+
* @param {CellCoords} coords Visual coordinates.
|
100
|
+
* @param {HTMLElement} TD The cell element.
|
101
|
+
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
102
|
+
* a boolean value that allows or disallows changing the selection for that particular area.
|
103
|
+
*/
|
104
|
+
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
105
|
+
/**
|
106
|
+
* Callback for the `afterLoadData` hook.
|
107
|
+
*
|
108
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
109
|
+
*/
|
110
|
+
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
111
|
+
/**
|
112
|
+
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
113
|
+
*
|
114
|
+
* @param {number} column Visual column index.
|
115
|
+
* @param {Element} TH TH HTML element.
|
116
|
+
*/
|
117
|
+
_classPrivateMethodInitSpec(this, _onAfterGetColHeader);
|
118
|
+
/**
|
119
|
+
* Load saved settings or sort by predefined plugin configuration.
|
120
|
+
*/
|
121
|
+
_classPrivateMethodInitSpec(this, _loadOrSortBySettings);
|
90
122
|
/**
|
91
123
|
* Instance of column state manager.
|
92
124
|
*
|
93
125
|
* @private
|
94
126
|
* @type {null|ColumnStatesManager}
|
95
127
|
*/
|
96
|
-
this
|
128
|
+
_defineProperty(this, "columnStatesManager", null);
|
97
129
|
/**
|
98
130
|
* Cached column properties from plugin like i.e. `indicator`, `headerAction`.
|
99
131
|
*
|
100
132
|
* @private
|
101
133
|
* @type {null|PhysicalIndexToValueMap}
|
102
134
|
*/
|
103
|
-
this
|
135
|
+
_defineProperty(this, "columnMetaCache", null);
|
104
136
|
/**
|
105
137
|
* Main settings key designed for the plugin.
|
106
138
|
*
|
107
139
|
* @private
|
108
140
|
* @type {string}
|
109
141
|
*/
|
110
|
-
this
|
142
|
+
_defineProperty(this, "pluginKey", PLUGIN_KEY);
|
111
143
|
/**
|
112
144
|
* Plugin indexes cache.
|
113
145
|
*
|
114
146
|
* @private
|
115
147
|
* @type {null|IndexesSequence}
|
116
148
|
*/
|
117
|
-
this
|
149
|
+
_defineProperty(this, "indexesSequenceCache", null);
|
150
|
+
}
|
151
|
+
static get PLUGIN_KEY() {
|
152
|
+
return PLUGIN_KEY;
|
153
|
+
}
|
154
|
+
static get PLUGIN_PRIORITY() {
|
155
|
+
return PLUGIN_PRIORITY;
|
118
156
|
}
|
119
|
-
|
120
157
|
/**
|
121
158
|
* Checks if the plugin is enabled in the Handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
122
159
|
* hook and if it returns `true` then the {@link ColumnSorting#enablePlugin} method is called.
|
@@ -144,19 +181,25 @@ class ColumnSorting extends _base.BasePlugin {
|
|
144
181
|
return this.getMergedPluginSettings(visualIndex);
|
145
182
|
});
|
146
183
|
this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);
|
147
|
-
this.addHook('afterGetColHeader', (column, TH) => this.
|
184
|
+
this.addHook('afterGetColHeader', (column, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, column, TH));
|
148
185
|
this.addHook('beforeOnCellMouseDown', function () {
|
149
|
-
|
186
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
187
|
+
args[_key] = arguments[_key];
|
188
|
+
}
|
189
|
+
return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
|
150
190
|
});
|
151
191
|
this.addHook('afterOnCellMouseDown', (event, target) => this.onAfterOnCellMouseDown(event, target));
|
152
|
-
this.addHook('afterInit', () => this.
|
192
|
+
this.addHook('afterInit', () => _classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this));
|
153
193
|
this.addHook('afterLoadData', function () {
|
154
|
-
|
194
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
195
|
+
args[_key2] = arguments[_key2];
|
196
|
+
}
|
197
|
+
return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
|
155
198
|
});
|
156
199
|
|
157
200
|
// TODO: Workaround? It should be refactored / described.
|
158
201
|
if (this.hot.view) {
|
159
|
-
this.
|
202
|
+
_classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this);
|
160
203
|
}
|
161
204
|
this.registerShortcuts();
|
162
205
|
super.enablePlugin();
|
@@ -211,7 +254,8 @@ class ColumnSorting extends _base.BasePlugin {
|
|
211
254
|
},
|
212
255
|
runOnlyIf: () => {
|
213
256
|
var _this$hot$getSelected;
|
214
|
-
|
257
|
+
const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
|
258
|
+
return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
|
215
259
|
},
|
216
260
|
group: SHORTCUTS_GROUP
|
217
261
|
});
|
@@ -593,22 +637,6 @@ class ColumnSorting extends _base.BasePlugin {
|
|
593
637
|
});
|
594
638
|
this.hot.rowIndexMapper.setIndexesSequence(newIndexesSequence);
|
595
639
|
}
|
596
|
-
|
597
|
-
/**
|
598
|
-
* Load saved settings or sort by predefined plugin configuration.
|
599
|
-
*
|
600
|
-
* @private
|
601
|
-
*/
|
602
|
-
loadOrSortBySettings() {
|
603
|
-
const storedAllSortSettings = this.getAllSavedSortSettings();
|
604
|
-
if ((0, _object.isObject)(storedAllSortSettings)) {
|
605
|
-
this.sortBySettings(storedAllSortSettings);
|
606
|
-
} else {
|
607
|
-
const allSortSettings = this.hot.getSettings()[this.pluginKey];
|
608
|
-
this.sortBySettings(allSortSettings);
|
609
|
-
}
|
610
|
-
}
|
611
|
-
|
612
640
|
/**
|
613
641
|
* Sort the table by provided configuration.
|
614
642
|
*
|
@@ -628,31 +656,6 @@ class ColumnSorting extends _base.BasePlugin {
|
|
628
656
|
this.hot.render();
|
629
657
|
}
|
630
658
|
}
|
631
|
-
|
632
|
-
/**
|
633
|
-
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
634
|
-
*
|
635
|
-
* @private
|
636
|
-
* @param {number} column Visual column index.
|
637
|
-
* @param {Element} TH TH HTML element.
|
638
|
-
*/
|
639
|
-
onAfterGetColHeader(column, TH) {
|
640
|
-
const headerSpanElement = (0, _utils.getHeaderSpanElement)(TH);
|
641
|
-
if ((0, _utils.isFirstLevelColumnHeader)(column, TH) === false || headerSpanElement === null) {
|
642
|
-
return;
|
643
|
-
}
|
644
|
-
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
645
|
-
const ariaTags = this.hot.getSettings().ariaTags;
|
646
|
-
const showSortIndicator = pluginSettingsForColumn.indicator;
|
647
|
-
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
648
|
-
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
649
|
-
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
650
|
-
this.updateSortingIndicator(column, headerSpanElement);
|
651
|
-
if (ariaTags) {
|
652
|
-
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
653
|
-
}
|
654
|
-
}
|
655
|
-
|
656
659
|
/**
|
657
660
|
* Update header classes.
|
658
661
|
*
|
@@ -663,8 +666,8 @@ class ColumnSorting extends _base.BasePlugin {
|
|
663
666
|
updateHeaderClasses(headerSpanElement) {
|
664
667
|
(0, _element.removeClass)(headerSpanElement, (0, _domHelpers.getClassesToRemove)(headerSpanElement));
|
665
668
|
if (this.enabled !== false) {
|
666
|
-
for (var
|
667
|
-
args[
|
669
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
670
|
+
args[_key3 - 1] = arguments[_key3];
|
668
671
|
}
|
669
672
|
(0, _element.addClass)(headerSpanElement, (0, _domHelpers.getClassesToAdd)(...args));
|
670
673
|
}
|
@@ -709,22 +712,6 @@ class ColumnSorting extends _base.BasePlugin {
|
|
709
712
|
this.sortBySettings(newSettings[this.pluginKey]);
|
710
713
|
}
|
711
714
|
}
|
712
|
-
|
713
|
-
/**
|
714
|
-
* Callback for the `afterLoadData` hook.
|
715
|
-
*
|
716
|
-
* @private
|
717
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
718
|
-
*/
|
719
|
-
onAfterLoadData(initialLoad) {
|
720
|
-
if (initialLoad === true) {
|
721
|
-
// TODO: Workaround? It should be refactored / described.
|
722
|
-
if (this.hot.view) {
|
723
|
-
this.loadOrSortBySettings();
|
724
|
-
}
|
725
|
-
}
|
726
|
-
}
|
727
|
-
|
728
715
|
/**
|
729
716
|
* Indicates if clickable header was clicked.
|
730
717
|
*
|
@@ -738,26 +725,6 @@ class ColumnSorting extends _base.BasePlugin {
|
|
738
725
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
739
726
|
return headerActionEnabled && event.target.nodeName === 'SPAN';
|
740
727
|
}
|
741
|
-
|
742
|
-
/**
|
743
|
-
* Changes the behavior of selection / dragging.
|
744
|
-
*
|
745
|
-
* @private
|
746
|
-
* @param {MouseEvent} event The `mousedown` event.
|
747
|
-
* @param {CellCoords} coords Visual coordinates.
|
748
|
-
* @param {HTMLElement} TD The cell element.
|
749
|
-
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
750
|
-
* a boolean value that allows or disallows changing the selection for that particular area.
|
751
|
-
*/
|
752
|
-
onBeforeOnCellMouseDown(event, coords, TD, controller) {
|
753
|
-
if ((0, _utils.wasHeaderClickedProperly)(coords.row, coords.col, event) === false) {
|
754
|
-
return;
|
755
|
-
}
|
756
|
-
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
757
|
-
controller.column = true;
|
758
|
-
}
|
759
|
-
}
|
760
|
-
|
761
728
|
/**
|
762
729
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
763
730
|
*
|
@@ -789,4 +756,45 @@ class ColumnSorting extends _base.BasePlugin {
|
|
789
756
|
super.destroy();
|
790
757
|
}
|
791
758
|
}
|
792
|
-
exports.ColumnSorting = ColumnSorting;
|
759
|
+
exports.ColumnSorting = ColumnSorting;
|
760
|
+
function _loadOrSortBySettings2() {
|
761
|
+
const storedAllSortSettings = this.getAllSavedSortSettings();
|
762
|
+
if ((0, _object.isObject)(storedAllSortSettings)) {
|
763
|
+
this.sortBySettings(storedAllSortSettings);
|
764
|
+
} else {
|
765
|
+
const allSortSettings = this.hot.getSettings()[this.pluginKey];
|
766
|
+
this.sortBySettings(allSortSettings);
|
767
|
+
}
|
768
|
+
}
|
769
|
+
function _onAfterGetColHeader2(column, TH) {
|
770
|
+
const headerSpanElement = (0, _utils.getHeaderSpanElement)(TH);
|
771
|
+
if ((0, _utils.isFirstLevelColumnHeader)(column, TH) === false || headerSpanElement === null) {
|
772
|
+
return;
|
773
|
+
}
|
774
|
+
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
775
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
776
|
+
const showSortIndicator = pluginSettingsForColumn.indicator;
|
777
|
+
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
778
|
+
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
779
|
+
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
780
|
+
this.updateSortingIndicator(column, headerSpanElement);
|
781
|
+
if (ariaTags) {
|
782
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
783
|
+
}
|
784
|
+
}
|
785
|
+
function _onAfterLoadData2(initialLoad) {
|
786
|
+
if (initialLoad === true) {
|
787
|
+
// TODO: Workaround? It should be refactored / described.
|
788
|
+
if (this.hot.view) {
|
789
|
+
_classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this);
|
790
|
+
}
|
791
|
+
}
|
792
|
+
}
|
793
|
+
function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
|
794
|
+
if ((0, _utils.wasHeaderClickedProperly)(coords.row, coords.col, event) === false) {
|
795
|
+
return;
|
796
|
+
}
|
797
|
+
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
798
|
+
controller.column = true;
|
799
|
+
}
|
800
|
+
}
|