handsontable 0.0.0-next-ac97c93-20230617 → 0.0.0-next-acb8c02-20230620
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/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +61 -12
- package/3rdparty/walkontable/src/cell/coords.mjs +61 -12
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +44 -7
- package/3rdparty/walkontable/src/cell/range.mjs +44 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +7 -7
- package/3rdparty/walkontable/src/event.mjs +7 -7
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
- package/3rdparty/walkontable/src/overlay/top.js +2 -4
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -4
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
- package/3rdparty/walkontable/src/selection/constants.js +63 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +30 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +329 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +323 -0
- package/3rdparty/walkontable/src/selection/scanner.js +364 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +360 -0
- package/3rdparty/walkontable/src/selection/selection.js +133 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +7 -79
- package/3rdparty/walkontable/src/table.mjs +8 -80
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.d.ts +5 -3
- package/core.js +127 -309
- package/core.mjs +127 -309
- package/dataMap/metaManager/metaSchema.js +19 -0
- package/dataMap/metaManager/metaSchema.mjs +19 -0
- package/dist/handsontable.css +8 -3
- package/dist/handsontable.full.css +8 -3
- package/dist/handsontable.full.js +13260 -10403
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +112 -112
- package/dist/handsontable.js +19121 -16264
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +4 -4
- package/editorManager.js +21 -82
- package/editorManager.mjs +26 -86
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/package.json +1 -1
- package/pluginHooks.d.ts +5 -1
- package/pluginHooks.js +89 -1
- package/pluginHooks.mjs +89 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +81 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +81 -24
- package/plugins/columnSorting/columnSorting.js +50 -8
- package/plugins/columnSorting/columnSorting.mjs +49 -9
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/contextMenu/utils.js +25 -0
- package/plugins/contextMenu/utils.mjs +24 -0
- package/plugins/copyPaste/copyPaste.js +5 -1
- package/plugins/copyPaste/copyPaste.mjs +5 -1
- package/plugins/customBorders/customBorders.js +18 -53
- package/plugins/customBorders/customBorders.mjs +19 -54
- package/plugins/dropdownMenu/dropdownMenu.js +79 -25
- package/plugins/dropdownMenu/dropdownMenu.mjs +79 -25
- package/plugins/mergeCells/mergeCells.js +5 -18
- package/plugins/mergeCells/mergeCells.mjs +5 -18
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/nestedHeaders/nestedHeaders.js +132 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +132 -10
- package/plugins/nestedHeaders/stateManager/index.js +37 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedRows/nestedRows.js +52 -7
- package/plugins/nestedRows/nestedRows.mjs +52 -7
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +312 -89
- package/selection/highlight/highlight.mjs +302 -85
- package/selection/highlight/types/activeHeader.js +10 -9
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +12 -27
- package/selection/highlight/types/area.mjs +16 -30
- package/selection/highlight/types/areaLayered.js +54 -0
- package/selection/highlight/types/areaLayered.mjs +49 -0
- package/selection/highlight/types/column.js +50 -0
- package/selection/highlight/types/column.mjs +45 -0
- package/selection/highlight/types/customSelection.js +7 -10
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -8
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -8
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +10 -20
- package/selection/highlight/types/header.mjs +10 -19
- package/selection/highlight/types/{index.js → row.js} +27 -31
- package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +315 -181
- package/selection/selection.mjs +310 -180
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -36
- package/selection/utils.mjs +13 -36
- package/settings.d.ts +1 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +52 -0
- package/shortcutContexts/commands/index.mjs +48 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +244 -0
- package/shortcutContexts/grid.mjs +240 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/tableView.js +58 -9
- package/tableView.mjs +58 -9
- package/3rdparty/walkontable/src/selection.js +0 -355
- package/3rdparty/walkontable/src/selection.mjs +0 -349
- package/selection/highlight/constants.js +0 -16
- package/selection/highlight/constants.mjs +0 -6
@@ -23,6 +23,7 @@ require("core-js/modules/es.object.get-prototype-of.js");
|
|
23
23
|
var _base = require("../base");
|
24
24
|
var _array = require("../../helpers/array");
|
25
25
|
var _commandExecutor = _interopRequireDefault(require("../contextMenu/commandExecutor"));
|
26
|
+
var _utils = require("../contextMenu/utils");
|
26
27
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
27
28
|
var _element = require("../../helpers/dom/element");
|
28
29
|
var _itemsFactory = _interopRequireDefault(require("../contextMenu/itemsFactory"));
|
@@ -54,6 +55,7 @@ exports.PLUGIN_KEY = PLUGIN_KEY;
|
|
54
55
|
var PLUGIN_PRIORITY = 230;
|
55
56
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
56
57
|
var BUTTON_CLASS_NAME = 'changeType';
|
58
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
57
59
|
|
58
60
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
59
61
|
/**
|
@@ -182,6 +184,7 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
182
184
|
if (typeof settings.callback === 'function') {
|
183
185
|
this.commandExecutor.setCommonCallback(settings.callback);
|
184
186
|
}
|
187
|
+
this.registerShortcuts();
|
185
188
|
_get(_getPrototypeOf(DropdownMenu.prototype), "enablePlugin", this).call(this);
|
186
189
|
this.callOnPluginsReady(function () {
|
187
190
|
_this2.hot.runHooks('afterDropdownMenuDefaultOptions', predefinedItems);
|
@@ -245,9 +248,71 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
245
248
|
if (this.menu) {
|
246
249
|
this.menu.destroy();
|
247
250
|
}
|
251
|
+
this.unregisterShortcuts();
|
248
252
|
_get(_getPrototypeOf(DropdownMenu.prototype), "disablePlugin", this).call(this);
|
249
253
|
}
|
250
254
|
|
255
|
+
/**
|
256
|
+
* Register shortcuts responsible for toggling dropdown menu.
|
257
|
+
*
|
258
|
+
* @private
|
259
|
+
*/
|
260
|
+
}, {
|
261
|
+
key: "registerShortcuts",
|
262
|
+
value: function registerShortcuts() {
|
263
|
+
var _this3 = this;
|
264
|
+
var context = this.hot.getShortcutManager().getContext('grid');
|
265
|
+
var callback = function callback() {
|
266
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
267
|
+
highlight = _this3$hot$getSelecte.highlight;
|
268
|
+
if ((highlight.isHeader() && highlight.row === -1 || highlight.isCell()) && highlight.col >= 0) {
|
269
|
+
_this3.hot.selectColumns(highlight.col, highlight.col, -1);
|
270
|
+
var _this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast(),
|
271
|
+
from = _this3$hot$getSelecte2.from;
|
272
|
+
var offset = (0, _utils.getDocumentOffsetByElement)(_this3.menu.container, _this3.hot.rootDocument);
|
273
|
+
var target = _this3.hot.getCell(-1, from.col, true);
|
274
|
+
var rect = target.getBoundingClientRect();
|
275
|
+
_this3.open({
|
276
|
+
left: rect.left + offset.left,
|
277
|
+
top: rect.top + target.offsetHeight + offset.top,
|
278
|
+
width: rect.width,
|
279
|
+
height: rect.height
|
280
|
+
});
|
281
|
+
_this3.hot._registerTimeout(function () {
|
282
|
+
_this3.menu.selectFirstCell();
|
283
|
+
});
|
284
|
+
}
|
285
|
+
};
|
286
|
+
context.addShortcuts([{
|
287
|
+
keys: [['Shift', 'Alt', 'ArrowDown'], ['Shift', 'Enter']],
|
288
|
+
callback: callback,
|
289
|
+
runOnlyIf: function runOnlyIf() {
|
290
|
+
var _this3$hot$getSelecte3;
|
291
|
+
return ((_this3$hot$getSelecte3 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte3 === void 0 ? void 0 : _this3$hot$getSelecte3.highlight.isHeader()) && !_this3.menu.isOpened();
|
292
|
+
},
|
293
|
+
group: SHORTCUTS_GROUP
|
294
|
+
}, {
|
295
|
+
keys: [['Shift', 'Alt', 'ArrowDown']],
|
296
|
+
callback: callback,
|
297
|
+
runOnlyIf: function runOnlyIf() {
|
298
|
+
var _this3$hot$getSelecte4;
|
299
|
+
return ((_this3$hot$getSelecte4 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte4 === void 0 ? void 0 : _this3$hot$getSelecte4.highlight.isCell()) && !_this3.menu.isOpened();
|
300
|
+
},
|
301
|
+
group: SHORTCUTS_GROUP
|
302
|
+
}]);
|
303
|
+
}
|
304
|
+
|
305
|
+
/**
|
306
|
+
* Unregister shortcuts responsible for toggling dropdown menu.
|
307
|
+
*
|
308
|
+
* @private
|
309
|
+
*/
|
310
|
+
}, {
|
311
|
+
key: "unregisterShortcuts",
|
312
|
+
value: function unregisterShortcuts() {
|
313
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
314
|
+
}
|
315
|
+
|
251
316
|
/**
|
252
317
|
* Registers the DOM listeners.
|
253
318
|
*
|
@@ -256,27 +321,27 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
256
321
|
}, {
|
257
322
|
key: "registerEvents",
|
258
323
|
value: function registerEvents() {
|
259
|
-
var
|
324
|
+
var _this4 = this;
|
260
325
|
this.eventManager.addEventListener(this.hot.rootElement, 'click', function (event) {
|
261
|
-
return
|
326
|
+
return _this4.onTableClick(event);
|
262
327
|
});
|
263
328
|
}
|
264
329
|
|
265
330
|
/**
|
266
331
|
* Opens menu and re-position it based on the passed coordinates.
|
267
332
|
*
|
268
|
-
* @param {
|
269
|
-
*
|
270
|
-
*
|
271
|
-
*
|
272
|
-
* compatible with native mouse event so it can be used either.
|
333
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
334
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
335
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
336
|
+
* coordinates.
|
273
337
|
* @fires Hooks#beforeDropdownMenuShow
|
274
338
|
* @fires Hooks#afterDropdownMenuShow
|
275
339
|
*/
|
276
340
|
}, {
|
277
341
|
key: "open",
|
278
342
|
value: function open(position) {
|
279
|
-
|
343
|
+
var _this$menu;
|
344
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
280
345
|
return;
|
281
346
|
}
|
282
347
|
this.menu.open();
|
@@ -292,10 +357,8 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
292
357
|
}, {
|
293
358
|
key: "close",
|
294
359
|
value: function close() {
|
295
|
-
|
296
|
-
|
297
|
-
}
|
298
|
-
this.menu.close();
|
360
|
+
var _this$menu2;
|
361
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
|
299
362
|
}
|
300
363
|
|
301
364
|
/**
|
@@ -367,21 +430,12 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
367
430
|
key: "onTableClick",
|
368
431
|
value: function onTableClick(event) {
|
369
432
|
event.stopPropagation();
|
370
|
-
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)
|
371
|
-
var
|
372
|
-
var offsetLeft = 0;
|
373
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
374
|
-
var frameElement = this.hot.rootWindow.frameElement;
|
375
|
-
var _frameElement$getBoun = frameElement.getBoundingClientRect(),
|
376
|
-
top = _frameElement$getBoun.top,
|
377
|
-
left = _frameElement$getBoun.left;
|
378
|
-
offsetTop = top;
|
379
|
-
offsetLeft = left;
|
380
|
-
}
|
433
|
+
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
|
434
|
+
var offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
|
381
435
|
var rect = event.target.getBoundingClientRect();
|
382
436
|
this.open({
|
383
|
-
left: rect.left +
|
384
|
-
top: rect.top + event.target.offsetHeight + 3 +
|
437
|
+
left: rect.left + offset.left,
|
438
|
+
top: rect.top + event.target.offsetHeight + 3 + offset.top,
|
385
439
|
width: rect.width,
|
386
440
|
height: rect.height
|
387
441
|
});
|
@@ -33,6 +33,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
33
33
|
import { BasePlugin } from "../base/index.mjs";
|
34
34
|
import { arrayEach } from "../../helpers/array.mjs";
|
35
35
|
import CommandExecutor from "../contextMenu/commandExecutor.mjs";
|
36
|
+
import { getDocumentOffsetByElement } from "../contextMenu/utils.mjs";
|
36
37
|
import EventManager from "../../eventManager.mjs";
|
37
38
|
import { hasClass } from "../../helpers/dom/element.mjs";
|
38
39
|
import ItemsFactory from "../contextMenu/itemsFactory.mjs";
|
@@ -47,6 +48,7 @@ Hooks.getSingleton().register('afterDropdownMenuExecute');
|
|
47
48
|
export var PLUGIN_KEY = 'dropdownMenu';
|
48
49
|
export var PLUGIN_PRIORITY = 230;
|
49
50
|
var BUTTON_CLASS_NAME = 'changeType';
|
51
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
50
52
|
|
51
53
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
52
54
|
/**
|
@@ -176,6 +178,7 @@ export var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
176
178
|
if (typeof settings.callback === 'function') {
|
177
179
|
this.commandExecutor.setCommonCallback(settings.callback);
|
178
180
|
}
|
181
|
+
this.registerShortcuts();
|
179
182
|
_get(_getPrototypeOf(DropdownMenu.prototype), "enablePlugin", this).call(this);
|
180
183
|
this.callOnPluginsReady(function () {
|
181
184
|
_this2.hot.runHooks('afterDropdownMenuDefaultOptions', predefinedItems);
|
@@ -239,9 +242,71 @@ export var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
239
242
|
if (this.menu) {
|
240
243
|
this.menu.destroy();
|
241
244
|
}
|
245
|
+
this.unregisterShortcuts();
|
242
246
|
_get(_getPrototypeOf(DropdownMenu.prototype), "disablePlugin", this).call(this);
|
243
247
|
}
|
244
248
|
|
249
|
+
/**
|
250
|
+
* Register shortcuts responsible for toggling dropdown menu.
|
251
|
+
*
|
252
|
+
* @private
|
253
|
+
*/
|
254
|
+
}, {
|
255
|
+
key: "registerShortcuts",
|
256
|
+
value: function registerShortcuts() {
|
257
|
+
var _this3 = this;
|
258
|
+
var context = this.hot.getShortcutManager().getContext('grid');
|
259
|
+
var callback = function callback() {
|
260
|
+
var _this3$hot$getSelecte = _this3.hot.getSelectedRangeLast(),
|
261
|
+
highlight = _this3$hot$getSelecte.highlight;
|
262
|
+
if ((highlight.isHeader() && highlight.row === -1 || highlight.isCell()) && highlight.col >= 0) {
|
263
|
+
_this3.hot.selectColumns(highlight.col, highlight.col, -1);
|
264
|
+
var _this3$hot$getSelecte2 = _this3.hot.getSelectedRangeLast(),
|
265
|
+
from = _this3$hot$getSelecte2.from;
|
266
|
+
var offset = getDocumentOffsetByElement(_this3.menu.container, _this3.hot.rootDocument);
|
267
|
+
var target = _this3.hot.getCell(-1, from.col, true);
|
268
|
+
var rect = target.getBoundingClientRect();
|
269
|
+
_this3.open({
|
270
|
+
left: rect.left + offset.left,
|
271
|
+
top: rect.top + target.offsetHeight + offset.top,
|
272
|
+
width: rect.width,
|
273
|
+
height: rect.height
|
274
|
+
});
|
275
|
+
_this3.hot._registerTimeout(function () {
|
276
|
+
_this3.menu.selectFirstCell();
|
277
|
+
});
|
278
|
+
}
|
279
|
+
};
|
280
|
+
context.addShortcuts([{
|
281
|
+
keys: [['Shift', 'Alt', 'ArrowDown'], ['Shift', 'Enter']],
|
282
|
+
callback: callback,
|
283
|
+
runOnlyIf: function runOnlyIf() {
|
284
|
+
var _this3$hot$getSelecte3;
|
285
|
+
return ((_this3$hot$getSelecte3 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte3 === void 0 ? void 0 : _this3$hot$getSelecte3.highlight.isHeader()) && !_this3.menu.isOpened();
|
286
|
+
},
|
287
|
+
group: SHORTCUTS_GROUP
|
288
|
+
}, {
|
289
|
+
keys: [['Shift', 'Alt', 'ArrowDown']],
|
290
|
+
callback: callback,
|
291
|
+
runOnlyIf: function runOnlyIf() {
|
292
|
+
var _this3$hot$getSelecte4;
|
293
|
+
return ((_this3$hot$getSelecte4 = _this3.hot.getSelectedRangeLast()) === null || _this3$hot$getSelecte4 === void 0 ? void 0 : _this3$hot$getSelecte4.highlight.isCell()) && !_this3.menu.isOpened();
|
294
|
+
},
|
295
|
+
group: SHORTCUTS_GROUP
|
296
|
+
}]);
|
297
|
+
}
|
298
|
+
|
299
|
+
/**
|
300
|
+
* Unregister shortcuts responsible for toggling dropdown menu.
|
301
|
+
*
|
302
|
+
* @private
|
303
|
+
*/
|
304
|
+
}, {
|
305
|
+
key: "unregisterShortcuts",
|
306
|
+
value: function unregisterShortcuts() {
|
307
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
308
|
+
}
|
309
|
+
|
245
310
|
/**
|
246
311
|
* Registers the DOM listeners.
|
247
312
|
*
|
@@ -250,27 +315,27 @@ export var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
250
315
|
}, {
|
251
316
|
key: "registerEvents",
|
252
317
|
value: function registerEvents() {
|
253
|
-
var
|
318
|
+
var _this4 = this;
|
254
319
|
this.eventManager.addEventListener(this.hot.rootElement, 'click', function (event) {
|
255
|
-
return
|
320
|
+
return _this4.onTableClick(event);
|
256
321
|
});
|
257
322
|
}
|
258
323
|
|
259
324
|
/**
|
260
325
|
* Opens menu and re-position it based on the passed coordinates.
|
261
326
|
*
|
262
|
-
* @param {
|
263
|
-
*
|
264
|
-
*
|
265
|
-
*
|
266
|
-
* compatible with native mouse event so it can be used either.
|
327
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
328
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
329
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
330
|
+
* coordinates.
|
267
331
|
* @fires Hooks#beforeDropdownMenuShow
|
268
332
|
* @fires Hooks#afterDropdownMenuShow
|
269
333
|
*/
|
270
334
|
}, {
|
271
335
|
key: "open",
|
272
336
|
value: function open(position) {
|
273
|
-
|
337
|
+
var _this$menu;
|
338
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
274
339
|
return;
|
275
340
|
}
|
276
341
|
this.menu.open();
|
@@ -286,10 +351,8 @@ export var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
286
351
|
}, {
|
287
352
|
key: "close",
|
288
353
|
value: function close() {
|
289
|
-
|
290
|
-
|
291
|
-
}
|
292
|
-
this.menu.close();
|
354
|
+
var _this$menu2;
|
355
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
|
293
356
|
}
|
294
357
|
|
295
358
|
/**
|
@@ -361,21 +424,12 @@ export var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
361
424
|
key: "onTableClick",
|
362
425
|
value: function onTableClick(event) {
|
363
426
|
event.stopPropagation();
|
364
|
-
if (hasClass(event.target, BUTTON_CLASS_NAME)
|
365
|
-
var
|
366
|
-
var offsetLeft = 0;
|
367
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
368
|
-
var frameElement = this.hot.rootWindow.frameElement;
|
369
|
-
var _frameElement$getBoun = frameElement.getBoundingClientRect(),
|
370
|
-
top = _frameElement$getBoun.top,
|
371
|
-
left = _frameElement$getBoun.left;
|
372
|
-
offsetTop = top;
|
373
|
-
offsetLeft = left;
|
374
|
-
}
|
427
|
+
if (hasClass(event.target, BUTTON_CLASS_NAME)) {
|
428
|
+
var offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
|
375
429
|
var rect = event.target.getBoundingClientRect();
|
376
430
|
this.open({
|
377
|
-
left: rect.left +
|
378
|
-
top: rect.top + event.target.offsetHeight + 3 +
|
431
|
+
left: rect.left + offset.left,
|
432
|
+
top: rect.top + event.target.offsetHeight + 3 + offset.top,
|
379
433
|
width: rect.width,
|
380
434
|
height: rect.height
|
381
435
|
});
|
@@ -243,9 +243,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
243
243
|
this.addHook('afterDrawSelection', function () {
|
244
244
|
return _this2.onAfterDrawSelection.apply(_this2, arguments);
|
245
245
|
});
|
246
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
247
|
-
return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
|
248
|
-
});
|
249
246
|
this.addHook('beforeUndoStackChange', function (action, source) {
|
250
247
|
if (source === 'MergeCells') {
|
251
248
|
return false;
|
@@ -662,8 +659,11 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
662
659
|
gridContext.addShortcut({
|
663
660
|
keys: [['Control', 'm']],
|
664
661
|
callback: function callback() {
|
665
|
-
_this7.
|
666
|
-
|
662
|
+
var range = _this7.hot.getSelectedRangeLast();
|
663
|
+
if (range && !range.isSingleHeader()) {
|
664
|
+
_this7.toggleMerge(range);
|
665
|
+
_this7.hot.render();
|
666
|
+
}
|
667
667
|
},
|
668
668
|
runOnlyIf: function runOnlyIf(event) {
|
669
669
|
return !event.altKey;
|
@@ -1340,19 +1340,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1340
1340
|
}
|
1341
1341
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1342
1342
|
}
|
1343
|
-
|
1344
|
-
/**
|
1345
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1346
|
-
*
|
1347
|
-
* @private
|
1348
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1349
|
-
* all the cells in the table.
|
1350
|
-
*/
|
1351
|
-
}, {
|
1352
|
-
key: "onBeforeRemoveCellClassNames",
|
1353
|
-
value: function onBeforeRemoveCellClassNames() {
|
1354
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1355
|
-
}
|
1356
1343
|
}], [{
|
1357
1344
|
key: "PLUGIN_KEY",
|
1358
1345
|
get: function get() {
|
@@ -236,9 +236,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
236
236
|
this.addHook('afterDrawSelection', function () {
|
237
237
|
return _this2.onAfterDrawSelection.apply(_this2, arguments);
|
238
238
|
});
|
239
|
-
this.addHook('beforeRemoveCellClassNames', function () {
|
240
|
-
return _this2.onBeforeRemoveCellClassNames.apply(_this2, arguments);
|
241
|
-
});
|
242
239
|
this.addHook('beforeUndoStackChange', function (action, source) {
|
243
240
|
if (source === 'MergeCells') {
|
244
241
|
return false;
|
@@ -655,8 +652,11 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
655
652
|
gridContext.addShortcut({
|
656
653
|
keys: [['Control', 'm']],
|
657
654
|
callback: function callback() {
|
658
|
-
_this7.
|
659
|
-
|
655
|
+
var range = _this7.hot.getSelectedRangeLast();
|
656
|
+
if (range && !range.isSingleHeader()) {
|
657
|
+
_this7.toggleMerge(range);
|
658
|
+
_this7.hot.render();
|
659
|
+
}
|
660
660
|
},
|
661
661
|
runOnlyIf: function runOnlyIf(event) {
|
662
662
|
return !event.altKey;
|
@@ -1333,19 +1333,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1333
1333
|
}
|
1334
1334
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1335
1335
|
}
|
1336
|
-
|
1337
|
-
/**
|
1338
|
-
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1339
|
-
*
|
1340
|
-
* @private
|
1341
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1342
|
-
* all the cells in the table.
|
1343
|
-
*/
|
1344
|
-
}, {
|
1345
|
-
key: "onBeforeRemoveCellClassNames",
|
1346
|
-
value: function onBeforeRemoveCellClassNames() {
|
1347
|
-
return this.selectionCalculations.getSelectedMergedCellClassNameToRemove();
|
1348
|
-
}
|
1349
1336
|
}], [{
|
1350
1337
|
key: "PLUGIN_KEY",
|
1351
1338
|
get: function get() {
|
@@ -16,8 +16,8 @@ require("core-js/modules/es.string.iterator.js");
|
|
16
16
|
require("core-js/modules/web.dom-collections.iterator.js");
|
17
17
|
exports.__esModule = true;
|
18
18
|
exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.MultiColumnSorting = void 0;
|
19
|
-
require("core-js/modules/es.array.concat.js");
|
20
19
|
require("core-js/modules/es.array.sort.js");
|
20
|
+
require("core-js/modules/es.array.concat.js");
|
21
21
|
require("core-js/modules/es.object.set-prototype-of.js");
|
22
22
|
require("core-js/modules/es.object.get-prototype-of.js");
|
23
23
|
var _columnSorting = require("../columnSorting");
|
@@ -45,8 +45,8 @@ var PLUGIN_KEY = 'multiColumnSorting';
|
|
45
45
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
46
46
|
var PLUGIN_PRIORITY = 170;
|
47
47
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
48
|
-
var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
49
48
|
var CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
49
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
50
50
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
51
51
|
|
52
52
|
/**
|
@@ -151,6 +151,45 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
151
151
|
_get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
|
152
152
|
}
|
153
153
|
|
154
|
+
/**
|
155
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
156
|
+
*
|
157
|
+
* @private
|
158
|
+
*/
|
159
|
+
}, {
|
160
|
+
key: "registerShortcuts",
|
161
|
+
value: function registerShortcuts() {
|
162
|
+
var _this2 = this;
|
163
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
|
164
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
165
|
+
keys: [['Control/Meta', 'Enter']],
|
166
|
+
callback: function callback() {
|
167
|
+
var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
|
168
|
+
highlight = _this2$hot$getSelecte.highlight;
|
169
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
170
|
+
_this2.sort(_this2.getNextSortConfig(highlight.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
171
|
+
}
|
172
|
+
},
|
173
|
+
runOnlyIf: function runOnlyIf() {
|
174
|
+
var _this2$hot$getSelecte2;
|
175
|
+
return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
|
176
|
+
},
|
177
|
+
group: SHORTCUTS_GROUP
|
178
|
+
});
|
179
|
+
}
|
180
|
+
|
181
|
+
/**
|
182
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
183
|
+
*
|
184
|
+
* @private
|
185
|
+
*/
|
186
|
+
}, {
|
187
|
+
key: "unregisterShortcuts",
|
188
|
+
value: function unregisterShortcuts() {
|
189
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
|
190
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
191
|
+
}
|
192
|
+
|
154
193
|
/**
|
155
194
|
* Sorts the table by chosen columns and orders.
|
156
195
|
*
|
@@ -319,7 +358,7 @@ var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
319
358
|
if (this.hot.getShortcutManager().isCtrlPressed()) {
|
320
359
|
this.hot.deselectCell();
|
321
360
|
this.hot.selectColumns(coords.col);
|
322
|
-
this.sort(this.getNextSortConfig(coords.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
361
|
+
this.sort(this.getNextSortConfig(coords.col, _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY));
|
323
362
|
} else {
|
324
363
|
this.sort(this.getColumnNextConfig(coords.col));
|
325
364
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
|
-
import "core-js/modules/es.array.concat.js";
|
3
2
|
import "core-js/modules/es.array.sort.js";
|
3
|
+
import "core-js/modules/es.array.concat.js";
|
4
4
|
import "core-js/modules/es.object.set-prototype-of.js";
|
5
5
|
import "core-js/modules/es.object.get-prototype-of.js";
|
6
6
|
import "core-js/modules/es.object.to-string.js";
|
@@ -30,7 +30,7 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
|
|
30
30
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
31
31
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
32
32
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
33
|
-
import { ColumnSorting } from "../columnSorting/index.mjs";
|
33
|
+
import { APPEND_COLUMN_CONFIG_STRATEGY, ColumnSorting } from "../columnSorting/index.mjs";
|
34
34
|
import { registerRootComparator } from "../columnSorting/sortService/index.mjs";
|
35
35
|
import { wasHeaderClickedProperly } from "../columnSorting/utils.mjs";
|
36
36
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
@@ -39,8 +39,8 @@ import { warnAboutPluginsConflict } from "./utils.mjs";
|
|
39
39
|
import { getClassesToAdd, getClassesToRemove } from "./domHelpers.mjs";
|
40
40
|
export var PLUGIN_KEY = 'multiColumnSorting';
|
41
41
|
export var PLUGIN_PRIORITY = 170;
|
42
|
-
var APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
43
42
|
var CONFLICTED_PLUGIN_KEY = 'columnSorting';
|
43
|
+
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
44
44
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
45
45
|
|
46
46
|
/**
|
@@ -145,6 +145,45 @@ export var MultiColumnSorting = /*#__PURE__*/function (_ColumnSorting) {
|
|
145
145
|
_get(_getPrototypeOf(MultiColumnSorting.prototype), "disablePlugin", this).call(this);
|
146
146
|
}
|
147
147
|
|
148
|
+
/**
|
149
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
150
|
+
*
|
151
|
+
* @private
|
152
|
+
*/
|
153
|
+
}, {
|
154
|
+
key: "registerShortcuts",
|
155
|
+
value: function registerShortcuts() {
|
156
|
+
var _this2 = this;
|
157
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "registerShortcuts", this).call(this);
|
158
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
159
|
+
keys: [['Control/Meta', 'Enter']],
|
160
|
+
callback: function callback() {
|
161
|
+
var _this2$hot$getSelecte = _this2.hot.getSelectedRangeLast(),
|
162
|
+
highlight = _this2$hot$getSelecte.highlight;
|
163
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
164
|
+
_this2.sort(_this2.getNextSortConfig(highlight.col, APPEND_COLUMN_CONFIG_STRATEGY));
|
165
|
+
}
|
166
|
+
},
|
167
|
+
runOnlyIf: function runOnlyIf() {
|
168
|
+
var _this2$hot$getSelecte2;
|
169
|
+
return (_this2$hot$getSelecte2 = _this2.hot.getSelectedRangeLast()) === null || _this2$hot$getSelecte2 === void 0 ? void 0 : _this2$hot$getSelecte2.highlight.isHeader();
|
170
|
+
},
|
171
|
+
group: SHORTCUTS_GROUP
|
172
|
+
});
|
173
|
+
}
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
177
|
+
*
|
178
|
+
* @private
|
179
|
+
*/
|
180
|
+
}, {
|
181
|
+
key: "unregisterShortcuts",
|
182
|
+
value: function unregisterShortcuts() {
|
183
|
+
_get(_getPrototypeOf(MultiColumnSorting.prototype), "unregisterShortcuts", this).call(this);
|
184
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
185
|
+
}
|
186
|
+
|
148
187
|
/**
|
149
188
|
* Sorts the table by chosen columns and orders.
|
150
189
|
*
|