@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.
Files changed (89) hide show
  1. package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +2 -2
  2. package/dist/types/wcardinal/ui/d-table-body-row.d.ts +9 -9
  3. package/dist/types/wcardinal/ui/d-table-body.d.ts +5 -7
  4. package/dist/types/wcardinal/ui/d-table-category-cell.d.ts +37 -0
  5. package/dist/types/wcardinal/ui/d-table-category-column-impl.d.ts +24 -0
  6. package/dist/types/wcardinal/ui/d-table-category-column.d.ts +10 -0
  7. package/dist/types/wcardinal/ui/d-table-category-container-impl.d.ts +12 -0
  8. package/dist/types/wcardinal/ui/d-table-category-container.d.ts +4 -0
  9. package/dist/types/wcardinal/ui/d-table-category.d.ts +13 -12
  10. package/dist/types/wcardinal/ui/d-table-column-container-impl.d.ts +25 -0
  11. package/dist/types/wcardinal/ui/d-table-column-container.d.ts +12 -0
  12. package/dist/types/wcardinal/ui/d-table-column-impl.d.ts +44 -0
  13. package/dist/types/wcardinal/ui/d-table-column.d.ts +22 -19
  14. package/dist/types/wcardinal/ui/d-table-header-cell-check.d.ts +1 -1
  15. package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +34 -12
  16. package/dist/types/wcardinal/ui/d-table-header.d.ts +8 -9
  17. package/dist/types/wcardinal/ui/d-table-row.d.ts +8 -9
  18. package/dist/types/wcardinal/ui/d-table-state.d.ts +8 -0
  19. package/dist/types/wcardinal/ui/d-table.d.ts +15 -18
  20. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.d.ts +1 -0
  21. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header.d.ts +1 -0
  22. package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header-cell.d.ts +1 -0
  23. package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header.d.ts +1 -0
  24. package/dist/wcardinal/ui/d-base.js +2 -2
  25. package/dist/wcardinal/ui/d-base.js.map +1 -1
  26. package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
  27. package/dist/wcardinal/ui/d-table-body-row.js +4 -4
  28. package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
  29. package/dist/wcardinal/ui/d-table-body.js +6 -15
  30. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  31. package/dist/wcardinal/ui/d-table-category-cell.js +244 -2
  32. package/dist/wcardinal/ui/d-table-category-cell.js.map +1 -1
  33. package/dist/wcardinal/ui/d-table-category-column-impl.js +222 -0
  34. package/dist/wcardinal/ui/d-table-category-column-impl.js.map +1 -0
  35. package/dist/wcardinal/ui/d-table-category-column.js +6 -0
  36. package/dist/wcardinal/ui/d-table-category-column.js.map +1 -0
  37. package/dist/wcardinal/ui/d-table-category-container-impl.js +149 -0
  38. package/dist/wcardinal/ui/d-table-category-container-impl.js.map +1 -0
  39. package/dist/wcardinal/ui/d-table-category-container.js +2 -0
  40. package/dist/wcardinal/ui/d-table-category-container.js.map +1 -0
  41. package/dist/wcardinal/ui/d-table-category.js +49 -7
  42. package/dist/wcardinal/ui/d-table-category.js.map +1 -1
  43. package/dist/wcardinal/ui/d-table-column-container-impl.js +126 -0
  44. package/dist/wcardinal/ui/d-table-column-container-impl.js.map +1 -0
  45. package/dist/wcardinal/ui/d-table-column-container.js +2 -0
  46. package/dist/wcardinal/ui/d-table-column-container.js.map +1 -0
  47. package/dist/wcardinal/ui/d-table-column-impl.js +375 -0
  48. package/dist/wcardinal/ui/d-table-column-impl.js.map +1 -0
  49. package/dist/wcardinal/ui/d-table-column.js.map +1 -1
  50. package/dist/wcardinal/ui/d-table-header-cell-check.js.map +1 -1
  51. package/dist/wcardinal/ui/d-table-header-cell.js +245 -48
  52. package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
  53. package/dist/wcardinal/ui/d-table-header.js +8 -22
  54. package/dist/wcardinal/ui/d-table-header.js.map +1 -1
  55. package/dist/wcardinal/ui/d-table-row.js +7 -5
  56. package/dist/wcardinal/ui/d-table-row.js.map +1 -1
  57. package/dist/wcardinal/ui/d-table-state.js +9 -1
  58. package/dist/wcardinal/ui/d-table-state.js.map +1 -1
  59. package/dist/wcardinal/ui/d-table.js +69 -631
  60. package/dist/wcardinal/ui/d-table.js.map +1 -1
  61. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +7 -1
  62. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
  63. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js +7 -0
  64. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js.map +1 -1
  65. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +7 -1
  66. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
  67. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js +7 -0
  68. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js.map +1 -1
  69. package/dist/wcardinal-ui-theme-dark-en-us.js +14 -2
  70. package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
  71. package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
  72. package/dist/wcardinal-ui-theme-dark-ja-jp.js +14 -2
  73. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
  74. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
  75. package/dist/wcardinal-ui-theme-dark.js +14 -2
  76. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  77. package/dist/wcardinal-ui-theme-white-en-us.js +14 -2
  78. package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
  79. package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
  80. package/dist/wcardinal-ui-theme-white-ja-jp.js +14 -2
  81. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
  82. package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
  83. package/dist/wcardinal-ui-theme-white.js +14 -2
  84. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  85. package/dist/wcardinal-ui.cjs.js +1153 -371
  86. package/dist/wcardinal-ui.js +1127 -369
  87. package/dist/wcardinal-ui.min.js +2 -2
  88. package/dist/wcardinal-ui.min.js.map +1 -1
  89. 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
- return _super !== null && _super.apply(this, arguments) || this;
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,6 @@
1
+ /*
2
+ * Copyright (C) 2019 Toshiba Corporation
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=d-table-category-column.js.map
@@ -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"]}