handsontable 0.0.0-next-2becb78-20240313 → 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 -82
- package/core.mjs +22 -82
- 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 +7619 -10404
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +277 -277
- package/dist/handsontable.js +5525 -7857
- 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 +353 -593
- package/plugins/mergeCells/mergeCells.mjs +353 -593
- 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 +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 +2 -16
- package/selection/highlight/visualSelection.mjs +2 -16
- package/selection/selection.js +60 -255
- package/selection/selection.mjs +59 -254
- 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 -327
- package/plugins/mergeCells/focusOrder.mjs +0 -322
package/tableView.mjs
CHANGED
@@ -1,17 +1,14 @@
|
|
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 _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
4
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
6
|
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; }
|
7
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
8
8
|
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); }
|
9
|
-
function
|
10
|
-
function
|
11
|
-
function
|
12
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
13
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
-
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; } }
|
9
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
10
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
11
|
+
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"); }
|
15
12
|
import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput, isVisible, setAttribute, getParentWindow } from "./helpers/dom/element.mjs";
|
16
13
|
import EventManager from "./eventManager.mjs";
|
17
14
|
import { isImmediatePropagationStopped, isRightClick, isLeftClick } from "./helpers/dom/event.mjs";
|
@@ -30,25 +27,18 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
|
|
30
27
|
var _table = /*#__PURE__*/new WeakMap();
|
31
28
|
var _lastWidth = /*#__PURE__*/new WeakMap();
|
32
29
|
var _lastHeight = /*#__PURE__*/new WeakMap();
|
33
|
-
var
|
34
|
-
var _updateAriaColcount = /*#__PURE__*/new WeakSet();
|
30
|
+
var _TableView_brand = /*#__PURE__*/new WeakSet();
|
35
31
|
class TableView {
|
36
32
|
/**
|
37
33
|
* @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
|
38
34
|
*/
|
39
35
|
constructor(hotInstance) {
|
40
|
-
/**
|
41
|
-
* Update the `aria-colcount` attribute by the provided value.
|
42
|
-
*
|
43
|
-
* @param {number} delta The number of columns to add or remove to the aria tag.
|
44
|
-
*/
|
45
|
-
_classPrivateMethodInitSpec(this, _updateAriaColcount);
|
46
36
|
/**
|
47
37
|
* Return the value of the `aria-colcount` attribute.
|
48
38
|
*
|
49
39
|
* @returns {number} The value of the `aria-colcount` attribute.
|
50
40
|
*/
|
51
|
-
_classPrivateMethodInitSpec(this,
|
41
|
+
_classPrivateMethodInitSpec(this, _TableView_brand);
|
52
42
|
/**
|
53
43
|
* Instance of {@link Handsontable}.
|
54
44
|
*
|
@@ -103,20 +93,14 @@ class TableView {
|
|
103
93
|
*
|
104
94
|
* @type {number}
|
105
95
|
*/
|
106
|
-
_classPrivateFieldInitSpec(this, _columnHeadersCount,
|
107
|
-
writable: true,
|
108
|
-
value: 0
|
109
|
-
});
|
96
|
+
_classPrivateFieldInitSpec(this, _columnHeadersCount, 0);
|
110
97
|
/**
|
111
98
|
* The total number of the row header renderers applied to the table through the
|
112
99
|
* `afterGetRowHeaderRenderers` hook.
|
113
100
|
*
|
114
101
|
* @type {number}
|
115
102
|
*/
|
116
|
-
_classPrivateFieldInitSpec(this, _rowHeadersCount,
|
117
|
-
writable: true,
|
118
|
-
value: 0
|
119
|
-
});
|
103
|
+
_classPrivateFieldInitSpec(this, _rowHeadersCount, 0);
|
120
104
|
/**
|
121
105
|
* The flag determines if the `adjustElementsSize` method call was made during
|
122
106
|
* the render suspending. If true, the method has to be triggered once after render
|
@@ -131,44 +115,29 @@ class TableView {
|
|
131
115
|
*
|
132
116
|
* @type {boolean}
|
133
117
|
*/
|
134
|
-
_classPrivateFieldInitSpec(this, _selectionMouseDown,
|
135
|
-
writable: true,
|
136
|
-
value: false
|
137
|
-
});
|
118
|
+
_classPrivateFieldInitSpec(this, _selectionMouseDown, false);
|
138
119
|
/**
|
139
120
|
* @type {boolean}
|
140
121
|
*/
|
141
|
-
_classPrivateFieldInitSpec(this, _mouseDown,
|
142
|
-
writable: true,
|
143
|
-
value: void 0
|
144
|
-
});
|
122
|
+
_classPrivateFieldInitSpec(this, _mouseDown, void 0);
|
145
123
|
/**
|
146
124
|
* Main <TABLE> element.
|
147
125
|
*
|
148
126
|
* @type {HTMLTableElement}
|
149
127
|
*/
|
150
|
-
_classPrivateFieldInitSpec(this, _table,
|
151
|
-
writable: true,
|
152
|
-
value: void 0
|
153
|
-
});
|
128
|
+
_classPrivateFieldInitSpec(this, _table, void 0);
|
154
129
|
/**
|
155
130
|
* Cached width of the rootElement.
|
156
131
|
*
|
157
132
|
* @type {number}
|
158
133
|
*/
|
159
|
-
_classPrivateFieldInitSpec(this, _lastWidth,
|
160
|
-
writable: true,
|
161
|
-
value: 0
|
162
|
-
});
|
134
|
+
_classPrivateFieldInitSpec(this, _lastWidth, 0);
|
163
135
|
/**
|
164
136
|
* Cached height of the rootElement.
|
165
137
|
*
|
166
138
|
* @type {number}
|
167
139
|
*/
|
168
|
-
_classPrivateFieldInitSpec(this, _lastHeight,
|
169
|
-
writable: true,
|
170
|
-
value: 0
|
171
|
-
});
|
140
|
+
_classPrivateFieldInitSpec(this, _lastHeight, 0);
|
172
141
|
this.hot = hotInstance;
|
173
142
|
this.eventManager = new EventManager(this.hot);
|
174
143
|
this.settings = this.hot.getSettings();
|
@@ -277,21 +246,21 @@ class TableView {
|
|
277
246
|
rootElement.setAttribute('data-originalstyle', originalStyle); // needed to retrieve original style in jsFiddle link generator in HT examples. may be removed in future versions
|
278
247
|
}
|
279
248
|
addClass(rootElement, 'handsontable');
|
280
|
-
_classPrivateFieldSet(
|
281
|
-
addClass(_classPrivateFieldGet(
|
249
|
+
_classPrivateFieldSet(_table, this, rootDocument.createElement('TABLE'));
|
250
|
+
addClass(_classPrivateFieldGet(_table, this), 'htCore');
|
282
251
|
if (this.hot.getSettings().tableClassName) {
|
283
|
-
addClass(_classPrivateFieldGet(
|
252
|
+
addClass(_classPrivateFieldGet(_table, this), this.hot.getSettings().tableClassName);
|
284
253
|
}
|
285
254
|
if (this.settings.ariaTags) {
|
286
|
-
setAttribute(_classPrivateFieldGet(
|
255
|
+
setAttribute(_classPrivateFieldGet(_table, this), [A11Y_PRESENTATION()]);
|
287
256
|
setAttribute(rootElement, [A11Y_TREEGRID(), A11Y_ROWCOUNT(-1), A11Y_COLCOUNT(this.hot.countCols()), A11Y_MULTISELECTABLE()]);
|
288
257
|
}
|
289
258
|
this.THEAD = rootDocument.createElement('THEAD');
|
290
|
-
_classPrivateFieldGet(
|
259
|
+
_classPrivateFieldGet(_table, this).appendChild(this.THEAD);
|
291
260
|
this.TBODY = rootDocument.createElement('TBODY');
|
292
|
-
_classPrivateFieldGet(
|
293
|
-
this.hot.table = _classPrivateFieldGet(
|
294
|
-
this.hot.container.insertBefore(_classPrivateFieldGet(
|
261
|
+
_classPrivateFieldGet(_table, this).appendChild(this.TBODY);
|
262
|
+
this.hot.table = _classPrivateFieldGet(_table, this);
|
263
|
+
this.hot.container.insertBefore(_classPrivateFieldGet(_table, this), this.hot.container.firstChild);
|
295
264
|
}
|
296
265
|
|
297
266
|
/**
|
@@ -308,7 +277,7 @@ class TableView {
|
|
308
277
|
} = this.hot;
|
309
278
|
const documentElement = rootDocument.documentElement;
|
310
279
|
this.eventManager.addEventListener(rootElement, 'mousedown', event => {
|
311
|
-
_classPrivateFieldSet(
|
280
|
+
_classPrivateFieldSet(_selectionMouseDown, this, true);
|
312
281
|
if (!this.isTextSelectionAllowed(event.target)) {
|
313
282
|
clearTextSelection(rootWindow);
|
314
283
|
event.preventDefault();
|
@@ -316,10 +285,10 @@ class TableView {
|
|
316
285
|
}
|
317
286
|
});
|
318
287
|
this.eventManager.addEventListener(rootElement, 'mouseup', () => {
|
319
|
-
_classPrivateFieldSet(
|
288
|
+
_classPrivateFieldSet(_selectionMouseDown, this, false);
|
320
289
|
});
|
321
290
|
this.eventManager.addEventListener(rootElement, 'mousemove', event => {
|
322
|
-
if (_classPrivateFieldGet(
|
291
|
+
if (_classPrivateFieldGet(_selectionMouseDown, this) && !this.isTextSelectionAllowed(event.target)) {
|
323
292
|
// Clear selection only when fragmentSelection is enabled, otherwise clearing selection breaks the IME editor.
|
324
293
|
if (this.settings.fragmentSelection) {
|
325
294
|
clearTextSelection(rootWindow);
|
@@ -337,7 +306,7 @@ class TableView {
|
|
337
306
|
if (selection.isInProgress() && isLeftClick(event)) {
|
338
307
|
selection.finish();
|
339
308
|
}
|
340
|
-
_classPrivateFieldSet(
|
309
|
+
_classPrivateFieldSet(_mouseDown, this, false);
|
341
310
|
const isOutsideInputElement = isOutsideInput(rootDocument.activeElement);
|
342
311
|
if (isInput(rootDocument.activeElement) && !isOutsideInputElement) {
|
343
312
|
return;
|
@@ -349,21 +318,21 @@ class TableView {
|
|
349
318
|
this.eventManager.addEventListener(documentElement, 'contextmenu', event => {
|
350
319
|
if (selection.isInProgress() && isRightClick(event)) {
|
351
320
|
selection.finish();
|
352
|
-
_classPrivateFieldSet(
|
321
|
+
_classPrivateFieldSet(_mouseDown, this, false);
|
353
322
|
}
|
354
323
|
});
|
355
324
|
this.eventManager.addEventListener(documentElement, 'touchend', () => {
|
356
325
|
if (selection.isInProgress()) {
|
357
326
|
selection.finish();
|
358
327
|
}
|
359
|
-
_classPrivateFieldSet(
|
328
|
+
_classPrivateFieldSet(_mouseDown, this, false);
|
360
329
|
});
|
361
330
|
this.eventManager.addEventListener(documentElement, 'mousedown', event => {
|
362
331
|
const originalTarget = event.target;
|
363
332
|
const eventX = event.x || event.clientX;
|
364
333
|
const eventY = event.y || event.clientY;
|
365
334
|
let next = event.target;
|
366
|
-
if (_classPrivateFieldGet(
|
335
|
+
if (_classPrivateFieldGet(_mouseDown, this) || !rootElement || !this.hot.view) {
|
367
336
|
return; // it must have been started in a cell
|
368
337
|
}
|
369
338
|
|
@@ -409,7 +378,7 @@ class TableView {
|
|
409
378
|
});
|
410
379
|
parentWindow = getParentWindow(parentWindow);
|
411
380
|
}
|
412
|
-
this.eventManager.addEventListener(_classPrivateFieldGet(
|
381
|
+
this.eventManager.addEventListener(_classPrivateFieldGet(_table, this), 'selectstart', event => {
|
413
382
|
if (this.settings.fragmentSelection || isInput(event.target)) {
|
414
383
|
return;
|
415
384
|
}
|
@@ -597,16 +566,6 @@ class TableView {
|
|
597
566
|
count += 1;
|
598
567
|
}
|
599
568
|
}
|
600
|
-
|
601
|
-
// const columnMax = Math.max(columnStart, columnEnd);
|
602
|
-
// let count = 0;
|
603
|
-
|
604
|
-
// for (let column = Math.min(columnStart, columnEnd); column <= columnMax; column++) {
|
605
|
-
// if (this.hot.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
|
606
|
-
// count += 1;
|
607
|
-
// }
|
608
|
-
// }
|
609
|
-
|
610
569
|
return count;
|
611
570
|
}
|
612
571
|
|
@@ -624,16 +583,6 @@ class TableView {
|
|
624
583
|
count += 1;
|
625
584
|
}
|
626
585
|
}
|
627
|
-
|
628
|
-
// const rowMax = Math.max(rowStart, rowEnd);
|
629
|
-
// let count = 0;
|
630
|
-
|
631
|
-
// for (let row = Math.min(rowStart, rowEnd); row <= rowMax; row++) {
|
632
|
-
// if (this.hot.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
|
633
|
-
// count += 1;
|
634
|
-
// }
|
635
|
-
// }
|
636
|
-
|
637
586
|
return count;
|
638
587
|
}
|
639
588
|
|
@@ -659,7 +608,7 @@ class TableView {
|
|
659
608
|
ariaTags: this.settings.ariaTags,
|
660
609
|
rtlMode: this.hot.isRtl(),
|
661
610
|
externalRowCalculator: this.hot.getPlugin('autoRowSize') && this.hot.getPlugin('autoRowSize').isEnabled(),
|
662
|
-
table: _classPrivateFieldGet(
|
611
|
+
table: _classPrivateFieldGet(_table, this),
|
663
612
|
isDataViewInstance: () => isRootInstance(this.hot),
|
664
613
|
preventOverflow: () => this.settings.preventOverflow,
|
665
614
|
preventWheel: () => this.settings.preventWheel,
|
@@ -701,12 +650,12 @@ class TableView {
|
|
701
650
|
});
|
702
651
|
}
|
703
652
|
this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
|
704
|
-
_classPrivateFieldSet(
|
653
|
+
_classPrivateFieldSet(_rowHeadersCount, this, headerRenderers.length);
|
705
654
|
if (this.hot.getSettings().ariaTags) {
|
706
655
|
// Update the aria-colcount attribute.
|
707
656
|
// Only needs to be done once after initialization/data update.
|
708
|
-
if (
|
709
|
-
|
657
|
+
if (_assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) === this.hot.countCols()) {
|
658
|
+
_assertClassBrand(_TableView_brand, this, _updateAriaColcount).call(this, _classPrivateFieldGet(_rowHeadersCount, this));
|
710
659
|
}
|
711
660
|
}
|
712
661
|
return headerRenderers;
|
@@ -722,7 +671,7 @@ class TableView {
|
|
722
671
|
});
|
723
672
|
}
|
724
673
|
this.hot.runHooks('afterGetColumnHeaderRenderers', headerRenderers);
|
725
|
-
_classPrivateFieldSet(
|
674
|
+
_classPrivateFieldSet(_columnHeadersCount, this, headerRenderers.length);
|
726
675
|
return headerRenderers;
|
727
676
|
},
|
728
677
|
columnWidth: renderedColumnIndex => {
|
@@ -778,7 +727,7 @@ class TableView {
|
|
778
727
|
};
|
779
728
|
this.hot.listen();
|
780
729
|
this.activeWt = wt;
|
781
|
-
_classPrivateFieldSet(
|
730
|
+
_classPrivateFieldSet(_mouseDown, this, true);
|
782
731
|
this.hot.runHooks('beforeOnCellMouseDown', event, visualCoords, TD, controller);
|
783
732
|
if (isImmediatePropagationStopped(event)) {
|
784
733
|
return;
|
@@ -795,7 +744,7 @@ class TableView {
|
|
795
744
|
onCellContextMenu: (event, coords, TD, wt) => {
|
796
745
|
const visualCoords = this.translateFromRenderableToVisualCoords(coords);
|
797
746
|
this.activeWt = wt;
|
798
|
-
_classPrivateFieldSet(
|
747
|
+
_classPrivateFieldSet(_mouseDown, this, false);
|
799
748
|
if (this.hot.selection.isInProgress()) {
|
800
749
|
this.hot.selection.finish();
|
801
750
|
}
|
@@ -828,7 +777,7 @@ class TableView {
|
|
828
777
|
if (isImmediatePropagationStopped(event)) {
|
829
778
|
return;
|
830
779
|
}
|
831
|
-
if (_classPrivateFieldGet(
|
780
|
+
if (_classPrivateFieldGet(_mouseDown, this)) {
|
832
781
|
handleMouseEvent(event, {
|
833
782
|
coords: visualCoords,
|
834
783
|
selection: this.hot.selection,
|
@@ -1085,7 +1034,7 @@ class TableView {
|
|
1085
1034
|
* @returns {boolean}
|
1086
1035
|
*/
|
1087
1036
|
isMouseDown() {
|
1088
|
-
return _classPrivateFieldGet(
|
1037
|
+
return _classPrivateFieldGet(_mouseDown, this);
|
1089
1038
|
}
|
1090
1039
|
|
1091
1040
|
/**
|
@@ -1279,8 +1228,8 @@ class TableView {
|
|
1279
1228
|
* @param {number} height The table height.
|
1280
1229
|
*/
|
1281
1230
|
setLastSize(width, height) {
|
1282
|
-
_classPrivateFieldSet(
|
1283
|
-
_classPrivateFieldSet(
|
1231
|
+
_classPrivateFieldSet(_lastWidth, this, width);
|
1232
|
+
_classPrivateFieldSet(_lastHeight, this, height);
|
1284
1233
|
}
|
1285
1234
|
|
1286
1235
|
/**
|
@@ -1290,8 +1239,8 @@ class TableView {
|
|
1290
1239
|
*/
|
1291
1240
|
getLastSize() {
|
1292
1241
|
return {
|
1293
|
-
width: _classPrivateFieldGet(
|
1294
|
-
height: _classPrivateFieldGet(
|
1242
|
+
width: _classPrivateFieldGet(_lastWidth, this),
|
1243
|
+
height: _classPrivateFieldGet(_lastHeight, this)
|
1295
1244
|
};
|
1296
1245
|
}
|
1297
1246
|
|
@@ -1373,7 +1322,7 @@ class TableView {
|
|
1373
1322
|
* @returns {number}
|
1374
1323
|
*/
|
1375
1324
|
getColumnHeadersCount() {
|
1376
|
-
return _classPrivateFieldGet(
|
1325
|
+
return _classPrivateFieldGet(_columnHeadersCount, this);
|
1377
1326
|
}
|
1378
1327
|
|
1379
1328
|
/**
|
@@ -1382,7 +1331,7 @@ class TableView {
|
|
1382
1331
|
* @returns {number}
|
1383
1332
|
*/
|
1384
1333
|
getRowHeadersCount() {
|
1385
|
-
return _classPrivateFieldGet(
|
1334
|
+
return _classPrivateFieldGet(_rowHeadersCount, this);
|
1386
1335
|
}
|
1387
1336
|
|
1388
1337
|
/**
|
@@ -1434,11 +1383,16 @@ class TableView {
|
|
1434
1383
|
this.eventManager.destroy();
|
1435
1384
|
}
|
1436
1385
|
}
|
1437
|
-
function
|
1386
|
+
function _getAriaColcount() {
|
1438
1387
|
return parseInt(this.hot.rootElement.getAttribute(A11Y_COLCOUNT()[0]), 10);
|
1439
1388
|
}
|
1440
|
-
|
1441
|
-
|
1389
|
+
/**
|
1390
|
+
* Update the `aria-colcount` attribute by the provided value.
|
1391
|
+
*
|
1392
|
+
* @param {number} delta The number of columns to add or remove to the aria tag.
|
1393
|
+
*/
|
1394
|
+
function _updateAriaColcount(delta) {
|
1395
|
+
const colCount = _assertClassBrand(_TableView_brand, this, _getAriaColcount).call(this) + delta;
|
1442
1396
|
setAttribute(this.hot.rootElement, ...A11Y_COLCOUNT(colCount));
|
1443
1397
|
}
|
1444
1398
|
export default TableView;
|
@@ -6,11 +6,9 @@ var _observer = require("./observer");
|
|
6
6
|
var _utils = require("./utils");
|
7
7
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
8
8
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
9
|
-
function _classPrivateFieldGet(
|
10
|
-
function
|
11
|
-
function
|
12
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
13
|
-
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; } }
|
9
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
10
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
11
|
+
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
12
|
/**
|
15
13
|
* The ChangesObservable module is an object that represents a resource that provides
|
16
14
|
* the ability to observe the changes that happened in the index map indexes during
|
@@ -34,10 +32,7 @@ class ChangesObservable {
|
|
34
32
|
*
|
35
33
|
* @type {ChangesObserver[]}
|
36
34
|
*/
|
37
|
-
_classPrivateFieldInitSpec(this, _observers,
|
38
|
-
writable: true,
|
39
|
-
value: new Set()
|
40
|
-
});
|
35
|
+
_classPrivateFieldInitSpec(this, _observers, new Set());
|
41
36
|
/**
|
42
37
|
* An array with default values that act as a base array that will be compared with
|
43
38
|
* the last saved index state. The changes are generated and immediately send through
|
@@ -46,30 +41,21 @@ class ChangesObservable {
|
|
46
41
|
*
|
47
42
|
* @type {Array}
|
48
43
|
*/
|
49
|
-
_classPrivateFieldInitSpec(this, _indexMatrix,
|
50
|
-
writable: true,
|
51
|
-
value: []
|
52
|
-
});
|
44
|
+
_classPrivateFieldInitSpec(this, _indexMatrix, []);
|
53
45
|
/**
|
54
46
|
* An array that holds the indexes state that is currently valid. The value is changed on every
|
55
47
|
* index mapper cache update.
|
56
48
|
*
|
57
49
|
* @type {Array}
|
58
50
|
*/
|
59
|
-
_classPrivateFieldInitSpec(this, _currentIndexState,
|
60
|
-
writable: true,
|
61
|
-
value: []
|
62
|
-
});
|
51
|
+
_classPrivateFieldInitSpec(this, _currentIndexState, []);
|
63
52
|
/**
|
64
53
|
* The flag determines if the observable is initialized or not. Not initialized object creates
|
65
54
|
* index matrix once while emitting new changes.
|
66
55
|
*
|
67
56
|
* @type {boolean}
|
68
57
|
*/
|
69
|
-
_classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized,
|
70
|
-
writable: true,
|
71
|
-
value: false
|
72
|
-
});
|
58
|
+
_classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized, false);
|
73
59
|
/**
|
74
60
|
* The initial index value allows control from what value the index matrix array will be created.
|
75
61
|
* Changing that value changes how the array diff generates the changes for the initial data
|
@@ -81,11 +67,8 @@ class ChangesObservable {
|
|
81
67
|
*
|
82
68
|
* @type {boolean}
|
83
69
|
*/
|
84
|
-
_classPrivateFieldInitSpec(this, _initialIndexValue,
|
85
|
-
|
86
|
-
value: false
|
87
|
-
});
|
88
|
-
_classPrivateFieldSet(this, _initialIndexValue, initialIndexValue !== null && initialIndexValue !== void 0 ? initialIndexValue : false);
|
70
|
+
_classPrivateFieldInitSpec(this, _initialIndexValue, false);
|
71
|
+
_classPrivateFieldSet(_initialIndexValue, this, initialIndexValue !== null && initialIndexValue !== void 0 ? initialIndexValue : false);
|
89
72
|
}
|
90
73
|
|
91
74
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -114,11 +97,11 @@ class ChangesObservable {
|
|
114
97
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
115
98
|
createObserver() {
|
116
99
|
const observer = new _observer.ChangesObserver();
|
117
|
-
_classPrivateFieldGet(
|
100
|
+
_classPrivateFieldGet(_observers, this).add(observer);
|
118
101
|
observer.addLocalHook('unsubscribe', () => {
|
119
|
-
_classPrivateFieldGet(
|
102
|
+
_classPrivateFieldGet(_observers, this).delete(observer);
|
120
103
|
});
|
121
|
-
observer._writeInitialChanges((0, _utils.arrayDiff)(_classPrivateFieldGet(
|
104
|
+
observer._writeInitialChanges((0, _utils.arrayDiff)(_classPrivateFieldGet(_indexMatrix, this), _classPrivateFieldGet(_currentIndexState, this)));
|
122
105
|
return observer;
|
123
106
|
}
|
124
107
|
|
@@ -130,21 +113,21 @@ class ChangesObservable {
|
|
130
113
|
* @param {Array} indexesState An array with index map state.
|
131
114
|
*/
|
132
115
|
emit(indexesState) {
|
133
|
-
let currentIndexState = _classPrivateFieldGet(
|
134
|
-
if (!_classPrivateFieldGet(
|
116
|
+
let currentIndexState = _classPrivateFieldGet(_currentIndexState, this);
|
117
|
+
if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this) || _classPrivateFieldGet(_indexMatrix, this).length !== indexesState.length) {
|
135
118
|
if (indexesState.length === 0) {
|
136
|
-
indexesState = new Array(currentIndexState.length).fill(_classPrivateFieldGet(
|
119
|
+
indexesState = new Array(currentIndexState.length).fill(_classPrivateFieldGet(_initialIndexValue, this));
|
137
120
|
} else {
|
138
|
-
_classPrivateFieldSet(
|
121
|
+
_classPrivateFieldSet(_indexMatrix, this, new Array(indexesState.length).fill(_classPrivateFieldGet(_initialIndexValue, this)));
|
139
122
|
}
|
140
|
-
if (!_classPrivateFieldGet(
|
141
|
-
_classPrivateFieldSet(
|
142
|
-
currentIndexState = _classPrivateFieldGet(
|
123
|
+
if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this)) {
|
124
|
+
_classPrivateFieldSet(_isMatrixIndexesInitialized, this, true);
|
125
|
+
currentIndexState = _classPrivateFieldGet(_indexMatrix, this);
|
143
126
|
}
|
144
127
|
}
|
145
128
|
const changes = (0, _utils.arrayDiff)(currentIndexState, indexesState);
|
146
|
-
_classPrivateFieldGet(
|
147
|
-
_classPrivateFieldSet(
|
129
|
+
_classPrivateFieldGet(_observers, this).forEach(observer => observer._write(changes));
|
130
|
+
_classPrivateFieldSet(_currentIndexState, this, indexesState);
|
148
131
|
}
|
149
132
|
}
|
150
133
|
exports.ChangesObservable = ChangesObservable;
|
@@ -1,11 +1,9 @@
|
|
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
|
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; } }
|
4
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
5
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
6
|
+
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"); }
|
9
7
|
import { ChangesObserver } from "./observer.mjs";
|
10
8
|
import { arrayDiff } from "./utils.mjs";
|
11
9
|
/**
|
@@ -31,10 +29,7 @@ export class ChangesObservable {
|
|
31
29
|
*
|
32
30
|
* @type {ChangesObserver[]}
|
33
31
|
*/
|
34
|
-
_classPrivateFieldInitSpec(this, _observers,
|
35
|
-
writable: true,
|
36
|
-
value: new Set()
|
37
|
-
});
|
32
|
+
_classPrivateFieldInitSpec(this, _observers, new Set());
|
38
33
|
/**
|
39
34
|
* An array with default values that act as a base array that will be compared with
|
40
35
|
* the last saved index state. The changes are generated and immediately send through
|
@@ -43,30 +38,21 @@ export class ChangesObservable {
|
|
43
38
|
*
|
44
39
|
* @type {Array}
|
45
40
|
*/
|
46
|
-
_classPrivateFieldInitSpec(this, _indexMatrix,
|
47
|
-
writable: true,
|
48
|
-
value: []
|
49
|
-
});
|
41
|
+
_classPrivateFieldInitSpec(this, _indexMatrix, []);
|
50
42
|
/**
|
51
43
|
* An array that holds the indexes state that is currently valid. The value is changed on every
|
52
44
|
* index mapper cache update.
|
53
45
|
*
|
54
46
|
* @type {Array}
|
55
47
|
*/
|
56
|
-
_classPrivateFieldInitSpec(this, _currentIndexState,
|
57
|
-
writable: true,
|
58
|
-
value: []
|
59
|
-
});
|
48
|
+
_classPrivateFieldInitSpec(this, _currentIndexState, []);
|
60
49
|
/**
|
61
50
|
* The flag determines if the observable is initialized or not. Not initialized object creates
|
62
51
|
* index matrix once while emitting new changes.
|
63
52
|
*
|
64
53
|
* @type {boolean}
|
65
54
|
*/
|
66
|
-
_classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized,
|
67
|
-
writable: true,
|
68
|
-
value: false
|
69
|
-
});
|
55
|
+
_classPrivateFieldInitSpec(this, _isMatrixIndexesInitialized, false);
|
70
56
|
/**
|
71
57
|
* The initial index value allows control from what value the index matrix array will be created.
|
72
58
|
* Changing that value changes how the array diff generates the changes for the initial data
|
@@ -78,11 +64,8 @@ export class ChangesObservable {
|
|
78
64
|
*
|
79
65
|
* @type {boolean}
|
80
66
|
*/
|
81
|
-
_classPrivateFieldInitSpec(this, _initialIndexValue,
|
82
|
-
|
83
|
-
value: false
|
84
|
-
});
|
85
|
-
_classPrivateFieldSet(this, _initialIndexValue, initialIndexValue !== null && initialIndexValue !== void 0 ? initialIndexValue : false);
|
67
|
+
_classPrivateFieldInitSpec(this, _initialIndexValue, false);
|
68
|
+
_classPrivateFieldSet(_initialIndexValue, this, initialIndexValue !== null && initialIndexValue !== void 0 ? initialIndexValue : false);
|
86
69
|
}
|
87
70
|
|
88
71
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -111,11 +94,11 @@ export class ChangesObservable {
|
|
111
94
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
112
95
|
createObserver() {
|
113
96
|
const observer = new ChangesObserver();
|
114
|
-
_classPrivateFieldGet(
|
97
|
+
_classPrivateFieldGet(_observers, this).add(observer);
|
115
98
|
observer.addLocalHook('unsubscribe', () => {
|
116
|
-
_classPrivateFieldGet(
|
99
|
+
_classPrivateFieldGet(_observers, this).delete(observer);
|
117
100
|
});
|
118
|
-
observer._writeInitialChanges(arrayDiff(_classPrivateFieldGet(
|
101
|
+
observer._writeInitialChanges(arrayDiff(_classPrivateFieldGet(_indexMatrix, this), _classPrivateFieldGet(_currentIndexState, this)));
|
119
102
|
return observer;
|
120
103
|
}
|
121
104
|
|
@@ -127,20 +110,20 @@ export class ChangesObservable {
|
|
127
110
|
* @param {Array} indexesState An array with index map state.
|
128
111
|
*/
|
129
112
|
emit(indexesState) {
|
130
|
-
let currentIndexState = _classPrivateFieldGet(
|
131
|
-
if (!_classPrivateFieldGet(
|
113
|
+
let currentIndexState = _classPrivateFieldGet(_currentIndexState, this);
|
114
|
+
if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this) || _classPrivateFieldGet(_indexMatrix, this).length !== indexesState.length) {
|
132
115
|
if (indexesState.length === 0) {
|
133
|
-
indexesState = new Array(currentIndexState.length).fill(_classPrivateFieldGet(
|
116
|
+
indexesState = new Array(currentIndexState.length).fill(_classPrivateFieldGet(_initialIndexValue, this));
|
134
117
|
} else {
|
135
|
-
_classPrivateFieldSet(
|
118
|
+
_classPrivateFieldSet(_indexMatrix, this, new Array(indexesState.length).fill(_classPrivateFieldGet(_initialIndexValue, this)));
|
136
119
|
}
|
137
|
-
if (!_classPrivateFieldGet(
|
138
|
-
_classPrivateFieldSet(
|
139
|
-
currentIndexState = _classPrivateFieldGet(
|
120
|
+
if (!_classPrivateFieldGet(_isMatrixIndexesInitialized, this)) {
|
121
|
+
_classPrivateFieldSet(_isMatrixIndexesInitialized, this, true);
|
122
|
+
currentIndexState = _classPrivateFieldGet(_indexMatrix, this);
|
140
123
|
}
|
141
124
|
}
|
142
125
|
const changes = arrayDiff(currentIndexState, indexesState);
|
143
|
-
_classPrivateFieldGet(
|
144
|
-
_classPrivateFieldSet(
|
126
|
+
_classPrivateFieldGet(_observers, this).forEach(observer => observer._write(changes));
|
127
|
+
_classPrivateFieldSet(_currentIndexState, this, indexesState);
|
145
128
|
}
|
146
129
|
}
|