handsontable 14.0.0-next-07c0a60-20231107 → 14.0.0-next-7ee54cb-20231108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/SheetClip/SheetClip.js +2 -2
- package/3rdparty/SheetClip/SheetClip.mjs +2 -2
- package/3rdparty/autoResize/autoResize.js +2 -2
- package/3rdparty/autoResize/autoResize.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
- package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
- package/3rdparty/walkontable/src/cell/coords.js +7 -5
- package/3rdparty/walkontable/src/cell/coords.mjs +7 -5
- package/3rdparty/walkontable/src/core/clone.js +6 -0
- package/3rdparty/walkontable/src/core/clone.mjs +6 -0
- package/3rdparty/walkontable/src/event.js +125 -74
- package/3rdparty/walkontable/src/event.mjs +125 -74
- package/3rdparty/walkontable/src/filter/column.js +16 -0
- package/3rdparty/walkontable/src/filter/column.mjs +16 -0
- package/3rdparty/walkontable/src/filter/row.js +16 -0
- package/3rdparty/walkontable/src/filter/row.mjs +16 -0
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/_base.js +12 -5
- package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
- package/3rdparty/walkontable/src/renderer/cells.js +6 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/rows.js +5 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/table.js +24 -17
- package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
- package/3rdparty/walkontable/src/scroll.js +2 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -2
- package/3rdparty/walkontable/src/selection/border/border.js +1 -1
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +10 -10
- package/3rdparty/walkontable/src/settings.mjs +10 -10
- package/3rdparty/walkontable/src/table.js +3 -3
- package/3rdparty/walkontable/src/table.mjs +3 -3
- package/3rdparty/walkontable/src/utils/column.js +19 -4
- package/3rdparty/walkontable/src/utils/column.mjs +19 -4
- package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
- package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
- package/3rdparty/walkontable/src/utils/row.js +14 -2
- package/3rdparty/walkontable/src/utils/row.mjs +14 -2
- package/3rdparty/walkontable/src/viewport.js +9 -9
- package/3rdparty/walkontable/src/viewport.mjs +9 -9
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +31 -26
- package/core.mjs +31 -26
- package/dataMap/dataMap.js +99 -90
- package/dataMap/dataMap.mjs +99 -90
- package/dataMap/dataSource.js +14 -8
- package/dataMap/dataSource.mjs +14 -8
- package/dataMap/metaManager/lazyFactoryMap.js +19 -7
- package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
- package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
- package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
- package/dataMap/metaManager/metaSchema.js +55 -55
- package/dataMap/metaManager/metaSchema.mjs +55 -55
- package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
- package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
- package/dataMap/metaManager/utils.js +2 -2
- package/dataMap/metaManager/utils.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +7337 -6394
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +154 -154
- package/dist/handsontable.js +7336 -6393
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +28 -28
- package/editorManager.js +105 -95
- package/editorManager.mjs +105 -95
- package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
- package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
- package/editors/baseEditor/baseEditor.js +23 -26
- package/editors/baseEditor/baseEditor.mjs +23 -26
- package/editors/dateEditor/dateEditor.js +24 -15
- package/editors/dateEditor/dateEditor.mjs +24 -15
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
- package/editors/handsontableEditor/handsontableEditor.js +4 -4
- package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
- package/editors/textEditor/textEditor.js +23 -17
- package/editors/textEditor/textEditor.mjs +24 -18
- package/eventManager.js +8 -0
- package/eventManager.mjs +8 -0
- package/helpers/array.js +2 -2
- package/helpers/array.mjs +2 -2
- package/helpers/dom/element.js +7 -7
- package/helpers/dom/element.mjs +7 -7
- package/helpers/function.js +1 -1
- package/helpers/function.mjs +1 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +4 -4
- package/helpers/object.mjs +4 -4
- package/helpers/string.js +1 -1
- package/helpers/string.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.d.ts +0 -2
- package/pluginHooks.js +12 -3
- package/pluginHooks.mjs +12 -3
- package/plugins/autoColumnSize/autoColumnSize.js +141 -130
- package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
- package/plugins/autoRowSize/autoRowSize.js +112 -125
- package/plugins/autoRowSize/autoRowSize.mjs +110 -123
- package/plugins/autofill/autofill.js +98 -102
- package/plugins/autofill/autofill.mjs +97 -101
- package/plugins/base/base.js +61 -28
- package/plugins/base/base.mjs +60 -28
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
- package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
- package/plugins/columnSorting/columnSorting.js +107 -99
- package/plugins/columnSorting/columnSorting.mjs +106 -98
- package/plugins/columnSorting/columnStatesManager.js +12 -6
- package/plugins/columnSorting/columnStatesManager.mjs +12 -6
- package/plugins/columnSummary/columnSummary.js +71 -58
- package/plugins/columnSummary/columnSummary.mjs +70 -57
- package/plugins/columnSummary/endpoints.js +20 -14
- package/plugins/columnSummary/endpoints.mjs +20 -14
- package/plugins/comments/commentEditor.js +30 -2
- package/plugins/comments/commentEditor.mjs +30 -2
- package/plugins/comments/comments.js +158 -169
- package/plugins/comments/comments.mjs +157 -168
- package/plugins/comments/displaySwitch.js +7 -3
- package/plugins/comments/displaySwitch.mjs +7 -3
- package/plugins/contextMenu/commandExecutor.js +15 -2
- package/plugins/contextMenu/commandExecutor.mjs +15 -2
- package/plugins/contextMenu/contextMenu.js +96 -102
- package/plugins/contextMenu/contextMenu.mjs +95 -101
- package/plugins/contextMenu/itemsFactory.js +19 -4
- package/plugins/contextMenu/itemsFactory.mjs +19 -4
- package/plugins/contextMenu/menu/cursor.js +36 -0
- package/plugins/contextMenu/menu/cursor.mjs +36 -0
- package/plugins/contextMenu/menu/menu.js +57 -5
- package/plugins/contextMenu/menu/menu.mjs +57 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +74 -75
- package/plugins/copyPaste/copyPaste.mjs +74 -75
- package/plugins/customBorders/customBorders.js +57 -50
- package/plugins/customBorders/customBorders.mjs +56 -49
- package/plugins/dragToScroll/dragToScroll.js +50 -54
- package/plugins/dragToScroll/dragToScroll.mjs +49 -52
- package/plugins/dropdownMenu/dropdownMenu.js +136 -131
- package/plugins/dropdownMenu/dropdownMenu.mjs +136 -131
- package/plugins/exportFile/dataProvider.js +7 -2
- package/plugins/exportFile/dataProvider.mjs +7 -2
- package/plugins/exportFile/exportFile.js +1 -1
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +14 -6
- package/plugins/exportFile/types/_base.mjs +14 -6
- package/plugins/filters/component/actionBar.js +9 -0
- package/plugins/filters/component/actionBar.mjs +9 -0
- package/plugins/filters/component/condition.js +13 -0
- package/plugins/filters/component/condition.mjs +13 -0
- package/plugins/filters/component/operators.js +9 -0
- package/plugins/filters/component/operators.mjs +9 -0
- package/plugins/filters/component/value.js +9 -0
- package/plugins/filters/component/value.mjs +9 -0
- package/plugins/filters/conditionCollection.js +9 -4
- package/plugins/filters/conditionCollection.mjs +9 -4
- package/plugins/filters/conditionUpdateObserver.js +53 -42
- package/plugins/filters/conditionUpdateObserver.mjs +53 -42
- package/plugins/filters/dataFilter.js +9 -3
- package/plugins/filters/dataFilter.mjs +9 -3
- package/plugins/filters/filters.js +184 -189
- package/plugins/filters/filters.mjs +182 -187
- package/plugins/filters/ui/_base.js +1 -1
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/utils.js +1 -1
- package/plugins/filters/utils.mjs +1 -1
- package/plugins/formulas/engine/settings.js +1 -1
- package/plugins/formulas/engine/settings.mjs +1 -1
- package/plugins/formulas/formulas.js +684 -602
- package/plugins/formulas/formulas.mjs +682 -600
- package/plugins/hiddenColumns/hiddenColumns.js +174 -169
- package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
- package/plugins/hiddenRows/hiddenRows.js +170 -165
- package/plugins/hiddenRows/hiddenRows.mjs +169 -164
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +66 -53
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
- package/plugins/manualColumnMove/manualColumnMove.js +287 -232
- package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
- package/plugins/manualColumnMove/ui/_base.js +9 -3
- package/plugins/manualColumnMove/ui/_base.mjs +9 -3
- package/plugins/manualColumnResize/manualColumnResize.js +291 -246
- package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
- package/plugins/manualRowMove/manualRowMove.js +223 -208
- package/plugins/manualRowMove/manualRowMove.mjs +222 -207
- package/plugins/manualRowMove/ui/_base.js +10 -5
- package/plugins/manualRowMove/ui/_base.mjs +10 -5
- package/plugins/manualRowResize/manualRowResize.js +254 -209
- package/plugins/manualRowResize/manualRowResize.mjs +253 -207
- package/plugins/mergeCells/calculations/autofill.js +9 -3
- package/plugins/mergeCells/calculations/autofill.mjs +9 -3
- package/plugins/mergeCells/calculations/selection.js +10 -4
- package/plugins/mergeCells/calculations/selection.mjs +10 -4
- package/plugins/mergeCells/cellCoords.js +16 -6
- package/plugins/mergeCells/cellCoords.mjs +16 -6
- package/plugins/mergeCells/cellsCollection.js +10 -4
- package/plugins/mergeCells/cellsCollection.mjs +10 -4
- package/plugins/mergeCells/mergeCells.js +582 -502
- package/plugins/mergeCells/mergeCells.mjs +580 -500
- package/plugins/multiColumnSorting/multiColumnSorting.js +15 -11
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +15 -11
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
- package/plugins/nestedHeaders/nestedHeaders.js +542 -499
- package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
- package/plugins/nestedHeaders/stateManager/index.js +1 -1
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +21 -15
- package/plugins/nestedRows/data/dataManager.mjs +21 -15
- package/plugins/nestedRows/nestedRows.js +328 -279
- package/plugins/nestedRows/nestedRows.mjs +327 -278
- package/plugins/nestedRows/ui/_base.js +7 -1
- package/plugins/nestedRows/ui/_base.mjs +7 -1
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +28 -18
- package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
- package/plugins/nestedRows/utils/rowMoveController.js +12 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
- package/plugins/persistentState/persistentState.js +14 -11
- package/plugins/persistentState/persistentState.mjs +14 -11
- package/plugins/persistentState/storage.js +11 -6
- package/plugins/persistentState/storage.mjs +11 -6
- package/plugins/registry.js +2 -2
- package/plugins/registry.mjs +2 -2
- package/plugins/search/search.js +57 -46
- package/plugins/search/search.mjs +56 -45
- package/plugins/touchScroll/touchScroll.js +102 -100
- package/plugins/touchScroll/touchScroll.mjs +100 -98
- package/plugins/trimRows/trimRows.js +33 -28
- package/plugins/trimRows/trimRows.mjs +32 -27
- package/plugins/undoRedo/undoRedo.js +2 -2
- package/plugins/undoRedo/undoRedo.mjs +2 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
- package/renderers/baseRenderer/baseRenderer.js +2 -2
- package/renderers/baseRenderer/baseRenderer.mjs +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
- package/renderers/dateRenderer/dateRenderer.js +4 -4
- package/renderers/dateRenderer/dateRenderer.mjs +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
- package/renderers/htmlRenderer/htmlRenderer.js +4 -4
- package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
- package/renderers/numericRenderer/numericRenderer.js +3 -3
- package/renderers/numericRenderer/numericRenderer.mjs +3 -3
- package/renderers/passwordRenderer/passwordRenderer.js +3 -3
- package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
- package/renderers/selectRenderer/selectRenderer.js +4 -4
- package/renderers/selectRenderer/selectRenderer.mjs +4 -4
- package/renderers/textRenderer/textRenderer.js +5 -5
- package/renderers/textRenderer/textRenderer.mjs +5 -5
- package/renderers/timeRenderer/timeRenderer.js +3 -3
- package/renderers/timeRenderer/timeRenderer.mjs +3 -3
- package/selection/highlight/highlight.js +1 -4
- package/selection/highlight/highlight.mjs +1 -4
- package/selection/range.js +12 -2
- package/selection/range.mjs +12 -2
- package/selection/selection.js +28 -10
- package/selection/selection.mjs +28 -10
- package/selection/utils.js +24 -14
- package/selection/utils.mjs +25 -15
- package/shortcuts/manager.js +1 -1
- package/shortcuts/manager.mjs +1 -1
- package/tableView.js +208 -200
- package/tableView.mjs +208 -200
- package/translations/changesObservable/utils.js +2 -2
- package/translations/changesObservable/utils.mjs +2 -2
- package/translations/indexMapper.js +25 -22
- package/translations/indexMapper.mjs +25 -22
- package/translations/mapCollections/aggregatedCollection.js +8 -2
- package/translations/mapCollections/aggregatedCollection.mjs +8 -2
- package/translations/mapCollections/mapCollection.js +5 -2
- package/translations/mapCollections/mapCollection.mjs +5 -2
- package/translations/maps/indexMap.js +6 -1
- package/translations/maps/indexMap.mjs +6 -1
- package/translations/maps/utils/physicallyIndexed.js +2 -2
- package/translations/maps/utils/physicallyIndexed.mjs +2 -2
- package/utils/dataStructures/linkedList.js +10 -6
- package/utils/dataStructures/linkedList.mjs +10 -6
- package/utils/dataStructures/queue.js +1 -1
- package/utils/dataStructures/queue.mjs +1 -1
- package/utils/dataStructures/stack.js +1 -1
- package/utils/dataStructures/stack.mjs +1 -1
- package/utils/ghostTable.js +2 -2
- package/utils/ghostTable.mjs +2 -2
- package/utils/interval.js +73 -36
- package/utils/interval.mjs +73 -36
- package/utils/parseTable.js +1 -1
- package/utils/parseTable.mjs +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
- package/validators/dateValidator/dateValidator.js +1 -1
- package/validators/dateValidator/dateValidator.mjs +1 -1
- package/validators/numericValidator/numericValidator.js +1 -1
- package/validators/numericValidator/numericValidator.mjs +1 -1
@@ -2,21 +2,32 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
|
+
require("core-js/modules/es.error.cause.js");
|
5
6
|
var _base = require("../base");
|
6
7
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
7
8
|
var _array = require("../../helpers/array");
|
8
9
|
var _element = require("../../helpers/dom/element");
|
9
10
|
var _event = require("../../helpers/dom/event");
|
10
11
|
var _number = require("../../helpers/number");
|
11
|
-
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
12
12
|
var _backlight = _interopRequireDefault(require("./ui/backlight"));
|
13
13
|
var _guideline = _interopRequireDefault(require("./ui/guideline"));
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
16
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
17
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
18
|
+
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; }
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
20
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
21
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
22
|
+
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; } }
|
23
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
24
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
25
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
26
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
15
27
|
_pluginHooks.default.getSingleton().register('beforeColumnMove');
|
16
28
|
_pluginHooks.default.getSingleton().register('afterColumnMove');
|
17
29
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'manualColumnMove';
|
18
30
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 120;
|
19
|
-
const privatePool = new WeakMap();
|
20
31
|
const CSS_PLUGIN = 'ht__manualColumnMove';
|
21
32
|
const CSS_SHOW_UI = 'show-ui';
|
22
33
|
const CSS_ON_MOVING = 'on-moving--columns';
|
@@ -49,56 +60,148 @@ const CSS_AFTER_SELECTION = 'after-selection--columns';
|
|
49
60
|
* @class ManualColumnMove
|
50
61
|
* @plugin ManualColumnMove
|
51
62
|
*/
|
63
|
+
var _columnsToMove = /*#__PURE__*/new WeakMap();
|
64
|
+
var _countCols = /*#__PURE__*/new WeakMap();
|
65
|
+
var _pressed = /*#__PURE__*/new WeakMap();
|
66
|
+
var _target = /*#__PURE__*/new WeakMap();
|
67
|
+
var _cachedDropIndex = /*#__PURE__*/new WeakMap();
|
68
|
+
var _hoveredColumn = /*#__PURE__*/new WeakMap();
|
69
|
+
var _rootElementOffset = /*#__PURE__*/new WeakMap();
|
70
|
+
var _hasRowHeaders = /*#__PURE__*/new WeakMap();
|
71
|
+
var _fixedColumnsStart = /*#__PURE__*/new WeakMap();
|
72
|
+
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
73
|
+
var _onMouseMove = /*#__PURE__*/new WeakSet();
|
74
|
+
var _onBeforeOnCellMouseOver = /*#__PURE__*/new WeakSet();
|
75
|
+
var _onMouseUp = /*#__PURE__*/new WeakSet();
|
76
|
+
var _onAfterScrollVertically = /*#__PURE__*/new WeakSet();
|
77
|
+
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
52
78
|
class ManualColumnMove extends _base.BasePlugin {
|
53
|
-
|
54
|
-
|
55
|
-
}
|
56
|
-
static get PLUGIN_PRIORITY() {
|
57
|
-
return PLUGIN_PRIORITY;
|
58
|
-
}
|
59
|
-
constructor(hotInstance) {
|
60
|
-
super(hotInstance);
|
61
|
-
|
79
|
+
constructor() {
|
80
|
+
super(...arguments);
|
62
81
|
/**
|
63
|
-
*
|
82
|
+
* Callback for the `afterLoadData` hook.
|
83
|
+
*
|
84
|
+
* @private
|
64
85
|
*/
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
target: {
|
71
|
-
eventPageX: void 0,
|
72
|
-
coords: void 0,
|
73
|
-
TD: void 0,
|
74
|
-
col: void 0
|
75
|
-
},
|
76
|
-
cachedDropIndex: void 0
|
77
|
-
});
|
78
|
-
|
86
|
+
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
87
|
+
/**
|
88
|
+
* `afterScrollHorizontally` hook callback. Fired the table was scrolled horizontally.
|
89
|
+
*/
|
90
|
+
_classPrivateMethodInitSpec(this, _onAfterScrollVertically);
|
79
91
|
/**
|
80
|
-
*
|
92
|
+
* `onMouseUp` hook callback.
|
93
|
+
*/
|
94
|
+
_classPrivateMethodInitSpec(this, _onMouseUp);
|
95
|
+
/**
|
96
|
+
* 'beforeOnCellMouseOver' hook callback. Fired when pointer was over cell.
|
81
97
|
*
|
82
|
-
* @
|
83
|
-
* @
|
98
|
+
* @param {MouseEvent} event `mouseover` event properties.
|
99
|
+
* @param {CellCoords} coords Visual cell coordinates where was fired event.
|
100
|
+
* @param {HTMLElement} TD Cell represented as HTMLElement.
|
101
|
+
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
102
|
+
* a boolean value that allows or disallows changing the selection for that particular area.
|
84
103
|
*/
|
85
|
-
this
|
104
|
+
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseOver);
|
105
|
+
/**
|
106
|
+
* 'mouseMove' event callback. Fired when pointer move on document.documentElement.
|
107
|
+
*
|
108
|
+
* @param {MouseEvent} event `mousemove` event properties.
|
109
|
+
*/
|
110
|
+
_classPrivateMethodInitSpec(this, _onMouseMove);
|
111
|
+
/**
|
112
|
+
* Change the behavior of selection / dragging.
|
113
|
+
*
|
114
|
+
* @param {MouseEvent} event `mousedown` event properties.
|
115
|
+
* @param {CellCoords} coords Visual cell coordinates where was fired event.
|
116
|
+
* @param {HTMLElement} TD Cell represented as HTMLElement.
|
117
|
+
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
118
|
+
* a boolean value that allows or disallows changing the selection for that particular area.
|
119
|
+
*/
|
120
|
+
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
86
121
|
/**
|
87
122
|
* Backlight UI object.
|
88
123
|
*
|
89
124
|
* @private
|
90
125
|
* @type {object}
|
91
126
|
*/
|
92
|
-
this
|
127
|
+
_defineProperty(this, "backlight", new _backlight.default(this.hot));
|
93
128
|
/**
|
94
129
|
* Guideline UI object.
|
95
130
|
*
|
96
131
|
* @private
|
97
132
|
* @type {object}
|
98
133
|
*/
|
99
|
-
this
|
134
|
+
_defineProperty(this, "guideline", new _guideline.default(this.hot));
|
135
|
+
/**
|
136
|
+
* @type {number[]}
|
137
|
+
*/
|
138
|
+
_classPrivateFieldInitSpec(this, _columnsToMove, {
|
139
|
+
writable: true,
|
140
|
+
value: []
|
141
|
+
});
|
142
|
+
/**
|
143
|
+
* @type {number}
|
144
|
+
*/
|
145
|
+
_classPrivateFieldInitSpec(this, _countCols, {
|
146
|
+
writable: true,
|
147
|
+
value: 0
|
148
|
+
});
|
149
|
+
/**
|
150
|
+
* @type {boolean}
|
151
|
+
*/
|
152
|
+
_classPrivateFieldInitSpec(this, _pressed, {
|
153
|
+
writable: true,
|
154
|
+
value: false
|
155
|
+
});
|
156
|
+
/**
|
157
|
+
* @type {object}
|
158
|
+
*/
|
159
|
+
_classPrivateFieldInitSpec(this, _target, {
|
160
|
+
writable: true,
|
161
|
+
value: {}
|
162
|
+
});
|
163
|
+
/**
|
164
|
+
* @type {number}
|
165
|
+
*/
|
166
|
+
_classPrivateFieldInitSpec(this, _cachedDropIndex, {
|
167
|
+
writable: true,
|
168
|
+
value: void 0
|
169
|
+
});
|
170
|
+
/**
|
171
|
+
* @type {number}
|
172
|
+
*/
|
173
|
+
_classPrivateFieldInitSpec(this, _hoveredColumn, {
|
174
|
+
writable: true,
|
175
|
+
value: void 0
|
176
|
+
});
|
177
|
+
/**
|
178
|
+
* @type {number}
|
179
|
+
*/
|
180
|
+
_classPrivateFieldInitSpec(this, _rootElementOffset, {
|
181
|
+
writable: true,
|
182
|
+
value: void 0
|
183
|
+
});
|
184
|
+
/**
|
185
|
+
* @type {boolean}
|
186
|
+
*/
|
187
|
+
_classPrivateFieldInitSpec(this, _hasRowHeaders, {
|
188
|
+
writable: true,
|
189
|
+
value: void 0
|
190
|
+
});
|
191
|
+
/**
|
192
|
+
* @type {number}
|
193
|
+
*/
|
194
|
+
_classPrivateFieldInitSpec(this, _fixedColumnsStart, {
|
195
|
+
writable: true,
|
196
|
+
value: void 0
|
197
|
+
});
|
198
|
+
}
|
199
|
+
static get PLUGIN_KEY() {
|
200
|
+
return PLUGIN_KEY;
|
201
|
+
}
|
202
|
+
static get PLUGIN_PRIORITY() {
|
203
|
+
return PLUGIN_PRIORITY;
|
100
204
|
}
|
101
|
-
|
102
205
|
/**
|
103
206
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
104
207
|
* hook and if it returns `true` then the {@link ManualColumnMove#enablePlugin} method is called.
|
@@ -118,14 +221,23 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
118
221
|
return;
|
119
222
|
}
|
120
223
|
this.addHook('beforeOnCellMouseDown', function () {
|
121
|
-
|
224
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
225
|
+
args[_key] = arguments[_key];
|
226
|
+
}
|
227
|
+
return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
|
122
228
|
});
|
123
229
|
this.addHook('beforeOnCellMouseOver', function () {
|
124
|
-
|
230
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
231
|
+
args[_key2] = arguments[_key2];
|
232
|
+
}
|
233
|
+
return _classPrivateMethodGet(_this, _onBeforeOnCellMouseOver, _onBeforeOnCellMouseOver2).call(_this, ...args);
|
125
234
|
});
|
126
|
-
this.addHook('afterScrollVertically', () => this.
|
235
|
+
this.addHook('afterScrollVertically', () => _classPrivateMethodGet(this, _onAfterScrollVertically, _onAfterScrollVertically2).call(this));
|
127
236
|
this.addHook('afterLoadData', function () {
|
128
|
-
|
237
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
238
|
+
args[_key3] = arguments[_key3];
|
239
|
+
}
|
240
|
+
return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
|
129
241
|
});
|
130
242
|
this.buildPluginUI();
|
131
243
|
this.registerEvents();
|
@@ -184,11 +296,10 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
184
296
|
* @returns {boolean}
|
185
297
|
*/
|
186
298
|
moveColumns(columns, finalIndex) {
|
187
|
-
const
|
188
|
-
const dropIndex = priv.cachedDropIndex;
|
299
|
+
const dropIndex = _classPrivateFieldGet(this, _cachedDropIndex);
|
189
300
|
const movePossible = this.isMovePossible(columns, finalIndex);
|
190
301
|
const beforeMoveHook = this.hot.runHooks('beforeColumnMove', columns, finalIndex, dropIndex, movePossible);
|
191
|
-
|
302
|
+
_classPrivateFieldSet(this, _cachedDropIndex, undefined);
|
192
303
|
if (beforeMoveHook === false) {
|
193
304
|
return;
|
194
305
|
}
|
@@ -226,8 +337,7 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
226
337
|
*/
|
227
338
|
dragColumns(columns, dropIndex) {
|
228
339
|
const finalIndex = this.countFinalIndex(columns, dropIndex);
|
229
|
-
|
230
|
-
priv.cachedDropIndex = dropIndex;
|
340
|
+
_classPrivateFieldSet(this, _cachedDropIndex, dropIndex);
|
231
341
|
return this.moveColumns(columns, finalIndex);
|
232
342
|
}
|
233
343
|
|
@@ -318,7 +428,7 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
318
428
|
const pluginSettings = this.hot.getSettings()[PLUGIN_KEY];
|
319
429
|
if (Array.isArray(pluginSettings)) {
|
320
430
|
this.moveColumns(pluginSettings, 0);
|
321
|
-
} else if (pluginSettings !==
|
431
|
+
} else if (pluginSettings !== undefined) {
|
322
432
|
const persistentState = this.persistentStateLoad();
|
323
433
|
if (persistentState.length) {
|
324
434
|
this.moveColumns(persistentState, 0);
|
@@ -382,9 +492,8 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
382
492
|
* @private
|
383
493
|
*/
|
384
494
|
refreshPositions() {
|
385
|
-
const priv = privatePool.get(this);
|
386
495
|
const firstVisible = this.hot.view.getFirstFullyVisibleColumn();
|
387
|
-
if (this.isFixedColumnsStart(
|
496
|
+
if (this.isFixedColumnsStart(_classPrivateFieldGet(this, _hoveredColumn)) && firstVisible > 0) {
|
388
497
|
this.hot.scrollViewportTo({
|
389
498
|
col: this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1)
|
390
499
|
});
|
@@ -392,7 +501,7 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
392
501
|
const wtTable = this.hot.view._wt.wtTable;
|
393
502
|
const scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;
|
394
503
|
const scrollStart = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;
|
395
|
-
let tdOffsetStart = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0,
|
504
|
+
let tdOffsetStart = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, _classPrivateFieldGet(this, _hoveredColumn) - 1);
|
396
505
|
const hiderWidth = wtTable.hider.offsetWidth;
|
397
506
|
const tbodyOffsetLeft = wtTable.TBODY.offsetLeft;
|
398
507
|
const backlightElemMarginStart = this.backlight.getOffset().start;
|
@@ -402,35 +511,35 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
402
511
|
if (this.hot.isRtl()) {
|
403
512
|
const rootWindow = this.hot.rootWindow;
|
404
513
|
const containerWidth = (0, _element.outerWidth)(this.hot.rootElement);
|
405
|
-
const gridMostRightPos = rootWindow.innerWidth -
|
406
|
-
mouseOffsetStart = rootWindow.innerWidth -
|
514
|
+
const gridMostRightPos = rootWindow.innerWidth - _classPrivateFieldGet(this, _rootElementOffset) - containerWidth;
|
515
|
+
mouseOffsetStart = rootWindow.innerWidth - _classPrivateFieldGet(this, _target).eventPageX - gridMostRightPos - (scrollableElement.scrollX === undefined ? scrollStart : 0);
|
407
516
|
} else {
|
408
|
-
mouseOffsetStart =
|
517
|
+
mouseOffsetStart = _classPrivateFieldGet(this, _target).eventPageX - (_classPrivateFieldGet(this, _rootElementOffset) - (scrollableElement.scrollX === undefined ? scrollStart : 0));
|
409
518
|
}
|
410
|
-
if (
|
519
|
+
if (_classPrivateFieldGet(this, _hasRowHeaders)) {
|
411
520
|
rowHeaderWidth = this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;
|
412
521
|
}
|
413
|
-
if (this.isFixedColumnsStart(
|
522
|
+
if (this.isFixedColumnsStart(_classPrivateFieldGet(this, _hoveredColumn))) {
|
414
523
|
tdOffsetStart += scrollStart;
|
415
524
|
}
|
416
525
|
tdOffsetStart += rowHeaderWidth;
|
417
|
-
if (
|
526
|
+
if (_classPrivateFieldGet(this, _hoveredColumn) < 0) {
|
418
527
|
// if hover on rowHeader
|
419
|
-
if (
|
420
|
-
|
528
|
+
if (_classPrivateFieldGet(this, _fixedColumnsStart) > 0) {
|
529
|
+
_classPrivateFieldGet(this, _target).col = 0;
|
421
530
|
} else {
|
422
|
-
|
531
|
+
_classPrivateFieldGet(this, _target).col = firstVisible > 0 ? firstVisible - 1 : firstVisible;
|
423
532
|
}
|
424
|
-
} else if (
|
425
|
-
const newCoordsCol =
|
533
|
+
} else if (_classPrivateFieldGet(this, _target).TD.offsetWidth / 2 + tdOffsetStart <= mouseOffsetStart) {
|
534
|
+
const newCoordsCol = _classPrivateFieldGet(this, _hoveredColumn) >= _classPrivateFieldGet(this, _countCols) ? _classPrivateFieldGet(this, _countCols) - 1 : _classPrivateFieldGet(this, _hoveredColumn);
|
426
535
|
|
427
536
|
// if hover on right part of TD
|
428
|
-
|
537
|
+
_classPrivateFieldGet(this, _target).col = newCoordsCol + 1;
|
429
538
|
// unfortunately first column is bigger than rest
|
430
|
-
tdOffsetStart +=
|
539
|
+
tdOffsetStart += _classPrivateFieldGet(this, _target).TD.offsetWidth;
|
431
540
|
} else {
|
432
541
|
// elsewhere on table
|
433
|
-
|
542
|
+
_classPrivateFieldGet(this, _target).col = _classPrivateFieldGet(this, _hoveredColumn);
|
434
543
|
}
|
435
544
|
let backlightStart = mouseOffsetStart;
|
436
545
|
let guidelineStart = tdOffsetStart;
|
@@ -447,8 +556,8 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
447
556
|
} else if (guidelineStart === 0) {
|
448
557
|
// guideline has got `margin-left: -1px` as default
|
449
558
|
guidelineStart = 1;
|
450
|
-
} else if (scrollableElement.scrollX !==
|
451
|
-
guidelineStart -=
|
559
|
+
} else if (scrollableElement.scrollX !== undefined && _classPrivateFieldGet(this, _hoveredColumn) < _classPrivateFieldGet(this, _fixedColumnsStart)) {
|
560
|
+
guidelineStart -= _classPrivateFieldGet(this, _rootElementOffset) <= scrollableElement.scrollX ? _classPrivateFieldGet(this, _rootElementOffset) : 0;
|
452
561
|
}
|
453
562
|
this.backlight.setPosition(null, backlightStart);
|
454
563
|
this.guideline.setPosition(null, guidelineStart);
|
@@ -463,8 +572,8 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
463
572
|
const {
|
464
573
|
documentElement
|
465
574
|
} = this.hot.rootDocument;
|
466
|
-
this.eventManager.addEventListener(documentElement, 'mousemove', event => this.
|
467
|
-
this.eventManager.addEventListener(documentElement, 'mouseup', () => this.
|
575
|
+
this.eventManager.addEventListener(documentElement, 'mousemove', event => _classPrivateMethodGet(this, _onMouseMove, _onMouseMove2).call(this, event));
|
576
|
+
this.eventManager.addEventListener(documentElement, 'mouseup', () => _classPrivateMethodGet(this, _onMouseUp, _onMouseUp2).call(this));
|
468
577
|
}
|
469
578
|
|
470
579
|
/**
|
@@ -475,163 +584,6 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
475
584
|
unregisterEvents() {
|
476
585
|
this.eventManager.clear();
|
477
586
|
}
|
478
|
-
|
479
|
-
/**
|
480
|
-
* Change the behavior of selection / dragging.
|
481
|
-
*
|
482
|
-
* @private
|
483
|
-
* @param {MouseEvent} event `mousedown` event properties.
|
484
|
-
* @param {CellCoords} coords Visual cell coordinates where was fired event.
|
485
|
-
* @param {HTMLElement} TD Cell represented as HTMLElement.
|
486
|
-
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
487
|
-
* a boolean value that allows or disallows changing the selection for that particular area.
|
488
|
-
*/
|
489
|
-
onBeforeOnCellMouseDown(event, coords, TD, controller) {
|
490
|
-
const wtTable = this.hot.view._wt.wtTable;
|
491
|
-
const isHeaderSelection = this.hot.selection.isSelectedByColumnHeader();
|
492
|
-
const selection = this.hot.getSelectedRangeLast();
|
493
|
-
const priv = privatePool.get(this);
|
494
|
-
// This block action shouldn't be handled below.
|
495
|
-
const isSortingElement = (0, _element.hasClass)(event.target, 'sortAction');
|
496
|
-
if (!selection || !isHeaderSelection || priv.pressed || event.button !== 0 || isSortingElement) {
|
497
|
-
priv.pressed = false;
|
498
|
-
priv.columnsToMove.length = 0;
|
499
|
-
(0, _element.removeClass)(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI]);
|
500
|
-
return;
|
501
|
-
}
|
502
|
-
const guidelineIsNotReady = this.guideline.isBuilt() && !this.guideline.isAppended();
|
503
|
-
const backlightIsNotReady = this.backlight.isBuilt() && !this.backlight.isAppended();
|
504
|
-
if (guidelineIsNotReady && backlightIsNotReady) {
|
505
|
-
this.guideline.appendTo(wtTable.hider);
|
506
|
-
this.backlight.appendTo(wtTable.hider);
|
507
|
-
}
|
508
|
-
const {
|
509
|
-
from,
|
510
|
-
to
|
511
|
-
} = selection;
|
512
|
-
const start = Math.min(from.col, to.col);
|
513
|
-
const end = Math.max(from.col, to.col);
|
514
|
-
if (coords.row < 0 && coords.col >= start && coords.col <= end) {
|
515
|
-
controller.column = true;
|
516
|
-
priv.pressed = true;
|
517
|
-
const eventOffsetX = TD.firstChild ? (0, _event.offsetRelativeTo)(event, TD.firstChild).x : event.offsetX;
|
518
|
-
priv.target.eventPageX = event.pageX;
|
519
|
-
priv.hoveredColumn = coords.col;
|
520
|
-
priv.target.TD = TD;
|
521
|
-
priv.target.col = coords.col;
|
522
|
-
priv.columnsToMove = this.prepareColumnsToMoving(start, end);
|
523
|
-
priv.hasRowHeaders = !!this.hot.getSettings().rowHeaders;
|
524
|
-
priv.countCols = this.hot.countCols();
|
525
|
-
priv.fixedColumnsStart = this.hot.getSettings().fixedColumnsStart;
|
526
|
-
priv.rootElementOffset = (0, _element.offset)(this.hot.rootElement).left;
|
527
|
-
const countColumnsFrom = priv.hasRowHeaders ? -1 : 0;
|
528
|
-
const topPos = wtTable.holder.scrollTop + wtTable.getColumnHeaderHeight(0) + 1;
|
529
|
-
const fixedColumnsStart = coords.col < priv.fixedColumnsStart;
|
530
|
-
const horizontalScrollPosition = this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset();
|
531
|
-
const offsetX = Math.abs(eventOffsetX - (this.hot.isRtl() ? TD.offsetWidth : 0));
|
532
|
-
const inlineOffset = this.getColumnsWidth(start, coords.col - 1) + offsetX;
|
533
|
-
const inlinePos = this.getColumnsWidth(countColumnsFrom, start - 1) + (fixedColumnsStart ? horizontalScrollPosition : 0) + inlineOffset;
|
534
|
-
this.backlight.setPosition(topPos, inlinePos);
|
535
|
-
this.backlight.setSize(this.getColumnsWidth(start, end), wtTable.hider.offsetHeight - topPos);
|
536
|
-
this.backlight.setOffset(null, -inlineOffset);
|
537
|
-
(0, _element.addClass)(this.hot.rootElement, CSS_ON_MOVING);
|
538
|
-
} else {
|
539
|
-
(0, _element.removeClass)(this.hot.rootElement, CSS_AFTER_SELECTION);
|
540
|
-
priv.pressed = false;
|
541
|
-
priv.columnsToMove.length = 0;
|
542
|
-
}
|
543
|
-
}
|
544
|
-
|
545
|
-
/**
|
546
|
-
* 'mouseMove' event callback. Fired when pointer move on document.documentElement.
|
547
|
-
*
|
548
|
-
* @private
|
549
|
-
* @param {MouseEvent} event `mousemove` event properties.
|
550
|
-
*/
|
551
|
-
onMouseMove(event) {
|
552
|
-
const priv = privatePool.get(this);
|
553
|
-
if (!priv.pressed) {
|
554
|
-
return;
|
555
|
-
}
|
556
|
-
priv.target.eventPageX = event.pageX;
|
557
|
-
this.refreshPositions();
|
558
|
-
}
|
559
|
-
|
560
|
-
/**
|
561
|
-
* 'beforeOnCellMouseOver' hook callback. Fired when pointer was over cell.
|
562
|
-
*
|
563
|
-
* @private
|
564
|
-
* @param {MouseEvent} event `mouseover` event properties.
|
565
|
-
* @param {CellCoords} coords Visual cell coordinates where was fired event.
|
566
|
-
* @param {HTMLElement} TD Cell represented as HTMLElement.
|
567
|
-
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
568
|
-
* a boolean value that allows or disallows changing the selection for that particular area.
|
569
|
-
*/
|
570
|
-
onBeforeOnCellMouseOver(event, coords, TD, controller) {
|
571
|
-
const selectedRange = this.hot.getSelectedRangeLast();
|
572
|
-
const priv = privatePool.get(this);
|
573
|
-
if (!selectedRange || !priv.pressed) {
|
574
|
-
return;
|
575
|
-
}
|
576
|
-
if (priv.columnsToMove.indexOf(coords.col) > -1) {
|
577
|
-
(0, _element.removeClass)(this.hot.rootElement, CSS_SHOW_UI);
|
578
|
-
} else {
|
579
|
-
(0, _element.addClass)(this.hot.rootElement, CSS_SHOW_UI);
|
580
|
-
}
|
581
|
-
controller.row = true;
|
582
|
-
controller.column = true;
|
583
|
-
controller.cell = true;
|
584
|
-
priv.hoveredColumn = coords.col;
|
585
|
-
priv.target.TD = TD;
|
586
|
-
}
|
587
|
-
|
588
|
-
/**
|
589
|
-
* `onMouseUp` hook callback.
|
590
|
-
*
|
591
|
-
* @private
|
592
|
-
*/
|
593
|
-
onMouseUp() {
|
594
|
-
const priv = privatePool.get(this);
|
595
|
-
const target = priv.target.col;
|
596
|
-
const columnsLen = priv.columnsToMove.length;
|
597
|
-
priv.hoveredColumn = void 0;
|
598
|
-
priv.pressed = false;
|
599
|
-
priv.backlightWidth = 0;
|
600
|
-
(0, _element.removeClass)(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);
|
601
|
-
if (this.hot.selection.isSelectedByColumnHeader()) {
|
602
|
-
(0, _element.addClass)(this.hot.rootElement, CSS_AFTER_SELECTION);
|
603
|
-
}
|
604
|
-
if (columnsLen < 1 || target === void 0) {
|
605
|
-
return;
|
606
|
-
}
|
607
|
-
const firstMovedVisualColumn = priv.columnsToMove[0];
|
608
|
-
const firstMovedPhysicalColumn = this.hot.toPhysicalColumn(firstMovedVisualColumn);
|
609
|
-
const movePerformed = this.dragColumns(priv.columnsToMove, target);
|
610
|
-
priv.columnsToMove.length = 0;
|
611
|
-
if (movePerformed === true) {
|
612
|
-
this.persistentStateSave();
|
613
|
-
this.hot.render();
|
614
|
-
this.hot.view.adjustElementsSize(true);
|
615
|
-
const selectionStart = this.hot.toVisualColumn(firstMovedPhysicalColumn);
|
616
|
-
const selectionEnd = selectionStart + columnsLen - 1;
|
617
|
-
this.hot.selectColumns(selectionStart, selectionEnd);
|
618
|
-
}
|
619
|
-
}
|
620
|
-
|
621
|
-
/**
|
622
|
-
* `afterScrollHorizontally` hook callback. Fired the table was scrolled horizontally.
|
623
|
-
*
|
624
|
-
* @private
|
625
|
-
*/
|
626
|
-
onAfterScrollVertically() {
|
627
|
-
const wtTable = this.hot.view._wt.wtTable;
|
628
|
-
const headerHeight = wtTable.getColumnHeaderHeight(0) + 1;
|
629
|
-
const scrollTop = wtTable.holder.scrollTop;
|
630
|
-
const posTop = headerHeight + scrollTop;
|
631
|
-
this.backlight.setPosition(posTop);
|
632
|
-
this.backlight.setSize(null, wtTable.hider.offsetHeight - posTop);
|
633
|
-
}
|
634
|
-
|
635
587
|
/**
|
636
588
|
* Builds the plugin's UI.
|
637
589
|
*
|
@@ -641,16 +593,6 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
641
593
|
this.backlight.build();
|
642
594
|
this.guideline.build();
|
643
595
|
}
|
644
|
-
|
645
|
-
/**
|
646
|
-
* Callback for the `afterLoadData` hook.
|
647
|
-
*
|
648
|
-
* @private
|
649
|
-
*/
|
650
|
-
onAfterLoadData() {
|
651
|
-
this.moveBySettingsOrLoad();
|
652
|
-
}
|
653
|
-
|
654
596
|
/**
|
655
597
|
* Destroys the plugin instance.
|
656
598
|
*/
|
@@ -660,4 +602,117 @@ class ManualColumnMove extends _base.BasePlugin {
|
|
660
602
|
super.destroy();
|
661
603
|
}
|
662
604
|
}
|
663
|
-
exports.ManualColumnMove = ManualColumnMove;
|
605
|
+
exports.ManualColumnMove = ManualColumnMove;
|
606
|
+
function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
|
607
|
+
const wtTable = this.hot.view._wt.wtTable;
|
608
|
+
const isHeaderSelection = this.hot.selection.isSelectedByColumnHeader();
|
609
|
+
const selection = this.hot.getSelectedRangeLast();
|
610
|
+
// This block action shouldn't be handled below.
|
611
|
+
const isSortingElement = (0, _element.hasClass)(event.target, 'sortAction');
|
612
|
+
if (!selection || !isHeaderSelection || _classPrivateFieldGet(this, _pressed) || event.button !== 0 || isSortingElement) {
|
613
|
+
_classPrivateFieldSet(this, _pressed, false);
|
614
|
+
_classPrivateFieldGet(this, _columnsToMove).length = 0;
|
615
|
+
(0, _element.removeClass)(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI]);
|
616
|
+
return;
|
617
|
+
}
|
618
|
+
const guidelineIsNotReady = this.guideline.isBuilt() && !this.guideline.isAppended();
|
619
|
+
const backlightIsNotReady = this.backlight.isBuilt() && !this.backlight.isAppended();
|
620
|
+
if (guidelineIsNotReady && backlightIsNotReady) {
|
621
|
+
this.guideline.appendTo(wtTable.hider);
|
622
|
+
this.backlight.appendTo(wtTable.hider);
|
623
|
+
}
|
624
|
+
const {
|
625
|
+
from,
|
626
|
+
to
|
627
|
+
} = selection;
|
628
|
+
const start = Math.min(from.col, to.col);
|
629
|
+
const end = Math.max(from.col, to.col);
|
630
|
+
if (coords.row < 0 && coords.col >= start && coords.col <= end) {
|
631
|
+
controller.column = true;
|
632
|
+
_classPrivateFieldSet(this, _pressed, true);
|
633
|
+
const eventOffsetX = TD.firstChild ? (0, _event.offsetRelativeTo)(event, TD.firstChild).x : event.offsetX;
|
634
|
+
_classPrivateFieldGet(this, _target).eventPageX = event.pageX;
|
635
|
+
_classPrivateFieldSet(this, _hoveredColumn, coords.col);
|
636
|
+
_classPrivateFieldGet(this, _target).TD = TD;
|
637
|
+
_classPrivateFieldGet(this, _target).col = coords.col;
|
638
|
+
_classPrivateFieldSet(this, _columnsToMove, this.prepareColumnsToMoving(start, end));
|
639
|
+
_classPrivateFieldSet(this, _hasRowHeaders, !!this.hot.getSettings().rowHeaders);
|
640
|
+
_classPrivateFieldSet(this, _countCols, this.hot.countCols());
|
641
|
+
_classPrivateFieldSet(this, _fixedColumnsStart, this.hot.getSettings().fixedColumnsStart);
|
642
|
+
_classPrivateFieldSet(this, _rootElementOffset, (0, _element.offset)(this.hot.rootElement).left);
|
643
|
+
const countColumnsFrom = _classPrivateFieldGet(this, _hasRowHeaders) ? -1 : 0;
|
644
|
+
const topPos = wtTable.holder.scrollTop + wtTable.getColumnHeaderHeight(0) + 1;
|
645
|
+
const fixedColumnsStart = coords.col < _classPrivateFieldGet(this, _fixedColumnsStart);
|
646
|
+
const horizontalScrollPosition = this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset();
|
647
|
+
const offsetX = Math.abs(eventOffsetX - (this.hot.isRtl() ? TD.offsetWidth : 0));
|
648
|
+
const inlineOffset = this.getColumnsWidth(start, coords.col - 1) + offsetX;
|
649
|
+
const inlinePos = this.getColumnsWidth(countColumnsFrom, start - 1) + (fixedColumnsStart ? horizontalScrollPosition : 0) + inlineOffset;
|
650
|
+
this.backlight.setPosition(topPos, inlinePos);
|
651
|
+
this.backlight.setSize(this.getColumnsWidth(start, end), wtTable.hider.offsetHeight - topPos);
|
652
|
+
this.backlight.setOffset(null, -inlineOffset);
|
653
|
+
(0, _element.addClass)(this.hot.rootElement, CSS_ON_MOVING);
|
654
|
+
} else {
|
655
|
+
(0, _element.removeClass)(this.hot.rootElement, CSS_AFTER_SELECTION);
|
656
|
+
_classPrivateFieldSet(this, _pressed, false);
|
657
|
+
_classPrivateFieldGet(this, _columnsToMove).length = 0;
|
658
|
+
}
|
659
|
+
}
|
660
|
+
function _onMouseMove2(event) {
|
661
|
+
if (!_classPrivateFieldGet(this, _pressed)) {
|
662
|
+
return;
|
663
|
+
}
|
664
|
+
_classPrivateFieldGet(this, _target).eventPageX = event.pageX;
|
665
|
+
this.refreshPositions();
|
666
|
+
}
|
667
|
+
function _onBeforeOnCellMouseOver2(event, coords, TD, controller) {
|
668
|
+
const selectedRange = this.hot.getSelectedRangeLast();
|
669
|
+
if (!selectedRange || !_classPrivateFieldGet(this, _pressed)) {
|
670
|
+
return;
|
671
|
+
}
|
672
|
+
if (_classPrivateFieldGet(this, _columnsToMove).indexOf(coords.col) > -1) {
|
673
|
+
(0, _element.removeClass)(this.hot.rootElement, CSS_SHOW_UI);
|
674
|
+
} else {
|
675
|
+
(0, _element.addClass)(this.hot.rootElement, CSS_SHOW_UI);
|
676
|
+
}
|
677
|
+
controller.row = true;
|
678
|
+
controller.column = true;
|
679
|
+
controller.cell = true;
|
680
|
+
_classPrivateFieldSet(this, _hoveredColumn, coords.col);
|
681
|
+
_classPrivateFieldGet(this, _target).TD = TD;
|
682
|
+
}
|
683
|
+
function _onMouseUp2() {
|
684
|
+
const target = _classPrivateFieldGet(this, _target).col;
|
685
|
+
const columnsLen = _classPrivateFieldGet(this, _columnsToMove).length;
|
686
|
+
_classPrivateFieldSet(this, _hoveredColumn, undefined);
|
687
|
+
_classPrivateFieldSet(this, _pressed, false);
|
688
|
+
(0, _element.removeClass)(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);
|
689
|
+
if (this.hot.selection.isSelectedByColumnHeader()) {
|
690
|
+
(0, _element.addClass)(this.hot.rootElement, CSS_AFTER_SELECTION);
|
691
|
+
}
|
692
|
+
if (columnsLen < 1 || target === undefined) {
|
693
|
+
return;
|
694
|
+
}
|
695
|
+
const firstMovedVisualColumn = _classPrivateFieldGet(this, _columnsToMove)[0];
|
696
|
+
const firstMovedPhysicalColumn = this.hot.toPhysicalColumn(firstMovedVisualColumn);
|
697
|
+
const movePerformed = this.dragColumns(_classPrivateFieldGet(this, _columnsToMove), target);
|
698
|
+
_classPrivateFieldGet(this, _columnsToMove).length = 0;
|
699
|
+
if (movePerformed === true) {
|
700
|
+
this.persistentStateSave();
|
701
|
+
this.hot.render();
|
702
|
+
this.hot.view.adjustElementsSize(true);
|
703
|
+
const selectionStart = this.hot.toVisualColumn(firstMovedPhysicalColumn);
|
704
|
+
const selectionEnd = selectionStart + columnsLen - 1;
|
705
|
+
this.hot.selectColumns(selectionStart, selectionEnd);
|
706
|
+
}
|
707
|
+
}
|
708
|
+
function _onAfterScrollVertically2() {
|
709
|
+
const wtTable = this.hot.view._wt.wtTable;
|
710
|
+
const headerHeight = wtTable.getColumnHeaderHeight(0) + 1;
|
711
|
+
const scrollTop = wtTable.holder.scrollTop;
|
712
|
+
const posTop = headerHeight + scrollTop;
|
713
|
+
this.backlight.setPosition(posTop);
|
714
|
+
this.backlight.setSize(null, wtTable.hider.offsetHeight - posTop);
|
715
|
+
}
|
716
|
+
function _onAfterLoadData2() {
|
717
|
+
this.moveBySettingsOrLoad();
|
718
|
+
}
|