handsontable 0.0.0-next-7026906-20231107 → 0.0.0-next-7b93b7d-20231107
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- 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/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 +25 -25
- package/core.mjs +25 -25
- 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 +7244 -6347
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +120 -120
- package/dist/handsontable.js +7243 -6346
- 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 +97 -102
- package/plugins/autofill/autofill.mjs +96 -101
- package/plugins/base/base.js +57 -22
- package/plugins/base/base.mjs +56 -22
- 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 +105 -98
- package/plugins/columnSorting/columnSorting.mjs +104 -97
- 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 +91 -101
- package/plugins/contextMenu/contextMenu.mjs +90 -100
- 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/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +49 -48
- package/plugins/customBorders/customBorders.mjs +48 -47
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +132 -129
- package/plugins/dropdownMenu/dropdownMenu.mjs +132 -129
- 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 +67 -54
- 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 +13 -10
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +13 -10
- 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 +326 -278
- package/plugins/nestedRows/nestedRows.mjs +325 -277
- 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/range.js +12 -2
- package/selection/range.mjs +12 -2
- package/selection/selection.js +3 -3
- package/selection/selection.mjs +3 -3
- 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,4 +1,11 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/es.error.cause.js";
|
3
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
4
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
+
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; }
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
7
|
+
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
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
2
9
|
import { addClass, appendElement, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
|
3
10
|
import { isUndefined, isDefined } from "../../helpers/mixed.mjs";
|
4
11
|
import { isObject } from "../../helpers/object.mjs";
|
@@ -74,45 +81,75 @@ Hooks.getSingleton().register('afterColumnSort');
|
|
74
81
|
* }]
|
75
82
|
* ```
|
76
83
|
*/
|
84
|
+
var _loadOrSortBySettings = /*#__PURE__*/new WeakSet();
|
85
|
+
var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
|
86
|
+
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
87
|
+
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
77
88
|
export class ColumnSorting extends BasePlugin {
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
89
|
+
constructor() {
|
90
|
+
super(...arguments);
|
91
|
+
/**
|
92
|
+
* Changes the behavior of selection / dragging.
|
93
|
+
*
|
94
|
+
* @param {MouseEvent} event The `mousedown` event.
|
95
|
+
* @param {CellCoords} coords Visual coordinates.
|
96
|
+
* @param {HTMLElement} TD The cell element.
|
97
|
+
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
98
|
+
* a boolean value that allows or disallows changing the selection for that particular area.
|
99
|
+
*/
|
100
|
+
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
101
|
+
/**
|
102
|
+
* Callback for the `afterLoadData` hook.
|
103
|
+
*
|
104
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
105
|
+
*/
|
106
|
+
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
107
|
+
/**
|
108
|
+
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
109
|
+
*
|
110
|
+
* @param {number} column Visual column index.
|
111
|
+
* @param {Element} TH TH HTML element.
|
112
|
+
*/
|
113
|
+
_classPrivateMethodInitSpec(this, _onAfterGetColHeader);
|
114
|
+
/**
|
115
|
+
* Load saved settings or sort by predefined plugin configuration.
|
116
|
+
*/
|
117
|
+
_classPrivateMethodInitSpec(this, _loadOrSortBySettings);
|
86
118
|
/**
|
87
119
|
* Instance of column state manager.
|
88
120
|
*
|
89
121
|
* @private
|
90
122
|
* @type {null|ColumnStatesManager}
|
91
123
|
*/
|
92
|
-
this
|
124
|
+
_defineProperty(this, "columnStatesManager", null);
|
93
125
|
/**
|
94
126
|
* Cached column properties from plugin like i.e. `indicator`, `headerAction`.
|
95
127
|
*
|
96
128
|
* @private
|
97
129
|
* @type {null|PhysicalIndexToValueMap}
|
98
130
|
*/
|
99
|
-
this
|
131
|
+
_defineProperty(this, "columnMetaCache", null);
|
100
132
|
/**
|
101
133
|
* Main settings key designed for the plugin.
|
102
134
|
*
|
103
135
|
* @private
|
104
136
|
* @type {string}
|
105
137
|
*/
|
106
|
-
this
|
138
|
+
_defineProperty(this, "pluginKey", PLUGIN_KEY);
|
107
139
|
/**
|
108
140
|
* Plugin indexes cache.
|
109
141
|
*
|
110
142
|
* @private
|
111
143
|
* @type {null|IndexesSequence}
|
112
144
|
*/
|
113
|
-
this
|
145
|
+
_defineProperty(this, "indexesSequenceCache", null);
|
146
|
+
}
|
147
|
+
static get PLUGIN_KEY() {
|
148
|
+
return PLUGIN_KEY;
|
149
|
+
}
|
150
|
+
static get PLUGIN_PRIORITY() {
|
151
|
+
return PLUGIN_PRIORITY;
|
114
152
|
}
|
115
|
-
|
116
153
|
/**
|
117
154
|
* Checks if the plugin is enabled in the Handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
118
155
|
* hook and if it returns `true` then the {@link ColumnSorting#enablePlugin} method is called.
|
@@ -140,19 +177,25 @@ export class ColumnSorting extends BasePlugin {
|
|
140
177
|
return this.getMergedPluginSettings(visualIndex);
|
141
178
|
});
|
142
179
|
this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);
|
143
|
-
this.addHook('afterGetColHeader', (column, TH) => this.
|
180
|
+
this.addHook('afterGetColHeader', (column, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, column, TH));
|
144
181
|
this.addHook('beforeOnCellMouseDown', function () {
|
145
|
-
|
182
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
183
|
+
args[_key] = arguments[_key];
|
184
|
+
}
|
185
|
+
return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
|
146
186
|
});
|
147
187
|
this.addHook('afterOnCellMouseDown', (event, target) => this.onAfterOnCellMouseDown(event, target));
|
148
|
-
this.addHook('afterInit', () => this.
|
188
|
+
this.addHook('afterInit', () => _classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this));
|
149
189
|
this.addHook('afterLoadData', function () {
|
150
|
-
|
190
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
191
|
+
args[_key2] = arguments[_key2];
|
192
|
+
}
|
193
|
+
return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
|
151
194
|
});
|
152
195
|
|
153
196
|
// TODO: Workaround? It should be refactored / described.
|
154
197
|
if (this.hot.view) {
|
155
|
-
this.
|
198
|
+
_classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this);
|
156
199
|
}
|
157
200
|
this.registerShortcuts();
|
158
201
|
super.enablePlugin();
|
@@ -589,22 +632,6 @@ export class ColumnSorting extends BasePlugin {
|
|
589
632
|
});
|
590
633
|
this.hot.rowIndexMapper.setIndexesSequence(newIndexesSequence);
|
591
634
|
}
|
592
|
-
|
593
|
-
/**
|
594
|
-
* Load saved settings or sort by predefined plugin configuration.
|
595
|
-
*
|
596
|
-
* @private
|
597
|
-
*/
|
598
|
-
loadOrSortBySettings() {
|
599
|
-
const storedAllSortSettings = this.getAllSavedSortSettings();
|
600
|
-
if (isObject(storedAllSortSettings)) {
|
601
|
-
this.sortBySettings(storedAllSortSettings);
|
602
|
-
} else {
|
603
|
-
const allSortSettings = this.hot.getSettings()[this.pluginKey];
|
604
|
-
this.sortBySettings(allSortSettings);
|
605
|
-
}
|
606
|
-
}
|
607
|
-
|
608
635
|
/**
|
609
636
|
* Sort the table by provided configuration.
|
610
637
|
*
|
@@ -624,31 +651,6 @@ export class ColumnSorting extends BasePlugin {
|
|
624
651
|
this.hot.render();
|
625
652
|
}
|
626
653
|
}
|
627
|
-
|
628
|
-
/**
|
629
|
-
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
630
|
-
*
|
631
|
-
* @private
|
632
|
-
* @param {number} column Visual column index.
|
633
|
-
* @param {Element} TH TH HTML element.
|
634
|
-
*/
|
635
|
-
onAfterGetColHeader(column, TH) {
|
636
|
-
const headerSpanElement = getHeaderSpanElement(TH);
|
637
|
-
if (isFirstLevelColumnHeader(column, TH) === false || headerSpanElement === null) {
|
638
|
-
return;
|
639
|
-
}
|
640
|
-
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
641
|
-
const ariaTags = this.hot.getSettings().ariaTags;
|
642
|
-
const showSortIndicator = pluginSettingsForColumn.indicator;
|
643
|
-
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
644
|
-
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
645
|
-
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
646
|
-
this.updateSortingIndicator(column, headerSpanElement);
|
647
|
-
if (ariaTags) {
|
648
|
-
setAttribute(TH, [A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
649
|
-
}
|
650
|
-
}
|
651
|
-
|
652
654
|
/**
|
653
655
|
* Update header classes.
|
654
656
|
*
|
@@ -659,8 +661,8 @@ export class ColumnSorting extends BasePlugin {
|
|
659
661
|
updateHeaderClasses(headerSpanElement) {
|
660
662
|
removeClass(headerSpanElement, getClassesToRemove(headerSpanElement));
|
661
663
|
if (this.enabled !== false) {
|
662
|
-
for (var
|
663
|
-
args[
|
664
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
665
|
+
args[_key3 - 1] = arguments[_key3];
|
664
666
|
}
|
665
667
|
addClass(headerSpanElement, getClassesToAdd(...args));
|
666
668
|
}
|
@@ -705,22 +707,6 @@ export class ColumnSorting extends BasePlugin {
|
|
705
707
|
this.sortBySettings(newSettings[this.pluginKey]);
|
706
708
|
}
|
707
709
|
}
|
708
|
-
|
709
|
-
/**
|
710
|
-
* Callback for the `afterLoadData` hook.
|
711
|
-
*
|
712
|
-
* @private
|
713
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
714
|
-
*/
|
715
|
-
onAfterLoadData(initialLoad) {
|
716
|
-
if (initialLoad === true) {
|
717
|
-
// TODO: Workaround? It should be refactored / described.
|
718
|
-
if (this.hot.view) {
|
719
|
-
this.loadOrSortBySettings();
|
720
|
-
}
|
721
|
-
}
|
722
|
-
}
|
723
|
-
|
724
710
|
/**
|
725
711
|
* Indicates if clickable header was clicked.
|
726
712
|
*
|
@@ -734,26 +720,6 @@ export class ColumnSorting extends BasePlugin {
|
|
734
720
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
735
721
|
return headerActionEnabled && event.target.nodeName === 'SPAN';
|
736
722
|
}
|
737
|
-
|
738
|
-
/**
|
739
|
-
* Changes the behavior of selection / dragging.
|
740
|
-
*
|
741
|
-
* @private
|
742
|
-
* @param {MouseEvent} event The `mousedown` event.
|
743
|
-
* @param {CellCoords} coords Visual coordinates.
|
744
|
-
* @param {HTMLElement} TD The cell element.
|
745
|
-
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
746
|
-
* a boolean value that allows or disallows changing the selection for that particular area.
|
747
|
-
*/
|
748
|
-
onBeforeOnCellMouseDown(event, coords, TD, controller) {
|
749
|
-
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
750
|
-
return;
|
751
|
-
}
|
752
|
-
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
753
|
-
controller.column = true;
|
754
|
-
}
|
755
|
-
}
|
756
|
-
|
757
723
|
/**
|
758
724
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
759
725
|
*
|
@@ -784,4 +750,45 @@ export class ColumnSorting extends BasePlugin {
|
|
784
750
|
(_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 || _this$columnStatesMan.destroy();
|
785
751
|
super.destroy();
|
786
752
|
}
|
753
|
+
}
|
754
|
+
function _loadOrSortBySettings2() {
|
755
|
+
const storedAllSortSettings = this.getAllSavedSortSettings();
|
756
|
+
if (isObject(storedAllSortSettings)) {
|
757
|
+
this.sortBySettings(storedAllSortSettings);
|
758
|
+
} else {
|
759
|
+
const allSortSettings = this.hot.getSettings()[this.pluginKey];
|
760
|
+
this.sortBySettings(allSortSettings);
|
761
|
+
}
|
762
|
+
}
|
763
|
+
function _onAfterGetColHeader2(column, TH) {
|
764
|
+
const headerSpanElement = getHeaderSpanElement(TH);
|
765
|
+
if (isFirstLevelColumnHeader(column, TH) === false || headerSpanElement === null) {
|
766
|
+
return;
|
767
|
+
}
|
768
|
+
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
769
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
770
|
+
const showSortIndicator = pluginSettingsForColumn.indicator;
|
771
|
+
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
772
|
+
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
773
|
+
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
774
|
+
this.updateSortingIndicator(column, headerSpanElement);
|
775
|
+
if (ariaTags) {
|
776
|
+
setAttribute(TH, [A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
777
|
+
}
|
778
|
+
}
|
779
|
+
function _onAfterLoadData2(initialLoad) {
|
780
|
+
if (initialLoad === true) {
|
781
|
+
// TODO: Workaround? It should be refactored / described.
|
782
|
+
if (this.hot.view) {
|
783
|
+
_classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this);
|
784
|
+
}
|
785
|
+
}
|
786
|
+
}
|
787
|
+
function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
|
788
|
+
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
789
|
+
return;
|
790
|
+
}
|
791
|
+
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
792
|
+
controller.column = true;
|
793
|
+
}
|
787
794
|
}
|
@@ -1,9 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _object = require("../../helpers/object");
|
5
6
|
var _translations = require("../../translations");
|
6
7
|
var _mixed = require("../../helpers/mixed");
|
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); }
|
7
11
|
const inheritedColumnProperties = ['sortEmptyCells', 'indicator', 'headerAction', 'compareFunctionFactory'];
|
8
12
|
const SORT_EMPTY_CELLS_DEFAULT = false;
|
9
13
|
const SHOW_SORT_INDICATOR_DEFAULT = true;
|
@@ -22,40 +26,42 @@ class ColumnStatesManager {
|
|
22
26
|
*
|
23
27
|
* @type {Core}
|
24
28
|
*/
|
25
|
-
this
|
29
|
+
_defineProperty(this, "hot", void 0);
|
26
30
|
/**
|
27
31
|
* Index map storing sorting states for every column. ColumnStatesManager write and read to/from this element.
|
28
32
|
*
|
29
33
|
* @type {LinkedPhysicalIndexToValueMap}
|
30
34
|
*/
|
31
|
-
this
|
35
|
+
_defineProperty(this, "sortingStates", new _translations.LinkedPhysicalIndexToValueMap());
|
32
36
|
/**
|
33
37
|
* Determines whether we should sort empty cells.
|
34
38
|
*
|
35
39
|
* @type {boolean}
|
36
40
|
*/
|
37
|
-
this
|
41
|
+
_defineProperty(this, "sortEmptyCells", SORT_EMPTY_CELLS_DEFAULT);
|
38
42
|
/**
|
39
43
|
* Determines whether indicator should be visible (for sorted columns).
|
40
44
|
*
|
41
45
|
* @type {boolean}
|
42
46
|
*/
|
43
|
-
this
|
47
|
+
_defineProperty(this, "indicator", SHOW_SORT_INDICATOR_DEFAULT);
|
44
48
|
/**
|
45
49
|
* Determines whether click on the header perform sorting.
|
46
50
|
*
|
47
51
|
* @type {boolean}
|
48
52
|
*/
|
49
|
-
this
|
53
|
+
_defineProperty(this, "headerAction", HEADER_ACTION_DEFAULT);
|
50
54
|
/**
|
51
55
|
* Determines compare function factory. Method get as parameters `sortOder` and `columnMeta` and return compare function.
|
52
56
|
*/
|
53
|
-
this
|
57
|
+
_defineProperty(this, "compareFunctionFactory", void 0);
|
54
58
|
/**
|
55
59
|
* Name of map storing sorting states. Required for unique name (PR #7440 introduced it). It's needed as
|
56
60
|
* both ColumnSorting and MultiColumnSorting plugins create state manager and as a consequence register maps.
|
57
61
|
* Objects are destroyed in strange order as the updateSettings doesn't work well.
|
58
62
|
*/
|
63
|
+
_defineProperty(this, "mapName", void 0);
|
64
|
+
this.hot = hot;
|
59
65
|
this.mapName = mapName;
|
60
66
|
this.hot.columnIndexMapper.registerMap(mapName, this.sortingStates);
|
61
67
|
}
|
@@ -1,3 +1,7 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
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; }
|
3
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
4
|
+
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); }
|
1
5
|
import { isObject, objectEach } from "../../helpers/object.mjs";
|
2
6
|
import { LinkedPhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs";
|
3
7
|
import { isDefined } from "../../helpers/mixed.mjs";
|
@@ -19,40 +23,42 @@ export class ColumnStatesManager {
|
|
19
23
|
*
|
20
24
|
* @type {Core}
|
21
25
|
*/
|
22
|
-
this
|
26
|
+
_defineProperty(this, "hot", void 0);
|
23
27
|
/**
|
24
28
|
* Index map storing sorting states for every column. ColumnStatesManager write and read to/from this element.
|
25
29
|
*
|
26
30
|
* @type {LinkedPhysicalIndexToValueMap}
|
27
31
|
*/
|
28
|
-
this
|
32
|
+
_defineProperty(this, "sortingStates", new IndexToValueMap());
|
29
33
|
/**
|
30
34
|
* Determines whether we should sort empty cells.
|
31
35
|
*
|
32
36
|
* @type {boolean}
|
33
37
|
*/
|
34
|
-
this
|
38
|
+
_defineProperty(this, "sortEmptyCells", SORT_EMPTY_CELLS_DEFAULT);
|
35
39
|
/**
|
36
40
|
* Determines whether indicator should be visible (for sorted columns).
|
37
41
|
*
|
38
42
|
* @type {boolean}
|
39
43
|
*/
|
40
|
-
this
|
44
|
+
_defineProperty(this, "indicator", SHOW_SORT_INDICATOR_DEFAULT);
|
41
45
|
/**
|
42
46
|
* Determines whether click on the header perform sorting.
|
43
47
|
*
|
44
48
|
* @type {boolean}
|
45
49
|
*/
|
46
|
-
this
|
50
|
+
_defineProperty(this, "headerAction", HEADER_ACTION_DEFAULT);
|
47
51
|
/**
|
48
52
|
* Determines compare function factory. Method get as parameters `sortOder` and `columnMeta` and return compare function.
|
49
53
|
*/
|
50
|
-
this
|
54
|
+
_defineProperty(this, "compareFunctionFactory", void 0);
|
51
55
|
/**
|
52
56
|
* Name of map storing sorting states. Required for unique name (PR #7440 introduced it). It's needed as
|
53
57
|
* both ColumnSorting and MultiColumnSorting plugins create state manager and as a consequence register maps.
|
54
58
|
* Objects are destroyed in strange order as the updateSettings doesn't work well.
|
55
59
|
*/
|
60
|
+
_defineProperty(this, "mapName", void 0);
|
61
|
+
this.hot = hot;
|
56
62
|
this.mapName = mapName;
|
57
63
|
this.hot.columnIndexMapper.registerMap(mapName, this.sortingStates);
|
58
64
|
}
|
@@ -8,6 +8,12 @@ var _endpoints = _interopRequireDefault(require("./endpoints"));
|
|
8
8
|
var _templateLiteralTag = require("../../helpers/templateLiteralTag");
|
9
9
|
var _utils = require("./utils");
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
12
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
13
|
+
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; }
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
15
|
+
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); }
|
16
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
11
17
|
const PLUGIN_KEY = 'columnSummary';
|
12
18
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
13
19
|
const PLUGIN_PRIORITY = 220;
|
@@ -99,24 +105,45 @@ const PLUGIN_PRIORITY = 220;
|
|
99
105
|
* :::
|
100
106
|
*/
|
101
107
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
108
|
+
var _onAfterInit = /*#__PURE__*/new WeakSet();
|
109
|
+
var _onAfterChange = /*#__PURE__*/new WeakSet();
|
110
|
+
var _onAfterRowMove = /*#__PURE__*/new WeakSet();
|
102
111
|
class ColumnSummary extends _base.BasePlugin {
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
112
|
+
constructor() {
|
113
|
+
super(...arguments);
|
114
|
+
/**
|
115
|
+
* `beforeRowMove` hook callback.
|
116
|
+
*
|
117
|
+
* @param {Array} rows Array of visual row indexes to be moved.
|
118
|
+
* @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.
|
119
|
+
* To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving.md).
|
120
|
+
*/
|
121
|
+
_classPrivateMethodInitSpec(this, _onAfterRowMove);
|
122
|
+
/**
|
123
|
+
* `afterChange` hook callback.
|
124
|
+
*
|
125
|
+
* @param {Array} changes 2D array containing information about each of the edited cells.
|
126
|
+
* @param {string} source The string that identifies source of changes.
|
127
|
+
*/
|
128
|
+
_classPrivateMethodInitSpec(this, _onAfterChange);
|
129
|
+
/**
|
130
|
+
* `afterInit` hook callback.
|
131
|
+
*/
|
132
|
+
_classPrivateMethodInitSpec(this, _onAfterInit);
|
111
133
|
/**
|
112
134
|
* The Endpoints class instance. Used to make all endpoint-related operations.
|
113
135
|
*
|
114
136
|
* @private
|
115
137
|
* @type {null|Endpoints}
|
116
138
|
*/
|
117
|
-
this
|
139
|
+
_defineProperty(this, "endpoints", null);
|
140
|
+
}
|
141
|
+
static get PLUGIN_KEY() {
|
142
|
+
return PLUGIN_KEY;
|
143
|
+
}
|
144
|
+
static get PLUGIN_PRIORITY() {
|
145
|
+
return PLUGIN_PRIORITY;
|
118
146
|
}
|
119
|
-
|
120
147
|
/**
|
121
148
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
122
149
|
* hook and if it returns `true` then the {@link ColumnSummary#enablePlugin} method is called.
|
@@ -138,41 +165,50 @@ class ColumnSummary extends _base.BasePlugin {
|
|
138
165
|
this.settings = this.hot.getSettings()[PLUGIN_KEY];
|
139
166
|
this.endpoints = new _endpoints.default(this, this.settings);
|
140
167
|
this.addHook('afterInit', function () {
|
141
|
-
|
168
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
169
|
+
args[_key] = arguments[_key];
|
170
|
+
}
|
171
|
+
return _classPrivateMethodGet(_this, _onAfterInit, _onAfterInit2).call(_this, ...args);
|
142
172
|
});
|
143
173
|
this.addHook('afterChange', function () {
|
144
|
-
|
174
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
175
|
+
args[_key2] = arguments[_key2];
|
176
|
+
}
|
177
|
+
return _classPrivateMethodGet(_this, _onAfterChange, _onAfterChange2).call(_this, ...args);
|
145
178
|
});
|
146
179
|
this.addHook('beforeCreateRow', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len
|
147
180
|
this.addHook('beforeCreateCol', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len
|
148
181
|
this.addHook('beforeRemoveRow', function () {
|
149
|
-
for (var
|
150
|
-
args[
|
182
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
183
|
+
args[_key3] = arguments[_key3];
|
151
184
|
}
|
152
185
|
return _this.endpoints.resetSetupBeforeStructureAlteration('remove_row', ...args);
|
153
186
|
});
|
154
187
|
this.addHook('beforeRemoveCol', function () {
|
155
|
-
for (var
|
156
|
-
args[
|
188
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
189
|
+
args[_key4] = arguments[_key4];
|
157
190
|
}
|
158
191
|
return _this.endpoints.resetSetupBeforeStructureAlteration('remove_col', ...args);
|
159
192
|
});
|
160
193
|
this.addHook('afterCreateRow', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len
|
161
194
|
this.addHook('afterCreateCol', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len
|
162
195
|
this.addHook('afterRemoveRow', function () {
|
163
|
-
for (var
|
164
|
-
args[
|
196
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
197
|
+
args[_key5] = arguments[_key5];
|
165
198
|
}
|
166
199
|
return _this.endpoints.resetSetupAfterStructureAlteration('remove_row', ...args);
|
167
200
|
});
|
168
201
|
this.addHook('afterRemoveCol', function () {
|
169
|
-
for (var
|
170
|
-
args[
|
202
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
203
|
+
args[_key6] = arguments[_key6];
|
171
204
|
}
|
172
205
|
return _this.endpoints.resetSetupAfterStructureAlteration('remove_col', ...args);
|
173
206
|
});
|
174
207
|
this.addHook('afterRowMove', function () {
|
175
|
-
|
208
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
209
|
+
args[_key7] = arguments[_key7];
|
210
|
+
}
|
211
|
+
return _classPrivateMethodGet(_this, _onAfterRowMove, _onAfterRowMove2).call(_this, ...args);
|
176
212
|
});
|
177
213
|
super.enablePlugin();
|
178
214
|
}
|
@@ -362,7 +398,7 @@ class ColumnSummary extends _base.BasePlugin {
|
|
362
398
|
let result = 0;
|
363
399
|
const ranges = endpoint.ranges;
|
364
400
|
(0, _object.objectEach)(ranges, range => {
|
365
|
-
const partial = range[1] ===
|
401
|
+
const partial = range[1] === undefined ? 1 : range[1] - range[0] + 1;
|
366
402
|
const emptyCount = this.countEmpty(range, endpoint.sourceColumn);
|
367
403
|
result += partial;
|
368
404
|
result -= emptyCount;
|
@@ -416,41 +452,18 @@ class ColumnSummary extends _base.BasePlugin {
|
|
416
452
|
}
|
417
453
|
return cellValue;
|
418
454
|
}
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
this.endpoints.
|
428
|
-
}
|
429
|
-
|
430
|
-
/**
|
431
|
-
* `afterChange` hook callback.
|
432
|
-
*
|
433
|
-
* @private
|
434
|
-
* @param {Array} changes 2D array containing information about each of the edited cells.
|
435
|
-
* @param {string} source The string that identifies source of changes.
|
436
|
-
*/
|
437
|
-
onAfterChange(changes, source) {
|
438
|
-
if (changes && source !== 'ColumnSummary.reset' && source !== 'ColumnSummary.set' && source !== 'loadData') {
|
439
|
-
this.endpoints.refreshChangedEndpoints(changes);
|
440
|
-
}
|
441
|
-
}
|
442
|
-
|
443
|
-
/**
|
444
|
-
* `beforeRowMove` hook callback.
|
445
|
-
*
|
446
|
-
* @private
|
447
|
-
* @param {Array} rows Array of visual row indexes to be moved.
|
448
|
-
* @param {number} finalIndex Visual row index, being a start index for the moved rows. Points to where the elements will be placed after the moving action.
|
449
|
-
* To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving.md).
|
450
|
-
*/
|
451
|
-
onAfterRowMove(rows, finalIndex) {
|
452
|
-
this.endpoints.resetSetupBeforeStructureAlteration('move_row', rows[0], rows.length, rows, this.pluginName);
|
453
|
-
this.endpoints.resetSetupAfterStructureAlteration('move_row', finalIndex, rows.length, rows, this.pluginName);
|
455
|
+
}
|
456
|
+
exports.ColumnSummary = ColumnSummary;
|
457
|
+
function _onAfterInit2() {
|
458
|
+
this.endpoints.endpoints = this.endpoints.parseSettings();
|
459
|
+
this.endpoints.refreshAllEndpoints(true);
|
460
|
+
}
|
461
|
+
function _onAfterChange2(changes, source) {
|
462
|
+
if (changes && source !== 'ColumnSummary.reset' && source !== 'ColumnSummary.set' && source !== 'loadData') {
|
463
|
+
this.endpoints.refreshChangedEndpoints(changes);
|
454
464
|
}
|
455
465
|
}
|
456
|
-
|
466
|
+
function _onAfterRowMove2(rows, finalIndex) {
|
467
|
+
this.endpoints.resetSetupBeforeStructureAlteration('move_row', rows[0], rows.length, rows, this.pluginName);
|
468
|
+
this.endpoints.resetSetupAfterStructureAlteration('move_row', finalIndex, rows.length, rows, this.pluginName);
|
469
|
+
}
|