@wcardinal/wcardinal-ui 0.141.0 → 0.145.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-application-like.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-button-link.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-chart-axis-x-datetime.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-chart-axis-y.d.ts +1 -1
- package/dist/types/wcardinal/ui/d-dialog-select.d.ts +13 -14
- package/dist/types/wcardinal/ui/d-item-updater.d.ts +19 -0
- package/dist/types/wcardinal/ui/d-link.d.ts +23 -12
- package/dist/types/wcardinal/ui/d-list-data-selection.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-list-item-accessor-impl.d.ts +3 -1
- package/dist/types/wcardinal/ui/d-list-item-accessor.d.ts +19 -4
- package/dist/types/wcardinal/ui/d-list-item-ambient.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-list-item.d.ts +7 -2
- package/dist/types/wcardinal/ui/d-menu-item-link.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-note-error.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-note-no-items-found.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-note-searching.d.ts +8 -0
- package/dist/types/wcardinal/ui/d-note.d.ts +4 -5
- package/dist/types/wcardinal/ui/d-table-body-cell-link.d.ts +2 -2
- package/dist/types/wcardinal/ui/d-table-body-cell-tree.d.ts +2 -2
- package/dist/types/wcardinal/ui/index.d.ts +4 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-button-link.d.ts +0 -3
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-dialog-select.d.ts +2 -2
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-input-search.d.ts +0 -1
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-link.d.ts +12 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-list-item-ambient.d.ts +6 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-menu-item-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-note-error.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-note-no-items-found.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-note-searching.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-note.d.ts +11 -2
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-tree.d.ts +0 -3
- package/dist/types/wcardinal/ui/theme/dark/index.d.ts +7 -2
- package/dist/types/wcardinal/ui/theme/dark/load/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/load/load-theme-dark-link.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-button-link.d.ts +0 -3
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-diagram-canvas.d.ts +1 -1
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-dialog-select.d.ts +2 -2
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-input-search.d.ts +0 -1
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-link.d.ts +12 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-list-item-ambient.d.ts +6 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-menu-item-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-note-error.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-note-no-items-found.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-note-searching.d.ts +8 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-note.d.ts +11 -2
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-body-cell-link.d.ts +3 -3
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-body-cell-tree.d.ts +0 -3
- package/dist/types/wcardinal/ui/theme/white/index.d.ts +5 -0
- package/dist/types/wcardinal/ui/theme/white/load/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/white/load/load-theme-white-link.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/dynamic-font-atlas.d.ts +2 -0
- package/dist/types/wcardinal/ui/util/util-transition.d.ts +3 -3
- package/dist/wcardinal/ui/d-application-like.js.map +1 -1
- package/dist/wcardinal/ui/d-button-link.js +1 -1
- package/dist/wcardinal/ui/d-button-link.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-x-datetime.js.map +1 -1
- package/dist/wcardinal/ui/d-chart-axis-y.js.map +1 -1
- package/dist/wcardinal/ui/d-dialog-select.js +55 -34
- package/dist/wcardinal/ui/d-dialog-select.js.map +1 -1
- package/dist/wcardinal/ui/d-item-updater.js +48 -11
- package/dist/wcardinal/ui/d-item-updater.js.map +1 -1
- package/dist/wcardinal/ui/d-link.js +58 -25
- package/dist/wcardinal/ui/d-link.js.map +1 -1
- package/dist/wcardinal/ui/d-list-data-selection.js.map +1 -1
- package/dist/wcardinal/ui/d-list-item-accessor-impl.js +22 -0
- package/dist/wcardinal/ui/d-list-item-accessor-impl.js.map +1 -1
- package/dist/wcardinal/ui/d-list-item-accessor.js.map +1 -1
- package/dist/wcardinal/ui/d-list-item-ambient.js +18 -0
- package/dist/wcardinal/ui/d-list-item-ambient.js.map +1 -0
- package/dist/wcardinal/ui/d-list-item.js +50 -8
- package/dist/wcardinal/ui/d-list-item.js.map +1 -1
- package/dist/wcardinal/ui/d-menu-item-link.js +1 -1
- package/dist/wcardinal/ui/d-menu-item-link.js.map +1 -1
- package/dist/wcardinal/ui/d-note-error.js +18 -0
- package/dist/wcardinal/ui/d-note-error.js.map +1 -0
- package/dist/wcardinal/ui/d-note-no-items-found.js +18 -0
- package/dist/wcardinal/ui/d-note-no-items-found.js.map +1 -0
- package/dist/wcardinal/ui/d-note-searching.js +18 -0
- package/dist/wcardinal/ui/d-note-searching.js.map +1 -0
- package/dist/wcardinal/ui/d-note.js +2 -6
- package/dist/wcardinal/ui/d-note.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-link.js +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-link.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-tree.js +1 -1
- package/dist/wcardinal/ui/d-table-body-cell-tree.js.map +1 -1
- package/dist/wcardinal/ui/d-table-body-row.js +1 -1
- package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
- package/dist/wcardinal/ui/index.js +4 -0
- package/dist/wcardinal/ui/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-link.js +0 -5
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-button-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog-select.js +3 -6
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-dialog-select.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-input-search.js +0 -4
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-input-search.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-link.js +53 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-link.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-item-ambient.js +19 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-item-ambient.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-items.js +8 -8
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-list-items.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-menu-item-link.js +5 -7
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-menu-item-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-error.js +27 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-error.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-no-items-found.js +28 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-no-items-found.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-searching.js +29 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note-searching.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note.js +22 -2
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-note.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-link.js +5 -7
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-tree.js +0 -5
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-cell-tree.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-row.js +2 -2
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-body-row.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/index.js +7 -2
- package/dist/wcardinal/ui/theme/dark/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/load/index.js +1 -0
- package/dist/wcardinal/ui/theme/dark/load/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-all.js +2 -0
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-all.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-link.js +10 -0
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-link.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-list.js +2 -0
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-list.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-note.js +6 -0
- package/dist/wcardinal/ui/theme/dark/load/load-theme-dark-note.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-link.js +0 -5
- package/dist/wcardinal/ui/theme/white/d-theme-white-button-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-diagram-canvas.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-dialog-select.js +3 -6
- package/dist/wcardinal/ui/theme/white/d-theme-white-dialog-select.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-input-search.js +0 -4
- package/dist/wcardinal/ui/theme/white/d-theme-white-input-search.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-link.js +53 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-link.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-list-item-ambient.js +19 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-list-item-ambient.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-list-items.js +8 -8
- package/dist/wcardinal/ui/theme/white/d-theme-white-list-items.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-menu-item-link.js +5 -7
- package/dist/wcardinal/ui/theme/white/d-theme-white-menu-item-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-error.js +27 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-error.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-no-items-found.js +28 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-no-items-found.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-searching.js +29 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note-searching.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-note.js +22 -2
- package/dist/wcardinal/ui/theme/white/d-theme-white-note.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cell-link.js +5 -7
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cell-link.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cell-tree.js +0 -5
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-cell-tree.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-row.js +2 -2
- package/dist/wcardinal/ui/theme/white/d-theme-white-table-body-row.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/index.js +5 -0
- package/dist/wcardinal/ui/theme/white/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/load/index.js +1 -0
- package/dist/wcardinal/ui/theme/white/load/index.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-all.js +2 -0
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-all.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-link.js +10 -0
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-link.js.map +1 -0
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-list.js +2 -0
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-list.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-note.js +6 -0
- package/dist/wcardinal/ui/theme/white/load/load-theme-white-note.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js +9 -4
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js.map +1 -1
- package/dist/wcardinal/ui/util/util-transition.js +1 -1
- package/dist/wcardinal/ui/util/util-transition.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +201 -97
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +199 -95
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
- package/dist/wcardinal-ui.cjs.js +701 -277
- package/dist/wcardinal-ui.js +309 -93
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-links.d.ts +0 -12
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-links.d.ts +0 -12
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-links.js +0 -55
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-links.js.map +0 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-links.js +0 -55
- package/dist/wcardinal/ui/theme/white/d-theme-white-links.js.map +0 -1
|
@@ -26,10 +26,31 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
26
26
|
this._content = content;
|
|
27
27
|
this._container = container;
|
|
28
28
|
this._newItem = this.toNewItem(options);
|
|
29
|
+
this._initItem = this.toInitItem(options);
|
|
29
30
|
}
|
|
30
31
|
DItemUpdater.prototype.toNewItem = function (options) {
|
|
31
32
|
return (options === null || options === void 0 ? void 0 : options.newItem) || this.newItem;
|
|
32
33
|
};
|
|
34
|
+
DItemUpdater.prototype.toInitItem = function (options) {
|
|
35
|
+
if (options) {
|
|
36
|
+
var initItem = options.initItem;
|
|
37
|
+
if (initItem) {
|
|
38
|
+
return initItem;
|
|
39
|
+
}
|
|
40
|
+
if (options.stripe !== false) {
|
|
41
|
+
return this.initItem;
|
|
42
|
+
}
|
|
43
|
+
return this.initItemNoStriping;
|
|
44
|
+
}
|
|
45
|
+
return this.initItem;
|
|
46
|
+
};
|
|
47
|
+
DItemUpdater.prototype.initItem = function (item, index, data) {
|
|
48
|
+
item.state.isAlternated = index % 2 === 1;
|
|
49
|
+
return item;
|
|
50
|
+
};
|
|
51
|
+
DItemUpdater.prototype.initItemNoStriping = function (item, index, data) {
|
|
52
|
+
return item;
|
|
53
|
+
};
|
|
33
54
|
Object.defineProperty(DItemUpdater.prototype, "multiplicity", {
|
|
34
55
|
get: function () {
|
|
35
56
|
return this._multiplicity;
|
|
@@ -78,6 +99,7 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
78
99
|
var oldItemIndexEnd = this._itemIndexEnd;
|
|
79
100
|
var oldItemCount = oldItemIndexEnd - oldItemIndexStart;
|
|
80
101
|
var newItem = this._newItem;
|
|
102
|
+
var initItem = this._initItem;
|
|
81
103
|
var itemHeight = this._itemHeight;
|
|
82
104
|
var itemWidth = this._itemWidth;
|
|
83
105
|
if (this._itemHeight < 0) {
|
|
@@ -86,8 +108,7 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
86
108
|
item = items[0];
|
|
87
109
|
}
|
|
88
110
|
else {
|
|
89
|
-
item = newItem(data);
|
|
90
|
-
item.state.isAlternated = oldItemIndexStart % 2 === 0;
|
|
111
|
+
item = initItem(newItem(data), oldItemIndexStart, data);
|
|
91
112
|
container.addChild(item);
|
|
92
113
|
oldItemIndexEnd += 1;
|
|
93
114
|
oldItemCount += 1;
|
|
@@ -99,11 +120,17 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
99
120
|
this._itemHeight = itemHeight;
|
|
100
121
|
this._itemWidth = itemWidth;
|
|
101
122
|
}
|
|
102
|
-
var
|
|
123
|
+
var contentPadding = content.padding;
|
|
124
|
+
var contentPaddingTop = contentPadding.getTop();
|
|
125
|
+
var contentPaddingBottom = contentPadding.getBottom();
|
|
126
|
+
var contentPaddingLeft = contentPadding.getLeft();
|
|
127
|
+
var contentPaddingRight = contentPadding.getRight();
|
|
128
|
+
var contentWidthAvailable = Math.max(0, content.width - contentPaddingLeft - contentPaddingRight);
|
|
129
|
+
var multiplicity = 0 < itemWidth ? Math.max(1, Math.floor(contentWidthAvailable / itemWidth)) : 1;
|
|
103
130
|
this._multiplicity = multiplicity;
|
|
104
|
-
var y = content !== container ? container.transform.position.y :
|
|
131
|
+
var y = content !== container ? container.transform.position.y : contentPaddingTop;
|
|
105
132
|
var newHeight = Math.ceil(dataSize / multiplicity) * itemHeight;
|
|
106
|
-
var newContentHeight = Math.max(height, newHeight);
|
|
133
|
+
var newContentHeight = Math.max(height, contentPaddingTop + newHeight + contentPaddingBottom);
|
|
107
134
|
var newContentY = Math.max(height - newContentHeight, content.position.y);
|
|
108
135
|
var newItemIndexLowerBound = Math.floor(((0 - (newContentY + y)) * multiplicity) / itemHeight);
|
|
109
136
|
var newItemIndexUpperBound = Math.floor(((height - (newContentY + y)) * multiplicity) / itemHeight);
|
|
@@ -123,8 +150,7 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
123
150
|
if (oldItemCount < newItemCount) {
|
|
124
151
|
for (var i = oldItemCount; i < newItemCount; ++i) {
|
|
125
152
|
var oldItemIndex = oldItemIndexStart + i;
|
|
126
|
-
var item = newItem(data);
|
|
127
|
-
item.state.isAlternated = oldItemIndex % 2 === 0;
|
|
153
|
+
var item = initItem(newItem(data), oldItemIndex, data);
|
|
128
154
|
container.addChild(item);
|
|
129
155
|
}
|
|
130
156
|
oldItemCount = newItemCount;
|
|
@@ -172,11 +198,17 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
172
198
|
}
|
|
173
199
|
work.length = 0;
|
|
174
200
|
}
|
|
201
|
+
var itemOffsetX = 0;
|
|
202
|
+
var itemOffsetY = 0;
|
|
203
|
+
if (content === container) {
|
|
204
|
+
itemOffsetX = contentPaddingLeft;
|
|
205
|
+
itemOffsetY = contentPaddingTop;
|
|
206
|
+
}
|
|
175
207
|
mapped.each(function (datum, index) {
|
|
176
208
|
var item = items[index - newItemIndexStart];
|
|
177
209
|
var ix = index % multiplicity;
|
|
178
210
|
var iy = Math.floor(index / multiplicity);
|
|
179
|
-
item.position.set(ix * itemWidth, iy * itemHeight);
|
|
211
|
+
item.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);
|
|
180
212
|
_this.set(item, datum, index, forcibly);
|
|
181
213
|
}, newItemIndexStart, newItemIndexStart + itemsLength);
|
|
182
214
|
for (var i = 0; newItemIndexStart + i < 0 && i < itemsLength; ++i) {
|
|
@@ -184,7 +216,7 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
184
216
|
var index = newItemIndexStart + i;
|
|
185
217
|
var ix = index % multiplicity;
|
|
186
218
|
var iy = Math.floor(index / multiplicity);
|
|
187
|
-
item.position.set(ix * itemWidth, iy * itemHeight);
|
|
219
|
+
item.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);
|
|
188
220
|
this.unset(item);
|
|
189
221
|
}
|
|
190
222
|
for (var i = itemsLength - 1; dataSize <= newItemIndexStart + i && 0 <= i; --i) {
|
|
@@ -192,7 +224,7 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
192
224
|
var index = newItemIndexStart + i;
|
|
193
225
|
var ix = index % multiplicity;
|
|
194
226
|
var iy = Math.floor(index / multiplicity);
|
|
195
|
-
item.position.set(ix * itemWidth, iy * itemHeight);
|
|
227
|
+
item.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);
|
|
196
228
|
this.unset(item);
|
|
197
229
|
}
|
|
198
230
|
this.lock();
|
|
@@ -215,9 +247,14 @@ var DItemUpdater = /** @class */ (function () {
|
|
|
215
247
|
for (var i = 0, imax = cells.length; i < imax; ++i) {
|
|
216
248
|
var cell = cells[i];
|
|
217
249
|
if (cell instanceof DBase) {
|
|
218
|
-
|
|
250
|
+
var state = cell.state;
|
|
251
|
+
state.lock();
|
|
252
|
+
state.isPressed = false;
|
|
253
|
+
state.isHovered = false;
|
|
254
|
+
state.unlock();
|
|
219
255
|
}
|
|
220
256
|
}
|
|
257
|
+
item.state.isHovered = false;
|
|
221
258
|
return item;
|
|
222
259
|
};
|
|
223
260
|
DItemUpdater.prototype.moveFocus = function (e, target, moveVertically, moveHorizontally) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-item-updater.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-item-updater.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DApplications } from \"./d-applications\";\nimport { DBase } from \"./d-base\";\nimport { isNumber } from \"./util/is-number\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\n\nexport interface DItemUpdaterItem<VALUE> extends DBase {\n\treadonly value?: VALUE;\n\treadonly index?: number;\n\tset(value: VALUE, index: number, forcibly?: boolean): void;\n\tunset(): void;\n}\n\nexport type DItemUpdaterNewItem<DATA, ITEM> = (data: DATA) => ITEM;\n\nexport interface DItemUpdaterOptions<VALUE, DATA, ITEM> {\n\tnewItem?: DItemUpdaterNewItem<DATA, ITEM>;\n}\n\nexport interface DItemUpdaterDataSelection<VALUE> {\n\tcontains(value: VALUE): boolean;\n}\n\nexport interface DItemUpdaterDataMapped<VALUE> {\n\tsize(): number;\n\teach(iteratee: (value: VALUE, index: number) => void | boolean, from: number, to: number): void;\n}\n\nexport interface DItemUpdaterData<VALUE> {\n\treadonly selection: DItemUpdaterDataSelection<VALUE>;\n}\n\n/**\n * The primary purpose of this class is to minimize the number of rendered items (e.g., {@link DListItem})\n * as low as possible and to update their positions and states. For this sake, the updater calculates the\n * required number of items whenever their container size changes and creates items if needed.\n */\nexport abstract class DItemUpdater<\n\tVALUE = unknown,\n\tDATA extends DItemUpdaterData<VALUE> = DItemUpdaterData<VALUE>,\n\tDATA_MAPPED extends DItemUpdaterDataMapped<VALUE> = DItemUpdaterDataMapped<VALUE>,\n\tITEM extends DItemUpdaterItem<VALUE> = DItemUpdaterItem<VALUE>,\n\tOPTIONS extends DItemUpdaterOptions<VALUE, DATA, ITEM> = DItemUpdaterOptions<VALUE, DATA, ITEM>\n> {\n\tprotected _updateItemsCount: number;\n\tprotected _isUpdateItemsCalled: boolean;\n\tprotected _isUpdateItemsCalledForcibly: boolean;\n\tprotected _itemHeight: number;\n\tprotected _itemWidth: number;\n\tprotected _multiplicity: number;\n\tprotected _itemIndexStart: number;\n\tprotected _itemIndexEnd: number;\n\tprotected _workItems: ITEM[];\n\tprotected _data: DATA;\n\tprotected _content: DBase;\n\tprotected _container: DBase;\n\tprotected _newItem: DItemUpdaterNewItem<DATA, ITEM>;\n\n\tconstructor(data: DATA, content: DBase, container: DBase, options?: OPTIONS) {\n\t\tthis._updateItemsCount = 0;\n\t\tthis._isUpdateItemsCalled = false;\n\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\tthis._itemHeight = -1;\n\t\tthis._itemWidth = -1;\n\t\tthis._multiplicity = 1;\n\t\tthis._itemIndexStart = 0;\n\t\tthis._itemIndexEnd = 0;\n\t\tthis._workItems = [];\n\t\tthis._data = data;\n\t\tthis._content = content;\n\t\tthis._container = container;\n\t\tthis._newItem = this.toNewItem(options);\n\t}\n\n\tprotected toNewItem(\n\t\toptions?: DItemUpdaterOptions<VALUE, DATA, ITEM>\n\t): DItemUpdaterNewItem<DATA, ITEM> {\n\t\treturn options?.newItem || this.newItem;\n\t}\n\n\tprotected abstract newItem(this: undefined, data: DATA): ITEM;\n\n\tget multiplicity(): number {\n\t\treturn this._multiplicity;\n\t}\n\n\tlock(): void {\n\t\tthis._updateItemsCount += 1;\n\t\tif (this._updateItemsCount === 1) {\n\t\t\tthis._isUpdateItemsCalled = false;\n\t\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\t}\n\t}\n\n\tunlock(callIfNeeded: boolean): void {\n\t\tthis._updateItemsCount -= 1;\n\t\tif (this._updateItemsCount === 0) {\n\t\t\tif (callIfNeeded && this._isUpdateItemsCalled) {\n\t\t\t\tthis.update(this._isUpdateItemsCalledForcibly);\n\t\t\t}\n\t\t\tthis._isUpdateItemsCalled = false;\n\t\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\t}\n\t}\n\n\tupdate(forcibly?: boolean): void {\n\t\tif (0 < this._updateItemsCount) {\n\t\t\tthis._isUpdateItemsCalled = true;\n\t\t\tif (forcibly) {\n\t\t\t\tthis._isUpdateItemsCalledForcibly = true;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst content = this._content;\n\t\tconst contentParent = content.parent;\n\t\tif (contentParent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst items = container.children as ITEM[];\n\t\tconst height = contentParent.height;\n\n\t\tconst data = this._data;\n\t\tconst mapped = this.toMapped(data);\n\t\tconst dataSize = mapped.size();\n\n\t\tconst oldItemIndexStart = this._itemIndexStart;\n\t\tlet oldItemIndexEnd = this._itemIndexEnd;\n\t\tlet oldItemCount = oldItemIndexEnd - oldItemIndexStart;\n\n\t\tconst newItem = this._newItem;\n\t\tlet itemHeight = this._itemHeight;\n\t\tlet itemWidth = this._itemWidth;\n\t\tif (this._itemHeight < 0) {\n\t\t\tlet item: ITEM;\n\t\t\tif (0 < items.length) {\n\t\t\t\titem = items[0];\n\t\t\t} else {\n\t\t\t\titem = newItem(data);\n\t\t\t\titem.state.isAlternated = oldItemIndexStart % 2 === 0;\n\t\t\t\tcontainer.addChild(item);\n\t\t\t\toldItemIndexEnd += 1;\n\t\t\t\toldItemCount += 1;\n\t\t\t}\n\t\t\titemHeight = Math.max(1, item.height);\n\t\t\tif (isNumber(item.getWidth())) {\n\t\t\t\titemWidth = Math.max(1, item.width);\n\t\t\t}\n\t\t\tthis._itemHeight = itemHeight;\n\t\t\tthis._itemWidth = itemWidth;\n\t\t}\n\t\tconst multiplicity = 0 < itemWidth ? Math.max(1, Math.floor(content.width / itemWidth)) : 1;\n\t\tthis._multiplicity = multiplicity;\n\n\t\tconst y = content !== container ? container.transform.position.y : 0;\n\t\tconst newHeight = Math.ceil(dataSize / multiplicity) * itemHeight;\n\t\tconst newContentHeight = Math.max(height, newHeight);\n\t\tconst newContentY = Math.max(height - newContentHeight, content.position.y);\n\n\t\tconst newItemIndexLowerBound = Math.floor(\n\t\t\t((0 - (newContentY + y)) * multiplicity) / itemHeight\n\t\t);\n\t\tconst newItemIndexUpperBound = Math.floor(\n\t\t\t((height - (newContentY + y)) * multiplicity) / itemHeight\n\t\t);\n\t\tlet newItemIndexStart = newItemIndexLowerBound - multiplicity;\n\t\tif (newItemIndexStart % 2 !== 0) {\n\t\t\tnewItemIndexStart -= 1;\n\t\t}\n\t\tlet newItemIndexEnd = newItemIndexUpperBound + multiplicity + multiplicity;\n\t\tif (newItemIndexEnd % 2 !== 0) {\n\t\t\tnewItemIndexEnd += 1;\n\t\t}\n\t\tlet newItemCount = newItemIndexEnd - newItemIndexStart;\n\t\tif (newItemCount < oldItemCount && oldItemCount - 2 <= newItemCount) {\n\t\t\tnewItemCount = oldItemCount;\n\t\t\tnewItemIndexEnd = newItemIndexStart + newItemCount;\n\t\t}\n\n\t\tif (oldItemCount < newItemCount) {\n\t\t\tfor (let i = oldItemCount; i < newItemCount; ++i) {\n\t\t\t\tconst oldItemIndex = oldItemIndexStart + i;\n\t\t\t\tconst item = newItem(data);\n\t\t\t\titem.state.isAlternated = oldItemIndex % 2 === 0;\n\t\t\t\tcontainer.addChild(item);\n\t\t\t}\n\t\t\toldItemCount = newItemCount;\n\t\t\toldItemIndexEnd = oldItemIndexStart + oldItemCount;\n\t\t} else if (newItemCount < oldItemCount) {\n\t\t\tfor (let i = oldItemCount - 1; newItemCount <= i; --i) {\n\t\t\t\tcontainer.removeChild(items[i]);\n\t\t\t}\n\t\t\toldItemCount = newItemCount;\n\t\t\toldItemIndexEnd = oldItemIndexStart + oldItemCount;\n\t\t}\n\n\t\tthis._itemIndexStart = newItemIndexStart;\n\t\tthis._itemIndexEnd = newItemIndexEnd;\n\n\t\tconst itemIndexStartDelta = newItemIndexStart - oldItemIndexStart;\n\t\tconst itemIndexStartDeltaAbs = Math.abs(itemIndexStartDelta);\n\t\tconst itemsLength = items.length;\n\t\tif (0 < itemIndexStartDeltaAbs && itemIndexStartDeltaAbs < itemsLength) {\n\t\t\tconst work = this._workItems;\n\t\t\tif (0 < itemIndexStartDelta) {\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\tconst item = items[i];\n\t\t\t\t\tthis.reset(item);\n\t\t\t\t\twork.push(item);\n\t\t\t\t}\n\t\t\t\tfor (let i = itemIndexStartDeltaAbs; i < itemsLength; ++i) {\n\t\t\t\t\titems[i - itemIndexStartDeltaAbs] = items[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\titems[itemsLength - itemIndexStartDeltaAbs + i] = work[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\tconst item = items[itemsLength - itemIndexStartDeltaAbs + i];\n\t\t\t\t\tthis.reset(item);\n\t\t\t\t\twork.push(item);\n\t\t\t\t}\n\t\t\t\tfor (let i = itemsLength - itemIndexStartDeltaAbs - 1; 0 <= i; --i) {\n\t\t\t\t\titems[i + itemIndexStartDeltaAbs] = items[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\titems[i] = work[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\twork.length = 0;\n\t\t}\n\n\t\tmapped.each(\n\t\t\t(datum: VALUE, index: number): void | boolean => {\n\t\t\t\tconst item = items[index - newItemIndexStart];\n\t\t\t\tconst ix = index % multiplicity;\n\t\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\t\titem.position.set(ix * itemWidth, iy * itemHeight);\n\t\t\t\tthis.set(item, datum, index, forcibly);\n\t\t\t},\n\t\t\tnewItemIndexStart,\n\t\t\tnewItemIndexStart + itemsLength\n\t\t);\n\n\t\tfor (let i = 0; newItemIndexStart + i < 0 && i < itemsLength; ++i) {\n\t\t\tconst item = items[i];\n\t\t\tconst index = newItemIndexStart + i;\n\t\t\tconst ix = index % multiplicity;\n\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\titem.position.set(ix * itemWidth, iy * itemHeight);\n\t\t\tthis.unset(item);\n\t\t}\n\n\t\tfor (let i = itemsLength - 1; dataSize <= newItemIndexStart + i && 0 <= i; --i) {\n\t\t\tconst item = items[i];\n\t\t\tconst index = newItemIndexStart + i;\n\t\t\tconst ix = index % multiplicity;\n\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\titem.position.set(ix * itemWidth, iy * itemHeight);\n\t\t\tthis.unset(item);\n\t\t}\n\n\t\tthis.lock();\n\t\tcontent.position.y = newContentY;\n\t\tcontent.height = newContentHeight;\n\t\tif (content !== container) {\n\t\t\tcontainer.height = newHeight;\n\t\t}\n\t\tthis.unlock(false);\n\t}\n\n\tprotected abstract toMapped(data: DATA): DATA_MAPPED;\n\n\tprotected set(item: ITEM, value: VALUE, index: number, forcibly?: boolean): void {\n\t\titem.set(value, index, forcibly);\n\t}\n\n\tprotected unset(item: ITEM): void {\n\t\titem.unset();\n\t}\n\n\tprotected reset(item: ITEM): ITEM {\n\t\titem.blur(true);\n\t\tconst cells = item.children;\n\t\tfor (let i = 0, imax = cells.length; i < imax; ++i) {\n\t\t\tconst cell = cells[i];\n\t\t\tif (cell instanceof DBase) {\n\t\t\t\tcell.state.isPressed = false;\n\t\t\t}\n\t\t}\n\t\treturn item;\n\t}\n\n\tmoveFocus(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tmoveVertically: boolean,\n\t\tmoveHorizontally: boolean\n\t): boolean {\n\t\tif (!(moveVertically || moveHorizontally)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isUp = moveVertically && UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isDown = moveVertically && UtilKeyboardEvent.isArrowDownKey(e);\n\t\tconst isLeft = moveHorizontally && UtilKeyboardEvent.isArrowLeftKey(e);\n\t\tconst isRight = moveHorizontally && UtilKeyboardEvent.isArrowRightKey(e);\n\t\tif (!(isUp || isDown || isLeft || isRight)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (!target.state.isActionable) {\n\t\t\treturn false;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst focusController = layer.getFocusController();\n\t\tconst focused = focusController.get();\n\t\tif (focused == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst container = this._container;\n\t\tif (focused.parent !== container) {\n\t\t\treturn false;\n\t\t}\n\t\tconst item = focused as ITEM;\n\t\tconst index = item.index;\n\t\tif (index == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst multiplicity = this._multiplicity;\n\t\tconst data = this._data;\n\t\tconst mapped = this.toMapped(data);\n\t\tconst dataSize = mapped.size();\n\t\tlet newIndex = index;\n\t\tif (isLeft || isRight) {\n\t\t\tif (isLeft) {\n\t\t\t\tif (0 <= newIndex - 1) {\n\t\t\t\t\tnewIndex -= 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newIndex + 1 < dataSize) {\n\t\t\t\t\tnewIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (isUp || isDown) {\n\t\t\tif (isUp) {\n\t\t\t\tif (0 <= newIndex - multiplicity) {\n\t\t\t\t\tnewIndex -= multiplicity;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newIndex + multiplicity < dataSize) {\n\t\t\t\t\tnewIndex += multiplicity;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newIndex === index) {\n\t\t\treturn false;\n\t\t}\n\t\tconst items = container.children as ITEM[];\n\t\tconst itemIndex = items.indexOf(item);\n\t\tif (itemIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst newItemIndex = itemIndex + (newIndex - index);\n\t\tif (newItemIndex < 0 || items.length <= newItemIndex) {\n\t\t\treturn false;\n\t\t}\n\t\tconst newItem = items[newItemIndex];\n\t\tfocusController.focus(newItem);\n\t\treturn true;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-item-updater.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-item-updater.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DApplications } from \"./d-applications\";\nimport { DBase } from \"./d-base\";\nimport { isNumber } from \"./util/is-number\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\n\nexport interface DItemUpdaterItem<VALUE> extends DBase {\n\treadonly value?: VALUE;\n\treadonly index?: number;\n\tset(value: VALUE, index: number, forcibly?: boolean): void;\n\tunset(): void;\n}\n\nexport type DItemUpdaterNewItem<DATA, ITEM> = (data: DATA) => ITEM;\n\nexport type DItemUpdaterInitItem<DATA, ITEM> = (item: ITEM, index: number, data: DATA) => ITEM;\n\n/**\n * Item updater options.\n */\nexport interface DItemUpdaterOptions<VALUE, DATA, ITEM> {\n\t/**\n\t * Called to create items.\n\t */\n\tnewItem?: DItemUpdaterNewItem<DATA, ITEM>;\n\n\t/**\n\t * Called to initialize items.\n\t */\n\tinitItem?: DItemUpdaterInitItem<DATA, ITEM>;\n\n\t/**\n\t * True to make stripe-colored items. Defaults to true.\n\t */\n\tstripe?: boolean;\n}\n\nexport interface DItemUpdaterDataSelection<VALUE> {\n\tcontains(value: VALUE): boolean;\n}\n\nexport interface DItemUpdaterDataMapped<VALUE> {\n\tsize(): number;\n\teach(iteratee: (value: VALUE, index: number) => void | boolean, from: number, to: number): void;\n}\n\nexport interface DItemUpdaterData<VALUE> {\n\treadonly selection: DItemUpdaterDataSelection<VALUE>;\n}\n\n/**\n * The primary purpose of this class is to minimize the number of rendered items (e.g., {@link DListItem})\n * as low as possible and to update their positions and states. For this sake, the updater calculates the\n * required number of items whenever their container size changes and creates items if needed.\n */\nexport abstract class DItemUpdater<\n\tVALUE = unknown,\n\tDATA extends DItemUpdaterData<VALUE> = DItemUpdaterData<VALUE>,\n\tDATA_MAPPED extends DItemUpdaterDataMapped<VALUE> = DItemUpdaterDataMapped<VALUE>,\n\tITEM extends DItemUpdaterItem<VALUE> = DItemUpdaterItem<VALUE>,\n\tOPTIONS extends DItemUpdaterOptions<VALUE, DATA, ITEM> = DItemUpdaterOptions<VALUE, DATA, ITEM>\n> {\n\tprotected _updateItemsCount: number;\n\tprotected _isUpdateItemsCalled: boolean;\n\tprotected _isUpdateItemsCalledForcibly: boolean;\n\tprotected _itemHeight: number;\n\tprotected _itemWidth: number;\n\tprotected _multiplicity: number;\n\tprotected _itemIndexStart: number;\n\tprotected _itemIndexEnd: number;\n\tprotected _workItems: ITEM[];\n\tprotected _data: DATA;\n\tprotected _content: DBase;\n\tprotected _container: DBase;\n\tprotected _newItem: DItemUpdaterNewItem<DATA, ITEM>;\n\tprotected _initItem: DItemUpdaterInitItem<DATA, ITEM>;\n\n\tconstructor(data: DATA, content: DBase, container: DBase, options?: OPTIONS) {\n\t\tthis._updateItemsCount = 0;\n\t\tthis._isUpdateItemsCalled = false;\n\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\tthis._itemHeight = -1;\n\t\tthis._itemWidth = -1;\n\t\tthis._multiplicity = 1;\n\t\tthis._itemIndexStart = 0;\n\t\tthis._itemIndexEnd = 0;\n\t\tthis._workItems = [];\n\t\tthis._data = data;\n\t\tthis._content = content;\n\t\tthis._container = container;\n\t\tthis._newItem = this.toNewItem(options);\n\t\tthis._initItem = this.toInitItem(options);\n\t}\n\n\tprotected toNewItem(\n\t\toptions?: DItemUpdaterOptions<VALUE, DATA, ITEM>\n\t): DItemUpdaterNewItem<DATA, ITEM> {\n\t\treturn options?.newItem || this.newItem;\n\t}\n\n\tprotected abstract newItem(this: undefined, data: DATA): ITEM;\n\n\tprotected toInitItem(\n\t\toptions?: DItemUpdaterOptions<VALUE, DATA, ITEM>\n\t): DItemUpdaterInitItem<DATA, ITEM> {\n\t\tif (options) {\n\t\t\tconst initItem = options.initItem;\n\t\t\tif (initItem) {\n\t\t\t\treturn initItem;\n\t\t\t}\n\t\t\tif (options.stripe !== false) {\n\t\t\t\treturn this.initItem;\n\t\t\t}\n\t\t\treturn this.initItemNoStriping;\n\t\t}\n\t\treturn this.initItem;\n\t}\n\n\tprotected initItem(this: undefined, item: ITEM, index: number, data: DATA): ITEM {\n\t\titem.state.isAlternated = index % 2 === 1;\n\t\treturn item;\n\t}\n\n\tprotected initItemNoStriping(this: undefined, item: ITEM, index: number, data: DATA): ITEM {\n\t\treturn item;\n\t}\n\n\tget multiplicity(): number {\n\t\treturn this._multiplicity;\n\t}\n\n\tlock(): void {\n\t\tthis._updateItemsCount += 1;\n\t\tif (this._updateItemsCount === 1) {\n\t\t\tthis._isUpdateItemsCalled = false;\n\t\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\t}\n\t}\n\n\tunlock(callIfNeeded: boolean): void {\n\t\tthis._updateItemsCount -= 1;\n\t\tif (this._updateItemsCount === 0) {\n\t\t\tif (callIfNeeded && this._isUpdateItemsCalled) {\n\t\t\t\tthis.update(this._isUpdateItemsCalledForcibly);\n\t\t\t}\n\t\t\tthis._isUpdateItemsCalled = false;\n\t\t\tthis._isUpdateItemsCalledForcibly = false;\n\t\t}\n\t}\n\n\tupdate(forcibly?: boolean): void {\n\t\tif (0 < this._updateItemsCount) {\n\t\t\tthis._isUpdateItemsCalled = true;\n\t\t\tif (forcibly) {\n\t\t\t\tthis._isUpdateItemsCalledForcibly = true;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst content = this._content;\n\t\tconst contentParent = content.parent;\n\t\tif (contentParent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = this._container;\n\t\tconst items = container.children as ITEM[];\n\t\tconst height = contentParent.height;\n\n\t\tconst data = this._data;\n\t\tconst mapped = this.toMapped(data);\n\t\tconst dataSize = mapped.size();\n\n\t\tconst oldItemIndexStart = this._itemIndexStart;\n\t\tlet oldItemIndexEnd = this._itemIndexEnd;\n\t\tlet oldItemCount = oldItemIndexEnd - oldItemIndexStart;\n\n\t\tconst newItem = this._newItem;\n\t\tconst initItem = this._initItem;\n\t\tlet itemHeight = this._itemHeight;\n\t\tlet itemWidth = this._itemWidth;\n\t\tif (this._itemHeight < 0) {\n\t\t\tlet item: ITEM;\n\t\t\tif (0 < items.length) {\n\t\t\t\titem = items[0];\n\t\t\t} else {\n\t\t\t\titem = initItem(newItem(data), oldItemIndexStart, data);\n\t\t\t\tcontainer.addChild(item);\n\t\t\t\toldItemIndexEnd += 1;\n\t\t\t\toldItemCount += 1;\n\t\t\t}\n\t\t\titemHeight = Math.max(1, item.height);\n\t\t\tif (isNumber(item.getWidth())) {\n\t\t\t\titemWidth = Math.max(1, item.width);\n\t\t\t}\n\t\t\tthis._itemHeight = itemHeight;\n\t\t\tthis._itemWidth = itemWidth;\n\t\t}\n\t\tconst contentPadding = content.padding;\n\t\tconst contentPaddingTop = contentPadding.getTop();\n\t\tconst contentPaddingBottom = contentPadding.getBottom();\n\t\tconst contentPaddingLeft = contentPadding.getLeft();\n\t\tconst contentPaddingRight = contentPadding.getRight();\n\t\tconst contentWidthAvailable = Math.max(\n\t\t\t0,\n\t\t\tcontent.width - contentPaddingLeft - contentPaddingRight\n\t\t);\n\t\tconst multiplicity =\n\t\t\t0 < itemWidth ? Math.max(1, Math.floor(contentWidthAvailable / itemWidth)) : 1;\n\t\tthis._multiplicity = multiplicity;\n\n\t\tconst y = content !== container ? container.transform.position.y : contentPaddingTop;\n\t\tconst newHeight = Math.ceil(dataSize / multiplicity) * itemHeight;\n\t\tconst newContentHeight = Math.max(\n\t\t\theight,\n\t\t\tcontentPaddingTop + newHeight + contentPaddingBottom\n\t\t);\n\t\tconst newContentY = Math.max(height - newContentHeight, content.position.y);\n\n\t\tconst newItemIndexLowerBound = Math.floor(\n\t\t\t((0 - (newContentY + y)) * multiplicity) / itemHeight\n\t\t);\n\t\tconst newItemIndexUpperBound = Math.floor(\n\t\t\t((height - (newContentY + y)) * multiplicity) / itemHeight\n\t\t);\n\t\tlet newItemIndexStart = newItemIndexLowerBound - multiplicity;\n\t\tif (newItemIndexStart % 2 !== 0) {\n\t\t\tnewItemIndexStart -= 1;\n\t\t}\n\t\tlet newItemIndexEnd = newItemIndexUpperBound + multiplicity + multiplicity;\n\t\tif (newItemIndexEnd % 2 !== 0) {\n\t\t\tnewItemIndexEnd += 1;\n\t\t}\n\t\tlet newItemCount = newItemIndexEnd - newItemIndexStart;\n\t\tif (newItemCount < oldItemCount && oldItemCount - 2 <= newItemCount) {\n\t\t\tnewItemCount = oldItemCount;\n\t\t\tnewItemIndexEnd = newItemIndexStart + newItemCount;\n\t\t}\n\n\t\tif (oldItemCount < newItemCount) {\n\t\t\tfor (let i = oldItemCount; i < newItemCount; ++i) {\n\t\t\t\tconst oldItemIndex = oldItemIndexStart + i;\n\t\t\t\tconst item = initItem(newItem(data), oldItemIndex, data);\n\t\t\t\tcontainer.addChild(item);\n\t\t\t}\n\t\t\toldItemCount = newItemCount;\n\t\t\toldItemIndexEnd = oldItemIndexStart + oldItemCount;\n\t\t} else if (newItemCount < oldItemCount) {\n\t\t\tfor (let i = oldItemCount - 1; newItemCount <= i; --i) {\n\t\t\t\tcontainer.removeChild(items[i]);\n\t\t\t}\n\t\t\toldItemCount = newItemCount;\n\t\t\toldItemIndexEnd = oldItemIndexStart + oldItemCount;\n\t\t}\n\n\t\tthis._itemIndexStart = newItemIndexStart;\n\t\tthis._itemIndexEnd = newItemIndexEnd;\n\n\t\tconst itemIndexStartDelta = newItemIndexStart - oldItemIndexStart;\n\t\tconst itemIndexStartDeltaAbs = Math.abs(itemIndexStartDelta);\n\t\tconst itemsLength = items.length;\n\t\tif (0 < itemIndexStartDeltaAbs && itemIndexStartDeltaAbs < itemsLength) {\n\t\t\tconst work = this._workItems;\n\t\t\tif (0 < itemIndexStartDelta) {\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\tconst item = items[i];\n\t\t\t\t\tthis.reset(item);\n\t\t\t\t\twork.push(item);\n\t\t\t\t}\n\t\t\t\tfor (let i = itemIndexStartDeltaAbs; i < itemsLength; ++i) {\n\t\t\t\t\titems[i - itemIndexStartDeltaAbs] = items[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\titems[itemsLength - itemIndexStartDeltaAbs + i] = work[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\tconst item = items[itemsLength - itemIndexStartDeltaAbs + i];\n\t\t\t\t\tthis.reset(item);\n\t\t\t\t\twork.push(item);\n\t\t\t\t}\n\t\t\t\tfor (let i = itemsLength - itemIndexStartDeltaAbs - 1; 0 <= i; --i) {\n\t\t\t\t\titems[i + itemIndexStartDeltaAbs] = items[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < itemIndexStartDeltaAbs; ++i) {\n\t\t\t\t\titems[i] = work[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\twork.length = 0;\n\t\t}\n\n\t\tlet itemOffsetX = 0;\n\t\tlet itemOffsetY = 0;\n\t\tif (content === container) {\n\t\t\titemOffsetX = contentPaddingLeft;\n\t\t\titemOffsetY = contentPaddingTop;\n\t\t}\n\t\tmapped.each(\n\t\t\t(datum: VALUE, index: number): void | boolean => {\n\t\t\t\tconst item = items[index - newItemIndexStart];\n\t\t\t\tconst ix = index % multiplicity;\n\t\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\t\titem.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);\n\t\t\t\tthis.set(item, datum, index, forcibly);\n\t\t\t},\n\t\t\tnewItemIndexStart,\n\t\t\tnewItemIndexStart + itemsLength\n\t\t);\n\n\t\tfor (let i = 0; newItemIndexStart + i < 0 && i < itemsLength; ++i) {\n\t\t\tconst item = items[i];\n\t\t\tconst index = newItemIndexStart + i;\n\t\t\tconst ix = index % multiplicity;\n\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\titem.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);\n\t\t\tthis.unset(item);\n\t\t}\n\n\t\tfor (let i = itemsLength - 1; dataSize <= newItemIndexStart + i && 0 <= i; --i) {\n\t\t\tconst item = items[i];\n\t\t\tconst index = newItemIndexStart + i;\n\t\t\tconst ix = index % multiplicity;\n\t\t\tconst iy = Math.floor(index / multiplicity);\n\t\t\titem.position.set(itemOffsetX + ix * itemWidth, itemOffsetY + iy * itemHeight);\n\t\t\tthis.unset(item);\n\t\t}\n\n\t\tthis.lock();\n\t\tcontent.position.y = newContentY;\n\t\tcontent.height = newContentHeight;\n\t\tif (content !== container) {\n\t\t\tcontainer.height = newHeight;\n\t\t}\n\t\tthis.unlock(false);\n\t}\n\n\tprotected abstract toMapped(data: DATA): DATA_MAPPED;\n\n\tprotected set(item: ITEM, value: VALUE, index: number, forcibly?: boolean): void {\n\t\titem.set(value, index, forcibly);\n\t}\n\n\tprotected unset(item: ITEM): void {\n\t\titem.unset();\n\t}\n\n\tprotected reset(item: ITEM): ITEM {\n\t\titem.blur(true);\n\t\tconst cells = item.children;\n\t\tfor (let i = 0, imax = cells.length; i < imax; ++i) {\n\t\t\tconst cell = cells[i];\n\t\t\tif (cell instanceof DBase) {\n\t\t\t\tconst state = cell.state;\n\t\t\t\tstate.lock();\n\t\t\t\tstate.isPressed = false;\n\t\t\t\tstate.isHovered = false;\n\t\t\t\tstate.unlock();\n\t\t\t}\n\t\t}\n\t\titem.state.isHovered = false;\n\t\treturn item;\n\t}\n\n\tmoveFocus(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tmoveVertically: boolean,\n\t\tmoveHorizontally: boolean\n\t): boolean {\n\t\tif (!(moveVertically || moveHorizontally)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isUp = moveVertically && UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isDown = moveVertically && UtilKeyboardEvent.isArrowDownKey(e);\n\t\tconst isLeft = moveHorizontally && UtilKeyboardEvent.isArrowLeftKey(e);\n\t\tconst isRight = moveHorizontally && UtilKeyboardEvent.isArrowRightKey(e);\n\t\tif (!(isUp || isDown || isLeft || isRight)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (!target.state.isActionable) {\n\t\t\treturn false;\n\t\t}\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst focusController = layer.getFocusController();\n\t\tconst focused = focusController.get();\n\t\tif (focused == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst container = this._container;\n\t\tif (focused.parent !== container) {\n\t\t\treturn false;\n\t\t}\n\t\tconst item = focused as ITEM;\n\t\tconst index = item.index;\n\t\tif (index == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst multiplicity = this._multiplicity;\n\t\tconst data = this._data;\n\t\tconst mapped = this.toMapped(data);\n\t\tconst dataSize = mapped.size();\n\t\tlet newIndex = index;\n\t\tif (isLeft || isRight) {\n\t\t\tif (isLeft) {\n\t\t\t\tif (0 <= newIndex - 1) {\n\t\t\t\t\tnewIndex -= 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newIndex + 1 < dataSize) {\n\t\t\t\t\tnewIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (isUp || isDown) {\n\t\t\tif (isUp) {\n\t\t\t\tif (0 <= newIndex - multiplicity) {\n\t\t\t\t\tnewIndex -= multiplicity;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newIndex + multiplicity < dataSize) {\n\t\t\t\t\tnewIndex += multiplicity;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newIndex === index) {\n\t\t\treturn false;\n\t\t}\n\t\tconst items = container.children as ITEM[];\n\t\tconst itemIndex = items.indexOf(item);\n\t\tif (itemIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst newItemIndex = itemIndex + (newIndex - index);\n\t\tif (newItemIndex < 0 || items.length <= newItemIndex) {\n\t\t\treturn false;\n\t\t}\n\t\tconst newItem = items[newItemIndex];\n\t\tfocusController.focus(newItem);\n\t\treturn true;\n\t}\n}\n"]}
|
|
@@ -11,15 +11,14 @@ import { isString } from "./util/is-string";
|
|
|
11
11
|
import { toEnum } from "./util/to-enum";
|
|
12
12
|
import { UtilClipboard } from "./util/util-clipboard";
|
|
13
13
|
import { UtilPointerEvent } from "./util/util-pointer-event";
|
|
14
|
+
import { DThemes } from "./theme/d-themes";
|
|
14
15
|
var DLink = /** @class */ (function () {
|
|
15
|
-
function DLink(
|
|
16
|
-
|
|
17
|
-
this._url =
|
|
18
|
-
this._target =
|
|
16
|
+
function DLink(options) {
|
|
17
|
+
this._options = options;
|
|
18
|
+
this._url = options === null || options === void 0 ? void 0 : options.url;
|
|
19
|
+
this._target = this.toNormalizedTarget(options === null || options === void 0 ? void 0 : options.target);
|
|
19
20
|
this._checker = options === null || options === void 0 ? void 0 : options.checker;
|
|
20
|
-
this._theme = theme;
|
|
21
21
|
this._isEnabled = true;
|
|
22
|
-
this._menu = new DLinkMenu(this, (_c = options === null || options === void 0 ? void 0 : options.menu) !== null && _c !== void 0 ? _c : theme.getLinkMenuOptions());
|
|
23
22
|
}
|
|
24
23
|
Object.defineProperty(DLink.prototype, "enable", {
|
|
25
24
|
get: function () {
|
|
@@ -45,16 +44,49 @@ var DLink = /** @class */ (function () {
|
|
|
45
44
|
get: function () {
|
|
46
45
|
return this._target;
|
|
47
46
|
},
|
|
47
|
+
set: function (target) {
|
|
48
|
+
this._target = this.toNormalizedTarget(target);
|
|
49
|
+
},
|
|
50
|
+
enumerable: false,
|
|
51
|
+
configurable: true
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(DLink.prototype, "checker", {
|
|
54
|
+
get: function () {
|
|
55
|
+
return this._checker;
|
|
56
|
+
},
|
|
57
|
+
set: function (checker) {
|
|
58
|
+
this._checker = checker;
|
|
59
|
+
},
|
|
48
60
|
enumerable: false,
|
|
49
61
|
configurable: true
|
|
50
62
|
});
|
|
51
63
|
Object.defineProperty(DLink.prototype, "menu", {
|
|
52
64
|
get: function () {
|
|
53
|
-
|
|
65
|
+
var result = this._menu;
|
|
66
|
+
if (result == null) {
|
|
67
|
+
result = this.newMenu();
|
|
68
|
+
this._menu = result;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
54
71
|
},
|
|
55
72
|
enumerable: false,
|
|
56
73
|
configurable: true
|
|
57
74
|
});
|
|
75
|
+
DLink.prototype.newMenu = function () {
|
|
76
|
+
var options = this._options;
|
|
77
|
+
if (options) {
|
|
78
|
+
var menu = options.menu;
|
|
79
|
+
if (menu) {
|
|
80
|
+
return new DLinkMenu(this, menu);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
var result = DLink.MENU;
|
|
84
|
+
if (result == null) {
|
|
85
|
+
result = new DLinkMenu(this, DThemes.getInstance().get("DLink").getMenuOptions());
|
|
86
|
+
DLink.MENU = result;
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
};
|
|
58
90
|
DLink.prototype.toStringifiedUrl = function (target, onResolved) {
|
|
59
91
|
var url = isFunction(target) ? target() : target;
|
|
60
92
|
if (url != null) {
|
|
@@ -76,6 +108,9 @@ var DLink = /** @class */ (function () {
|
|
|
76
108
|
a.href = url;
|
|
77
109
|
return a.href;
|
|
78
110
|
};
|
|
111
|
+
DLink.prototype.toNormalizedTarget = function (target) {
|
|
112
|
+
return toEnum(target !== null && target !== void 0 ? target : DLinkTarget.AUTO, DLinkTarget);
|
|
113
|
+
};
|
|
79
114
|
/**
|
|
80
115
|
* Copys the URL to the clipboard.
|
|
81
116
|
*/
|
|
@@ -164,28 +199,26 @@ var DLink = /** @class */ (function () {
|
|
|
164
199
|
};
|
|
165
200
|
DLink.prototype.add = function (base, onSelect) {
|
|
166
201
|
var _this = this;
|
|
167
|
-
|
|
168
|
-
if (_this.
|
|
202
|
+
UtilPointerEvent.onClick(base, function (e, isSimulated) {
|
|
203
|
+
if (!_this.onClick(base, isSimulated)) {
|
|
169
204
|
onSelect(e);
|
|
170
205
|
}
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (
|
|
178
|
-
|
|
179
|
-
if (menu.enable) {
|
|
180
|
-
if (_this._isEnabled && base.state.isActionable) {
|
|
181
|
-
menu.open(base);
|
|
182
|
-
}
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
DLink.prototype.onClick = function (base, isSimulated) {
|
|
209
|
+
if (this._target === DLinkTarget.AUTO && isSimulated) {
|
|
210
|
+
var menu = this.menu;
|
|
211
|
+
if (menu.enable) {
|
|
212
|
+
if (this._isEnabled && base.state.isActionable) {
|
|
213
|
+
menu.open(base);
|
|
185
214
|
}
|
|
186
|
-
|
|
187
|
-
}
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (this._isEnabled && base.state.isActionable) {
|
|
219
|
+
return false;
|
|
188
220
|
}
|
|
221
|
+
return true;
|
|
189
222
|
};
|
|
190
223
|
return DLink;
|
|
191
224
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-link.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-link.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport { DBase } from \"./d-base\";\nimport { DLinkMenu } from \"./d-link-menu\";\nimport { DLinkMenuItemId } from \"./d-link-menu-item-id\";\nimport { DLinkTarget } from \"./d-link-target\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { isFunction } from \"./util/is-function\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilClipboard } from \"./util/util-clipboard\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\n\nexport type DLinkUrlMaker = () => string | null | Promise<string | null>;\nexport type DLinkChecker = () => boolean | Promise<boolean>;\n\nexport interface DLinkOptions {\n\turl?: string | null | DLinkUrlMaker;\n\ttarget?: DLinkTarget | keyof typeof DLinkTarget;\n\tchecker?: DLinkChecker;\n\tmenu?: DMenuOptions<DLinkMenuItemId> | DMenu<DLinkMenuItemId>;\n}\n\nexport interface DThemeLink {\n\tgetLinkMenuOptions(): DMenuOptions<DLinkMenuItemId>;\n}\n\nexport class DLink {\n\tprotected static ANCHOR_ELEMENT?: HTMLAnchorElement;\n\n\tprotected _url: string | null | DLinkUrlMaker;\n\tprotected _target: DLinkTarget;\n\tprotected _checker?: DLinkChecker;\n\tprotected _menu: DLinkMenu;\n\tprotected _theme: DThemeLink;\n\tprotected _isEnabled: boolean;\n\n\tconstructor(theme: DThemeLink, options?: DLinkOptions) {\n\t\tthis._url = options?.url ?? null;\n\t\tthis._target = toEnum(options?.target ?? DLinkTarget.AUTO, DLinkTarget);\n\t\tthis._checker = options?.checker;\n\t\tthis._theme = theme;\n\t\tthis._isEnabled = true;\n\t\tthis._menu = new DLinkMenu(this, options?.menu ?? theme.getLinkMenuOptions());\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tthis._isEnabled = enable;\n\t}\n\n\tget url(): string | null | DLinkUrlMaker {\n\t\treturn this._url;\n\t}\n\n\tset url(url: string | null | DLinkUrlMaker) {\n\t\tthis._url = url;\n\t}\n\n\tget target(): DLinkTarget {\n\t\treturn this._target;\n\t}\n\n\tget menu(): DLinkMenu {\n\t\treturn this._menu;\n\t}\n\n\tprotected toStringifiedUrl(\n\t\ttarget: string | null | DLinkUrlMaker,\n\t\tonResolved: (url: string) => void\n\t): void {\n\t\tconst url = isFunction(target) ? target() : target;\n\t\tif (url != null) {\n\t\t\tif (isString(url)) {\n\t\t\t\tonResolved(url);\n\t\t\t} else {\n\t\t\t\turl.then((resolved: string | null): void => {\n\t\t\t\t\tif (resolved != null) {\n\t\t\t\t\t\tonResolved(resolved);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toNormalizedUrl(url: string): string {\n\t\tconst a = DLink.ANCHOR_ELEMENT || document.createElement(\"a\");\n\t\tDLink.ANCHOR_ELEMENT = a;\n\t\ta.href = url;\n\t\treturn a.href;\n\t}\n\n\t/**\n\t * Copys the URL to the clipboard.\n\t */\n\tcopy(): void {\n\t\tthis.toStringifiedUrl(this._url, (url: string): void => {\n\t\t\tUtilClipboard.copy(this.toNormalizedUrl(url));\n\t\t});\n\t}\n\n\t/**\n\t * Checks and opens the URL.\n\t *\n\t * @param e An event object which triggered this method call.\n\t */\n\topen(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void;\n\n\t/**\n\t * Checks and opens the URL.\n\t *\n\t * @param inNewWindow True to open in a new window\n\t */\n\topen(inNewWindow: boolean): void;\n\topen(\n\t\tx: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent | undefined | boolean\n\t): void {\n\t\tthis.toStringifiedUrl(this._url, (url): void => {\n\t\t\tconst inNewWindow = x === true || x === false ? x : this.inNewWindow(x);\n\t\t\tthis.check(url, inNewWindow, (): void => {\n\t\t\t\tthis.exec(url, inNewWindow);\n\t\t\t});\n\t\t});\n\t}\n\n\tcheck(url: string, inNewWindow: boolean, onResolved: () => void): void {\n\t\tconst checker = this._checker;\n\t\tif (checker) {\n\t\t\tconst checked = checker();\n\t\t\tif (checked === true) {\n\t\t\t\tonResolved();\n\t\t\t} else if (checked === false) {\n\t\t\t\t// DO NOTHING\n\t\t\t} else {\n\t\t\t\tchecked.then((resolved: boolean): void => {\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tonResolved();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tonResolved();\n\t\t}\n\t}\n\n\t/**\n\t * Opens the given URL.\n\t *\n\t * @param url An URL to be opened\n\t * @param inNewWindow True to open in a new window.\n\t */\n\texec(url: string, inNewWindow: boolean): void {\n\t\tif (inNewWindow) {\n\t\t\tconst a = document.createElement(\"a\");\n\t\t\ta.href = url;\n\t\t\ta.target = \"_blank\";\n\t\t\ta.style.display = \"none\";\n\t\t\ta.rel = \"noopener noreferrer\";\n\t\t\tdocument.body.appendChild(a);\n\t\t\ta.click();\n\t\t\tsetTimeout((): void => {\n\t\t\t\tdocument.body.removeChild(a);\n\t\t\t}, 100);\n\t\t} else {\n\t\t\twindow.location.href = url;\n\t\t}\n\t}\n\n\t/**\n\t * Returns true if the URL need to be opened in a new window.\n\t *\n\t * @param e An event object.\n\t */\n\tinNewWindow(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): boolean {\n\t\tswitch (this._target) {\n\t\t\tcase DLinkTarget.NEW_WINDOW:\n\t\t\t\treturn true;\n\t\t\tcase DLinkTarget.THIS_WINDOW:\n\t\t\t\treturn false;\n\t\t\tcase DLinkTarget.AUTO:\n\t\t\t\tif (e != null) {\n\t\t\t\t\tconst oe = e instanceof InteractionEvent ? e.data.originalEvent : e;\n\t\t\t\t\treturn (\n\t\t\t\t\t\toe.ctrlKey ||\n\t\t\t\t\t\toe.shiftKey ||\n\t\t\t\t\t\toe.altKey ||\n\t\t\t\t\t\toe.metaKey ||\n\t\t\t\t\t\t(\"button\" in oe && oe.button !== 0)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tadd(base: DBase, onSelect: (e: InteractionEvent) => void): void {\n\t\tconst onClick = (e: InteractionEvent): void => {\n\t\t\tif (this._isEnabled && base.state.isActionable) {\n\t\t\t\tonSelect(e);\n\t\t\t}\n\t\t};\n\t\tif (this._target !== DLinkTarget.AUTO) {\n\t\t\tUtilPointerEvent.onClick(base, onClick);\n\t\t} else {\n\t\t\tUtilPointerEvent.onClick(base, (e: InteractionEvent, isSimulated: boolean): void => {\n\t\t\t\tif (isSimulated) {\n\t\t\t\t\tconst menu = this._menu;\n\t\t\t\t\tif (menu.enable) {\n\t\t\t\t\t\tif (this._isEnabled && base.state.isActionable) {\n\t\t\t\t\t\t\tmenu.open(base);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tonClick(e);\n\t\t\t});\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-link.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-link.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, interaction, Texture } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport { DBase } from \"./d-base\";\nimport { DLinkMenu } from \"./d-link-menu\";\nimport { DLinkMenuItemId } from \"./d-link-menu-item-id\";\nimport { DLinkTarget } from \"./d-link-target\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { isFunction } from \"./util/is-function\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilClipboard } from \"./util/util-clipboard\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { DThemes } from \"./theme/d-themes\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\n\nexport type DLinkUrlValue = string | null | undefined;\n\nexport type DLinkUrlMaker = () => DLinkUrlValue | Promise<DLinkUrlValue>;\n\nexport type DLinkTargetValue = DLinkTarget | null | undefined | keyof typeof DLinkTarget;\n\nexport type DLinkChecker = () => boolean | Promise<boolean>;\n\nexport interface DLinkOptions {\n\turl?: DLinkUrlValue | DLinkUrlMaker;\n\ttarget?: DLinkTargetValue;\n\tchecker?: DLinkChecker;\n\tmenu?: DMenuOptions<DLinkMenuItemId> | DMenu<DLinkMenuItemId>;\n}\n\nexport interface DThemeLink {\n\tgetImageSource(state: DBaseStateSet): Texture | DisplayObject | null;\n\tgetMenuOptions(): DMenuOptions<DLinkMenuItemId>;\n}\n\nexport class DLink {\n\tprotected static ANCHOR_ELEMENT?: HTMLAnchorElement;\n\tprotected static MENU?: DLinkMenu;\n\n\tprotected _options?: DLinkOptions;\n\n\tprotected _url: DLinkUrlValue | DLinkUrlMaker;\n\tprotected _target: DLinkTarget;\n\tprotected _checker?: DLinkChecker;\n\tprotected _menu?: DLinkMenu;\n\tprotected _isEnabled: boolean;\n\n\tconstructor(options?: DLinkOptions) {\n\t\tthis._options = options;\n\n\t\tthis._url = options?.url;\n\t\tthis._target = this.toNormalizedTarget(options?.target);\n\t\tthis._checker = options?.checker;\n\t\tthis._isEnabled = true;\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tthis._isEnabled = enable;\n\t}\n\n\tget url(): DLinkUrlValue | DLinkUrlMaker {\n\t\treturn this._url;\n\t}\n\n\tset url(url: DLinkUrlValue | DLinkUrlMaker) {\n\t\tthis._url = url;\n\t}\n\n\tget target(): DLinkTarget {\n\t\treturn this._target;\n\t}\n\n\tset target(target: DLinkTargetValue) {\n\t\tthis._target = this.toNormalizedTarget(target);\n\t}\n\n\tget checker(): DLinkChecker | undefined {\n\t\treturn this._checker;\n\t}\n\n\tset checker(checker: DLinkChecker | undefined) {\n\t\tthis._checker = checker;\n\t}\n\n\tget menu(): DLinkMenu {\n\t\tlet result = this._menu;\n\t\tif (result == null) {\n\t\t\tresult = this.newMenu();\n\t\t\tthis._menu = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newMenu(): DLinkMenu {\n\t\tconst options = this._options;\n\t\tif (options) {\n\t\t\tconst menu = options.menu;\n\t\t\tif (menu) {\n\t\t\t\treturn new DLinkMenu(this, menu);\n\t\t\t}\n\t\t}\n\t\tlet result = DLink.MENU;\n\t\tif (result == null) {\n\t\t\tresult = new DLinkMenu(\n\t\t\t\tthis,\n\t\t\t\tDThemes.getInstance().get<DThemeLink>(\"DLink\").getMenuOptions()\n\t\t\t);\n\t\t\tDLink.MENU = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toStringifiedUrl(\n\t\ttarget: DLinkUrlValue | DLinkUrlMaker,\n\t\tonResolved: (url: string) => void\n\t): void {\n\t\tconst url = isFunction(target) ? target() : target;\n\t\tif (url != null) {\n\t\t\tif (isString(url)) {\n\t\t\t\tonResolved(url);\n\t\t\t} else {\n\t\t\t\turl.then((resolved: DLinkUrlValue): void => {\n\t\t\t\t\tif (resolved != null) {\n\t\t\t\t\t\tonResolved(resolved);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toNormalizedUrl(url: string): string {\n\t\tconst a = DLink.ANCHOR_ELEMENT || document.createElement(\"a\");\n\t\tDLink.ANCHOR_ELEMENT = a;\n\t\ta.href = url;\n\t\treturn a.href;\n\t}\n\n\tprotected toNormalizedTarget(target: DLinkTargetValue): DLinkTarget {\n\t\treturn toEnum(target ?? DLinkTarget.AUTO, DLinkTarget);\n\t}\n\n\t/**\n\t * Copys the URL to the clipboard.\n\t */\n\tcopy(): void {\n\t\tthis.toStringifiedUrl(this._url, (url: string): void => {\n\t\t\tUtilClipboard.copy(this.toNormalizedUrl(url));\n\t\t});\n\t}\n\n\t/**\n\t * Checks and opens the URL.\n\t *\n\t * @param e An event object which triggered this method call.\n\t */\n\topen(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): void;\n\n\t/**\n\t * Checks and opens the URL.\n\t *\n\t * @param inNewWindow True to open in a new window\n\t */\n\topen(inNewWindow: boolean): void;\n\topen(\n\t\tx: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent | undefined | boolean\n\t): void {\n\t\tthis.toStringifiedUrl(this._url, (url): void => {\n\t\t\tconst inNewWindow = x === true || x === false ? x : this.inNewWindow(x);\n\t\t\tthis.check(url, inNewWindow, (): void => {\n\t\t\t\tthis.exec(url, inNewWindow);\n\t\t\t});\n\t\t});\n\t}\n\n\tcheck(url: string, inNewWindow: boolean, onResolved: () => void): void {\n\t\tconst checker = this._checker;\n\t\tif (checker) {\n\t\t\tconst checked = checker();\n\t\t\tif (checked === true) {\n\t\t\t\tonResolved();\n\t\t\t} else if (checked === false) {\n\t\t\t\t// DO NOTHING\n\t\t\t} else {\n\t\t\t\tchecked.then((resolved: boolean): void => {\n\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\tonResolved();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tonResolved();\n\t\t}\n\t}\n\n\t/**\n\t * Opens the given URL.\n\t *\n\t * @param url An URL to be opened\n\t * @param inNewWindow True to open in a new window.\n\t */\n\texec(url: string, inNewWindow: boolean): void {\n\t\tif (inNewWindow) {\n\t\t\tconst a = document.createElement(\"a\");\n\t\t\ta.href = url;\n\t\t\ta.target = \"_blank\";\n\t\t\ta.style.display = \"none\";\n\t\t\ta.rel = \"noopener noreferrer\";\n\t\t\tdocument.body.appendChild(a);\n\t\t\ta.click();\n\t\t\tsetTimeout((): void => {\n\t\t\t\tdocument.body.removeChild(a);\n\t\t\t}, 100);\n\t\t} else {\n\t\t\twindow.location.href = url;\n\t\t}\n\t}\n\n\t/**\n\t * Returns true if the URL need to be opened in a new window.\n\t *\n\t * @param e An event object.\n\t */\n\tinNewWindow(e?: InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent): boolean {\n\t\tswitch (this._target) {\n\t\t\tcase DLinkTarget.NEW_WINDOW:\n\t\t\t\treturn true;\n\t\t\tcase DLinkTarget.THIS_WINDOW:\n\t\t\t\treturn false;\n\t\t\tcase DLinkTarget.AUTO:\n\t\t\t\tif (e != null) {\n\t\t\t\t\tconst oe = e instanceof InteractionEvent ? e.data.originalEvent : e;\n\t\t\t\t\treturn (\n\t\t\t\t\t\toe.ctrlKey ||\n\t\t\t\t\t\toe.shiftKey ||\n\t\t\t\t\t\toe.altKey ||\n\t\t\t\t\t\toe.metaKey ||\n\t\t\t\t\t\t(\"button\" in oe && oe.button !== 0)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\tadd(base: DBase, onSelect: (e: InteractionEvent) => void): void {\n\t\tUtilPointerEvent.onClick(base, (e: InteractionEvent, isSimulated: boolean): void => {\n\t\t\tif (!this.onClick(base, isSimulated)) {\n\t\t\t\tonSelect(e);\n\t\t\t}\n\t\t});\n\t}\n\n\tonClick(base: DBase, isSimulated: boolean): boolean {\n\t\tif (this._target === DLinkTarget.AUTO && isSimulated) {\n\t\t\tconst menu = this.menu;\n\t\t\tif (menu.enable) {\n\t\t\t\tif (this._isEnabled && base.state.isActionable) {\n\t\t\t\t\tmenu.open(base);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif (this._isEnabled && base.state.isActionable) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-list-data-selection.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-data-selection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,CAAC,IAAM,sBAAsB,GAAG;IACrC,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACF,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DOnOptions } from \"./d-on-options\";\n\nexport const DListDataSelectionType = {\n\tNONE: 0,\n\tSINGLE: 1,\n\tMULTIPLE: 2\n} as const;\n\nexport type DListDataSelectionType =\n\ttypeof DListDataSelectionType[keyof typeof DListDataSelectionType];\n\n/**\n * {@link DListSelection} events.\n */\nexport interface DListDataSelectionEvents<EMITTER> {\n\t/**\n\t * Triggered when a selection is changed.\n\t *\n\t * @param emitter an emitter\n\t */\n\tchange(emitter: EMITTER): void;\n}\n\n/**\n * {@link DListSelection} \"on\" options.\n */\nexport interface DListDataSelectionOnOptions<EMITTER>\n\textends Partial<DListDataSelectionEvents<EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DListSelection} options.\n */\nexport interface DListDataSelectionOptions<ITEM, EMITTER = any> {\n\t/**\n\t * @deprecated in favor of {@link type}\n\t */\n\tmode?: DListDataSelectionType | keyof typeof DListDataSelectionType;\n\n\t/**\n\t * A type.\n\t */\n\ttype?: DListDataSelectionType | keyof typeof DListDataSelectionType;\n\n\t/**\n\t * Mappings of event names and handlers.\n\t */\n\ton?: DListDataSelectionOnOptions<EMITTER>;\n}\n\nexport interface DListDataSelection<ITEM> extends utils.EventEmitter {\n\treadonly type: DListDataSelectionType;\n\treadonly first: ITEM | null;\n\treadonly last: ITEM | null;\n\n\t/**\n\t * Returns an item at the given index or null.\n\t *\n\t * @param index an index\n\t * @returns an item at the given index or null\n\t */\n\tget(index: number): ITEM | null;\n\n\t/**\n\t * Adds the given item\n\t *\n\t * @param target an item\n\t * @return true if succeeded.\n\t */\n\tadd(target: ITEM): boolean;\n\n\t/**\n\t * Removes the given item.\n\t *\n\t * @param target an item\n\t * @return true if succeeded\n\t */\n\tremove(target: ITEM): boolean;\n\n\t/**\n\t * Toggles the given item.\n\t *\n\t * @param target an item\n\t * @return true if succeeded.\n\t */\n\ttoggle(target: ITEM): boolean;\n\n\t/**\n\t * Clears all the items.\n\t */\n\tclear(): void;\n\n\t/**\n\t * Clears all the
|
|
1
|
+
{"version":3,"file":"d-list-data-selection.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-data-selection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,CAAC,IAAM,sBAAsB,GAAG;IACrC,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACF,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DOnOptions } from \"./d-on-options\";\n\nexport const DListDataSelectionType = {\n\tNONE: 0,\n\tSINGLE: 1,\n\tMULTIPLE: 2\n} as const;\n\nexport type DListDataSelectionType =\n\ttypeof DListDataSelectionType[keyof typeof DListDataSelectionType];\n\n/**\n * {@link DListSelection} events.\n */\nexport interface DListDataSelectionEvents<EMITTER> {\n\t/**\n\t * Triggered when a selection is changed.\n\t *\n\t * @param emitter an emitter\n\t */\n\tchange(emitter: EMITTER): void;\n}\n\n/**\n * {@link DListSelection} \"on\" options.\n */\nexport interface DListDataSelectionOnOptions<EMITTER>\n\textends Partial<DListDataSelectionEvents<EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DListSelection} options.\n */\nexport interface DListDataSelectionOptions<ITEM, EMITTER = any> {\n\t/**\n\t * @deprecated in favor of {@link type}\n\t */\n\tmode?: DListDataSelectionType | keyof typeof DListDataSelectionType;\n\n\t/**\n\t * A type.\n\t */\n\ttype?: DListDataSelectionType | keyof typeof DListDataSelectionType;\n\n\t/**\n\t * Mappings of event names and handlers.\n\t */\n\ton?: DListDataSelectionOnOptions<EMITTER>;\n}\n\nexport interface DListDataSelection<ITEM> extends utils.EventEmitter {\n\treadonly type: DListDataSelectionType;\n\treadonly first: ITEM | null;\n\treadonly last: ITEM | null;\n\n\t/**\n\t * Returns an item at the given index or null.\n\t *\n\t * @param index an index\n\t * @returns an item at the given index or null\n\t */\n\tget(index: number): ITEM | null;\n\n\t/**\n\t * Adds the given item\n\t *\n\t * @param target an item\n\t * @return true if succeeded.\n\t */\n\tadd(target: ITEM): boolean;\n\n\t/**\n\t * Removes the given item.\n\t *\n\t * @param target an item\n\t * @return true if succeeded\n\t */\n\tremove(target: ITEM): boolean;\n\n\t/**\n\t * Toggles the given item.\n\t *\n\t * @param target an item\n\t * @return true if succeeded.\n\t */\n\ttoggle(target: ITEM): boolean;\n\n\t/**\n\t * Clears all the items.\n\t */\n\tclear(): void;\n\n\t/**\n\t * Clears all the existing items and adds the given item.\n\t *\n\t * @param target an item to be added\n\t * @returns true if the selection is changed\n\t */\n\tclearAndAdd(target: ITEM): boolean;\n\n\t/**\n\t * Clears the existing items and add all the given items.\n\t *\n\t * @param targets items to be added\n\t * @returns true if the selection is changed\n\t */\n\tclearAndAddAll(targets: ITEM[]): boolean;\n\n\t/**\n\t * Returns true if the given item is selected.\n\t *\n\t * @param target an item to be checked\n\t * @returns true if the given item is selected\n\t */\n\tcontains(target: ITEM): boolean;\n\n\t/**\n\t * Returns the number of selected items.\n\t *\n\t * @returns the number of selected items\n\t */\n\tsize(): number;\n\n\t/**\n\t * Returns true if the selection is empty.\n\t *\n\t * @returns true if the selection is empty\n\t */\n\tisEmpty(): boolean;\n\n\t/**\n\t * Iterates over selected items.\n\t *\n\t * @param iteratee an iteratee\n\t */\n\teach(iteratee: (item: ITEM) => boolean | void): void;\n\n\t/**\n\t * Returns an array of selected items.\n\t */\n\ttoArray(): ITEM[];\n}\n"]}
|
|
@@ -9,13 +9,35 @@ var toImage = function (value) {
|
|
|
9
9
|
var toTitle = function (value) {
|
|
10
10
|
return value.title;
|
|
11
11
|
};
|
|
12
|
+
var toLinkUrl = function (value) {
|
|
13
|
+
return value.url;
|
|
14
|
+
};
|
|
12
15
|
var DListItemAccessorImpl = /** @class */ (function () {
|
|
13
16
|
function DListItemAccessorImpl(options) {
|
|
14
17
|
this.toLabel = (options === null || options === void 0 ? void 0 : options.toLabel) || toLabelDefault;
|
|
15
18
|
this.toTitle = (options === null || options === void 0 ? void 0 : options.toTitle) || toTitle;
|
|
16
19
|
this.toImage = (options === null || options === void 0 ? void 0 : options.toImage) || toImage;
|
|
17
20
|
this.toId = options === null || options === void 0 ? void 0 : options.toId;
|
|
21
|
+
this.link = this.toLink(options);
|
|
18
22
|
}
|
|
23
|
+
DListItemAccessorImpl.prototype.toLink = function (options) {
|
|
24
|
+
if (options) {
|
|
25
|
+
var link = options.link;
|
|
26
|
+
if (link) {
|
|
27
|
+
var toUrl = link.toUrl;
|
|
28
|
+
var target = link.target;
|
|
29
|
+
var checker = link.checker;
|
|
30
|
+
if (toUrl !== undefined || target !== undefined || checker !== undefined) {
|
|
31
|
+
return {
|
|
32
|
+
toUrl: toUrl || toLinkUrl,
|
|
33
|
+
target: target,
|
|
34
|
+
checker: checker
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
};
|
|
19
41
|
return DListItemAccessorImpl;
|
|
20
42
|
}());
|
|
21
43
|
export { DListItemAccessorImpl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-list-item-accessor-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-item-accessor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"d-list-item-accessor-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-item-accessor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5D,IAAM,OAAO,GAAG,UAAC,KAAU;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF,IAAM,OAAO,GAAG,UAAC,KAAU;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,UAAC,KAAU;IAC5B,OAAO,KAAK,CAAC,GAAG,CAAC;AAClB,CAAC,CAAC;AAEF;IAOC,+BAAY,OAAyC;QACpD,IAAI,CAAC,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,cAAc,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAES,sCAAM,GAAhB,UACC,OAAyC;QAEzC,IAAI,OAAO,EAAE;YACZ,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,IAAI,EAAE;gBACT,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzE,OAAO;wBACN,KAAK,EAAE,KAAK,IAAI,SAAS;wBACzB,MAAM,QAAA;wBACN,OAAO,SAAA;qBACP,CAAC;iBACF;aACD;SACD;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IACF,4BAAC;AAAD,CAAC,AAnCD,IAmCC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, Texture } from \"pixi.js\";\nimport { DLinkUrlValue } from \"./d-link\";\nimport {\n\tDListItemAccessor,\n\tDListItemAccessorLink,\n\tDListItemAccessorOptions,\n\tDListItemToId,\n\tDListItemToImage,\n\tDListItemToLabel,\n\tDListItemToTitle\n} from \"./d-list-item-accessor\";\nimport { toLabel as toLabelDefault } from \"./util/to-label\";\n\nconst toImage = (value: any): DisplayObject | Texture | null | undefined => {\n\treturn value.image;\n};\n\nconst toTitle = (value: any): string | undefined => {\n\treturn value.title;\n};\n\nconst toLinkUrl = (value: any): DLinkUrlValue | Promise<DLinkUrlValue> => {\n\treturn value.url;\n};\n\nexport class DListItemAccessorImpl<VALUE> implements DListItemAccessor<VALUE> {\n\ttoLabel: DListItemToLabel<VALUE>;\n\ttoTitle: DListItemToTitle<VALUE>;\n\ttoImage: DListItemToImage<VALUE>;\n\ttoId?: DListItemToId<VALUE>;\n\tlink?: DListItemAccessorLink<VALUE>;\n\n\tconstructor(options?: DListItemAccessorOptions<VALUE>) {\n\t\tthis.toLabel = options?.toLabel || toLabelDefault;\n\t\tthis.toTitle = options?.toTitle || toTitle;\n\t\tthis.toImage = options?.toImage || toImage;\n\t\tthis.toId = options?.toId;\n\t\tthis.link = this.toLink(options);\n\t}\n\n\tprotected toLink(\n\t\toptions?: DListItemAccessorOptions<VALUE>\n\t): DListItemAccessorLink<VALUE> | undefined {\n\t\tif (options) {\n\t\t\tconst link = options.link;\n\t\t\tif (link) {\n\t\t\t\tconst toUrl = link.toUrl;\n\t\t\t\tconst target = link.target;\n\t\t\t\tconst checker = link.checker;\n\t\t\t\tif (toUrl !== undefined || target !== undefined || checker !== undefined) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttoUrl: toUrl || toLinkUrl,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tchecker\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-list-item-accessor.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-item-accessor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, Texture } from \"pixi.js\";\n\nexport type DListItemToLabel<VALUE> = (
|
|
1
|
+
{"version":3,"file":"d-list-item-accessor.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-item-accessor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, Texture } from \"pixi.js\";\nimport { DLinkTargetValue, DLinkUrlValue } from \"./d-link\";\n\nexport type DListItemToLabel<VALUE> = (value: VALUE) => string | undefined;\n\nexport type DListItemToTitle<VALUE> = (value: VALUE) => string | undefined;\n\nexport type DListItemToImage<VALUE> = (value: VALUE) => DisplayObject | Texture | null | undefined;\n\nexport type DListItemToId<VALUE> = (value: VALUE) => unknown;\n\nexport type DListItemToLinkUrl<VALUE> = (value: VALUE) => DLinkUrlValue | Promise<DLinkUrlValue>;\n\nexport type DListItemLinkChecker<VALUE> = (value: VALUE) => boolean | Promise<boolean>;\n\nexport interface DListItemAccessorLinkOptions<VALUE> {\n\ttoUrl?: DListItemToLinkUrl<VALUE>;\n\ttarget?: DLinkTargetValue;\n\tchecker?: DListItemLinkChecker<VALUE>;\n}\n\nexport interface DListItemAccessorLink<VALUE> {\n\ttoUrl: DListItemToLinkUrl<VALUE>;\n\ttarget: DLinkTargetValue;\n\tchecker?: DListItemLinkChecker<VALUE>;\n}\n\nexport interface DListItemAccessorOptions<VALUE> {\n\ttoLabel?: DListItemToLabel<VALUE>;\n\ttoTitle?: DListItemToTitle<VALUE>;\n\ttoImage?: DListItemToImage<VALUE>;\n\ttoId?: DListItemToId<VALUE>;\n\tlink?: DListItemAccessorLinkOptions<VALUE>;\n}\n\nexport interface DListItemAccessor<VALUE> {\n\ttoLabel: DListItemToLabel<VALUE>;\n\ttoTitle: DListItemToTitle<VALUE>;\n\ttoImage: DListItemToImage<VALUE>;\n\ttoId?: DListItemToId<VALUE>;\n\tlink?: DListItemAccessorLink<VALUE>;\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2019 Toshiba Corporation
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { __extends } from "tslib";
|
|
6
|
+
import { DListItem } from "./d-list-item";
|
|
7
|
+
var DListItemAmbient = /** @class */ (function (_super) {
|
|
8
|
+
__extends(DListItemAmbient, _super);
|
|
9
|
+
function DListItemAmbient() {
|
|
10
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
11
|
+
}
|
|
12
|
+
DListItemAmbient.prototype.getType = function () {
|
|
13
|
+
return "DListItemAmbient";
|
|
14
|
+
};
|
|
15
|
+
return DListItemAmbient;
|
|
16
|
+
}(DListItem));
|
|
17
|
+
export { DListItemAmbient };
|
|
18
|
+
//# sourceMappingURL=d-list-item-ambient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d-list-item-ambient.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-list-item-ambient.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,SAAS,EAAoC,MAAM,eAAe,CAAC;AAS5E;IAIU,oCAAgC;IAJ1C;;IAQA,CAAC;IAHU,kCAAO,GAAjB;QACC,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IACF,uBAAC;AAAD,CAAC,AARD,CAIU,SAAS,GAIlB","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DListItem, DListItemOptions, DThemeListItem } from \"./d-list-item\";\n\nexport interface DListItemAmbientOptions<\n\tVALUE = unknown,\n\tTHEME extends DThemeListItemAmbient = DThemeListItemAmbient\n> extends DListItemOptions<VALUE, THEME> {}\n\nexport interface DThemeListItemAmbient extends DThemeListItem {}\n\nexport class DListItemAmbient<\n\tVALUE = unknown,\n\tTHEME extends DThemeListItemAmbient = DThemeListItemAmbient,\n\tOPTIONS extends DListItemAmbientOptions<VALUE, THEME> = DListItemAmbientOptions<VALUE, THEME>\n> extends DListItem<VALUE, THEME, OPTIONS> {\n\tprotected getType(): string {\n\t\treturn \"DListItemAmbient\";\n\t}\n}\n"]}
|