@deephaven/grid 0.4.1-modules.0 → 0.5.2-beta.0
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/dist/CellInputField.js +88 -40
- package/dist/CellInputField.js.map +1 -1
- package/dist/Grid.js +1484 -1449
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.js +51 -18
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +994 -1017
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.js +286 -171
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.js +59 -39
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js +630 -572
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +1564 -1650
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridTestUtils.js +29 -15
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridUtils.js +717 -679
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js +18 -6
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridModel.js +210 -105
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +183 -113
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/errors/PasteError.js +44 -5
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +75 -42
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +78 -42
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +234 -220
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +72 -42
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js +4 -4
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js +1 -1
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +50 -18
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +163 -141
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +86 -47
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +171 -143
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +147 -125
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +86 -47
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +76 -46
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +62 -31
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +222 -200
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +253 -206
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +172 -144
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js +10 -10
- package/dist/mouse-handlers/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
|
@@ -1,274 +1,321 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
import GridMouseHandler from "../GridMouseHandler.js";
|
|
7
|
-
var OVERRIDE_STRING = 'NEED_TO_OVERRIDE_PROPERTY';
|
|
8
|
-
/**
|
|
9
|
-
* Abstract class that should be extended for column/row behaviour
|
|
10
|
-
* Override the necessary functions/properties
|
|
11
|
-
*/
|
|
5
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
7
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
16
8
|
|
|
17
|
-
|
|
9
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
18
10
|
|
|
19
|
-
|
|
11
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
20
12
|
|
|
21
|
-
|
|
13
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
22
14
|
|
|
23
|
-
|
|
15
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
24
16
|
|
|
25
|
-
|
|
17
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
26
18
|
|
|
27
|
-
|
|
19
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
28
20
|
|
|
29
|
-
|
|
21
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
32
24
|
|
|
33
|
-
|
|
25
|
+
/* eslint class-methods-use-this: "off" */
|
|
34
26
|
|
|
35
|
-
|
|
27
|
+
/* eslint no-unused-vars: "off" */
|
|
28
|
+
import GridMouseHandler from '../GridMouseHandler';
|
|
29
|
+
var OVERRIDE_STRING = 'NEED_TO_OVERRIDE_PROPERTY';
|
|
30
|
+
/**
|
|
31
|
+
* Abstract class that should be extended for column/row behaviour
|
|
32
|
+
* Override the necessary functions/properties
|
|
33
|
+
*/
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
var GridSeparatorMouseHandler = /*#__PURE__*/function (_GridMouseHandler) {
|
|
36
|
+
_inherits(GridSeparatorMouseHandler, _GridMouseHandler);
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
var _super = _createSuper(GridSeparatorMouseHandler);
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
function GridSeparatorMouseHandler() {
|
|
41
|
+
var _this;
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
_classCallCheck(this, GridSeparatorMouseHandler);
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
46
|
+
args[_key] = arguments[_key];
|
|
47
|
+
}
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
48
50
|
|
|
49
|
-
_defineProperty(
|
|
50
|
-
}
|
|
51
|
+
_defineProperty(_assertThisInitialized(_this), "draggingIndex", null);
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
throw new Error('Need to override getHiddenItems');
|
|
54
|
-
}
|
|
53
|
+
_defineProperty(_assertThisInitialized(_this), "resizingItems", []);
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
throw new Error('Need to override getNextShownItem');
|
|
58
|
-
} // eslint-disable-next-line no-unused-vars
|
|
55
|
+
_defineProperty(_assertThisInitialized(_this), "hiddenItems", []);
|
|
59
56
|
|
|
57
|
+
_defineProperty(_assertThisInitialized(_this), "targetSizes", new Map());
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
throw new Error('Need to override setSize');
|
|
63
|
-
} // eslint-disable-next-line no-unused-vars
|
|
59
|
+
_defineProperty(_assertThisInitialized(_this), "dragOffset", 0);
|
|
64
60
|
|
|
61
|
+
_defineProperty(_assertThisInitialized(_this), "cursor", OVERRIDE_STRING);
|
|
65
62
|
|
|
66
|
-
|
|
67
|
-
throw new Error('Need to override resetSize');
|
|
68
|
-
} // eslint-disable-next-line no-unused-vars
|
|
63
|
+
_defineProperty(_assertThisInitialized(_this), "hiddenCursor", OVERRIDE_STRING);
|
|
69
64
|
|
|
65
|
+
_defineProperty(_assertThisInitialized(_this), "defaultCursor", OVERRIDE_STRING);
|
|
70
66
|
|
|
71
|
-
|
|
72
|
-
throw new Error('Need to override updateSeparator');
|
|
73
|
-
} // eslint-disable-next-line no-unused-vars
|
|
67
|
+
_defineProperty(_assertThisInitialized(_this), "pointProperty", OVERRIDE_STRING);
|
|
74
68
|
|
|
69
|
+
_defineProperty(_assertThisInitialized(_this), "userSizesProperty", OVERRIDE_STRING);
|
|
75
70
|
|
|
76
|
-
|
|
77
|
-
var checkAllowResize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
78
|
-
throw new Error('Need to override getSeparatorIndex');
|
|
79
|
-
} // End of overrides
|
|
71
|
+
_defineProperty(_assertThisInitialized(_this), "visibleOffsetProperty", OVERRIDE_STRING);
|
|
80
72
|
|
|
73
|
+
_defineProperty(_assertThisInitialized(_this), "visibleSizesProperty", OVERRIDE_STRING);
|
|
81
74
|
|
|
82
|
-
|
|
83
|
-
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
75
|
+
_defineProperty(_assertThisInitialized(_this), "marginProperty", OVERRIDE_STRING);
|
|
84
76
|
|
|
85
|
-
|
|
86
|
-
var {
|
|
87
|
-
metrics
|
|
88
|
-
} = grid;
|
|
89
|
-
this.dragOffset = 0;
|
|
90
|
-
this.draggingIndex = separatorIndex;
|
|
91
|
-
this.resizingItems = [separatorIndex];
|
|
92
|
-
this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();
|
|
93
|
-
this.targetSizes.clear();
|
|
94
|
-
this.addTargetSize(metrics, separatorIndex);
|
|
95
|
-
this.updateCursor(metrics, separatorIndex);
|
|
96
|
-
this.updateSeparator(grid, separatorIndex);
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
77
|
+
_defineProperty(_assertThisInitialized(_this), "calculatedSizesProperty", OVERRIDE_STRING);
|
|
99
78
|
|
|
100
|
-
|
|
101
|
-
}
|
|
79
|
+
_defineProperty(_assertThisInitialized(_this), "modelIndexesProperty", OVERRIDE_STRING);
|
|
102
80
|
|
|
103
|
-
|
|
104
|
-
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
81
|
+
_defineProperty(_assertThisInitialized(_this), "firstIndexProperty", OVERRIDE_STRING);
|
|
105
82
|
|
|
106
|
-
|
|
107
|
-
var {
|
|
108
|
-
metrics
|
|
109
|
-
} = grid;
|
|
110
|
-
this.updateCursor(metrics, separatorIndex);
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
83
|
+
_defineProperty(_assertThisInitialized(_this), "treePaddingProperty", OVERRIDE_STRING);
|
|
113
84
|
|
|
114
|
-
return
|
|
85
|
+
return _this;
|
|
115
86
|
}
|
|
116
87
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
88
|
+
_createClass(GridSeparatorMouseHandler, [{
|
|
89
|
+
key: "getHiddenItems",
|
|
90
|
+
value: function getHiddenItems(itemIndex, metrics) {
|
|
91
|
+
throw new Error('Need to override getHiddenItems');
|
|
120
92
|
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "getNextShownItem",
|
|
95
|
+
value: function getNextShownItem(itemIndex, metrics) {
|
|
96
|
+
throw new Error('Need to override getNextShownItem');
|
|
97
|
+
} // eslint-disable-next-line no-unused-vars
|
|
98
|
+
|
|
99
|
+
}, {
|
|
100
|
+
key: "setSize",
|
|
101
|
+
value: function setSize(metricCalculator, modelIndex, size) {
|
|
102
|
+
throw new Error('Need to override setSize');
|
|
103
|
+
} // eslint-disable-next-line no-unused-vars
|
|
104
|
+
|
|
105
|
+
}, {
|
|
106
|
+
key: "resetSize",
|
|
107
|
+
value: function resetSize(metricCalculator, modelIndex) {
|
|
108
|
+
throw new Error('Need to override resetSize');
|
|
109
|
+
} // eslint-disable-next-line no-unused-vars
|
|
110
|
+
|
|
111
|
+
}, {
|
|
112
|
+
key: "updateSeparator",
|
|
113
|
+
value: function updateSeparator(grid, separatorIndex) {
|
|
114
|
+
throw new Error('Need to override updateSeparator');
|
|
115
|
+
} // eslint-disable-next-line no-unused-vars
|
|
116
|
+
|
|
117
|
+
}, {
|
|
118
|
+
key: "getSeparatorIndex",
|
|
119
|
+
value: function getSeparatorIndex(gridPoint, grid) {
|
|
120
|
+
var checkAllowResize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
121
|
+
throw new Error('Need to override getSeparatorIndex');
|
|
122
|
+
} // End of overrides
|
|
123
|
+
|
|
124
|
+
}, {
|
|
125
|
+
key: "onDown",
|
|
126
|
+
value: function onDown(gridPoint, grid) {
|
|
127
|
+
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
128
|
+
|
|
129
|
+
if (separatorIndex != null) {
|
|
130
|
+
var metrics = grid.metrics;
|
|
131
|
+
this.dragOffset = 0;
|
|
132
|
+
this.draggingIndex = separatorIndex;
|
|
133
|
+
this.resizingItems = [separatorIndex];
|
|
134
|
+
this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();
|
|
135
|
+
this.targetSizes.clear();
|
|
136
|
+
this.addTargetSize(metrics, separatorIndex);
|
|
137
|
+
this.updateCursor(metrics, separatorIndex);
|
|
138
|
+
this.updateSeparator(grid, separatorIndex);
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
121
141
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
var treePadding = metrics[this.treePaddingProperty]; // New sizes are batched and applied after the loop to avoid updating state while calculating next step
|
|
134
|
-
|
|
135
|
-
var newSizes = new Map(); // Use a loop as we may need to resize multiple items if they drag quickly
|
|
136
|
-
|
|
137
|
-
var resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
138
|
-
|
|
139
|
-
while (resizeIndex != null) {
|
|
140
|
-
var itemOffset = visibleOffsets.get(resizeIndex);
|
|
141
|
-
var itemSize = point - margin - itemOffset - this.dragOffset;
|
|
142
|
-
var modelIndex = modelIndexes.get(resizeIndex);
|
|
143
|
-
var targetSize = this.targetSizes.get(modelIndex);
|
|
144
|
-
var isResizingMultiple = this.resizingItems.length > 1;
|
|
145
|
-
var hiddenIndex = this.hiddenItems.indexOf(resizeIndex);
|
|
146
|
-
var calculatedSize = calculatedSizes.get(modelIndex);
|
|
147
|
-
|
|
148
|
-
if (resizeIndex === firstIndex) {
|
|
149
|
-
calculatedSize += treePadding;
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
}, {
|
|
145
|
+
key: "onMove",
|
|
146
|
+
value: function onMove(gridPoint, grid) {
|
|
147
|
+
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
148
|
+
|
|
149
|
+
if (separatorIndex != null) {
|
|
150
|
+
var metrics = grid.metrics;
|
|
151
|
+
this.updateCursor(metrics, separatorIndex);
|
|
152
|
+
return true;
|
|
150
153
|
}
|
|
151
154
|
|
|
152
|
-
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
key: "onDrag",
|
|
159
|
+
value: function onDrag(gridPoint, grid) {
|
|
160
|
+
var _this2 = this;
|
|
153
161
|
|
|
154
|
-
if (
|
|
155
|
-
|
|
156
|
-
newSize = null;
|
|
157
|
-
} else if (itemSize > targetSize && (isResizingMultiple && hiddenIndex !== 0 || hiddenIndex > 0)) {
|
|
158
|
-
newSize = targetSize;
|
|
159
|
-
} else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {
|
|
160
|
-
// Snapping to hidden item
|
|
161
|
-
newSize = 0;
|
|
162
|
+
if (this.draggingIndex == null) {
|
|
163
|
+
return false;
|
|
162
164
|
}
|
|
163
165
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
var point = gridPoint[this.pointProperty];
|
|
167
|
+
var metricCalculator = grid.metricCalculator,
|
|
168
|
+
metrics = grid.metrics;
|
|
169
|
+
var theme = grid.getTheme();
|
|
170
|
+
var visibleOffsets = metrics[this.visibleOffsetProperty];
|
|
171
|
+
var margin = metrics[this.marginProperty];
|
|
172
|
+
var calculatedSizes = metrics[this.calculatedSizesProperty];
|
|
173
|
+
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
174
|
+
var firstIndex = metrics[this.firstIndexProperty];
|
|
175
|
+
var treePadding = metrics[this.treePaddingProperty]; // New sizes are batched and applied after the loop to avoid updating state while calculating next step
|
|
176
|
+
|
|
177
|
+
var newSizes = new Map(); // Use a loop as we may need to resize multiple items if they drag quickly
|
|
178
|
+
|
|
179
|
+
var resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
180
|
+
|
|
181
|
+
while (resizeIndex != null) {
|
|
182
|
+
var itemOffset = visibleOffsets.get(resizeIndex);
|
|
183
|
+
var itemSize = point - margin - itemOffset - this.dragOffset;
|
|
184
|
+
var modelIndex = modelIndexes.get(resizeIndex);
|
|
185
|
+
var targetSize = this.targetSizes.get(modelIndex);
|
|
186
|
+
var isResizingMultiple = this.resizingItems.length > 1;
|
|
187
|
+
var hiddenIndex = this.hiddenItems.indexOf(resizeIndex);
|
|
188
|
+
var calculatedSize = calculatedSizes.get(modelIndex);
|
|
189
|
+
|
|
190
|
+
if (resizeIndex === firstIndex) {
|
|
191
|
+
calculatedSize += treePadding;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var newSize = itemSize;
|
|
169
195
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
196
|
+
if (Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold) {
|
|
197
|
+
// Snapping behaviour to "natural" width
|
|
198
|
+
newSize = null;
|
|
199
|
+
} else if (itemSize > targetSize && (isResizingMultiple && hiddenIndex !== 0 || hiddenIndex > 0)) {
|
|
200
|
+
newSize = targetSize;
|
|
201
|
+
} else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {
|
|
202
|
+
// Snapping to hidden item
|
|
203
|
+
newSize = 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (newSize !== calculatedSize) {
|
|
207
|
+
newSizes.set(modelIndex, newSize);
|
|
176
208
|
} else {
|
|
177
|
-
|
|
209
|
+
newSizes.set(modelIndex, null);
|
|
210
|
+
}
|
|
178
211
|
|
|
179
|
-
|
|
212
|
+
if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {
|
|
213
|
+
if (hiddenIndex >= 0 && isResizingMultiple) {
|
|
214
|
+
this.resizingItems.pop();
|
|
215
|
+
this.removeTargetSize(metrics, resizeIndex);
|
|
216
|
+
resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
217
|
+
this.dragOffset -= this.targetSizes.get(modelIndexes.get(resizeIndex));
|
|
218
|
+
} else {
|
|
219
|
+
resizeIndex = this.getNextShownItem(resizeIndex, metrics);
|
|
220
|
+
|
|
221
|
+
if (resizeIndex != null) {
|
|
222
|
+
this.resizingItems.push(resizeIndex);
|
|
223
|
+
this.addTargetSize(metrics, resizeIndex);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} else if (itemSize > targetSize + theme.headerResizeSnapThreshold && newSize === targetSize) {
|
|
227
|
+
if (hiddenIndex > 0) {
|
|
228
|
+
this.dragOffset += newSize;
|
|
229
|
+
resizeIndex = this.hiddenItems[hiddenIndex - 1];
|
|
180
230
|
this.resizingItems.push(resizeIndex);
|
|
181
231
|
this.addTargetSize(metrics, resizeIndex);
|
|
232
|
+
} else if (isResizingMultiple) {
|
|
233
|
+
this.resizingItems.pop();
|
|
234
|
+
this.removeTargetSize(metrics, resizeIndex);
|
|
235
|
+
resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
236
|
+
} else {
|
|
237
|
+
resizeIndex = null;
|
|
182
238
|
}
|
|
183
|
-
}
|
|
184
|
-
} else if (itemSize > targetSize + theme.headerResizeSnapThreshold && newSize === targetSize) {
|
|
185
|
-
if (hiddenIndex > 0) {
|
|
186
|
-
this.dragOffset += newSize;
|
|
187
|
-
resizeIndex = this.hiddenItems[hiddenIndex - 1];
|
|
188
|
-
this.resizingItems.push(resizeIndex);
|
|
189
|
-
this.addTargetSize(metrics, resizeIndex);
|
|
190
|
-
} else if (isResizingMultiple) {
|
|
191
|
-
this.resizingItems.pop();
|
|
192
|
-
this.removeTargetSize(metrics, resizeIndex);
|
|
193
|
-
resizeIndex = this.resizingItems[this.resizingItems.length - 1];
|
|
194
239
|
} else {
|
|
195
240
|
resizeIndex = null;
|
|
196
241
|
}
|
|
197
|
-
} else {
|
|
198
|
-
resizeIndex = null;
|
|
199
242
|
}
|
|
200
|
-
}
|
|
201
243
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
onUp(_, grid) {
|
|
210
|
-
if (this.draggingIndex != null) {
|
|
211
|
-
this.draggingIndex = null;
|
|
212
|
-
this.resizingItems = [];
|
|
213
|
-
this.hiddenItems = [];
|
|
214
|
-
this.targetSizes.clear();
|
|
215
|
-
this.updateSeparator(grid, null);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
onDoubleClick(gridPoint, grid) {
|
|
222
|
-
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
223
|
-
|
|
224
|
-
if (separatorIndex != null) {
|
|
225
|
-
var {
|
|
226
|
-
metricCalculator,
|
|
227
|
-
metrics
|
|
228
|
-
} = grid;
|
|
229
|
-
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
230
|
-
var modelIndex = modelIndexes.get(separatorIndex);
|
|
231
|
-
this.resetSize(metricCalculator, modelIndex);
|
|
232
|
-
grid.forceUpdate();
|
|
244
|
+
newSizes.forEach(function (newSize, modelIndex) {
|
|
245
|
+
_this2.setSize(metricCalculator, modelIndex, newSize);
|
|
246
|
+
});
|
|
247
|
+
this.updateCursor(metrics, this.draggingIndex);
|
|
233
248
|
return true;
|
|
234
249
|
}
|
|
250
|
+
}, {
|
|
251
|
+
key: "onUp",
|
|
252
|
+
value: function onUp(_, grid) {
|
|
253
|
+
if (this.draggingIndex != null) {
|
|
254
|
+
this.draggingIndex = null;
|
|
255
|
+
this.resizingItems = [];
|
|
256
|
+
this.hiddenItems = [];
|
|
257
|
+
this.targetSizes.clear();
|
|
258
|
+
this.updateSeparator(grid, null);
|
|
259
|
+
}
|
|
235
260
|
|
|
236
|
-
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
updateCursor(metrics, itemIndex) {
|
|
240
|
-
var visibleSizes = metrics[this.visibleSizesProperty];
|
|
241
|
-
var itemSize = visibleSizes.get(itemIndex);
|
|
242
|
-
|
|
243
|
-
if (itemSize === 0) {
|
|
244
|
-
this.cursor = this.hiddenCursor;
|
|
245
|
-
} else {
|
|
246
|
-
this.cursor = this.defaultCursor;
|
|
261
|
+
return false;
|
|
247
262
|
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
263
|
+
}, {
|
|
264
|
+
key: "onDoubleClick",
|
|
265
|
+
value: function onDoubleClick(gridPoint, grid) {
|
|
266
|
+
var separatorIndex = this.getSeparatorIndex(gridPoint, grid);
|
|
267
|
+
|
|
268
|
+
if (separatorIndex != null) {
|
|
269
|
+
var metricCalculator = grid.metricCalculator,
|
|
270
|
+
metrics = grid.metrics;
|
|
271
|
+
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
272
|
+
var modelIndex = modelIndexes.get(separatorIndex);
|
|
273
|
+
this.resetSize(metricCalculator, modelIndex);
|
|
274
|
+
grid.forceUpdate();
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
257
277
|
|
|
258
|
-
|
|
259
|
-
targetSize = calculatedSizes.get(modelIndex) + treePadding;
|
|
278
|
+
return false;
|
|
260
279
|
}
|
|
280
|
+
}, {
|
|
281
|
+
key: "updateCursor",
|
|
282
|
+
value: function updateCursor(metrics, itemIndex) {
|
|
283
|
+
var visibleSizes = metrics[this.visibleSizesProperty];
|
|
284
|
+
var itemSize = visibleSizes.get(itemIndex);
|
|
285
|
+
|
|
286
|
+
if (itemSize === 0) {
|
|
287
|
+
this.cursor = this.hiddenCursor;
|
|
288
|
+
} else {
|
|
289
|
+
this.cursor = this.defaultCursor;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}, {
|
|
293
|
+
key: "addTargetSize",
|
|
294
|
+
value: function addTargetSize(metrics, itemIndex) {
|
|
295
|
+
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
296
|
+
var userSizes = metrics[this.userSizesProperty];
|
|
297
|
+
var calculatedSizes = metrics[this.calculatedSizesProperty];
|
|
298
|
+
var treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;
|
|
299
|
+
var modelIndex = modelIndexes.get(itemIndex);
|
|
300
|
+
var targetSize = userSizes.get(modelIndex);
|
|
301
|
+
|
|
302
|
+
if (targetSize == null || targetSize === 0) {
|
|
303
|
+
targetSize = calculatedSizes.get(modelIndex) + treePadding;
|
|
304
|
+
}
|
|
261
305
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
306
|
+
this.targetSizes.set(modelIndex, targetSize);
|
|
307
|
+
}
|
|
308
|
+
}, {
|
|
309
|
+
key: "removeTargetSize",
|
|
310
|
+
value: function removeTargetSize(metrics, itemIndex) {
|
|
311
|
+
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
312
|
+
var modelIndex = modelIndexes.get(itemIndex);
|
|
313
|
+
this.targetSizes["delete"](modelIndex);
|
|
314
|
+
}
|
|
315
|
+
}]);
|
|
270
316
|
|
|
271
|
-
|
|
317
|
+
return GridSeparatorMouseHandler;
|
|
318
|
+
}(GridMouseHandler);
|
|
272
319
|
|
|
273
320
|
export default GridSeparatorMouseHandler;
|
|
274
321
|
//# sourceMappingURL=GridSeparatorMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.js"],"names":["GridMouseHandler","OVERRIDE_STRING","GridSeparatorMouseHandler","Map","getHiddenItems","itemIndex","metrics","Error","getNextShownItem","setSize","metricCalculator","modelIndex","size","resetSize","updateSeparator","grid","separatorIndex","getSeparatorIndex","gridPoint","checkAllowResize","onDown","dragOffset","draggingIndex","resizingItems","hiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","onMove","onDrag","point","pointProperty","theme","getTheme","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","get","itemSize","targetSize","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","push","forEach","onUp","_","onDoubleClick","forceUpdate","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport GridMouseHandler from '../GridMouseHandler';\n\nconst OVERRIDE_STRING = 'NEED_TO_OVERRIDE_PROPERTY';\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nclass GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n draggingIndex = null;\n\n // The columns in the order they're being resized\n resizingItems = [];\n\n // Columns that were hidden under the separator when starting a drag\n hiddenItems = [];\n\n // The target width of the columns being resized\n targetSizes = new Map();\n\n dragOffset = 0;\n\n // Override/Implement these properties/functions\n cursor = OVERRIDE_STRING;\n\n hiddenCursor = OVERRIDE_STRING;\n\n defaultCursor = OVERRIDE_STRING;\n\n pointProperty = OVERRIDE_STRING;\n\n userSizesProperty = OVERRIDE_STRING;\n\n visibleOffsetProperty = OVERRIDE_STRING;\n\n visibleSizesProperty = OVERRIDE_STRING;\n\n marginProperty = OVERRIDE_STRING;\n\n calculatedSizesProperty = OVERRIDE_STRING;\n\n modelIndexesProperty = OVERRIDE_STRING;\n\n firstIndexProperty = OVERRIDE_STRING;\n\n treePaddingProperty = OVERRIDE_STRING;\n\n getHiddenItems(itemIndex, metrics) {\n throw new Error('Need to override getHiddenItems');\n }\n\n getNextShownItem(itemIndex, metrics) {\n throw new Error('Need to override getNextShownItem');\n }\n\n // eslint-disable-next-line no-unused-vars\n setSize(metricCalculator, modelIndex, size) {\n throw new Error('Need to override setSize');\n }\n\n // eslint-disable-next-line no-unused-vars\n resetSize(metricCalculator, modelIndex) {\n throw new Error('Need to override resetSize');\n }\n\n // eslint-disable-next-line no-unused-vars\n updateSeparator(grid, separatorIndex) {\n throw new Error('Need to override updateSeparator');\n }\n\n // eslint-disable-next-line no-unused-vars\n getSeparatorIndex(gridPoint, grid, checkAllowResize = true) {\n throw new Error('Need to override getSeparatorIndex');\n }\n // End of overrides\n\n onDown(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n if (separatorIndex != null) {\n const { metrics } = grid;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separatorIndex);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n if (separatorIndex != null) {\n const { metrics } = grid;\n this.updateCursor(metrics, separatorIndex);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint, grid) {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n while (resizeIndex != null) {\n const itemOffset = visibleOffsets.get(resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = modelIndexes.get(resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = calculatedSizes.get(modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\n } else if (\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -= this.targetSizes.get(\n modelIndexes.get(resizeIndex)\n );\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex != null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n this.setSize(metricCalculator, modelIndex, newSize);\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(_, grid) {\n if (this.draggingIndex != null) {\n this.draggingIndex = null;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n\n if (separatorIndex != null) {\n const { metricCalculator, metrics } = grid;\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = modelIndexes.get(separatorIndex);\n\n this.resetSize(metricCalculator, modelIndex);\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics, itemIndex) {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = visibleSizes.get(itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics, itemIndex) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = modelIndexes.get(itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = calculatedSizes.get(modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics, itemIndex) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = modelIndexes.get(itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"file":"GridSeparatorMouseHandler.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.js"],"names":["GridMouseHandler","OVERRIDE_STRING","GridSeparatorMouseHandler","Map","itemIndex","metrics","Error","metricCalculator","modelIndex","size","grid","separatorIndex","gridPoint","checkAllowResize","getSeparatorIndex","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","point","pointProperty","theme","getTheme","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","get","itemSize","targetSize","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","getNextShownItem","push","forEach","setSize","_","resetSize","forceUpdate","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport GridMouseHandler from '../GridMouseHandler';\n\nconst OVERRIDE_STRING = 'NEED_TO_OVERRIDE_PROPERTY';\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nclass GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n draggingIndex = null;\n\n // The columns in the order they're being resized\n resizingItems = [];\n\n // Columns that were hidden under the separator when starting a drag\n hiddenItems = [];\n\n // The target width of the columns being resized\n targetSizes = new Map();\n\n dragOffset = 0;\n\n // Override/Implement these properties/functions\n cursor = OVERRIDE_STRING;\n\n hiddenCursor = OVERRIDE_STRING;\n\n defaultCursor = OVERRIDE_STRING;\n\n pointProperty = OVERRIDE_STRING;\n\n userSizesProperty = OVERRIDE_STRING;\n\n visibleOffsetProperty = OVERRIDE_STRING;\n\n visibleSizesProperty = OVERRIDE_STRING;\n\n marginProperty = OVERRIDE_STRING;\n\n calculatedSizesProperty = OVERRIDE_STRING;\n\n modelIndexesProperty = OVERRIDE_STRING;\n\n firstIndexProperty = OVERRIDE_STRING;\n\n treePaddingProperty = OVERRIDE_STRING;\n\n getHiddenItems(itemIndex, metrics) {\n throw new Error('Need to override getHiddenItems');\n }\n\n getNextShownItem(itemIndex, metrics) {\n throw new Error('Need to override getNextShownItem');\n }\n\n // eslint-disable-next-line no-unused-vars\n setSize(metricCalculator, modelIndex, size) {\n throw new Error('Need to override setSize');\n }\n\n // eslint-disable-next-line no-unused-vars\n resetSize(metricCalculator, modelIndex) {\n throw new Error('Need to override resetSize');\n }\n\n // eslint-disable-next-line no-unused-vars\n updateSeparator(grid, separatorIndex) {\n throw new Error('Need to override updateSeparator');\n }\n\n // eslint-disable-next-line no-unused-vars\n getSeparatorIndex(gridPoint, grid, checkAllowResize = true) {\n throw new Error('Need to override getSeparatorIndex');\n }\n // End of overrides\n\n onDown(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n if (separatorIndex != null) {\n const { metrics } = grid;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separatorIndex);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n if (separatorIndex != null) {\n const { metrics } = grid;\n this.updateCursor(metrics, separatorIndex);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint, grid) {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n while (resizeIndex != null) {\n const itemOffset = visibleOffsets.get(resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = modelIndexes.get(resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = calculatedSizes.get(modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\n } else if (\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -= this.targetSizes.get(\n modelIndexes.get(resizeIndex)\n );\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex != null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n this.setSize(metricCalculator, modelIndex, newSize);\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(_, grid) {\n if (this.draggingIndex != null) {\n this.draggingIndex = null;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint, grid) {\n const separatorIndex = this.getSeparatorIndex(gridPoint, grid);\n\n if (separatorIndex != null) {\n const { metricCalculator, metrics } = grid;\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = modelIndexes.get(separatorIndex);\n\n this.resetSize(metricCalculator, modelIndex);\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics, itemIndex) {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = visibleSizes.get(itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics, itemIndex) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = modelIndexes.get(itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = calculatedSizes.get(modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics, itemIndex) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = modelIndexes.get(itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"file":"GridSeparatorMouseHandler.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridVerticalScrollBarMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.js"],"names":[],"mappings":";AAGA;
|
|
1
|
+
{"version":3,"file":"GridVerticalScrollBarMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.js"],"names":[],"mappings":";AAGA;IAuHE;;;MAoBC;IA1ID,gBAAkB;IAKlB,kDAgBC;CAsHF"}
|