handsontable 0.0.0-next-53a190b-20240403 → 0.0.0-next-5a535ed-20240403
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 +17 -12
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +17 -12
- package/3rdparty/walkontable/src/calculator/viewportRows.js +15 -10
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +15 -10
- package/3rdparty/walkontable/src/cell/coords.js +17 -12
- package/3rdparty/walkontable/src/cell/coords.mjs +17 -12
- package/3rdparty/walkontable/src/cell/range.d.ts +1 -2
- package/3rdparty/walkontable/src/cell/range.js +28 -40
- package/3rdparty/walkontable/src/cell/range.mjs +28 -40
- package/3rdparty/walkontable/src/core/_base.js +1 -1
- package/3rdparty/walkontable/src/core/_base.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +104 -72
- package/3rdparty/walkontable/src/event.mjs +104 -72
- package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -15
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -16
- package/3rdparty/walkontable/src/overlay/top.js +0 -11
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -12
- package/3rdparty/walkontable/src/overlays.js +4 -46
- package/3rdparty/walkontable/src/overlays.mjs +4 -46
- package/3rdparty/walkontable/src/scroll.js +17 -15
- package/3rdparty/walkontable/src/scroll.mjs +17 -15
- package/3rdparty/walkontable/src/selection/manager.js +69 -48
- package/3rdparty/walkontable/src/selection/manager.mjs +69 -48
- package/3rdparty/walkontable/src/selection/scanner.js +42 -33
- package/3rdparty/walkontable/src/selection/scanner.mjs +42 -33
- package/3rdparty/walkontable/src/utils/columnStretching.js +44 -27
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +44 -27
- 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 -77
- package/core.mjs +22 -77
- 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/metaManager/metaSchema.js +1 -1
- package/dataMap/metaManager/metaSchema.mjs +1 -1
- package/dataMap/replaceData.js +1 -1
- package/dataMap/replaceData.mjs +1 -1
- package/dist/handsontable.css +4 -4
- package/dist/handsontable.full.css +4 -4
- package/dist/handsontable.full.js +9121 -9062
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +292 -292
- package/dist/handsontable.js +6573 -6967
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +25 -25
- 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 +23 -25
- package/editorManager.mjs +23 -25
- package/editors/autocompleteEditor/autocompleteEditor.js +10 -6
- package/editors/autocompleteEditor/autocompleteEditor.mjs +10 -6
- package/editors/selectEditor/selectEditor.js +19 -20
- package/editors/selectEditor/selectEditor.mjs +19 -20
- package/eventManager.js +1 -1
- package/eventManager.mjs +1 -1
- package/focusManager.js +82 -64
- package/focusManager.mjs +82 -64
- package/helpers/dom/element.js +1 -23
- package/helpers/dom/element.mjs +1 -21
- 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 +0 -10
- package/package.json +2 -7
- package/pluginHooks.d.ts +3 -4
- package/pluginHooks.js +38 -99
- package/pluginHooks.mjs +38 -99
- package/plugins/autoColumnSize/autoColumnSize.js +65 -49
- package/plugins/autoColumnSize/autoColumnSize.mjs +65 -49
- package/plugins/autoRowSize/autoRowSize.js +34 -28
- package/plugins/autoRowSize/autoRowSize.mjs +34 -28
- package/plugins/autofill/autofill.js +38 -30
- package/plugins/autofill/autofill.mjs +38 -30
- package/plugins/base/base.js +17 -12
- package/plugins/base/base.mjs +17 -12
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +5 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -5
- package/plugins/collapsibleColumns/collapsibleColumns.js +50 -59
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +50 -59
- package/plugins/columnSorting/columnSorting.js +45 -49
- package/plugins/columnSorting/columnSorting.mjs +45 -49
- package/plugins/columnSummary/columnSummary.js +26 -22
- package/plugins/columnSummary/columnSummary.mjs +26 -22
- package/plugins/comments/comments.js +158 -116
- package/plugins/comments/comments.mjs +158 -116
- package/plugins/contextMenu/contextMenu.js +26 -20
- package/plugins/contextMenu/contextMenu.mjs +26 -20
- 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 +21 -13
- package/plugins/contextMenu/menu/menu.mjs +21 -13
- package/plugins/contextMenu/menu/positioner.js +58 -41
- package/plugins/contextMenu/menu/positioner.mjs +58 -41
- package/plugins/copyPaste/copyPaste.js +157 -116
- package/plugins/copyPaste/copyPaste.mjs +157 -116
- package/plugins/copyPaste/copyableRanges.js +66 -43
- package/plugins/copyPaste/copyableRanges.mjs +66 -43
- package/plugins/customBorders/customBorders.js +13 -11
- package/plugins/customBorders/customBorders.mjs +13 -11
- package/plugins/dragToScroll/dragToScroll.js +6 -6
- package/plugins/dragToScroll/dragToScroll.mjs +6 -6
- package/plugins/dropdownMenu/dropdownMenu.js +106 -80
- package/plugins/dropdownMenu/dropdownMenu.mjs +106 -80
- 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 +15 -13
- package/plugins/filters/component/condition.mjs +15 -13
- package/plugins/filters/component/operators.js +6 -6
- package/plugins/filters/component/operators.mjs +6 -6
- package/plugins/filters/component/value.js +28 -24
- package/plugins/filters/component/value.mjs +28 -24
- package/plugins/filters/conditionUpdateObserver.js +24 -22
- package/plugins/filters/conditionUpdateObserver.mjs +24 -22
- package/plugins/filters/dataFilter.js +1 -1
- package/plugins/filters/dataFilter.mjs +1 -1
- package/plugins/filters/filters.js +95 -81
- package/plugins/filters/filters.mjs +95 -81
- package/plugins/filters/ui/input.js +19 -13
- package/plugins/filters/ui/input.mjs +19 -13
- package/plugins/filters/ui/link.js +13 -8
- package/plugins/filters/ui/link.mjs +13 -8
- package/plugins/filters/ui/multipleSelect.js +112 -85
- package/plugins/filters/ui/multipleSelect.mjs +112 -85
- package/plugins/filters/ui/radioInput.js +20 -12
- package/plugins/filters/ui/radioInput.mjs +20 -12
- package/plugins/filters/ui/select.js +72 -50
- package/plugins/filters/ui/select.mjs +71 -49
- package/plugins/formulas/formulas.js +326 -268
- package/plugins/formulas/formulas.mjs +327 -269
- package/plugins/formulas/indexSyncer/axisSyncer.js +61 -38
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +61 -38
- package/plugins/formulas/indexSyncer/index.js +48 -25
- package/plugins/formulas/indexSyncer/index.mjs +48 -25
- package/plugins/hiddenColumns/hiddenColumns.js +83 -64
- package/plugins/hiddenColumns/hiddenColumns.mjs +83 -64
- package/plugins/hiddenRows/hiddenRows.js +82 -63
- package/plugins/hiddenRows/hiddenRows.mjs +82 -63
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +32 -24
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +33 -25
- package/plugins/manualColumnMove/manualColumnMove.js +170 -126
- package/plugins/manualColumnMove/manualColumnMove.mjs +170 -126
- package/plugins/manualColumnResize/manualColumnResize.js +230 -169
- package/plugins/manualColumnResize/manualColumnResize.mjs +230 -169
- package/plugins/manualRowMove/manualRowMove.js +128 -99
- package/plugins/manualRowMove/manualRowMove.mjs +128 -99
- package/plugins/manualRowResize/manualRowResize.js +209 -150
- package/plugins/manualRowResize/manualRowResize.mjs +209 -150
- 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 +397 -499
- package/plugins/mergeCells/mergeCells.mjs +397 -499
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -8
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -8
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
- package/plugins/nestedHeaders/nestedHeaders.js +253 -205
- package/plugins/nestedHeaders/nestedHeaders.mjs +254 -206
- package/plugins/nestedHeaders/stateManager/headersTree.js +32 -21
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +32 -21
- package/plugins/nestedHeaders/stateManager/index.js +41 -30
- package/plugins/nestedHeaders/stateManager/index.mjs +41 -30
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +30 -19
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +30 -19
- package/plugins/nestedRows/data/dataManager.js +1 -1
- package/plugins/nestedRows/data/dataManager.mjs +1 -1
- package/plugins/nestedRows/nestedRows.js +182 -151
- package/plugins/nestedRows/nestedRows.mjs +183 -152
- package/plugins/nestedRows/ui/contextMenu.js +15 -11
- package/plugins/nestedRows/ui/contextMenu.mjs +14 -10
- 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 +19 -15
- package/plugins/touchScroll/touchScroll.mjs +20 -16
- package/plugins/trimRows/trimRows.js +6 -6
- package/plugins/trimRows/trimRows.mjs +6 -6
- package/renderers/checkboxRenderer/checkboxRenderer.js +5 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +5 -8
- package/selection/highlight/highlight.js +14 -14
- package/selection/highlight/highlight.mjs +13 -13
- package/selection/highlight/visualSelection.js +0 -2
- package/selection/highlight/visualSelection.mjs +0 -2
- package/selection/selection.js +67 -225
- package/selection/selection.mjs +66 -224
- package/selection/transformation.js +118 -149
- package/selection/transformation.mjs +118 -149
- 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 +3 -9
- package/shortcutContexts/grid.mjs +3 -9
- package/shortcuts/context.js +1 -2
- package/shortcuts/context.mjs +1 -2
- package/tableView.js +78 -52
- package/tableView.mjs +78 -52
- package/translations/changesObservable/observable.js +38 -21
- package/translations/changesObservable/observable.mjs +38 -21
- package/translations/changesObservable/observer.js +12 -7
- package/translations/changesObservable/observer.mjs +11 -6
- 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 +44 -26
- package/utils/interval.mjs +44 -26
- package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
- package/i18n/languages/ar-AR.d.ts +0 -5
- package/i18n/languages/cs-CZ.d.ts +0 -5
- package/i18n/languages/hr-HR.d.ts +0 -5
- package/i18n/languages/sr-SP.d.ts +0 -5
- package/plugins/mergeCells/focusOrder.js +0 -305
- package/plugins/mergeCells/focusOrder.mjs +0 -300
@@ -5,9 +5,11 @@ require("core-js/modules/es.error.cause.js");
|
|
5
5
|
var _cursor2 = require("./cursor");
|
6
6
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
7
7
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
8
|
-
function _classPrivateFieldGet(
|
9
|
-
function
|
10
|
-
function
|
8
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
9
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
10
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
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; } }
|
11
13
|
/**
|
12
14
|
* Helper class for positioning the menu and submenus in the correct place relative to the
|
13
15
|
* cursor position (DOM element or mouse coordinates).
|
@@ -27,39 +29,54 @@ class Positioner {
|
|
27
29
|
*
|
28
30
|
* @type {HTMLElement}
|
29
31
|
*/
|
30
|
-
_classPrivateFieldInitSpec(this, _container,
|
32
|
+
_classPrivateFieldInitSpec(this, _container, {
|
33
|
+
writable: true,
|
34
|
+
value: void 0
|
35
|
+
});
|
31
36
|
/**
|
32
37
|
* For positioning the submenu, the parent element is used to calculate offsets to ensure that submenu
|
33
38
|
* is positioned right next to the parent menu.
|
34
39
|
*
|
35
40
|
* @type {HTMLElement}
|
36
41
|
*/
|
37
|
-
_classPrivateFieldInitSpec(this, _parentContainer,
|
42
|
+
_classPrivateFieldInitSpec(this, _parentContainer, {
|
43
|
+
writable: true,
|
44
|
+
value: void 0
|
45
|
+
});
|
38
46
|
/**
|
39
47
|
* The instance of the Cursor class.
|
40
48
|
*
|
41
49
|
* @type {Cursor}
|
42
50
|
*/
|
43
|
-
_classPrivateFieldInitSpec(this, _cursor,
|
51
|
+
_classPrivateFieldInitSpec(this, _cursor, {
|
52
|
+
writable: true,
|
53
|
+
value: void 0
|
54
|
+
});
|
44
55
|
/**
|
45
56
|
* Enabling the option allows changing the position calculation so that the menus (or submenus)
|
46
57
|
* are always placed within the visible viewport of the browser.
|
47
58
|
*
|
48
59
|
* @type {boolean}
|
49
60
|
*/
|
50
|
-
_classPrivateFieldInitSpec(this, _keepInViewport,
|
61
|
+
_classPrivateFieldInitSpec(this, _keepInViewport, {
|
62
|
+
writable: true,
|
63
|
+
value: false
|
64
|
+
});
|
51
65
|
/**
|
52
66
|
* Allows apply the position offset for directions.
|
53
67
|
*
|
54
68
|
* @type {{above: number, below: number, left: number, right: number}}
|
55
69
|
*/
|
56
70
|
_classPrivateFieldInitSpec(this, _offset, {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
71
|
+
writable: true,
|
72
|
+
value: {
|
73
|
+
above: 0,
|
74
|
+
below: 0,
|
75
|
+
left: 0,
|
76
|
+
right: 0
|
77
|
+
}
|
61
78
|
});
|
62
|
-
_classPrivateFieldSet(
|
79
|
+
_classPrivateFieldSet(this, _keepInViewport, keepInViewport);
|
63
80
|
}
|
64
81
|
|
65
82
|
/**
|
@@ -71,7 +88,7 @@ class Positioner {
|
|
71
88
|
*/
|
72
89
|
setOffset(direction) {
|
73
90
|
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
74
|
-
_classPrivateFieldGet(
|
91
|
+
_classPrivateFieldGet(this, _offset)[direction] = offset;
|
75
92
|
return this;
|
76
93
|
}
|
77
94
|
|
@@ -82,7 +99,7 @@ class Positioner {
|
|
82
99
|
* @returns {Positioner}
|
83
100
|
*/
|
84
101
|
setElement(container) {
|
85
|
-
_classPrivateFieldSet(
|
102
|
+
_classPrivateFieldSet(this, _container, container);
|
86
103
|
return this;
|
87
104
|
}
|
88
105
|
|
@@ -93,7 +110,7 @@ class Positioner {
|
|
93
110
|
* @returns {Positioner}
|
94
111
|
*/
|
95
112
|
setParentElement(container) {
|
96
|
-
_classPrivateFieldSet(
|
113
|
+
_classPrivateFieldSet(this, _parentContainer, container);
|
97
114
|
return this;
|
98
115
|
}
|
99
116
|
|
@@ -104,11 +121,11 @@ class Positioner {
|
|
104
121
|
* mouse event object.
|
105
122
|
*/
|
106
123
|
updatePosition(coords) {
|
107
|
-
_classPrivateFieldSet(
|
108
|
-
if (_classPrivateFieldGet(
|
109
|
-
if (_classPrivateFieldGet(
|
124
|
+
_classPrivateFieldSet(this, _cursor, new _cursor2.Cursor(coords, _classPrivateFieldGet(this, _container).ownerDocument.defaultView));
|
125
|
+
if (_classPrivateFieldGet(this, _keepInViewport)) {
|
126
|
+
if (_classPrivateFieldGet(this, _cursor).fitsBelow(_classPrivateFieldGet(this, _container))) {
|
110
127
|
this.setPositionBelowCursor();
|
111
|
-
} else if (_classPrivateFieldGet(
|
128
|
+
} else if (_classPrivateFieldGet(this, _cursor).fitsAbove(_classPrivateFieldGet(this, _container))) {
|
112
129
|
this.setPositionAboveCursor();
|
113
130
|
} else {
|
114
131
|
this.setPositionBelowCursor();
|
@@ -124,13 +141,13 @@ class Positioner {
|
|
124
141
|
* Updates the menu horizontal position.
|
125
142
|
*/
|
126
143
|
updateHorizontalPosition() {
|
127
|
-
if (_classPrivateFieldGet(
|
128
|
-
if (_classPrivateFieldGet(
|
144
|
+
if (_classPrivateFieldGet(this, _container).dir === 'rtl') {
|
145
|
+
if (_classPrivateFieldGet(this, _cursor).fitsOnLeft(_classPrivateFieldGet(this, _container))) {
|
129
146
|
this.setPositionOnLeftOfCursor();
|
130
147
|
} else {
|
131
148
|
this.setPositionOnRightOfCursor();
|
132
149
|
}
|
133
|
-
} else if (_classPrivateFieldGet(
|
150
|
+
} else if (_classPrivateFieldGet(this, _cursor).fitsOnRight(_classPrivateFieldGet(this, _container))) {
|
134
151
|
this.setPositionOnRightOfCursor();
|
135
152
|
} else {
|
136
153
|
this.setPositionOnLeftOfCursor();
|
@@ -141,56 +158,56 @@ class Positioner {
|
|
141
158
|
* Sets the menu position above the cursor object.
|
142
159
|
*/
|
143
160
|
setPositionAboveCursor() {
|
144
|
-
let top = _classPrivateFieldGet(
|
145
|
-
if (_classPrivateFieldGet(
|
146
|
-
top = _classPrivateFieldGet(
|
161
|
+
let top = _classPrivateFieldGet(this, _offset).above + _classPrivateFieldGet(this, _cursor).top - _classPrivateFieldGet(this, _container).offsetHeight;
|
162
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
163
|
+
top = _classPrivateFieldGet(this, _cursor).top + _classPrivateFieldGet(this, _cursor).cellHeight - _classPrivateFieldGet(this, _container).offsetHeight + 3;
|
147
164
|
}
|
148
|
-
_classPrivateFieldGet(
|
165
|
+
_classPrivateFieldGet(this, _container).style.top = `${top}px`;
|
149
166
|
}
|
150
167
|
|
151
168
|
/**
|
152
169
|
* Sets the menu position below the cursor object.
|
153
170
|
*/
|
154
171
|
setPositionBelowCursor() {
|
155
|
-
let top = _classPrivateFieldGet(
|
156
|
-
if (_classPrivateFieldGet(
|
157
|
-
top = _classPrivateFieldGet(
|
172
|
+
let top = _classPrivateFieldGet(this, _offset).below + _classPrivateFieldGet(this, _cursor).top + 1;
|
173
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
174
|
+
top = _classPrivateFieldGet(this, _cursor).top - 1;
|
158
175
|
}
|
159
|
-
_classPrivateFieldGet(
|
176
|
+
_classPrivateFieldGet(this, _container).style.top = `${top}px`;
|
160
177
|
}
|
161
178
|
|
162
179
|
/**
|
163
180
|
* Sets the menu position on the right of the cursor object.
|
164
181
|
*/
|
165
182
|
setPositionOnRightOfCursor() {
|
166
|
-
let left = _classPrivateFieldGet(
|
167
|
-
if (_classPrivateFieldGet(
|
183
|
+
let left = _classPrivateFieldGet(this, _cursor).left;
|
184
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
168
185
|
const {
|
169
186
|
right: parentMenuRight
|
170
|
-
} = _classPrivateFieldGet(
|
187
|
+
} = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
|
171
188
|
|
172
189
|
// move the sub menu by the width of the parent's border (usually by 1-2 pixels)
|
173
|
-
left += _classPrivateFieldGet(
|
190
|
+
left += _classPrivateFieldGet(this, _cursor).cellWidth + parentMenuRight - (_classPrivateFieldGet(this, _cursor).left + _classPrivateFieldGet(this, _cursor).cellWidth);
|
174
191
|
} else {
|
175
|
-
left += _classPrivateFieldGet(
|
192
|
+
left += _classPrivateFieldGet(this, _offset).right;
|
176
193
|
}
|
177
|
-
_classPrivateFieldGet(
|
194
|
+
_classPrivateFieldGet(this, _container).style.left = `${left}px`;
|
178
195
|
}
|
179
196
|
|
180
197
|
/**
|
181
198
|
* Sets the menu position on the left of the cursor object.
|
182
199
|
*/
|
183
200
|
setPositionOnLeftOfCursor() {
|
184
|
-
let left = _classPrivateFieldGet(
|
185
|
-
if (_classPrivateFieldGet(
|
201
|
+
let left = _classPrivateFieldGet(this, _offset).left + _classPrivateFieldGet(this, _cursor).left - _classPrivateFieldGet(this, _container).offsetWidth;
|
202
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
186
203
|
const {
|
187
204
|
left: parentMenuLeft
|
188
|
-
} = _classPrivateFieldGet(
|
205
|
+
} = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
|
189
206
|
|
190
207
|
// move the sub menu by the width of the parent's border (usually by 1-2 pixels)
|
191
|
-
left -= _classPrivateFieldGet(
|
208
|
+
left -= _classPrivateFieldGet(this, _cursor).left - parentMenuLeft;
|
192
209
|
}
|
193
|
-
_classPrivateFieldGet(
|
210
|
+
_classPrivateFieldGet(this, _container).style.left = `${left}px`;
|
194
211
|
}
|
195
212
|
}
|
196
213
|
exports.Positioner = Positioner;
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
3
3
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
4
|
-
function _classPrivateFieldGet(
|
5
|
-
function
|
6
|
-
function
|
4
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
5
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
6
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
7
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
8
|
+
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; } }
|
7
9
|
import { Cursor } from "./cursor.mjs";
|
8
10
|
/**
|
9
11
|
* Helper class for positioning the menu and submenus in the correct place relative to the
|
@@ -24,39 +26,54 @@ export class Positioner {
|
|
24
26
|
*
|
25
27
|
* @type {HTMLElement}
|
26
28
|
*/
|
27
|
-
_classPrivateFieldInitSpec(this, _container,
|
29
|
+
_classPrivateFieldInitSpec(this, _container, {
|
30
|
+
writable: true,
|
31
|
+
value: void 0
|
32
|
+
});
|
28
33
|
/**
|
29
34
|
* For positioning the submenu, the parent element is used to calculate offsets to ensure that submenu
|
30
35
|
* is positioned right next to the parent menu.
|
31
36
|
*
|
32
37
|
* @type {HTMLElement}
|
33
38
|
*/
|
34
|
-
_classPrivateFieldInitSpec(this, _parentContainer,
|
39
|
+
_classPrivateFieldInitSpec(this, _parentContainer, {
|
40
|
+
writable: true,
|
41
|
+
value: void 0
|
42
|
+
});
|
35
43
|
/**
|
36
44
|
* The instance of the Cursor class.
|
37
45
|
*
|
38
46
|
* @type {Cursor}
|
39
47
|
*/
|
40
|
-
_classPrivateFieldInitSpec(this, _cursor,
|
48
|
+
_classPrivateFieldInitSpec(this, _cursor, {
|
49
|
+
writable: true,
|
50
|
+
value: void 0
|
51
|
+
});
|
41
52
|
/**
|
42
53
|
* Enabling the option allows changing the position calculation so that the menus (or submenus)
|
43
54
|
* are always placed within the visible viewport of the browser.
|
44
55
|
*
|
45
56
|
* @type {boolean}
|
46
57
|
*/
|
47
|
-
_classPrivateFieldInitSpec(this, _keepInViewport,
|
58
|
+
_classPrivateFieldInitSpec(this, _keepInViewport, {
|
59
|
+
writable: true,
|
60
|
+
value: false
|
61
|
+
});
|
48
62
|
/**
|
49
63
|
* Allows apply the position offset for directions.
|
50
64
|
*
|
51
65
|
* @type {{above: number, below: number, left: number, right: number}}
|
52
66
|
*/
|
53
67
|
_classPrivateFieldInitSpec(this, _offset, {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
68
|
+
writable: true,
|
69
|
+
value: {
|
70
|
+
above: 0,
|
71
|
+
below: 0,
|
72
|
+
left: 0,
|
73
|
+
right: 0
|
74
|
+
}
|
58
75
|
});
|
59
|
-
_classPrivateFieldSet(
|
76
|
+
_classPrivateFieldSet(this, _keepInViewport, keepInViewport);
|
60
77
|
}
|
61
78
|
|
62
79
|
/**
|
@@ -68,7 +85,7 @@ export class Positioner {
|
|
68
85
|
*/
|
69
86
|
setOffset(direction) {
|
70
87
|
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
71
|
-
_classPrivateFieldGet(
|
88
|
+
_classPrivateFieldGet(this, _offset)[direction] = offset;
|
72
89
|
return this;
|
73
90
|
}
|
74
91
|
|
@@ -79,7 +96,7 @@ export class Positioner {
|
|
79
96
|
* @returns {Positioner}
|
80
97
|
*/
|
81
98
|
setElement(container) {
|
82
|
-
_classPrivateFieldSet(
|
99
|
+
_classPrivateFieldSet(this, _container, container);
|
83
100
|
return this;
|
84
101
|
}
|
85
102
|
|
@@ -90,7 +107,7 @@ export class Positioner {
|
|
90
107
|
* @returns {Positioner}
|
91
108
|
*/
|
92
109
|
setParentElement(container) {
|
93
|
-
_classPrivateFieldSet(
|
110
|
+
_classPrivateFieldSet(this, _parentContainer, container);
|
94
111
|
return this;
|
95
112
|
}
|
96
113
|
|
@@ -101,11 +118,11 @@ export class Positioner {
|
|
101
118
|
* mouse event object.
|
102
119
|
*/
|
103
120
|
updatePosition(coords) {
|
104
|
-
_classPrivateFieldSet(
|
105
|
-
if (_classPrivateFieldGet(
|
106
|
-
if (_classPrivateFieldGet(
|
121
|
+
_classPrivateFieldSet(this, _cursor, new Cursor(coords, _classPrivateFieldGet(this, _container).ownerDocument.defaultView));
|
122
|
+
if (_classPrivateFieldGet(this, _keepInViewport)) {
|
123
|
+
if (_classPrivateFieldGet(this, _cursor).fitsBelow(_classPrivateFieldGet(this, _container))) {
|
107
124
|
this.setPositionBelowCursor();
|
108
|
-
} else if (_classPrivateFieldGet(
|
125
|
+
} else if (_classPrivateFieldGet(this, _cursor).fitsAbove(_classPrivateFieldGet(this, _container))) {
|
109
126
|
this.setPositionAboveCursor();
|
110
127
|
} else {
|
111
128
|
this.setPositionBelowCursor();
|
@@ -121,13 +138,13 @@ export class Positioner {
|
|
121
138
|
* Updates the menu horizontal position.
|
122
139
|
*/
|
123
140
|
updateHorizontalPosition() {
|
124
|
-
if (_classPrivateFieldGet(
|
125
|
-
if (_classPrivateFieldGet(
|
141
|
+
if (_classPrivateFieldGet(this, _container).dir === 'rtl') {
|
142
|
+
if (_classPrivateFieldGet(this, _cursor).fitsOnLeft(_classPrivateFieldGet(this, _container))) {
|
126
143
|
this.setPositionOnLeftOfCursor();
|
127
144
|
} else {
|
128
145
|
this.setPositionOnRightOfCursor();
|
129
146
|
}
|
130
|
-
} else if (_classPrivateFieldGet(
|
147
|
+
} else if (_classPrivateFieldGet(this, _cursor).fitsOnRight(_classPrivateFieldGet(this, _container))) {
|
131
148
|
this.setPositionOnRightOfCursor();
|
132
149
|
} else {
|
133
150
|
this.setPositionOnLeftOfCursor();
|
@@ -138,55 +155,55 @@ export class Positioner {
|
|
138
155
|
* Sets the menu position above the cursor object.
|
139
156
|
*/
|
140
157
|
setPositionAboveCursor() {
|
141
|
-
let top = _classPrivateFieldGet(
|
142
|
-
if (_classPrivateFieldGet(
|
143
|
-
top = _classPrivateFieldGet(
|
158
|
+
let top = _classPrivateFieldGet(this, _offset).above + _classPrivateFieldGet(this, _cursor).top - _classPrivateFieldGet(this, _container).offsetHeight;
|
159
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
160
|
+
top = _classPrivateFieldGet(this, _cursor).top + _classPrivateFieldGet(this, _cursor).cellHeight - _classPrivateFieldGet(this, _container).offsetHeight + 3;
|
144
161
|
}
|
145
|
-
_classPrivateFieldGet(
|
162
|
+
_classPrivateFieldGet(this, _container).style.top = `${top}px`;
|
146
163
|
}
|
147
164
|
|
148
165
|
/**
|
149
166
|
* Sets the menu position below the cursor object.
|
150
167
|
*/
|
151
168
|
setPositionBelowCursor() {
|
152
|
-
let top = _classPrivateFieldGet(
|
153
|
-
if (_classPrivateFieldGet(
|
154
|
-
top = _classPrivateFieldGet(
|
169
|
+
let top = _classPrivateFieldGet(this, _offset).below + _classPrivateFieldGet(this, _cursor).top + 1;
|
170
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
171
|
+
top = _classPrivateFieldGet(this, _cursor).top - 1;
|
155
172
|
}
|
156
|
-
_classPrivateFieldGet(
|
173
|
+
_classPrivateFieldGet(this, _container).style.top = `${top}px`;
|
157
174
|
}
|
158
175
|
|
159
176
|
/**
|
160
177
|
* Sets the menu position on the right of the cursor object.
|
161
178
|
*/
|
162
179
|
setPositionOnRightOfCursor() {
|
163
|
-
let left = _classPrivateFieldGet(
|
164
|
-
if (_classPrivateFieldGet(
|
180
|
+
let left = _classPrivateFieldGet(this, _cursor).left;
|
181
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
165
182
|
const {
|
166
183
|
right: parentMenuRight
|
167
|
-
} = _classPrivateFieldGet(
|
184
|
+
} = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
|
168
185
|
|
169
186
|
// move the sub menu by the width of the parent's border (usually by 1-2 pixels)
|
170
|
-
left += _classPrivateFieldGet(
|
187
|
+
left += _classPrivateFieldGet(this, _cursor).cellWidth + parentMenuRight - (_classPrivateFieldGet(this, _cursor).left + _classPrivateFieldGet(this, _cursor).cellWidth);
|
171
188
|
} else {
|
172
|
-
left += _classPrivateFieldGet(
|
189
|
+
left += _classPrivateFieldGet(this, _offset).right;
|
173
190
|
}
|
174
|
-
_classPrivateFieldGet(
|
191
|
+
_classPrivateFieldGet(this, _container).style.left = `${left}px`;
|
175
192
|
}
|
176
193
|
|
177
194
|
/**
|
178
195
|
* Sets the menu position on the left of the cursor object.
|
179
196
|
*/
|
180
197
|
setPositionOnLeftOfCursor() {
|
181
|
-
let left = _classPrivateFieldGet(
|
182
|
-
if (_classPrivateFieldGet(
|
198
|
+
let left = _classPrivateFieldGet(this, _offset).left + _classPrivateFieldGet(this, _cursor).left - _classPrivateFieldGet(this, _container).offsetWidth;
|
199
|
+
if (_classPrivateFieldGet(this, _parentContainer)) {
|
183
200
|
const {
|
184
201
|
left: parentMenuLeft
|
185
|
-
} = _classPrivateFieldGet(
|
202
|
+
} = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
|
186
203
|
|
187
204
|
// move the sub menu by the width of the parent's border (usually by 1-2 pixels)
|
188
|
-
left -= _classPrivateFieldGet(
|
205
|
+
left -= _classPrivateFieldGet(this, _cursor).left - parentMenuLeft;
|
189
206
|
}
|
190
|
-
_classPrivateFieldGet(
|
207
|
+
_classPrivateFieldGet(this, _container).style.left = `${left}px`;
|
191
208
|
}
|
192
209
|
}
|