@wcardinal/wcardinal-ui 0.411.0 → 0.412.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/types/wcardinal/ui/d-table-body-cell.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-row.d.ts +9 -9
- package/dist/types/wcardinal/ui/d-table-body.d.ts +5 -7
- package/dist/types/wcardinal/ui/d-table-category-cell.d.ts +37 -0
- package/dist/types/wcardinal/ui/d-table-category-column-impl.d.ts +24 -0
- package/dist/types/wcardinal/ui/d-table-category-column.d.ts +10 -0
- package/dist/types/wcardinal/ui/d-table-category-container-impl.d.ts +12 -0
- package/dist/types/wcardinal/ui/d-table-category-container.d.ts +4 -0
- package/dist/types/wcardinal/ui/d-table-category.d.ts +13 -12
- package/dist/types/wcardinal/ui/d-table-column-container-impl.d.ts +25 -0
- package/dist/types/wcardinal/ui/d-table-column-container.d.ts +12 -0
- package/dist/types/wcardinal/ui/d-table-column-impl.d.ts +44 -0
- package/dist/types/wcardinal/ui/d-table-column.d.ts +22 -19
- package/dist/types/wcardinal/ui/d-table-header-cell-check.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +34 -12
- package/dist/types/wcardinal/ui/d-table-header.d.ts +8 -9
- package/dist/types/wcardinal/ui/d-table-row.d.ts +8 -9
- package/dist/types/wcardinal/ui/d-table-state.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-table.d.ts +15 -18
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header-cell.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header.d.ts +1 -0
- package/dist/wcardinal/ui/d-base.js +2 -2
- package/dist/wcardinal/ui/d-base.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-row.js +4 -4
- package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body.js +6 -15
- package/dist/wcardinal/ui/d-table-body.js.map +1 -1
- package/dist/wcardinal/ui/d-table-category-cell.js +244 -2
- package/dist/wcardinal/ui/d-table-category-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-category-column-impl.js +222 -0
- package/dist/wcardinal/ui/d-table-category-column-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-column.js +6 -0
- package/dist/wcardinal/ui/d-table-category-column.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-container-impl.js +149 -0
- package/dist/wcardinal/ui/d-table-category-container-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category-container.js +2 -0
- package/dist/wcardinal/ui/d-table-category-container.js.map +1 -0
- package/dist/wcardinal/ui/d-table-category.js +49 -7
- package/dist/wcardinal/ui/d-table-category.js.map +1 -1
- package/dist/wcardinal/ui/d-table-column-container-impl.js +126 -0
- package/dist/wcardinal/ui/d-table-column-container-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column-container.js +2 -0
- package/dist/wcardinal/ui/d-table-column-container.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column-impl.js +375 -0
- package/dist/wcardinal/ui/d-table-column-impl.js.map +1 -0
- package/dist/wcardinal/ui/d-table-column.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header-cell-check.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header-cell.js +245 -48
- package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/d-table-header.js +8 -22
- package/dist/wcardinal/ui/d-table-header.js.map +1 -1
- package/dist/wcardinal/ui/d-table-row.js +7 -5
- package/dist/wcardinal/ui/d-table-row.js.map +1 -1
- package/dist/wcardinal/ui/d-table-state.js +9 -1
- package/dist/wcardinal/ui/d-table-state.js.map +1 -1
- package/dist/wcardinal/ui/d-table.js +69 -631
- package/dist/wcardinal/ui/d-table.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +7 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js +7 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +7 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js +7 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +14 -2
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +14 -2
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +14 -2
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.js +14 -2
- package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +14 -2
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +14 -2
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui.cjs.js +1153 -371
- package/dist/wcardinal-ui.js +1127 -369
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,12 +3,254 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { __extends } from "tslib";
|
|
6
|
+
import { Point } from "pixi.js";
|
|
6
7
|
import { DImage } from "./d-image";
|
|
8
|
+
import { DTableState } from "./d-table-state";
|
|
9
|
+
import { DApplications } from "./d-applications";
|
|
10
|
+
import { UtilPointerEvent } from "./util/util-pointer-event";
|
|
11
|
+
export var DTableCategoryCellEdge = {
|
|
12
|
+
NONE: 0,
|
|
13
|
+
LEFT: 1,
|
|
14
|
+
RIGHT: 2,
|
|
15
|
+
BOTH: 3
|
|
16
|
+
};
|
|
7
17
|
var DTableCategoryCell = /** @class */ (function (_super) {
|
|
8
18
|
__extends(DTableCategoryCell, _super);
|
|
9
|
-
function DTableCategoryCell() {
|
|
10
|
-
|
|
19
|
+
function DTableCategoryCell(category, columnIndex, column, options) {
|
|
20
|
+
var _this = _super.call(this, options) || this;
|
|
21
|
+
_this._category = category;
|
|
22
|
+
_this._columnIndex = columnIndex;
|
|
23
|
+
_this._column = column;
|
|
24
|
+
_this._edgeSize = _this.theme.getEdgeWidth();
|
|
25
|
+
_this._wasResizing = false;
|
|
26
|
+
return _this;
|
|
11
27
|
}
|
|
28
|
+
Object.defineProperty(DTableCategoryCell.prototype, "column", {
|
|
29
|
+
get: function () {
|
|
30
|
+
return this._column;
|
|
31
|
+
},
|
|
32
|
+
enumerable: false,
|
|
33
|
+
configurable: true
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(DTableCategoryCell.prototype, "columnIndex", {
|
|
36
|
+
get: function () {
|
|
37
|
+
return this._columnIndex;
|
|
38
|
+
},
|
|
39
|
+
enumerable: false,
|
|
40
|
+
configurable: true
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(DTableCategoryCell.prototype, "category", {
|
|
43
|
+
get: function () {
|
|
44
|
+
return this._category;
|
|
45
|
+
},
|
|
46
|
+
enumerable: false,
|
|
47
|
+
configurable: true
|
|
48
|
+
});
|
|
49
|
+
DTableCategoryCell.prototype.onDown = function (e) {
|
|
50
|
+
var edges = this.state.valueOf(DTableState.HOVERED_ON_EDGE);
|
|
51
|
+
if (edges != null) {
|
|
52
|
+
this._wasResizing = true;
|
|
53
|
+
var layer = DApplications.getLayer(this);
|
|
54
|
+
if (layer != null) {
|
|
55
|
+
var interactionManager = layer.renderer.plugins.interaction;
|
|
56
|
+
var columnIndex = this._columnIndex;
|
|
57
|
+
if (edges === DTableCategoryCellEdge.LEFT) {
|
|
58
|
+
this.onDownEdge(e.data.global.x, columnIndex - 1, interactionManager);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.onDownEdge(e.data.global.x, columnIndex, interactionManager);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this._wasResizing = false;
|
|
67
|
+
_super.prototype.onDown.call(this, e);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
DTableCategoryCell.prototype.findLeftResizableCell = function (columnIndex) {
|
|
71
|
+
var children = this._category.children;
|
|
72
|
+
var childrenLength = children.length;
|
|
73
|
+
for (var i = columnIndex; 0 <= i; --i) {
|
|
74
|
+
var child = children[childrenLength - i - 1];
|
|
75
|
+
if (child.column.resizable) {
|
|
76
|
+
return child;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
};
|
|
81
|
+
DTableCategoryCell.prototype.findRightResizableCellOfWeight = function (columnIndex) {
|
|
82
|
+
var children = this._category.children;
|
|
83
|
+
var childrenLength = children.length;
|
|
84
|
+
for (var i = columnIndex + 1; i < childrenLength; ++i) {
|
|
85
|
+
var child = children[childrenLength - i - 1];
|
|
86
|
+
var childColumn = child.column;
|
|
87
|
+
if (childColumn.resizable) {
|
|
88
|
+
var childColumnWeight = childColumn.weight;
|
|
89
|
+
if (childColumnWeight != null) {
|
|
90
|
+
return child;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
};
|
|
96
|
+
DTableCategoryCell.prototype.checkIfEdgeResizable = function (columnIndex) {
|
|
97
|
+
var target = this.findLeftResizableCell(columnIndex);
|
|
98
|
+
if (target != null) {
|
|
99
|
+
if (target.column.weight != null) {
|
|
100
|
+
return this.findRightResizableCellOfWeight(target.columnIndex) != null;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
};
|
|
108
|
+
DTableCategoryCell.prototype.getResizableEdges = function () {
|
|
109
|
+
var result = this._resizableEdges;
|
|
110
|
+
if (result == null) {
|
|
111
|
+
var columnIndex = this._columnIndex;
|
|
112
|
+
if (this.checkIfEdgeResizable(columnIndex - 1)) {
|
|
113
|
+
if (this.checkIfEdgeResizable(columnIndex)) {
|
|
114
|
+
result = DTableCategoryCellEdge.BOTH;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
result = DTableCategoryCellEdge.LEFT;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (this.checkIfEdgeResizable(columnIndex)) {
|
|
122
|
+
result = DTableCategoryCellEdge.RIGHT;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
result = DTableCategoryCellEdge.NONE;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this._resizableEdges = result;
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
};
|
|
132
|
+
DTableCategoryCell.prototype.onOver = function (e) {
|
|
133
|
+
var _this = this;
|
|
134
|
+
var _a;
|
|
135
|
+
_super.prototype.onOver.call(this, e);
|
|
136
|
+
if (this.getResizableEdges() !== DTableCategoryCellEdge.NONE) {
|
|
137
|
+
var onHoveredBound = ((_a = this._onHoveredBound) !== null && _a !== void 0 ? _a : (this._onHoveredBound = function (event) {
|
|
138
|
+
_this.onHovered(event);
|
|
139
|
+
}));
|
|
140
|
+
this.on(UtilPointerEvent.move, onHoveredBound);
|
|
141
|
+
// Since the cursor is set by InteractionManager before this method is called,
|
|
142
|
+
// the cursor need to be overriden.
|
|
143
|
+
this.onHovered(e);
|
|
144
|
+
var layer = DApplications.getLayer(this);
|
|
145
|
+
if (layer != null) {
|
|
146
|
+
layer.renderer.plugins.interaction.cursor = this.cursor;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
DTableCategoryCell.prototype.onOut = function (e) {
|
|
151
|
+
_super.prototype.onOut.call(this, e);
|
|
152
|
+
var onHoveredBound = this._onHoveredBound;
|
|
153
|
+
if (onHoveredBound != null) {
|
|
154
|
+
this.state.remove(DTableState.HOVERED_ON_EDGE);
|
|
155
|
+
this.off(UtilPointerEvent.move, onHoveredBound);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
DTableCategoryCell.prototype.onHovered = function (e) {
|
|
159
|
+
var width = this.width;
|
|
160
|
+
var x = this.toClickPosition(e);
|
|
161
|
+
var edgeSize = this._edgeSize;
|
|
162
|
+
if (0 <= x && x <= edgeSize) {
|
|
163
|
+
if (this.getResizableEdges() & DTableCategoryCellEdge.LEFT) {
|
|
164
|
+
this.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.LEFT);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.state.remove(DTableState.HOVERED_ON_EDGE);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else if (width - edgeSize <= x && x <= width) {
|
|
171
|
+
if (this.getResizableEdges() & DTableCategoryCellEdge.RIGHT) {
|
|
172
|
+
this.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.RIGHT);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.state.remove(DTableState.HOVERED_ON_EDGE);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
this.state.remove(DTableState.HOVERED_ON_EDGE);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
DTableCategoryCell.prototype.toClickPosition = function (e) {
|
|
183
|
+
var _a;
|
|
184
|
+
var checkWork = ((_a = this._checkWork) !== null && _a !== void 0 ? _a : (this._checkWork = new Point()));
|
|
185
|
+
return e.data.getLocalPosition(this, checkWork).x;
|
|
186
|
+
};
|
|
187
|
+
DTableCategoryCell.prototype.onDownEdge = function (onDownPoint, columnIndex, interactionManager) {
|
|
188
|
+
// Find the resizable cell
|
|
189
|
+
var left = this.findLeftResizableCell(columnIndex);
|
|
190
|
+
if (left == null) {
|
|
191
|
+
// No resizable cell
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
var category = this._category;
|
|
195
|
+
var leftColumn = left.column;
|
|
196
|
+
var leftOldWidth = left.width;
|
|
197
|
+
var leftOldWeight = left.weight;
|
|
198
|
+
if (leftColumn.weight == null) {
|
|
199
|
+
category.state.add(DTableState.RESIZING);
|
|
200
|
+
var leftMinWidth_1 = leftColumn.minWidth;
|
|
201
|
+
var onMove_1 = function (e) {
|
|
202
|
+
leftColumn.width = Math.max(leftMinWidth_1, leftOldWidth + e.data.global.x - onDownPoint);
|
|
203
|
+
};
|
|
204
|
+
var onUp_1 = function (e) {
|
|
205
|
+
category.state.remove(DTableState.RESIZING);
|
|
206
|
+
interactionManager.off(UtilPointerEvent.move, onMove_1);
|
|
207
|
+
interactionManager.off(UtilPointerEvent.up, onUp_1);
|
|
208
|
+
interactionManager.off(UtilPointerEvent.upoutside, onUp_1);
|
|
209
|
+
interactionManager.off(UtilPointerEvent.cancel, onUp_1);
|
|
210
|
+
};
|
|
211
|
+
interactionManager.on(UtilPointerEvent.move, onMove_1);
|
|
212
|
+
interactionManager.on(UtilPointerEvent.up, onUp_1);
|
|
213
|
+
interactionManager.on(UtilPointerEvent.upoutside, onUp_1);
|
|
214
|
+
interactionManager.on(UtilPointerEvent.cancel, onUp_1);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
var right = this.findRightResizableCellOfWeight(left.columnIndex);
|
|
218
|
+
if (right == null) {
|
|
219
|
+
// No right resizable cell found
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
var rightColumn_1 = right.column;
|
|
223
|
+
var rightOldWeight = right.weight;
|
|
224
|
+
var rightOldWidth = right.width;
|
|
225
|
+
var totalWidth_1 = leftOldWidth + rightOldWidth;
|
|
226
|
+
var totalWeight_1 = leftOldWeight + rightOldWeight;
|
|
227
|
+
var leftMinWeight_1 = leftColumn.minWeight;
|
|
228
|
+
var rightMinWeight = rightColumn_1.minWeight;
|
|
229
|
+
var leftMaxWeight_1 = totalWeight_1 - rightMinWeight;
|
|
230
|
+
if (totalWidth_1 <= 0 || leftMaxWeight_1 <= leftMinWeight_1) {
|
|
231
|
+
// The left and right resizable cells doesn't non-zero width
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
category.state.add(DTableState.RESIZING);
|
|
235
|
+
var onMove_2 = function (e) {
|
|
236
|
+
var leftNewWidth = Math.max(0, Math.min(totalWidth_1, leftOldWidth + e.data.global.x - onDownPoint));
|
|
237
|
+
var leftNewWeight = Math.max(leftMinWeight_1, Math.min(leftMaxWeight_1, totalWeight_1 * (leftNewWidth / totalWidth_1)));
|
|
238
|
+
leftColumn.weight = leftNewWeight;
|
|
239
|
+
rightColumn_1.weight = totalWeight_1 - leftNewWeight;
|
|
240
|
+
};
|
|
241
|
+
var onUp_2 = function (e) {
|
|
242
|
+
category.state.remove(DTableState.RESIZING);
|
|
243
|
+
interactionManager.off(UtilPointerEvent.move, onMove_2);
|
|
244
|
+
interactionManager.off(UtilPointerEvent.up, onUp_2);
|
|
245
|
+
interactionManager.off(UtilPointerEvent.upoutside, onUp_2);
|
|
246
|
+
interactionManager.off(UtilPointerEvent.cancel, onUp_2);
|
|
247
|
+
};
|
|
248
|
+
interactionManager.on(UtilPointerEvent.move, onMove_2);
|
|
249
|
+
interactionManager.on(UtilPointerEvent.up, onUp_2);
|
|
250
|
+
interactionManager.on(UtilPointerEvent.upoutside, onUp_2);
|
|
251
|
+
interactionManager.on(UtilPointerEvent.cancel, onUp_2);
|
|
252
|
+
}
|
|
253
|
+
};
|
|
12
254
|
DTableCategoryCell.prototype.getType = function () {
|
|
13
255
|
return "DTableCategoryCell";
|
|
14
256
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-table-category-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,MAAM,EAA8B,MAAM,WAAW,CAAC;AAQ/D;IAGU,sCAAqC;IAH/C;;IAOA,CAAC;IAHU,oCAAO,GAAjB;QACC,OAAO,oBAAoB,CAAC;IAC7B,CAAC;IACF,yBAAC;AAAD,CAAC,AAPD,CAGU,MAAM,GAIf","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DImage, DImageOptions, DThemeImage } from \"./d-image\";\n\nexport interface DTableCategoryCellOptions<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell\n> extends DImageOptions<string | null, THEME> {}\n\nexport interface DThemeTableCategoryCell extends DThemeImage<string | null> {}\n\nexport class DTableCategoryCell<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell,\n\tOPTIONS extends DTableCategoryCellOptions<THEME> = DTableCategoryCellOptions<THEME>\n> extends DImage<string | null, THEME, OPTIONS> {\n\tprotected getType(): string {\n\t\treturn \"DTableCategoryCell\";\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-table-category-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-cell.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, InteractionManager, Point } from \"pixi.js\";\nimport { DImage, DImageOptions, DThemeImage } from \"./d-image\";\nimport { DTableCategoryColumn } from \"./d-table-category-column\";\nimport { DTableState } from \"./d-table-state\";\nimport { DApplications } from \"./d-applications\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\n\nexport interface DTableCategoryCellCategory {\n\treadonly children: DTableCategoryCell[];\n\treadonly state: DBaseStateSet;\n}\n\nexport interface DTableCategoryCellOptions<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell\n> extends DImageOptions<string | null, THEME> {}\n\nexport interface DThemeTableCategoryCell extends DThemeImage<string | null> {\n\tgetEdgeWidth(): number;\n}\n\nexport const DTableCategoryCellEdge = {\n\tNONE: 0,\n\tLEFT: 1,\n\tRIGHT: 2,\n\tBOTH: 3\n} as const;\n\nexport type DTableCategoryCellEdge =\n\t(typeof DTableCategoryCellEdge)[keyof typeof DTableCategoryCellEdge];\n\nexport class DTableCategoryCell<\n\tTHEME extends DThemeTableCategoryCell = DThemeTableCategoryCell,\n\tOPTIONS extends DTableCategoryCellOptions<THEME> = DTableCategoryCellOptions<THEME>\n> extends DImage<string | null, THEME, OPTIONS> {\n\tprotected _category: DTableCategoryCellCategory;\n\tprotected _column: DTableCategoryColumn;\n\tprotected _columnIndex: number;\n\n\tprotected _checkWork?: Point;\n\tprotected _onHoveredBound?: (e: InteractionEvent) => void;\n\tprotected _resizableEdges?: DTableCategoryCellEdge;\n\tprotected _edgeSize: number;\n\tprotected _wasResizing: boolean;\n\n\tconstructor(\n\t\tcategory: DTableCategoryCellCategory,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableCategoryColumn,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(options);\n\n\t\tthis._category = category;\n\t\tthis._columnIndex = columnIndex;\n\t\tthis._column = column;\n\t\tthis._edgeSize = this.theme.getEdgeWidth();\n\t\tthis._wasResizing = false;\n\t}\n\n\tget column(): DTableCategoryColumn {\n\t\treturn this._column;\n\t}\n\n\tget columnIndex(): number {\n\t\treturn this._columnIndex;\n\t}\n\n\tget category(): DTableCategoryCellCategory {\n\t\treturn this._category;\n\t}\n\n\tprotected override onDown(e: InteractionEvent): void {\n\t\tconst edges = this.state.valueOf(DTableState.HOVERED_ON_EDGE);\n\t\tif (edges != null) {\n\t\t\tthis._wasResizing = true;\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer != null) {\n\t\t\t\tconst interactionManager = layer.renderer.plugins.interaction;\n\t\t\t\tconst columnIndex = this._columnIndex;\n\t\t\t\tif (edges === DTableCategoryCellEdge.LEFT) {\n\t\t\t\t\tthis.onDownEdge(e.data.global.x, columnIndex - 1, interactionManager);\n\t\t\t\t} else {\n\t\t\t\t\tthis.onDownEdge(e.data.global.x, columnIndex, interactionManager);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._wasResizing = false;\n\t\t\tsuper.onDown(e);\n\t\t}\n\t}\n\n\tprotected findLeftResizableCell(columnIndex: number): DTableCategoryCell | null {\n\t\tconst children = this._category.children;\n\t\tconst childrenLength = children.length;\n\t\tfor (let i = columnIndex; 0 <= i; --i) {\n\t\t\tconst child = children[childrenLength - i - 1];\n\t\t\tif (child.column.resizable) {\n\t\t\t\treturn child;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected findRightResizableCellOfWeight(columnIndex: number): DTableCategoryCell | null {\n\t\tconst children = this._category.children;\n\t\tconst childrenLength = children.length;\n\t\tfor (let i = columnIndex + 1; i < childrenLength; ++i) {\n\t\t\tconst child = children[childrenLength - i - 1];\n\t\t\tconst childColumn = child.column;\n\t\t\tif (childColumn.resizable) {\n\t\t\t\tconst childColumnWeight = childColumn.weight;\n\t\t\t\tif (childColumnWeight != null) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected checkIfEdgeResizable(columnIndex: number): boolean {\n\t\tconst target = this.findLeftResizableCell(columnIndex);\n\t\tif (target != null) {\n\t\t\tif (target.column.weight != null) {\n\t\t\t\treturn this.findRightResizableCellOfWeight(target.columnIndex) != null;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected getResizableEdges(): DTableCategoryCellEdge {\n\t\tlet result = this._resizableEdges;\n\t\tif (result == null) {\n\t\t\tconst columnIndex = this._columnIndex;\n\t\t\tif (this.checkIfEdgeResizable(columnIndex - 1)) {\n\t\t\t\tif (this.checkIfEdgeResizable(columnIndex)) {\n\t\t\t\t\tresult = DTableCategoryCellEdge.BOTH;\n\t\t\t\t} else {\n\t\t\t\t\tresult = DTableCategoryCellEdge.LEFT;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.checkIfEdgeResizable(columnIndex)) {\n\t\t\t\t\tresult = DTableCategoryCellEdge.RIGHT;\n\t\t\t\t} else {\n\t\t\t\t\tresult = DTableCategoryCellEdge.NONE;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._resizableEdges = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected override onOver(e: InteractionEvent): void {\n\t\tsuper.onOver(e);\n\n\t\tif (this.getResizableEdges() !== DTableCategoryCellEdge.NONE) {\n\t\t\tconst onHoveredBound = (this._onHoveredBound ??= (event: InteractionEvent): void => {\n\t\t\t\tthis.onHovered(event);\n\t\t\t});\n\t\t\tthis.on(UtilPointerEvent.move, onHoveredBound);\n\n\t\t\t// Since the cursor is set by InteractionManager before this method is called,\n\t\t\t// the cursor need to be overriden.\n\t\t\tthis.onHovered(e);\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer != null) {\n\t\t\t\tlayer.renderer.plugins.interaction.cursor = this.cursor;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected override onOut(e: InteractionEvent): void {\n\t\tsuper.onOut(e);\n\n\t\tconst onHoveredBound = this._onHoveredBound;\n\t\tif (onHoveredBound != null) {\n\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\tthis.off(UtilPointerEvent.move, onHoveredBound);\n\t\t}\n\t}\n\n\tprotected onHovered(e: InteractionEvent): void {\n\t\tconst width = this.width;\n\t\tconst x = this.toClickPosition(e);\n\t\tconst edgeSize = this._edgeSize;\n\t\tif (0 <= x && x <= edgeSize) {\n\t\t\tif (this.getResizableEdges() & DTableCategoryCellEdge.LEFT) {\n\t\t\t\tthis.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.LEFT);\n\t\t\t} else {\n\t\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\t}\n\t\t} else if (width - edgeSize <= x && x <= width) {\n\t\t\tif (this.getResizableEdges() & DTableCategoryCellEdge.RIGHT) {\n\t\t\t\tthis.state.add(DTableState.HOVERED_ON_EDGE, DTableCategoryCellEdge.RIGHT);\n\t\t\t} else {\n\t\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.remove(DTableState.HOVERED_ON_EDGE);\n\t\t}\n\t}\n\n\tprotected toClickPosition(e: InteractionEvent): number {\n\t\tconst checkWork = (this._checkWork ??= new Point());\n\t\treturn e.data.getLocalPosition(this, checkWork).x;\n\t}\n\n\tprotected onDownEdge(\n\t\tonDownPoint: number,\n\t\tcolumnIndex: number,\n\t\tinteractionManager: InteractionManager\n\t): void {\n\t\t// Find the resizable cell\n\t\tconst left = this.findLeftResizableCell(columnIndex);\n\t\tif (left == null) {\n\t\t\t// No resizable cell\n\t\t\treturn;\n\t\t}\n\n\t\tconst category = this._category;\n\t\tconst leftColumn = left.column;\n\t\tconst leftOldWidth = left.width;\n\t\tconst leftOldWeight = left.weight;\n\t\tif (leftColumn.weight == null) {\n\t\t\tcategory.state.add(DTableState.RESIZING);\n\t\t\tconst leftMinWidth = leftColumn.minWidth;\n\t\t\tconst onMove = (e: InteractionEvent): void => {\n\t\t\t\tleftColumn.width = Math.max(\n\t\t\t\t\tleftMinWidth,\n\t\t\t\t\tleftOldWidth + e.data.global.x - onDownPoint\n\t\t\t\t);\n\t\t\t};\n\t\t\tconst onUp = (e: InteractionEvent) => {\n\t\t\t\tcategory.state.remove(DTableState.RESIZING);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onUp);\n\t\t\t};\n\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t} else {\n\t\t\tconst right = this.findRightResizableCellOfWeight(left.columnIndex);\n\t\t\tif (right == null) {\n\t\t\t\t// No right resizable cell found\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst rightColumn = right.column;\n\t\t\tconst rightOldWeight = right.weight;\n\t\t\tconst rightOldWidth = right.width;\n\t\t\tconst totalWidth = leftOldWidth + rightOldWidth;\n\t\t\tconst totalWeight = leftOldWeight + rightOldWeight;\n\t\t\tconst leftMinWeight = leftColumn.minWeight;\n\t\t\tconst rightMinWeight = rightColumn.minWeight;\n\t\t\tconst leftMaxWeight = totalWeight - rightMinWeight;\n\t\t\tif (totalWidth <= 0 || leftMaxWeight <= leftMinWeight) {\n\t\t\t\t// The left and right resizable cells doesn't non-zero width\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcategory.state.add(DTableState.RESIZING);\n\t\t\tconst onMove = (e: InteractionEvent): void => {\n\t\t\t\tconst leftNewWidth = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tMath.min(totalWidth, leftOldWidth + e.data.global.x - onDownPoint)\n\t\t\t\t);\n\t\t\t\tconst leftNewWeight = Math.max(\n\t\t\t\t\tleftMinWeight,\n\t\t\t\t\tMath.min(leftMaxWeight, totalWeight * (leftNewWidth / totalWidth))\n\t\t\t\t);\n\t\t\t\tleftColumn.weight = leftNewWeight;\n\t\t\t\trightColumn.weight = totalWeight - leftNewWeight;\n\t\t\t};\n\t\t\tconst onUp = (e: InteractionEvent) => {\n\t\t\t\tcategory.state.remove(DTableState.RESIZING);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.move, onMove);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.up, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.upoutside, onUp);\n\t\t\t\tinteractionManager.off(UtilPointerEvent.cancel, onUp);\n\t\t\t};\n\t\t\tinteractionManager.on(UtilPointerEvent.move, onMove);\n\t\t\tinteractionManager.on(UtilPointerEvent.up, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.upoutside, onUp);\n\t\t\tinteractionManager.on(UtilPointerEvent.cancel, onUp);\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableCategoryCell\";\n\t}\n}\n"]}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 Toshiba Corporation
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { __extends } from "tslib";
|
|
6
|
+
import { utils } from "pixi.js";
|
|
7
|
+
import { isString } from "./util/is-string";
|
|
8
|
+
var DTableCategoryColumnImpl = /** @class */ (function (_super) {
|
|
9
|
+
__extends(DTableCategoryColumnImpl, _super);
|
|
10
|
+
function DTableCategoryColumnImpl(index, column) {
|
|
11
|
+
var _this = _super.call(this) || this;
|
|
12
|
+
// Label
|
|
13
|
+
var category = column.category;
|
|
14
|
+
if (category) {
|
|
15
|
+
if (isString(category)) {
|
|
16
|
+
if (index === 0) {
|
|
17
|
+
_this.label = category;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
if (index < category.length) {
|
|
22
|
+
_this.label = category[index];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
_this._weight = column.weight;
|
|
27
|
+
_this._width = column.width;
|
|
28
|
+
_this._isLocked = false;
|
|
29
|
+
_this.offset = 0.0;
|
|
30
|
+
_this._columns = [column];
|
|
31
|
+
_this._nresizable = column.resizable ? 1 : 0;
|
|
32
|
+
var onResizeBound = function () {
|
|
33
|
+
_this.onResize();
|
|
34
|
+
};
|
|
35
|
+
_this._onResizeBound = onResizeBound;
|
|
36
|
+
column.on("resize", onResizeBound);
|
|
37
|
+
return _this;
|
|
38
|
+
}
|
|
39
|
+
DTableCategoryColumnImpl.prototype.onResize = function () {
|
|
40
|
+
if (this._isLocked) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
var columns = this._columns;
|
|
44
|
+
if (this._weight != null) {
|
|
45
|
+
var newWeight = 0;
|
|
46
|
+
for (var i = 0, imax = columns.length; i < imax; ++i) {
|
|
47
|
+
var weight = columns[i].weight;
|
|
48
|
+
if (weight != null) {
|
|
49
|
+
newWeight += weight;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (this._weight !== newWeight) {
|
|
53
|
+
this._weight = newWeight;
|
|
54
|
+
this.emit("resize", this);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
var newWidth = 0;
|
|
59
|
+
for (var i = 0, imax = columns.length; i < imax; ++i) {
|
|
60
|
+
var width = columns[i].width;
|
|
61
|
+
if (width != null) {
|
|
62
|
+
newWidth += width;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (this._width !== newWidth) {
|
|
66
|
+
this._width = newWidth;
|
|
67
|
+
this.emit("resize", this);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
Object.defineProperty(DTableCategoryColumnImpl.prototype, "resizable", {
|
|
72
|
+
get: function () {
|
|
73
|
+
return 0 < this._nresizable;
|
|
74
|
+
},
|
|
75
|
+
enumerable: false,
|
|
76
|
+
configurable: true
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(DTableCategoryColumnImpl.prototype, "weight", {
|
|
79
|
+
get: function () {
|
|
80
|
+
return this._weight;
|
|
81
|
+
},
|
|
82
|
+
set: function (weight) {
|
|
83
|
+
var oldWeight = this._weight;
|
|
84
|
+
var nresizable = this._nresizable;
|
|
85
|
+
if (0 < nresizable && oldWeight != null && oldWeight !== weight) {
|
|
86
|
+
var columns = this._columns;
|
|
87
|
+
var columnsLength = columns.length;
|
|
88
|
+
var minWeight = this.minWeight;
|
|
89
|
+
var newWeight = Math.max(minWeight, weight);
|
|
90
|
+
if (this._weight !== newWeight) {
|
|
91
|
+
this._isLocked = true;
|
|
92
|
+
if (minWeight < oldWeight) {
|
|
93
|
+
var columnWeightRatio = (newWeight - minWeight) / (oldWeight - minWeight);
|
|
94
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
95
|
+
var column = columns[i];
|
|
96
|
+
var columnWeight = column.weight;
|
|
97
|
+
if (column.resizable && columnWeight != null) {
|
|
98
|
+
column.weight = columnWeight * columnWeightRatio;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
var newColumnWeight = (newWeight - minWeight) / this._nresizable;
|
|
104
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
105
|
+
var column = columns[i];
|
|
106
|
+
var columnWeight = column.weight;
|
|
107
|
+
if (column.resizable && columnWeight != null) {
|
|
108
|
+
column.weight = newColumnWeight;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this._isLocked = false;
|
|
113
|
+
this.onResize();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
enumerable: false,
|
|
118
|
+
configurable: true
|
|
119
|
+
});
|
|
120
|
+
Object.defineProperty(DTableCategoryColumnImpl.prototype, "minWeight", {
|
|
121
|
+
get: function () {
|
|
122
|
+
var result = 0;
|
|
123
|
+
var columns = this._columns;
|
|
124
|
+
var columnsLength = columns.length;
|
|
125
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
126
|
+
var column = columns[i];
|
|
127
|
+
var columnWeight = column.weight;
|
|
128
|
+
if (!column.resizable && columnWeight != null) {
|
|
129
|
+
result += columnWeight;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
},
|
|
134
|
+
enumerable: false,
|
|
135
|
+
configurable: true
|
|
136
|
+
});
|
|
137
|
+
Object.defineProperty(DTableCategoryColumnImpl.prototype, "width", {
|
|
138
|
+
get: function () {
|
|
139
|
+
return this._width;
|
|
140
|
+
},
|
|
141
|
+
set: function (width) {
|
|
142
|
+
var oldWidth = this._width;
|
|
143
|
+
var nresizable = this._nresizable;
|
|
144
|
+
if (0 < nresizable && oldWidth != null && oldWidth !== width) {
|
|
145
|
+
var columns = this._columns;
|
|
146
|
+
var columnsLength = columns.length;
|
|
147
|
+
var minWidth = this.minWidth;
|
|
148
|
+
var newWidth = Math.max(minWidth, width);
|
|
149
|
+
if (oldWidth !== newWidth) {
|
|
150
|
+
this._isLocked = true;
|
|
151
|
+
if (minWidth < oldWidth) {
|
|
152
|
+
var columnWidthRatio = (newWidth - minWidth) / (oldWidth - minWidth);
|
|
153
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
154
|
+
var column = columns[i];
|
|
155
|
+
var columnWidth = column.width;
|
|
156
|
+
if (column.resizable && columnWidth != null) {
|
|
157
|
+
column.width = columnWidth * columnWidthRatio;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
var newColumnWidth = (newWidth - minWidth) / this._nresizable;
|
|
163
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
164
|
+
var column = columns[i];
|
|
165
|
+
var columnWidth = column.width;
|
|
166
|
+
if (column.resizable && columnWidth != null) {
|
|
167
|
+
column.width = newColumnWidth;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
this._isLocked = false;
|
|
172
|
+
this.onResize();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
enumerable: false,
|
|
177
|
+
configurable: true
|
|
178
|
+
});
|
|
179
|
+
Object.defineProperty(DTableCategoryColumnImpl.prototype, "minWidth", {
|
|
180
|
+
get: function () {
|
|
181
|
+
var result = 0;
|
|
182
|
+
var columns = this._columns;
|
|
183
|
+
var columnsLength = columns.length;
|
|
184
|
+
for (var i = 0; i < columnsLength; ++i) {
|
|
185
|
+
var column = columns[i];
|
|
186
|
+
var columnWidth = column.width;
|
|
187
|
+
if (!column.resizable && columnWidth != null) {
|
|
188
|
+
result += columnWidth;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return result;
|
|
192
|
+
},
|
|
193
|
+
enumerable: false,
|
|
194
|
+
configurable: true
|
|
195
|
+
});
|
|
196
|
+
DTableCategoryColumnImpl.prototype.add = function (column) {
|
|
197
|
+
this._columns.push(column);
|
|
198
|
+
if (this._weight != null) {
|
|
199
|
+
var weight = column.weight;
|
|
200
|
+
if (weight != null) {
|
|
201
|
+
this._weight += weight;
|
|
202
|
+
if (column.resizable) {
|
|
203
|
+
this._nresizable += 1;
|
|
204
|
+
}
|
|
205
|
+
column.on("resize", this._onResizeBound);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else if (this._width != null) {
|
|
209
|
+
var width = column.width;
|
|
210
|
+
if (width != null) {
|
|
211
|
+
this._width += width;
|
|
212
|
+
if (column.resizable) {
|
|
213
|
+
this._nresizable += 1;
|
|
214
|
+
}
|
|
215
|
+
column.on("resize", this._onResizeBound);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
return DTableCategoryColumnImpl;
|
|
220
|
+
}(utils.EventEmitter));
|
|
221
|
+
export { DTableCategoryColumnImpl };
|
|
222
|
+
//# sourceMappingURL=d-table-category-column-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d-table-category-column-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-column-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DTableCategoryColumn } from \"./d-table-category-column\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { isString } from \"./util/is-string\";\nimport { DTableColumnSelectingDialog } from \"./d-table-column-selecting\";\n\nexport class DTableCategoryColumnImpl<\n\t\tROW_VALUE,\n\t\tCELL_VALUE,\n\t\tDIALOG_VALUE = CELL_VALUE,\n\t\tDIALOG extends\n\t\t\tDTableColumnSelectingDialog<DIALOG_VALUE> = DTableColumnSelectingDialog<DIALOG_VALUE>\n\t>\n\textends utils.EventEmitter\n\timplements DTableCategoryColumn\n{\n\tlabel: string | undefined;\n\tprotected _weight: number | undefined;\n\tprotected _width: number | undefined;\n\tprotected _isLocked: boolean;\n\toffset: number;\n\tprotected _columns: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>[];\n\tprotected _nresizable: number;\n\n\tprotected _onResizeBound: (\n\t\tcolumn: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>\n\t) => void;\n\n\tconstructor(index: number, column: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>) {\n\t\tsuper();\n\n\t\t// Label\n\t\tconst category = column.category;\n\t\tif (category) {\n\t\t\tif (isString(category)) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tthis.label = category;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (index < category.length) {\n\t\t\t\t\tthis.label = category[index];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._weight = column.weight;\n\t\tthis._width = column.width;\n\t\tthis._isLocked = false;\n\t\tthis.offset = 0.0;\n\t\tthis._columns = [column];\n\t\tthis._nresizable = column.resizable ? 1 : 0;\n\n\t\tconst onResizeBound = (): void => {\n\t\t\tthis.onResize();\n\t\t};\n\t\tthis._onResizeBound = onResizeBound;\n\t\tcolumn.on(\"resize\", onResizeBound);\n\t}\n\n\tprotected onResize(): void {\n\t\tif (this._isLocked) {\n\t\t\treturn;\n\t\t}\n\t\tconst columns = this._columns;\n\t\tif (this._weight != null) {\n\t\t\tlet newWeight = 0;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst weight = columns[i].weight;\n\t\t\t\tif (weight != null) {\n\t\t\t\t\tnewWeight += weight;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._weight !== newWeight) {\n\t\t\t\tthis._weight = newWeight;\n\t\t\t\tthis.emit(\"resize\", this);\n\t\t\t}\n\t\t} else {\n\t\t\tlet newWidth = 0;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst width = columns[i].width;\n\t\t\t\tif (width != null) {\n\t\t\t\t\tnewWidth += width;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._width !== newWidth) {\n\t\t\t\tthis._width = newWidth;\n\t\t\t\tthis.emit(\"resize\", this);\n\t\t\t}\n\t\t}\n\t}\n\n\tget resizable(): boolean {\n\t\treturn 0 < this._nresizable;\n\t}\n\n\tget weight(): number | undefined {\n\t\treturn this._weight;\n\t}\n\n\tset weight(weight: number) {\n\t\tconst oldWeight = this._weight;\n\t\tconst nresizable = this._nresizable;\n\t\tif (0 < nresizable && oldWeight != null && oldWeight !== weight) {\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tconst minWeight = this.minWeight;\n\t\t\tconst newWeight = Math.max(minWeight, weight);\n\t\t\tif (this._weight !== newWeight) {\n\t\t\t\tthis._isLocked = true;\n\t\t\t\tif (minWeight < oldWeight) {\n\t\t\t\t\tconst columnWeightRatio = (newWeight - minWeight) / (oldWeight - minWeight);\n\t\t\t\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\t\t\t\tconst column = columns[i];\n\t\t\t\t\t\tconst columnWeight = column.weight;\n\t\t\t\t\t\tif (column.resizable && columnWeight != null) {\n\t\t\t\t\t\t\tcolumn.weight = columnWeight * columnWeightRatio;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst newColumnWeight = (newWeight - minWeight) / this._nresizable;\n\t\t\t\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\t\t\t\tconst column = columns[i];\n\t\t\t\t\t\tconst columnWeight = column.weight;\n\t\t\t\t\t\tif (column.resizable && columnWeight != null) {\n\t\t\t\t\t\t\tcolumn.weight = newColumnWeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._isLocked = false;\n\t\t\t\tthis.onResize();\n\t\t\t}\n\t\t}\n\t}\n\n\tget minWeight(): number {\n\t\tlet result = 0;\n\t\tconst columns = this._columns;\n\t\tconst columnsLength = columns.length;\n\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tconst columnWeight = column.weight;\n\t\t\tif (!column.resizable && columnWeight != null) {\n\t\t\t\tresult += columnWeight;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tget width(): number | undefined {\n\t\treturn this._width;\n\t}\n\n\tset width(width: number) {\n\t\tconst oldWidth = this._width;\n\t\tconst nresizable = this._nresizable;\n\t\tif (0 < nresizable && oldWidth != null && oldWidth !== width) {\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tconst minWidth = this.minWidth;\n\t\t\tconst newWidth = Math.max(minWidth, width);\n\t\t\tif (oldWidth !== newWidth) {\n\t\t\t\tthis._isLocked = true;\n\t\t\t\tif (minWidth < oldWidth) {\n\t\t\t\t\tconst columnWidthRatio = (newWidth - minWidth) / (oldWidth - minWidth);\n\t\t\t\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\t\t\t\tconst column = columns[i];\n\t\t\t\t\t\tconst columnWidth = column.width;\n\t\t\t\t\t\tif (column.resizable && columnWidth != null) {\n\t\t\t\t\t\t\tcolumn.width = columnWidth * columnWidthRatio;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst newColumnWidth = (newWidth - minWidth) / this._nresizable;\n\t\t\t\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\t\t\t\tconst column = columns[i];\n\t\t\t\t\t\tconst columnWidth = column.width;\n\t\t\t\t\t\tif (column.resizable && columnWidth != null) {\n\t\t\t\t\t\t\tcolumn.width = newColumnWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._isLocked = false;\n\t\t\t\tthis.onResize();\n\t\t\t}\n\t\t}\n\t}\n\n\tget minWidth(): number {\n\t\tlet result = 0;\n\t\tconst columns = this._columns;\n\t\tconst columnsLength = columns.length;\n\t\tfor (let i = 0; i < columnsLength; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tconst columnWidth = column.width;\n\t\t\tif (!column.resizable && columnWidth != null) {\n\t\t\t\tresult += columnWidth;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tadd(column: DTableColumn<ROW_VALUE, CELL_VALUE, DIALOG_VALUE, DIALOG>): void {\n\t\tthis._columns.push(column);\n\t\tif (this._weight != null) {\n\t\t\tconst weight = column.weight;\n\t\t\tif (weight != null) {\n\t\t\t\tthis._weight += weight;\n\t\t\t\tif (column.resizable) {\n\t\t\t\t\tthis._nresizable += 1;\n\t\t\t\t}\n\t\t\t\tcolumn.on(\"resize\", this._onResizeBound);\n\t\t\t}\n\t\t} else if (this._width != null) {\n\t\t\tconst width = column.width;\n\t\t\tif (width != null) {\n\t\t\t\tthis._width += width;\n\t\t\t\tif (column.resizable) {\n\t\t\t\t\tthis._nresizable += 1;\n\t\t\t\t}\n\t\t\t\tcolumn.on(\"resize\", this._onResizeBound);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d-table-category-column.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-category-column.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\n\nexport interface DTableCategoryColumn extends utils.EventEmitter {\n\treadonly label?: string;\n\tweight?: number;\n\treadonly minWeight: number;\n\twidth?: number;\n\treadonly minWidth: number;\n\toffset: number;\n\treadonly resizable: boolean;\n}\n"]}
|