handsontable 0.0.0-next-200799f-20240311 → 0.0.0-next-bff5041-20240315
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.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +12 -17
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +12 -17
- package/3rdparty/walkontable/src/calculator/viewportRows.js +10 -15
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +10 -15
- package/3rdparty/walkontable/src/cell/coords.js +12 -17
- package/3rdparty/walkontable/src/cell/coords.mjs +12 -17
- package/3rdparty/walkontable/src/cell/range.d.ts +0 -1
- package/3rdparty/walkontable/src/cell/range.js +23 -45
- package/3rdparty/walkontable/src/cell/range.mjs +23 -45
- package/3rdparty/walkontable/src/core/_base.js +1 -1
- package/3rdparty/walkontable/src/core/_base.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +72 -104
- package/3rdparty/walkontable/src/event.mjs +72 -104
- package/3rdparty/walkontable/src/overlays.js +1 -1
- package/3rdparty/walkontable/src/overlays.mjs +1 -1
- package/3rdparty/walkontable/src/scroll.js +15 -17
- package/3rdparty/walkontable/src/scroll.mjs +15 -17
- package/3rdparty/walkontable/src/selection/manager.js +48 -69
- package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
- package/3rdparty/walkontable/src/selection/scanner.js +33 -42
- package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
- package/3rdparty/walkontable/src/utils/columnStretching.js +27 -44
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +27 -44
- package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/viewportScroll/index.js +1 -4
- package/core/viewportScroll/index.mjs +1 -4
- package/core.d.ts +3 -4
- package/core.js +22 -79
- package/core.mjs +22 -79
- package/dataMap/dataSource.js +1 -1
- package/dataMap/dataSource.mjs +1 -1
- package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
- package/dataMap/replaceData.js +1 -1
- package/dataMap/replaceData.mjs +1 -1
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +7620 -10327
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +277 -277
- package/dist/handsontable.js +5525 -7779
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +21 -27
- package/editorManager.mjs +21 -27
- package/editors/autocompleteEditor/autocompleteEditor.js +6 -10
- package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -10
- package/eventManager.js +1 -1
- package/eventManager.mjs +1 -1
- package/focusManager.js +58 -82
- package/focusManager.mjs +58 -82
- package/helpers/dom/element.js +1 -1
- package/helpers/dom/element.mjs +1 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +2 -2
- package/helpers/object.mjs +2 -2
- package/index.d.ts +10 -0
- package/package.json +2 -1
- package/pluginHooks.d.ts +0 -4
- package/pluginHooks.js +2 -44
- package/pluginHooks.mjs +2 -44
- package/plugins/autoColumnSize/autoColumnSize.js +49 -65
- package/plugins/autoColumnSize/autoColumnSize.mjs +49 -65
- package/plugins/autoRowSize/autoRowSize.js +28 -34
- package/plugins/autoRowSize/autoRowSize.mjs +28 -34
- package/plugins/autofill/autofill.js +30 -38
- package/plugins/autofill/autofill.mjs +30 -38
- package/plugins/base/base.js +12 -17
- package/plugins/base/base.mjs +12 -17
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +5 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -5
- package/plugins/collapsibleColumns/collapsibleColumns.js +36 -54
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +36 -54
- package/plugins/columnSorting/columnSorting.js +40 -46
- package/plugins/columnSorting/columnSorting.mjs +40 -46
- package/plugins/columnSummary/columnSummary.js +22 -26
- package/plugins/columnSummary/columnSummary.mjs +22 -26
- package/plugins/comments/comments.js +116 -158
- package/plugins/comments/comments.mjs +116 -158
- package/plugins/contextMenu/contextMenu.js +20 -26
- package/plugins/contextMenu/contextMenu.mjs +20 -26
- package/plugins/contextMenu/itemsFactory.js +1 -1
- package/plugins/contextMenu/itemsFactory.mjs +1 -1
- package/plugins/contextMenu/menu/defaultShortcutsList.js +10 -26
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +10 -26
- package/plugins/contextMenu/menu/menu.js +13 -21
- package/plugins/contextMenu/menu/menu.mjs +13 -21
- package/plugins/contextMenu/menu/positioner.js +41 -58
- package/plugins/contextMenu/menu/positioner.mjs +41 -58
- package/plugins/copyPaste/copyPaste.js +113 -154
- package/plugins/copyPaste/copyPaste.mjs +113 -154
- package/plugins/copyPaste/copyableRanges.js +43 -66
- package/plugins/copyPaste/copyableRanges.mjs +43 -66
- package/plugins/customBorders/customBorders.js +11 -13
- package/plugins/customBorders/customBorders.mjs +11 -13
- package/plugins/dragToScroll/dragToScroll.js +6 -6
- package/plugins/dragToScroll/dragToScroll.mjs +6 -6
- package/plugins/dropdownMenu/dropdownMenu.js +78 -100
- package/plugins/dropdownMenu/dropdownMenu.mjs +78 -100
- package/plugins/exportFile/dataProvider.js +1 -1
- package/plugins/exportFile/dataProvider.mjs +1 -1
- package/plugins/filters/component/actionBar.js +9 -9
- package/plugins/filters/component/actionBar.mjs +8 -8
- package/plugins/filters/component/condition.js +13 -15
- package/plugins/filters/component/condition.mjs +13 -15
- package/plugins/filters/component/operators.js +6 -6
- package/plugins/filters/component/operators.mjs +6 -6
- package/plugins/filters/component/value.js +24 -28
- package/plugins/filters/component/value.mjs +24 -28
- package/plugins/filters/conditionUpdateObserver.js +22 -24
- package/plugins/filters/conditionUpdateObserver.mjs +22 -24
- package/plugins/filters/dataFilter.js +1 -1
- package/plugins/filters/dataFilter.mjs +1 -1
- package/plugins/filters/filters.js +81 -95
- package/plugins/filters/filters.mjs +81 -95
- package/plugins/filters/ui/input.js +13 -19
- package/plugins/filters/ui/input.mjs +13 -19
- package/plugins/filters/ui/link.js +8 -13
- package/plugins/filters/ui/link.mjs +8 -13
- package/plugins/filters/ui/multipleSelect.js +85 -112
- package/plugins/filters/ui/multipleSelect.mjs +85 -112
- package/plugins/filters/ui/radioInput.js +12 -20
- package/plugins/filters/ui/radioInput.mjs +12 -20
- package/plugins/filters/ui/select.js +50 -72
- package/plugins/filters/ui/select.mjs +49 -71
- package/plugins/formulas/formulas.js +268 -326
- package/plugins/formulas/formulas.mjs +269 -327
- package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
- package/plugins/formulas/indexSyncer/index.js +25 -48
- package/plugins/formulas/indexSyncer/index.mjs +25 -48
- package/plugins/hiddenColumns/hiddenColumns.js +64 -83
- package/plugins/hiddenColumns/hiddenColumns.mjs +64 -83
- package/plugins/hiddenRows/hiddenRows.js +63 -82
- package/plugins/hiddenRows/hiddenRows.mjs +63 -82
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
- package/plugins/manualColumnMove/manualColumnMove.js +126 -170
- package/plugins/manualColumnMove/manualColumnMove.mjs +126 -170
- package/plugins/manualColumnResize/manualColumnResize.js +169 -230
- package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
- package/plugins/manualRowMove/manualRowMove.js +99 -128
- package/plugins/manualRowMove/manualRowMove.mjs +99 -128
- package/plugins/manualRowResize/manualRowResize.js +150 -209
- package/plugins/manualRowResize/manualRowResize.mjs +150 -209
- package/plugins/mergeCells/calculations/selection.js +71 -2
- package/plugins/mergeCells/calculations/selection.mjs +71 -2
- package/plugins/mergeCells/cellsCollection.js +1 -117
- package/plugins/mergeCells/cellsCollection.mjs +1 -117
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -11
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +1 -11
- package/plugins/mergeCells/mergeCells.js +355 -595
- package/plugins/mergeCells/mergeCells.mjs +355 -595
- package/plugins/multiColumnSorting/multiColumnSorting.js +0 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -6
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
- package/plugins/nestedHeaders/nestedHeaders.js +204 -254
- package/plugins/nestedHeaders/nestedHeaders.mjs +205 -255
- package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
- package/plugins/nestedHeaders/stateManager/index.js +30 -41
- package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
- package/plugins/nestedRows/data/dataManager.js +1 -1
- package/plugins/nestedRows/data/dataManager.mjs +1 -1
- package/plugins/nestedRows/nestedRows.js +138 -179
- package/plugins/nestedRows/nestedRows.mjs +139 -180
- package/plugins/nestedRows/ui/contextMenu.js +11 -15
- package/plugins/nestedRows/ui/contextMenu.mjs +10 -14
- package/plugins/nestedRows/utils/rowMoveController.js +1 -1
- package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
- package/plugins/persistentState/storage.js +2 -2
- package/plugins/persistentState/storage.mjs +2 -2
- package/plugins/search/search.js +7 -7
- package/plugins/search/search.mjs +7 -7
- package/plugins/touchScroll/touchScroll.js +15 -19
- package/plugins/touchScroll/touchScroll.mjs +16 -20
- package/plugins/trimRows/trimRows.js +6 -6
- package/plugins/trimRows/trimRows.mjs +6 -6
- package/renderers/checkboxRenderer/checkboxRenderer.js +4 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -4
- package/selection/highlight/highlight.js +14 -14
- package/selection/highlight/highlight.mjs +13 -13
- package/selection/highlight/visualSelection.js +2 -16
- package/selection/highlight/visualSelection.mjs +2 -16
- package/selection/selection.js +60 -252
- package/selection/selection.mjs +59 -251
- package/selection/transformation.js +101 -175
- package/selection/transformation.mjs +101 -175
- package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
- package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
- package/shortcutContexts/commands/editor/open.js +3 -18
- package/shortcutContexts/commands/editor/open.mjs +3 -18
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +3 -9
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +3 -9
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +3 -10
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +3 -10
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -3
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +1 -6
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +1 -6
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +1 -6
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +1 -6
- package/shortcutContexts/grid.js +2 -2
- package/shortcutContexts/grid.mjs +2 -2
- package/shortcuts/context.js +1 -2
- package/shortcuts/context.mjs +1 -2
- package/tableView.js +52 -98
- package/tableView.mjs +52 -98
- package/translations/changesObservable/observable.js +21 -38
- package/translations/changesObservable/observable.mjs +21 -38
- package/translations/changesObservable/observer.js +7 -12
- package/translations/changesObservable/observer.mjs +6 -11
- package/translations/mapCollections/aggregatedCollection.js +1 -1
- package/translations/mapCollections/aggregatedCollection.mjs +1 -1
- package/translations/maps/indexMap.js +1 -1
- package/translations/maps/indexMap.mjs +1 -1
- package/utils/dataStructures/linkedList.js +1 -6
- package/utils/dataStructures/linkedList.mjs +1 -6
- package/utils/dataStructures/tree.js +1 -1
- package/utils/dataStructures/tree.mjs +1 -1
- package/utils/interval.js +26 -44
- package/utils/interval.mjs +26 -44
- package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
- package/plugins/mergeCells/focusOrder.js +0 -258
- package/plugins/mergeCells/focusOrder.mjs +0 -253
@@ -4,7 +4,7 @@ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollect
|
|
4
4
|
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; }
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
6
6
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
7
|
-
function
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
8
8
|
import { BasePlugin } from "../base/index.mjs";
|
9
9
|
import { isRightClick } from "../../helpers/dom/event.mjs";
|
10
10
|
import { getParentWindow } from "../../helpers/dom/element.mjs";
|
@@ -21,7 +21,7 @@ export const PLUGIN_PRIORITY = 100;
|
|
21
21
|
* @class DragToScroll
|
22
22
|
* @plugin DragToScroll
|
23
23
|
*/
|
24
|
-
var
|
24
|
+
var _DragToScroll_brand = /*#__PURE__*/new WeakSet();
|
25
25
|
export class DragToScroll extends BasePlugin {
|
26
26
|
constructor() {
|
27
27
|
super(...arguments);
|
@@ -30,7 +30,7 @@ export class DragToScroll extends BasePlugin {
|
|
30
30
|
*
|
31
31
|
* @param {MouseEvent} event The mouse event object.
|
32
32
|
*/
|
33
|
-
_classPrivateMethodInitSpec(this,
|
33
|
+
_classPrivateMethodInitSpec(this, _DragToScroll_brand);
|
34
34
|
/**
|
35
35
|
* Size of an element and its position relative to the viewport,
|
36
36
|
* e.g. {bottom: 449, height: 441, left: 8, right: 814, top: 8, width: 806, x: 8, y:8}.
|
@@ -76,8 +76,8 @@ export class DragToScroll extends BasePlugin {
|
|
76
76
|
if (this.enabled) {
|
77
77
|
return;
|
78
78
|
}
|
79
|
-
this.addHook('afterOnCellMouseDown', event =>
|
80
|
-
this.addHook('afterOnCellCornerMouseDown', event =>
|
79
|
+
this.addHook('afterOnCellMouseDown', event => _assertClassBrand(_DragToScroll_brand, this, _setupListening).call(this, event));
|
80
|
+
this.addHook('afterOnCellCornerMouseDown', event => _assertClassBrand(_DragToScroll_brand, this, _setupListening).call(this, event));
|
81
81
|
this.registerEvents();
|
82
82
|
super.enablePlugin();
|
83
83
|
}
|
@@ -228,7 +228,7 @@ export class DragToScroll extends BasePlugin {
|
|
228
228
|
super.destroy();
|
229
229
|
}
|
230
230
|
}
|
231
|
-
function
|
231
|
+
function _setupListening(event) {
|
232
232
|
if (isRightClick(event)) {
|
233
233
|
return;
|
234
234
|
}
|
@@ -20,12 +20,9 @@ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollect
|
|
20
20
|
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; }
|
21
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
22
22
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
23
|
-
function _classPrivateFieldGet(
|
24
|
-
function
|
25
|
-
function
|
26
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
27
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
28
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
23
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
24
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
25
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
29
26
|
_pluginHooks.default.getSingleton().register('afterDropdownMenuDefaultOptions');
|
30
27
|
_pluginHooks.default.getSingleton().register('beforeDropdownMenuShow');
|
31
28
|
_pluginHooks.default.getSingleton().register('afterDropdownMenuShow');
|
@@ -87,15 +84,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
87
84
|
* :::
|
88
85
|
*/
|
89
86
|
var _isButtonClicked = /*#__PURE__*/new WeakMap();
|
90
|
-
var
|
91
|
-
var _onTableClick = /*#__PURE__*/new WeakSet();
|
92
|
-
var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
|
93
|
-
var _onMenuBeforeOpen = /*#__PURE__*/new WeakSet();
|
94
|
-
var _onMenuAfterOpen = /*#__PURE__*/new WeakSet();
|
95
|
-
var _onSubMenuAfterOpen = /*#__PURE__*/new WeakSet();
|
96
|
-
var _onMenuAfterClose = /*#__PURE__*/new WeakSet();
|
97
|
-
var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
|
98
|
-
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
87
|
+
var _DropdownMenu_brand = /*#__PURE__*/new WeakSet();
|
99
88
|
class DropdownMenu extends _base.BasePlugin {
|
100
89
|
static get PLUGIN_KEY() {
|
101
90
|
return PLUGIN_KEY;
|
@@ -127,70 +116,12 @@ class DropdownMenu extends _base.BasePlugin {
|
|
127
116
|
super(hotInstance);
|
128
117
|
|
129
118
|
// One listener for enable/disable functionality
|
130
|
-
/**
|
131
|
-
* Hook sets the internal flag to `true` when the button is clicked.
|
132
|
-
*
|
133
|
-
* @param {MouseEvent} event The mouse event object.
|
134
|
-
*/
|
135
|
-
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
136
|
-
/**
|
137
|
-
* Hook allows blocking horizontal scroll when the menu is opened by clicking on
|
138
|
-
* the column header button. This prevents from scrolling the viewport (jump effect) when
|
139
|
-
* the button is clicked.
|
140
|
-
*
|
141
|
-
* @param {number} visualColumn Visual column index.
|
142
|
-
* @returns {number | null}
|
143
|
-
*/
|
144
|
-
_classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
|
145
|
-
/**
|
146
|
-
* On menu after close listener.
|
147
|
-
*
|
148
|
-
* @private
|
149
|
-
* @fires Hooks#afterDropdownMenuHide
|
150
|
-
*/
|
151
|
-
_classPrivateMethodInitSpec(this, _onMenuAfterClose);
|
152
|
-
/**
|
153
|
-
* Listener for the `afterSubmenuOpen` hook.
|
154
|
-
*
|
155
|
-
* @private
|
156
|
-
* @param {Menu} subMenuInstance The opened sub menu instance.
|
157
|
-
*/
|
158
|
-
_classPrivateMethodInitSpec(this, _onSubMenuAfterOpen);
|
159
|
-
/**
|
160
|
-
* On menu after open listener.
|
161
|
-
*
|
162
|
-
* @private
|
163
|
-
* @fires Hooks#afterDropdownMenuShow
|
164
|
-
*/
|
165
|
-
_classPrivateMethodInitSpec(this, _onMenuAfterOpen);
|
166
|
-
/**
|
167
|
-
* On menu before open listener.
|
168
|
-
*
|
169
|
-
* @private
|
170
|
-
* @fires Hooks#beforeDropdownMenuShow
|
171
|
-
*/
|
172
|
-
_classPrivateMethodInitSpec(this, _onMenuBeforeOpen);
|
173
|
-
/**
|
174
|
-
* On after get column header listener.
|
175
|
-
*
|
176
|
-
* @private
|
177
|
-
* @param {number} col Visual column index.
|
178
|
-
* @param {HTMLTableCellElement} TH Header's TH element.
|
179
|
-
*/
|
180
|
-
_classPrivateMethodInitSpec(this, _onAfterGetColHeader);
|
181
|
-
/**
|
182
|
-
* Table click listener.
|
183
|
-
*
|
184
|
-
* @private
|
185
|
-
* @param {Event} event The mouse event object.
|
186
|
-
*/
|
187
|
-
_classPrivateMethodInitSpec(this, _onTableClick);
|
188
119
|
/**
|
189
120
|
* Add custom shortcuts to the provided menu instance.
|
190
121
|
*
|
191
122
|
* @param {Menu} menuInstance The menu instance.
|
192
123
|
*/
|
193
|
-
_classPrivateMethodInitSpec(this,
|
124
|
+
_classPrivateMethodInitSpec(this, _DropdownMenu_brand);
|
194
125
|
_defineProperty(this, "commandExecutor", new _commandExecutor.CommandExecutor(this.hot));
|
195
126
|
/**
|
196
127
|
* Instance of {@link ItemsFactory}.
|
@@ -211,11 +142,8 @@ class DropdownMenu extends _base.BasePlugin {
|
|
211
142
|
*
|
212
143
|
* @type {boolean}
|
213
144
|
*/
|
214
|
-
_classPrivateFieldInitSpec(this, _isButtonClicked,
|
215
|
-
|
216
|
-
value: false
|
217
|
-
});
|
218
|
-
this.hot.addHook('afterGetColHeader', (col, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, col, TH));
|
145
|
+
_classPrivateFieldInitSpec(this, _isButtonClicked, false);
|
146
|
+
this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_DropdownMenu_brand, this, _onAfterGetColHeader).call(this, col, TH));
|
219
147
|
}
|
220
148
|
|
221
149
|
/**
|
@@ -244,13 +172,13 @@ class DropdownMenu extends _base.BasePlugin {
|
|
244
172
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
245
173
|
args[_key] = arguments[_key];
|
246
174
|
}
|
247
|
-
return
|
175
|
+
return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);
|
248
176
|
});
|
249
177
|
this.addHook('beforeViewportScrollHorizontally', function () {
|
250
178
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
251
179
|
args[_key2] = arguments[_key2];
|
252
180
|
}
|
253
|
-
return
|
181
|
+
return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);
|
254
182
|
});
|
255
183
|
const settings = this.hot.getSettings()[PLUGIN_KEY];
|
256
184
|
const predefinedItems = {
|
@@ -276,10 +204,10 @@ class DropdownMenu extends _base.BasePlugin {
|
|
276
204
|
});
|
277
205
|
this.hot.runHooks('beforeDropdownMenuSetItems', menuItems);
|
278
206
|
this.menu.setMenuItems(menuItems);
|
279
|
-
this.menu.addLocalHook('beforeOpen', () =>
|
280
|
-
this.menu.addLocalHook('afterOpen', () =>
|
281
|
-
this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance =>
|
282
|
-
this.menu.addLocalHook('afterClose', () =>
|
207
|
+
this.menu.addLocalHook('beforeOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuBeforeOpen).call(this));
|
208
|
+
this.menu.addLocalHook('afterOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterOpen).call(this));
|
209
|
+
this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance => _assertClassBrand(_DropdownMenu_brand, this, _onSubMenuAfterOpen).call(this, subMenuInstance));
|
210
|
+
this.menu.addLocalHook('afterClose', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterClose).call(this));
|
283
211
|
this.menu.addLocalHook('executeCommand', function () {
|
284
212
|
for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
285
213
|
params[_key3] = arguments[_key3];
|
@@ -383,7 +311,7 @@ class DropdownMenu extends _base.BasePlugin {
|
|
383
311
|
* @private
|
384
312
|
*/
|
385
313
|
registerEvents() {
|
386
|
-
this.eventManager.addEventListener(this.hot.rootElement, 'click', event =>
|
314
|
+
this.eventManager.addEventListener(this.hot.rootElement, 'click', event => _assertClassBrand(_DropdownMenu_brand, this, _onTableClick).call(this, event));
|
387
315
|
}
|
388
316
|
|
389
317
|
/**
|
@@ -489,18 +417,24 @@ class DropdownMenu extends _base.BasePlugin {
|
|
489
417
|
}
|
490
418
|
}
|
491
419
|
exports.DropdownMenu = DropdownMenu;
|
492
|
-
function
|
420
|
+
function _addCustomShortcuts(menuInstance) {
|
493
421
|
menuInstance.getKeyboardShortcutsCtrl().addCustomShortcuts([{
|
494
422
|
keys: [['Control/Meta', 'A']],
|
495
423
|
callback: () => false
|
496
424
|
}]);
|
497
425
|
}
|
498
|
-
|
426
|
+
/**
|
427
|
+
* Table click listener.
|
428
|
+
*
|
429
|
+
* @private
|
430
|
+
* @param {Event} event The mouse event object.
|
431
|
+
*/
|
432
|
+
function _onTableClick(event) {
|
499
433
|
event.stopPropagation();
|
500
434
|
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
|
501
435
|
const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
|
502
436
|
const rect = event.target.getBoundingClientRect();
|
503
|
-
_classPrivateFieldSet(
|
437
|
+
_classPrivateFieldSet(_isButtonClicked, this, false);
|
504
438
|
this.open({
|
505
439
|
left: rect.left + offset.left,
|
506
440
|
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
@@ -509,7 +443,14 @@ function _onTableClick2(event) {
|
|
509
443
|
});
|
510
444
|
}
|
511
445
|
}
|
512
|
-
|
446
|
+
/**
|
447
|
+
* On after get column header listener.
|
448
|
+
*
|
449
|
+
* @private
|
450
|
+
* @param {number} col Visual column index.
|
451
|
+
* @param {HTMLTableCellElement} TH Header's TH element.
|
452
|
+
*/
|
453
|
+
function _onAfterGetColHeader(col, TH) {
|
513
454
|
// Corner or a higher-level header
|
514
455
|
const headerRow = TH.parentNode;
|
515
456
|
if (!headerRow) {
|
@@ -548,26 +489,63 @@ function _onAfterGetColHeader2(col, TH) {
|
|
548
489
|
};
|
549
490
|
TH.firstChild.insertBefore(button, TH.firstChild.firstChild);
|
550
491
|
}
|
551
|
-
|
492
|
+
/**
|
493
|
+
* On menu before open listener.
|
494
|
+
*
|
495
|
+
* @private
|
496
|
+
* @fires Hooks#beforeDropdownMenuShow
|
497
|
+
*/
|
498
|
+
function _onMenuBeforeOpen() {
|
552
499
|
this.hot.runHooks('beforeDropdownMenuShow', this);
|
553
500
|
}
|
554
|
-
|
501
|
+
/**
|
502
|
+
* On menu after open listener.
|
503
|
+
*
|
504
|
+
* @private
|
505
|
+
* @fires Hooks#afterDropdownMenuShow
|
506
|
+
*/
|
507
|
+
function _onMenuAfterOpen() {
|
555
508
|
this.hot.runHooks('afterDropdownMenuShow', this);
|
556
|
-
|
509
|
+
_assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, this.menu);
|
557
510
|
}
|
558
|
-
|
559
|
-
|
511
|
+
/**
|
512
|
+
* Listener for the `afterSubmenuOpen` hook.
|
513
|
+
*
|
514
|
+
* @private
|
515
|
+
* @param {Menu} subMenuInstance The opened sub menu instance.
|
516
|
+
*/
|
517
|
+
function _onSubMenuAfterOpen(subMenuInstance) {
|
518
|
+
_assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, subMenuInstance);
|
560
519
|
}
|
561
|
-
|
520
|
+
/**
|
521
|
+
* On menu after close listener.
|
522
|
+
*
|
523
|
+
* @private
|
524
|
+
* @fires Hooks#afterDropdownMenuHide
|
525
|
+
*/
|
526
|
+
function _onMenuAfterClose() {
|
562
527
|
this.hot.listen();
|
563
528
|
this.hot.runHooks('afterDropdownMenuHide', this);
|
564
529
|
}
|
565
|
-
|
566
|
-
|
530
|
+
/**
|
531
|
+
* Hook allows blocking horizontal scroll when the menu is opened by clicking on
|
532
|
+
* the column header button. This prevents from scrolling the viewport (jump effect) when
|
533
|
+
* the button is clicked.
|
534
|
+
*
|
535
|
+
* @param {number} visualColumn Visual column index.
|
536
|
+
* @returns {number | null}
|
537
|
+
*/
|
538
|
+
function _onBeforeViewportScrollHorizontally(visualColumn) {
|
539
|
+
return _classPrivateFieldGet(_isButtonClicked, this) ? null : visualColumn;
|
567
540
|
}
|
568
|
-
|
541
|
+
/**
|
542
|
+
* Hook sets the internal flag to `true` when the button is clicked.
|
543
|
+
*
|
544
|
+
* @param {MouseEvent} event The mouse event object.
|
545
|
+
*/
|
546
|
+
function _onBeforeOnCellMouseDown(event) {
|
569
547
|
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
|
570
|
-
_classPrivateFieldSet(
|
548
|
+
_classPrivateFieldSet(_isButtonClicked, this, true);
|
571
549
|
}
|
572
550
|
}
|
573
551
|
DropdownMenu.SEPARATOR = {
|
@@ -5,12 +5,9 @@ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollect
|
|
5
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
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
7
7
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
8
|
-
function _classPrivateFieldGet(
|
9
|
-
function
|
10
|
-
function
|
11
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
12
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
13
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
8
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
9
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
10
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
14
11
|
import { BasePlugin } from "../base/index.mjs";
|
15
12
|
import { arrayEach } from "../../helpers/array.mjs";
|
16
13
|
import { objectEach } from "../../helpers/object.mjs";
|
@@ -83,15 +80,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
83
80
|
* :::
|
84
81
|
*/
|
85
82
|
var _isButtonClicked = /*#__PURE__*/new WeakMap();
|
86
|
-
var
|
87
|
-
var _onTableClick = /*#__PURE__*/new WeakSet();
|
88
|
-
var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
|
89
|
-
var _onMenuBeforeOpen = /*#__PURE__*/new WeakSet();
|
90
|
-
var _onMenuAfterOpen = /*#__PURE__*/new WeakSet();
|
91
|
-
var _onSubMenuAfterOpen = /*#__PURE__*/new WeakSet();
|
92
|
-
var _onMenuAfterClose = /*#__PURE__*/new WeakSet();
|
93
|
-
var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
|
94
|
-
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
83
|
+
var _DropdownMenu_brand = /*#__PURE__*/new WeakSet();
|
95
84
|
export class DropdownMenu extends BasePlugin {
|
96
85
|
static get PLUGIN_KEY() {
|
97
86
|
return PLUGIN_KEY;
|
@@ -123,70 +112,12 @@ export class DropdownMenu extends BasePlugin {
|
|
123
112
|
super(hotInstance);
|
124
113
|
|
125
114
|
// One listener for enable/disable functionality
|
126
|
-
/**
|
127
|
-
* Hook sets the internal flag to `true` when the button is clicked.
|
128
|
-
*
|
129
|
-
* @param {MouseEvent} event The mouse event object.
|
130
|
-
*/
|
131
|
-
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
132
|
-
/**
|
133
|
-
* Hook allows blocking horizontal scroll when the menu is opened by clicking on
|
134
|
-
* the column header button. This prevents from scrolling the viewport (jump effect) when
|
135
|
-
* the button is clicked.
|
136
|
-
*
|
137
|
-
* @param {number} visualColumn Visual column index.
|
138
|
-
* @returns {number | null}
|
139
|
-
*/
|
140
|
-
_classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
|
141
|
-
/**
|
142
|
-
* On menu after close listener.
|
143
|
-
*
|
144
|
-
* @private
|
145
|
-
* @fires Hooks#afterDropdownMenuHide
|
146
|
-
*/
|
147
|
-
_classPrivateMethodInitSpec(this, _onMenuAfterClose);
|
148
|
-
/**
|
149
|
-
* Listener for the `afterSubmenuOpen` hook.
|
150
|
-
*
|
151
|
-
* @private
|
152
|
-
* @param {Menu} subMenuInstance The opened sub menu instance.
|
153
|
-
*/
|
154
|
-
_classPrivateMethodInitSpec(this, _onSubMenuAfterOpen);
|
155
|
-
/**
|
156
|
-
* On menu after open listener.
|
157
|
-
*
|
158
|
-
* @private
|
159
|
-
* @fires Hooks#afterDropdownMenuShow
|
160
|
-
*/
|
161
|
-
_classPrivateMethodInitSpec(this, _onMenuAfterOpen);
|
162
|
-
/**
|
163
|
-
* On menu before open listener.
|
164
|
-
*
|
165
|
-
* @private
|
166
|
-
* @fires Hooks#beforeDropdownMenuShow
|
167
|
-
*/
|
168
|
-
_classPrivateMethodInitSpec(this, _onMenuBeforeOpen);
|
169
|
-
/**
|
170
|
-
* On after get column header listener.
|
171
|
-
*
|
172
|
-
* @private
|
173
|
-
* @param {number} col Visual column index.
|
174
|
-
* @param {HTMLTableCellElement} TH Header's TH element.
|
175
|
-
*/
|
176
|
-
_classPrivateMethodInitSpec(this, _onAfterGetColHeader);
|
177
|
-
/**
|
178
|
-
* Table click listener.
|
179
|
-
*
|
180
|
-
* @private
|
181
|
-
* @param {Event} event The mouse event object.
|
182
|
-
*/
|
183
|
-
_classPrivateMethodInitSpec(this, _onTableClick);
|
184
115
|
/**
|
185
116
|
* Add custom shortcuts to the provided menu instance.
|
186
117
|
*
|
187
118
|
* @param {Menu} menuInstance The menu instance.
|
188
119
|
*/
|
189
|
-
_classPrivateMethodInitSpec(this,
|
120
|
+
_classPrivateMethodInitSpec(this, _DropdownMenu_brand);
|
190
121
|
_defineProperty(this, "commandExecutor", new CommandExecutor(this.hot));
|
191
122
|
/**
|
192
123
|
* Instance of {@link ItemsFactory}.
|
@@ -207,11 +138,8 @@ export class DropdownMenu extends BasePlugin {
|
|
207
138
|
*
|
208
139
|
* @type {boolean}
|
209
140
|
*/
|
210
|
-
_classPrivateFieldInitSpec(this, _isButtonClicked,
|
211
|
-
|
212
|
-
value: false
|
213
|
-
});
|
214
|
-
this.hot.addHook('afterGetColHeader', (col, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, col, TH));
|
141
|
+
_classPrivateFieldInitSpec(this, _isButtonClicked, false);
|
142
|
+
this.hot.addHook('afterGetColHeader', (col, TH) => _assertClassBrand(_DropdownMenu_brand, this, _onAfterGetColHeader).call(this, col, TH));
|
215
143
|
}
|
216
144
|
|
217
145
|
/**
|
@@ -240,13 +168,13 @@ export class DropdownMenu extends BasePlugin {
|
|
240
168
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
241
169
|
args[_key] = arguments[_key];
|
242
170
|
}
|
243
|
-
return
|
171
|
+
return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);
|
244
172
|
});
|
245
173
|
this.addHook('beforeViewportScrollHorizontally', function () {
|
246
174
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
247
175
|
args[_key2] = arguments[_key2];
|
248
176
|
}
|
249
|
-
return
|
177
|
+
return _assertClassBrand(_DropdownMenu_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);
|
250
178
|
});
|
251
179
|
const settings = this.hot.getSettings()[PLUGIN_KEY];
|
252
180
|
const predefinedItems = {
|
@@ -272,10 +200,10 @@ export class DropdownMenu extends BasePlugin {
|
|
272
200
|
});
|
273
201
|
this.hot.runHooks('beforeDropdownMenuSetItems', menuItems);
|
274
202
|
this.menu.setMenuItems(menuItems);
|
275
|
-
this.menu.addLocalHook('beforeOpen', () =>
|
276
|
-
this.menu.addLocalHook('afterOpen', () =>
|
277
|
-
this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance =>
|
278
|
-
this.menu.addLocalHook('afterClose', () =>
|
203
|
+
this.menu.addLocalHook('beforeOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuBeforeOpen).call(this));
|
204
|
+
this.menu.addLocalHook('afterOpen', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterOpen).call(this));
|
205
|
+
this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance => _assertClassBrand(_DropdownMenu_brand, this, _onSubMenuAfterOpen).call(this, subMenuInstance));
|
206
|
+
this.menu.addLocalHook('afterClose', () => _assertClassBrand(_DropdownMenu_brand, this, _onMenuAfterClose).call(this));
|
279
207
|
this.menu.addLocalHook('executeCommand', function () {
|
280
208
|
for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
281
209
|
params[_key3] = arguments[_key3];
|
@@ -379,7 +307,7 @@ export class DropdownMenu extends BasePlugin {
|
|
379
307
|
* @private
|
380
308
|
*/
|
381
309
|
registerEvents() {
|
382
|
-
this.eventManager.addEventListener(this.hot.rootElement, 'click', event =>
|
310
|
+
this.eventManager.addEventListener(this.hot.rootElement, 'click', event => _assertClassBrand(_DropdownMenu_brand, this, _onTableClick).call(this, event));
|
383
311
|
}
|
384
312
|
|
385
313
|
/**
|
@@ -484,18 +412,24 @@ export class DropdownMenu extends BasePlugin {
|
|
484
412
|
super.destroy();
|
485
413
|
}
|
486
414
|
}
|
487
|
-
function
|
415
|
+
function _addCustomShortcuts(menuInstance) {
|
488
416
|
menuInstance.getKeyboardShortcutsCtrl().addCustomShortcuts([{
|
489
417
|
keys: [['Control/Meta', 'A']],
|
490
418
|
callback: () => false
|
491
419
|
}]);
|
492
420
|
}
|
493
|
-
|
421
|
+
/**
|
422
|
+
* Table click listener.
|
423
|
+
*
|
424
|
+
* @private
|
425
|
+
* @param {Event} event The mouse event object.
|
426
|
+
*/
|
427
|
+
function _onTableClick(event) {
|
494
428
|
event.stopPropagation();
|
495
429
|
if (hasClass(event.target, BUTTON_CLASS_NAME)) {
|
496
430
|
const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
|
497
431
|
const rect = event.target.getBoundingClientRect();
|
498
|
-
_classPrivateFieldSet(
|
432
|
+
_classPrivateFieldSet(_isButtonClicked, this, false);
|
499
433
|
this.open({
|
500
434
|
left: rect.left + offset.left,
|
501
435
|
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
@@ -504,7 +438,14 @@ function _onTableClick2(event) {
|
|
504
438
|
});
|
505
439
|
}
|
506
440
|
}
|
507
|
-
|
441
|
+
/**
|
442
|
+
* On after get column header listener.
|
443
|
+
*
|
444
|
+
* @private
|
445
|
+
* @param {number} col Visual column index.
|
446
|
+
* @param {HTMLTableCellElement} TH Header's TH element.
|
447
|
+
*/
|
448
|
+
function _onAfterGetColHeader(col, TH) {
|
508
449
|
// Corner or a higher-level header
|
509
450
|
const headerRow = TH.parentNode;
|
510
451
|
if (!headerRow) {
|
@@ -543,26 +484,63 @@ function _onAfterGetColHeader2(col, TH) {
|
|
543
484
|
};
|
544
485
|
TH.firstChild.insertBefore(button, TH.firstChild.firstChild);
|
545
486
|
}
|
546
|
-
|
487
|
+
/**
|
488
|
+
* On menu before open listener.
|
489
|
+
*
|
490
|
+
* @private
|
491
|
+
* @fires Hooks#beforeDropdownMenuShow
|
492
|
+
*/
|
493
|
+
function _onMenuBeforeOpen() {
|
547
494
|
this.hot.runHooks('beforeDropdownMenuShow', this);
|
548
495
|
}
|
549
|
-
|
496
|
+
/**
|
497
|
+
* On menu after open listener.
|
498
|
+
*
|
499
|
+
* @private
|
500
|
+
* @fires Hooks#afterDropdownMenuShow
|
501
|
+
*/
|
502
|
+
function _onMenuAfterOpen() {
|
550
503
|
this.hot.runHooks('afterDropdownMenuShow', this);
|
551
|
-
|
504
|
+
_assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, this.menu);
|
552
505
|
}
|
553
|
-
|
554
|
-
|
506
|
+
/**
|
507
|
+
* Listener for the `afterSubmenuOpen` hook.
|
508
|
+
*
|
509
|
+
* @private
|
510
|
+
* @param {Menu} subMenuInstance The opened sub menu instance.
|
511
|
+
*/
|
512
|
+
function _onSubMenuAfterOpen(subMenuInstance) {
|
513
|
+
_assertClassBrand(_DropdownMenu_brand, this, _addCustomShortcuts).call(this, subMenuInstance);
|
555
514
|
}
|
556
|
-
|
515
|
+
/**
|
516
|
+
* On menu after close listener.
|
517
|
+
*
|
518
|
+
* @private
|
519
|
+
* @fires Hooks#afterDropdownMenuHide
|
520
|
+
*/
|
521
|
+
function _onMenuAfterClose() {
|
557
522
|
this.hot.listen();
|
558
523
|
this.hot.runHooks('afterDropdownMenuHide', this);
|
559
524
|
}
|
560
|
-
|
561
|
-
|
525
|
+
/**
|
526
|
+
* Hook allows blocking horizontal scroll when the menu is opened by clicking on
|
527
|
+
* the column header button. This prevents from scrolling the viewport (jump effect) when
|
528
|
+
* the button is clicked.
|
529
|
+
*
|
530
|
+
* @param {number} visualColumn Visual column index.
|
531
|
+
* @returns {number | null}
|
532
|
+
*/
|
533
|
+
function _onBeforeViewportScrollHorizontally(visualColumn) {
|
534
|
+
return _classPrivateFieldGet(_isButtonClicked, this) ? null : visualColumn;
|
562
535
|
}
|
563
|
-
|
536
|
+
/**
|
537
|
+
* Hook sets the internal flag to `true` when the button is clicked.
|
538
|
+
*
|
539
|
+
* @param {MouseEvent} event The mouse event object.
|
540
|
+
*/
|
541
|
+
function _onBeforeOnCellMouseDown(event) {
|
564
542
|
if (hasClass(event.target, BUTTON_CLASS_NAME)) {
|
565
|
-
_classPrivateFieldSet(
|
543
|
+
_classPrivateFieldSet(_isButtonClicked, this, true);
|
566
544
|
}
|
567
545
|
}
|
568
546
|
DropdownMenu.SEPARATOR = {
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
require("core-js/modules/es.array.push.js");
|
5
4
|
require("core-js/modules/es.error.cause.js");
|
5
|
+
require("core-js/modules/es.array.push.js");
|
6
6
|
var _number = require("../../helpers/number");
|
7
7
|
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; }
|
8
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import "core-js/modules/es.array.push.js";
|
2
1
|
import "core-js/modules/es.error.cause.js";
|
2
|
+
import "core-js/modules/es.array.push.js";
|
3
3
|
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; }
|
4
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
5
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|