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,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();
|
@@ -207,7 +250,8 @@ export class ColumnSorting extends BasePlugin {
|
|
207
250
|
},
|
208
251
|
runOnlyIf: () => {
|
209
252
|
var _this$hot$getSelected;
|
210
|
-
|
253
|
+
const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
|
254
|
+
return highlight && this.hot.selection.isCellVisible(highlight) && highlight.isHeader();
|
211
255
|
},
|
212
256
|
group: SHORTCUTS_GROUP
|
213
257
|
});
|
@@ -589,22 +633,6 @@ export class ColumnSorting extends BasePlugin {
|
|
589
633
|
});
|
590
634
|
this.hot.rowIndexMapper.setIndexesSequence(newIndexesSequence);
|
591
635
|
}
|
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
636
|
/**
|
609
637
|
* Sort the table by provided configuration.
|
610
638
|
*
|
@@ -624,31 +652,6 @@ export class ColumnSorting extends BasePlugin {
|
|
624
652
|
this.hot.render();
|
625
653
|
}
|
626
654
|
}
|
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
655
|
/**
|
653
656
|
* Update header classes.
|
654
657
|
*
|
@@ -659,8 +662,8 @@ export class ColumnSorting extends BasePlugin {
|
|
659
662
|
updateHeaderClasses(headerSpanElement) {
|
660
663
|
removeClass(headerSpanElement, getClassesToRemove(headerSpanElement));
|
661
664
|
if (this.enabled !== false) {
|
662
|
-
for (var
|
663
|
-
args[
|
665
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
666
|
+
args[_key3 - 1] = arguments[_key3];
|
664
667
|
}
|
665
668
|
addClass(headerSpanElement, getClassesToAdd(...args));
|
666
669
|
}
|
@@ -705,22 +708,6 @@ export class ColumnSorting extends BasePlugin {
|
|
705
708
|
this.sortBySettings(newSettings[this.pluginKey]);
|
706
709
|
}
|
707
710
|
}
|
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
711
|
/**
|
725
712
|
* Indicates if clickable header was clicked.
|
726
713
|
*
|
@@ -734,26 +721,6 @@ export class ColumnSorting extends BasePlugin {
|
|
734
721
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
735
722
|
return headerActionEnabled && event.target.nodeName === 'SPAN';
|
736
723
|
}
|
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
724
|
/**
|
758
725
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
759
726
|
*
|
@@ -784,4 +751,45 @@ export class ColumnSorting extends BasePlugin {
|
|
784
751
|
(_this$columnStatesMan = this.columnStatesManager) === null || _this$columnStatesMan === void 0 || _this$columnStatesMan.destroy();
|
785
752
|
super.destroy();
|
786
753
|
}
|
754
|
+
}
|
755
|
+
function _loadOrSortBySettings2() {
|
756
|
+
const storedAllSortSettings = this.getAllSavedSortSettings();
|
757
|
+
if (isObject(storedAllSortSettings)) {
|
758
|
+
this.sortBySettings(storedAllSortSettings);
|
759
|
+
} else {
|
760
|
+
const allSortSettings = this.hot.getSettings()[this.pluginKey];
|
761
|
+
this.sortBySettings(allSortSettings);
|
762
|
+
}
|
763
|
+
}
|
764
|
+
function _onAfterGetColHeader2(column, TH) {
|
765
|
+
const headerSpanElement = getHeaderSpanElement(TH);
|
766
|
+
if (isFirstLevelColumnHeader(column, TH) === false || headerSpanElement === null) {
|
767
|
+
return;
|
768
|
+
}
|
769
|
+
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
770
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
771
|
+
const showSortIndicator = pluginSettingsForColumn.indicator;
|
772
|
+
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
773
|
+
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
774
|
+
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
775
|
+
this.updateSortingIndicator(column, headerSpanElement);
|
776
|
+
if (ariaTags) {
|
777
|
+
setAttribute(TH, [A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
778
|
+
}
|
779
|
+
}
|
780
|
+
function _onAfterLoadData2(initialLoad) {
|
781
|
+
if (initialLoad === true) {
|
782
|
+
// TODO: Workaround? It should be refactored / described.
|
783
|
+
if (this.hot.view) {
|
784
|
+
_classPrivateMethodGet(this, _loadOrSortBySettings, _loadOrSortBySettings2).call(this);
|
785
|
+
}
|
786
|
+
}
|
787
|
+
}
|
788
|
+
function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
|
789
|
+
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
790
|
+
return;
|
791
|
+
}
|
792
|
+
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
793
|
+
controller.column = true;
|
794
|
+
}
|
787
795
|
}
|
@@ -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 = exports.PLUGIN_KEY = 'columnSummary';
|
12
18
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 220;
|
13
19
|
|
@@ -97,24 +103,45 @@ const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 220;
|
|
97
103
|
* ```
|
98
104
|
* :::
|
99
105
|
*/
|
106
|
+
var _onAfterInit = /*#__PURE__*/new WeakSet();
|
107
|
+
var _onAfterChange = /*#__PURE__*/new WeakSet();
|
108
|
+
var _onAfterRowMove = /*#__PURE__*/new WeakSet();
|
100
109
|
class ColumnSummary extends _base.BasePlugin {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
110
|
+
constructor() {
|
111
|
+
super(...arguments);
|
112
|
+
/**
|
113
|
+
* `beforeRowMove` hook callback.
|
114
|
+
*
|
115
|
+
* @param {Array} rows Array of visual row indexes to be moved.
|
116
|
+
* @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.
|
117
|
+
* To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving.md).
|
118
|
+
*/
|
119
|
+
_classPrivateMethodInitSpec(this, _onAfterRowMove);
|
120
|
+
/**
|
121
|
+
* `afterChange` hook callback.
|
122
|
+
*
|
123
|
+
* @param {Array} changes 2D array containing information about each of the edited cells.
|
124
|
+
* @param {string} source The string that identifies source of changes.
|
125
|
+
*/
|
126
|
+
_classPrivateMethodInitSpec(this, _onAfterChange);
|
127
|
+
/**
|
128
|
+
* `afterInit` hook callback.
|
129
|
+
*/
|
130
|
+
_classPrivateMethodInitSpec(this, _onAfterInit);
|
109
131
|
/**
|
110
132
|
* The Endpoints class instance. Used to make all endpoint-related operations.
|
111
133
|
*
|
112
134
|
* @private
|
113
135
|
* @type {null|Endpoints}
|
114
136
|
*/
|
115
|
-
this
|
137
|
+
_defineProperty(this, "endpoints", null);
|
138
|
+
}
|
139
|
+
static get PLUGIN_KEY() {
|
140
|
+
return PLUGIN_KEY;
|
141
|
+
}
|
142
|
+
static get PLUGIN_PRIORITY() {
|
143
|
+
return PLUGIN_PRIORITY;
|
116
144
|
}
|
117
|
-
|
118
145
|
/**
|
119
146
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
120
147
|
* hook and if it returns `true` then the {@link ColumnSummary#enablePlugin} method is called.
|
@@ -136,41 +163,50 @@ class ColumnSummary extends _base.BasePlugin {
|
|
136
163
|
this.settings = this.hot.getSettings()[PLUGIN_KEY];
|
137
164
|
this.endpoints = new _endpoints.default(this, this.settings);
|
138
165
|
this.addHook('afterInit', function () {
|
139
|
-
|
166
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
167
|
+
args[_key] = arguments[_key];
|
168
|
+
}
|
169
|
+
return _classPrivateMethodGet(_this, _onAfterInit, _onAfterInit2).call(_this, ...args);
|
140
170
|
});
|
141
171
|
this.addHook('afterChange', function () {
|
142
|
-
|
172
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
173
|
+
args[_key2] = arguments[_key2];
|
174
|
+
}
|
175
|
+
return _classPrivateMethodGet(_this, _onAfterChange, _onAfterChange2).call(_this, ...args);
|
143
176
|
});
|
144
177
|
this.addHook('beforeCreateRow', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len
|
145
178
|
this.addHook('beforeCreateCol', (index, amount, source) => this.endpoints.resetSetupBeforeStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len
|
146
179
|
this.addHook('beforeRemoveRow', function () {
|
147
|
-
for (var
|
148
|
-
args[
|
180
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
181
|
+
args[_key3] = arguments[_key3];
|
149
182
|
}
|
150
183
|
return _this.endpoints.resetSetupBeforeStructureAlteration('remove_row', ...args);
|
151
184
|
});
|
152
185
|
this.addHook('beforeRemoveCol', function () {
|
153
|
-
for (var
|
154
|
-
args[
|
186
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
187
|
+
args[_key4] = arguments[_key4];
|
155
188
|
}
|
156
189
|
return _this.endpoints.resetSetupBeforeStructureAlteration('remove_col', ...args);
|
157
190
|
});
|
158
191
|
this.addHook('afterCreateRow', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_row', index, amount, null, source)); // eslint-disable-line max-len
|
159
192
|
this.addHook('afterCreateCol', (index, amount, source) => this.endpoints.resetSetupAfterStructureAlteration('insert_col', index, amount, null, source)); // eslint-disable-line max-len
|
160
193
|
this.addHook('afterRemoveRow', function () {
|
161
|
-
for (var
|
162
|
-
args[
|
194
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
195
|
+
args[_key5] = arguments[_key5];
|
163
196
|
}
|
164
197
|
return _this.endpoints.resetSetupAfterStructureAlteration('remove_row', ...args);
|
165
198
|
});
|
166
199
|
this.addHook('afterRemoveCol', function () {
|
167
|
-
for (var
|
168
|
-
args[
|
200
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
201
|
+
args[_key6] = arguments[_key6];
|
169
202
|
}
|
170
203
|
return _this.endpoints.resetSetupAfterStructureAlteration('remove_col', ...args);
|
171
204
|
});
|
172
205
|
this.addHook('afterRowMove', function () {
|
173
|
-
|
206
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
207
|
+
args[_key7] = arguments[_key7];
|
208
|
+
}
|
209
|
+
return _classPrivateMethodGet(_this, _onAfterRowMove, _onAfterRowMove2).call(_this, ...args);
|
174
210
|
});
|
175
211
|
super.enablePlugin();
|
176
212
|
}
|
@@ -360,7 +396,7 @@ class ColumnSummary extends _base.BasePlugin {
|
|
360
396
|
let result = 0;
|
361
397
|
const ranges = endpoint.ranges;
|
362
398
|
(0, _object.objectEach)(ranges, range => {
|
363
|
-
const partial = range[1] ===
|
399
|
+
const partial = range[1] === undefined ? 1 : range[1] - range[0] + 1;
|
364
400
|
const emptyCount = this.countEmpty(range, endpoint.sourceColumn);
|
365
401
|
result += partial;
|
366
402
|
result -= emptyCount;
|
@@ -414,41 +450,18 @@ class ColumnSummary extends _base.BasePlugin {
|
|
414
450
|
}
|
415
451
|
return cellValue;
|
416
452
|
}
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
this.endpoints.
|
426
|
-
}
|
427
|
-
|
428
|
-
/**
|
429
|
-
* `afterChange` hook callback.
|
430
|
-
*
|
431
|
-
* @private
|
432
|
-
* @param {Array} changes 2D array containing information about each of the edited cells.
|
433
|
-
* @param {string} source The string that identifies source of changes.
|
434
|
-
*/
|
435
|
-
onAfterChange(changes, source) {
|
436
|
-
if (changes && source !== 'ColumnSummary.reset' && source !== 'ColumnSummary.set' && source !== 'loadData') {
|
437
|
-
this.endpoints.refreshChangedEndpoints(changes);
|
438
|
-
}
|
439
|
-
}
|
440
|
-
|
441
|
-
/**
|
442
|
-
* `beforeRowMove` hook callback.
|
443
|
-
*
|
444
|
-
* @private
|
445
|
-
* @param {Array} rows Array of visual row indexes to be moved.
|
446
|
-
* @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.
|
447
|
-
* To check the visualization of the final index, please take a look at [documentation](@/guides/rows/row-moving.md).
|
448
|
-
*/
|
449
|
-
onAfterRowMove(rows, finalIndex) {
|
450
|
-
this.endpoints.resetSetupBeforeStructureAlteration('move_row', rows[0], rows.length, rows, this.pluginName);
|
451
|
-
this.endpoints.resetSetupAfterStructureAlteration('move_row', finalIndex, rows.length, rows, this.pluginName);
|
453
|
+
}
|
454
|
+
exports.ColumnSummary = ColumnSummary;
|
455
|
+
function _onAfterInit2() {
|
456
|
+
this.endpoints.endpoints = this.endpoints.parseSettings();
|
457
|
+
this.endpoints.refreshAllEndpoints(true);
|
458
|
+
}
|
459
|
+
function _onAfterChange2(changes, source) {
|
460
|
+
if (changes && source !== 'ColumnSummary.reset' && source !== 'ColumnSummary.set' && source !== 'loadData') {
|
461
|
+
this.endpoints.refreshChangedEndpoints(changes);
|
452
462
|
}
|
453
463
|
}
|
454
|
-
|
464
|
+
function _onAfterRowMove2(rows, finalIndex) {
|
465
|
+
this.endpoints.resetSetupBeforeStructureAlteration('move_row', rows[0], rows.length, rows, this.pluginName);
|
466
|
+
this.endpoints.resetSetupAfterStructureAlteration('move_row', finalIndex, rows.length, rows, this.pluginName);
|
467
|
+
}
|