@kurot/ui 1.1.12 → 2.1.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/README.md +76 -4
- package/dist/kurot/components/Button.d.ts +4 -3
- package/dist/kurot/components/Button.d.ts.map +1 -1
- package/dist/kurot/components/Button.js +20 -10
- package/dist/kurot/components/Button.js.map +1 -1
- package/dist/kurot/components/ComboBox.d.ts +32 -14
- package/dist/kurot/components/ComboBox.d.ts.map +1 -1
- package/dist/kurot/components/ComboBox.js +68 -38
- package/dist/kurot/components/ComboBox.js.map +1 -1
- package/dist/kurot/components/Component.d.ts +31 -13
- package/dist/kurot/components/Component.d.ts.map +1 -1
- package/dist/kurot/components/Component.js +40 -30
- package/dist/kurot/components/Component.js.map +1 -1
- package/dist/kurot/components/HSlider.d.ts +3 -3
- package/dist/kurot/components/HSlider.d.ts.map +1 -1
- package/dist/kurot/components/HSlider.js +16 -14
- package/dist/kurot/components/HSlider.js.map +1 -1
- package/dist/kurot/components/ItemRenderer.d.ts +9 -10
- package/dist/kurot/components/ItemRenderer.d.ts.map +1 -1
- package/dist/kurot/components/ItemRenderer.js +18 -20
- package/dist/kurot/components/ItemRenderer.js.map +1 -1
- package/dist/kurot/components/ListBase.d.ts +6 -2
- package/dist/kurot/components/ListBase.d.ts.map +1 -1
- package/dist/kurot/components/ListBase.js +6 -2
- package/dist/kurot/components/ListBase.js.map +1 -1
- package/dist/kurot/components/Panel.d.ts +3 -3
- package/dist/kurot/components/Panel.d.ts.map +1 -1
- package/dist/kurot/components/Panel.js +26 -23
- package/dist/kurot/components/Panel.js.map +1 -1
- package/dist/kurot/components/ProgressBar.d.ts +12 -5
- package/dist/kurot/components/ProgressBar.d.ts.map +1 -1
- package/dist/kurot/components/ProgressBar.js +43 -23
- package/dist/kurot/components/ProgressBar.js.map +1 -1
- package/dist/kurot/components/RadioButton.d.ts +3 -1
- package/dist/kurot/components/RadioButton.d.ts.map +1 -1
- package/dist/kurot/components/RadioButton.js +3 -1
- package/dist/kurot/components/RadioButton.js.map +1 -1
- package/dist/kurot/components/ScrollBarBase.d.ts +2 -0
- package/dist/kurot/components/ScrollBarBase.d.ts.map +1 -1
- package/dist/kurot/components/ScrollBarBase.js +11 -0
- package/dist/kurot/components/ScrollBarBase.js.map +1 -1
- package/dist/kurot/components/Scroller.d.ts +3 -3
- package/dist/kurot/components/Scroller.d.ts.map +1 -1
- package/dist/kurot/components/Scroller.js +38 -40
- package/dist/kurot/components/Scroller.js.map +1 -1
- package/dist/kurot/components/Skin.d.ts +1 -1
- package/dist/kurot/components/Skin.js +1 -1
- package/dist/kurot/components/SliderBase.d.ts +13 -4
- package/dist/kurot/components/SliderBase.d.ts.map +1 -1
- package/dist/kurot/components/SliderBase.js +28 -7
- package/dist/kurot/components/SliderBase.js.map +1 -1
- package/dist/kurot/components/TabBar.d.ts +2 -2
- package/dist/kurot/components/TabBar.d.ts.map +1 -1
- package/dist/kurot/components/TabBar.js +17 -15
- package/dist/kurot/components/TabBar.js.map +1 -1
- package/dist/kurot/components/TextInput.d.ts +2 -2
- package/dist/kurot/components/TextInput.d.ts.map +1 -1
- package/dist/kurot/components/TextInput.js +31 -31
- package/dist/kurot/components/TextInput.js.map +1 -1
- package/dist/kurot/components/VSlider.d.ts +3 -3
- package/dist/kurot/components/VSlider.d.ts.map +1 -1
- package/dist/kurot/components/VSlider.js +16 -14
- package/dist/kurot/components/VSlider.js.map +1 -1
- package/dist/kurot/components/ViewStack.d.ts +3 -1
- package/dist/kurot/components/ViewStack.d.ts.map +1 -1
- package/dist/kurot/components/ViewStack.js +3 -1
- package/dist/kurot/components/ViewStack.js.map +1 -1
- package/dist/kurot/components/index.d.ts +1 -1
- package/dist/kurot/components/index.d.ts.map +1 -1
- package/dist/kurot/components/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
UI component framework for [@kurot/core](https://github.com/kurot-engine/kurot/tree/main/packages/core). Migrated from Egret EUI, rewritten in modern TypeScript with clean class inheritance — no namespace hacks, no prototype manipulation.
|
|
4
4
|
|
|
5
|
-
> **
|
|
5
|
+
> **Current release: 2.1.0.** Requires `@kurot/core@^1.0.12`. Targets ES2022 + evergreen browsers, same as core.
|
|
6
6
|
|
|
7
7
|
For the full list of changes in this release, see [CHANGELOG.md](./CHANGELOG.md).
|
|
8
8
|
|
|
@@ -77,24 +77,94 @@ invalidateProperties / invalidateSize / invalidateDisplayList
|
|
|
77
77
|
### Skin system
|
|
78
78
|
|
|
79
79
|
```ts
|
|
80
|
-
import { Skin, State, SetProperty } from '@kurot/ui';
|
|
80
|
+
import { Rect, Skin, State, SetProperty } from '@kurot/ui';
|
|
81
81
|
|
|
82
82
|
class MyButtonSkin extends Skin {
|
|
83
|
+
public bg: Rect;
|
|
84
|
+
|
|
83
85
|
constructor() {
|
|
84
86
|
super();
|
|
85
|
-
|
|
87
|
+
|
|
88
|
+
this.bg = new Rect(120, 36, 0x6c5ce7);
|
|
89
|
+
this.skinParts = ['bg'];
|
|
90
|
+
this.elementsContent = [this.bg];
|
|
86
91
|
this.states = [
|
|
87
92
|
new State('up'),
|
|
88
93
|
new State('down', [new SetProperty('bg', 'fillColor', 0x5a4bd1)]),
|
|
89
94
|
new State('disabled', [new SetProperty('bg', 'fillColor', 0x636e72)]),
|
|
90
95
|
];
|
|
91
|
-
// build visual children...
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
|
|
95
99
|
btn.skinName = MyButtonSkin;
|
|
96
100
|
```
|
|
97
101
|
|
|
102
|
+
### Typed skin parts and lifecycle
|
|
103
|
+
|
|
104
|
+
UI 2.0 attaches a skin atomically. The complete part set is available in
|
|
105
|
+
`onSkinReady()` and remains available through `onSkinRemoved()`. Accessing
|
|
106
|
+
`skinParts` outside that interval throws, which prevents code from silently
|
|
107
|
+
using a partial or stale skin.
|
|
108
|
+
|
|
109
|
+
The Kurot CLI generates `SkinPartsMap` entries and narrows the public
|
|
110
|
+
`skinParts` accessor on project classes. It resolves explicit string-literal
|
|
111
|
+
`skinName` assignments, configured reusable-component pairs, and unambiguous
|
|
112
|
+
`<ClassName>Skin` naming conventions. The runtime skin name remains the source
|
|
113
|
+
of truth whenever it is assigned explicitly:
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
import { TouchEvent } from '@kurot/core';
|
|
117
|
+
import { Component } from '@kurot/ui';
|
|
118
|
+
|
|
119
|
+
export class ConfirmPanel extends Component {
|
|
120
|
+
public constructor() {
|
|
121
|
+
super();
|
|
122
|
+
this.skinName = 'game.ui.ConfirmPanelSkin';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
protected override onSkinReady(): void {
|
|
126
|
+
super.onSkinReady();
|
|
127
|
+
this.skinParts.btnConfirm.addEventListener(
|
|
128
|
+
TouchEvent.TOUCH_TAP,
|
|
129
|
+
this.onConfirm,
|
|
130
|
+
);
|
|
131
|
+
this.skinParts.lblMessage.text = 'Continue?';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
protected override onSkinRemoved(): void {
|
|
135
|
+
this.skinParts.btnConfirm.removeEventListener(
|
|
136
|
+
TouchEvent.TOUCH_TAP,
|
|
137
|
+
this.onConfirm,
|
|
138
|
+
);
|
|
139
|
+
super.onSkinRemoved();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
private onConfirm = (): void => {
|
|
143
|
+
// Handle confirmation.
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Library code without CLI-generated host declarations can still select a shape
|
|
149
|
+
explicitly with `Component<'game.ui.ConfirmPanelSkin'>` or
|
|
150
|
+
`ItemRenderer<'game.ui.ConfirmItemSkin'>`. `skinParts` is the only public,
|
|
151
|
+
read-only part view, so component subclasses, mediators, and composition code
|
|
152
|
+
use the same API.
|
|
153
|
+
|
|
154
|
+
When a CLI project has exactly one compiled `<ClassName>Skin` candidate, the
|
|
155
|
+
generated host declaration also covers skins supplied externally by a Theme or
|
|
156
|
+
List. An `ItemRenderer` named `MultiplierIR` can therefore use
|
|
157
|
+
`this.skinParts` without repeating `ui.MultiplierIRSkin` in its base type.
|
|
158
|
+
|
|
159
|
+
Use `onSkinReady()` only for work that requires skin parts. Keep ordinary
|
|
160
|
+
one-time component initialization in `createChildren()`. Remove listeners and
|
|
161
|
+
other bindings created for a skin in `onSkinRemoved()` so replacing a skin
|
|
162
|
+
cannot retain stale objects.
|
|
163
|
+
|
|
164
|
+
The old incremental APIs `setSkinPart()`, `partAdded()`, and `partRemoved()`
|
|
165
|
+
were removed in 2.0. Skin part names are no longer copied onto the component as
|
|
166
|
+
dynamic properties; use `this.skinParts.<name>` during the ready lifecycle.
|
|
167
|
+
|
|
98
168
|
## Components
|
|
99
169
|
|
|
100
170
|
### Basic Controls
|
|
@@ -297,6 +367,8 @@ cross-framework ranking.
|
|
|
297
367
|
| Component base | `namespace` + `mixin` | Standard class inheritance |
|
|
298
368
|
| Layout state | Prototype-injected | `UIState` delegation |
|
|
299
369
|
| EXML runtime | Built-in parser | Compile-time only (`@kurot/cli`) |
|
|
370
|
+
| Skin parts | Incremental dynamic fields | Atomic typed `skinParts` |
|
|
371
|
+
| Skin lifecycle | `partAdded` / `partRemoved` | `onSkinReady` / `onSkinRemoved` |
|
|
300
372
|
| `thisObject` | Required in event listeners | Not needed — use arrow functions |
|
|
301
373
|
| Virtual layout | Default on | Opt-in via `useVirtualLayout = true` |
|
|
302
374
|
| i18n | Built-in | Not supported |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component } from './Component.js';
|
|
2
2
|
import type { Texture } from '@kurot/core';
|
|
3
3
|
import type { IDisplayText } from '../core/IDisplayText.js';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import { Image } from './Image.js';
|
|
5
|
+
import { Label } from './Label.js';
|
|
6
6
|
/**
|
|
7
7
|
* Button component with label, icon, and state management.
|
|
8
8
|
*
|
|
@@ -34,8 +34,9 @@ export declare class Button extends Component implements IDisplayText {
|
|
|
34
34
|
get touchCaptured(): boolean;
|
|
35
35
|
get enabled(): boolean;
|
|
36
36
|
set enabled(value: boolean);
|
|
37
|
-
partAdded(partName: string, instance: unknown): void;
|
|
38
37
|
$onRemoveFromStage(): void;
|
|
38
|
+
protected onSkinReady(): void;
|
|
39
|
+
protected onSkinRemoved(): void;
|
|
39
40
|
/**
|
|
40
41
|
* Return the current view state, layering the selected state on top of
|
|
41
42
|
* the base up/down/disabled states.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAS,OAAO,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAS,OAAO,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,SAAU,YAAW,YAAY;IAGrD,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,mBAAmB,CAAS;;IAYpC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAE9C;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EAKlD;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAoB,OAAO,IAAI,OAAO,CAErC;IAED,IAAoB,OAAO,CAAC,KAAK,EAAE,OAAO,EAIzC;IAIe,kBAAkB,IAAI,IAAI;cAOvB,WAAW,IAAI,IAAI;cAanB,aAAa,IAAI,IAAI;IAMxC;;;;;;;;OAQG;cACgB,eAAe,IAAI,MAAM;IAkB5C;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAYhC,OAAO,CAAC,aAAa,CAUnB;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,mBAAmB;CAK3B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Component } from './Component.js';
|
|
2
2
|
import { Event, TouchEvent, DisplayObject } from '@kurot/core';
|
|
3
|
+
import { Image } from './Image.js';
|
|
4
|
+
import { Label } from './Label.js';
|
|
3
5
|
import { PropertyEvent } from '../events/PropertyEvent.js';
|
|
4
6
|
/**
|
|
5
7
|
* Button component with label, icon, and state management.
|
|
@@ -77,19 +79,28 @@ export class Button extends Component {
|
|
|
77
79
|
this.invalidateState();
|
|
78
80
|
}
|
|
79
81
|
// ── Override methods ──────────────────────────────────────────────────
|
|
80
|
-
partAdded(partName, instance) {
|
|
81
|
-
super.partAdded(partName, instance);
|
|
82
|
-
if (partName === 'labelDisplay' && this.labelDisplay) {
|
|
83
|
-
this.labelDisplay.text = this._label;
|
|
84
|
-
}
|
|
85
|
-
else if (partName === 'iconDisplay' && this.iconDisplay) {
|
|
86
|
-
this.iconDisplay.source = this._icon;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
82
|
$onRemoveFromStage() {
|
|
90
83
|
this._cancelTouchCapture();
|
|
91
84
|
super.$onRemoveFromStage();
|
|
92
85
|
}
|
|
86
|
+
// ── Protected methods ─────────────────────────────────────────────────
|
|
87
|
+
onSkinReady() {
|
|
88
|
+
super.onSkinReady();
|
|
89
|
+
const { labelDisplay, iconDisplay } = this.skinParts;
|
|
90
|
+
if (labelDisplay instanceof Label) {
|
|
91
|
+
this.labelDisplay = labelDisplay;
|
|
92
|
+
labelDisplay.text = this._label;
|
|
93
|
+
}
|
|
94
|
+
if (iconDisplay instanceof Image) {
|
|
95
|
+
this.iconDisplay = iconDisplay;
|
|
96
|
+
iconDisplay.source = this._icon;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
onSkinRemoved() {
|
|
100
|
+
this.labelDisplay = undefined;
|
|
101
|
+
this.iconDisplay = undefined;
|
|
102
|
+
super.onSkinRemoved();
|
|
103
|
+
}
|
|
93
104
|
/**
|
|
94
105
|
* Return the current view state, layering the selected state on top of
|
|
95
106
|
* the base up/down/disabled states.
|
|
@@ -118,7 +129,6 @@ export class Button extends Component {
|
|
|
118
129
|
return selectedState;
|
|
119
130
|
return state === 'disabled' ? 'disabled' : 'down';
|
|
120
131
|
}
|
|
121
|
-
// ── Protected methods ─────────────────────────────────────────────────
|
|
122
132
|
/**
|
|
123
133
|
* Called when the user taps the button (touch ends within the button bounds).
|
|
124
134
|
* Subclasses should override this to perform the button action.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { List } from './List.js';
|
|
|
3
3
|
import { Scroller } from './Scroller.js';
|
|
4
4
|
import type { ArrayCollection } from '../collections/ArrayCollection.js';
|
|
5
5
|
import type { IDisplayText } from '../core/IDisplayText.js';
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import { Button } from './Button.js';
|
|
7
|
+
import { Label } from './Label.js';
|
|
8
8
|
/**
|
|
9
9
|
* ComboBox — a drop-down selection component.
|
|
10
10
|
*
|
|
@@ -37,16 +37,24 @@ export declare class ComboBox extends Component implements IDisplayText {
|
|
|
37
37
|
private _dropDownParentIndex;
|
|
38
38
|
private _dropDownLocalMatrix?;
|
|
39
39
|
constructor();
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The data provider for the drop-down list items.
|
|
42
|
+
*/
|
|
41
43
|
get dataProvider(): ArrayCollection | undefined;
|
|
42
44
|
set dataProvider(value: ArrayCollection | undefined);
|
|
43
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Index of the currently selected item, or `-1` if nothing is selected.
|
|
47
|
+
*/
|
|
44
48
|
get selectedIndex(): number;
|
|
45
49
|
set selectedIndex(value: number);
|
|
46
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The currently selected data item.
|
|
52
|
+
*/
|
|
47
53
|
get selectedItem(): unknown;
|
|
48
54
|
set selectedItem(value: unknown);
|
|
49
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Whether the drop-down list is currently visible.
|
|
57
|
+
*/
|
|
50
58
|
get isOpen(): boolean;
|
|
51
59
|
set isOpen(value: boolean);
|
|
52
60
|
/**
|
|
@@ -61,30 +69,40 @@ export declare class ComboBox extends Component implements IDisplayText {
|
|
|
61
69
|
*/
|
|
62
70
|
get labelFunction(): ((item: unknown) => string) | undefined;
|
|
63
71
|
set labelFunction(value: ((item: unknown) => string) | undefined);
|
|
64
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Placeholder text shown when no item is selected.
|
|
74
|
+
*/
|
|
65
75
|
get prompt(): string;
|
|
66
76
|
set prompt(value: string);
|
|
67
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* The displayed text, either the selected item label or the prompt.
|
|
79
|
+
*/
|
|
68
80
|
get text(): string;
|
|
69
81
|
get textColor(): number;
|
|
70
82
|
set textColor(value: number);
|
|
71
|
-
protected getCurrentState(): string;
|
|
72
|
-
partAdded(partName: string, instance: unknown): void;
|
|
73
|
-
partRemoved(partName: string, instance: unknown): void;
|
|
74
83
|
$onRemoveFromStage(): void;
|
|
75
84
|
commitProperties(): void;
|
|
76
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Open the drop-down list.
|
|
87
|
+
*/
|
|
77
88
|
open(): void;
|
|
78
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* Close the drop-down list.
|
|
91
|
+
*/
|
|
79
92
|
close(): void;
|
|
80
93
|
/**
|
|
81
94
|
* Convert a data item to a label string using `labelFunction` or `labelField`.
|
|
82
95
|
*/
|
|
83
96
|
itemToLabel(item: unknown): string;
|
|
97
|
+
protected onSkinReady(): void;
|
|
98
|
+
protected onSkinRemoved(): void;
|
|
99
|
+
protected getCurrentState(): string;
|
|
84
100
|
private _updateSelectedItem;
|
|
85
101
|
private _updateLabel;
|
|
86
102
|
private _updateDisplayOrder;
|
|
87
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Move only the popup to the stage so layout siblings cannot cover it.
|
|
105
|
+
*/
|
|
88
106
|
private _moveDropDownToStage;
|
|
89
107
|
private _restoreDropDownParent;
|
|
90
108
|
private _onTriggerTap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import { TouchEvent, Event, DisplayObject } from '@kurot/core';
|
|
|
2
2
|
import { Component } from './Component.js';
|
|
3
3
|
import { List } from './List.js';
|
|
4
4
|
import { Scroller } from './Scroller.js';
|
|
5
|
+
import { Button } from './Button.js';
|
|
6
|
+
import { Label } from './Label.js';
|
|
5
7
|
/**
|
|
6
8
|
* ComboBox — a drop-down selection component.
|
|
7
9
|
*
|
|
@@ -41,7 +43,9 @@ export class ComboBox extends Component {
|
|
|
41
43
|
this.addEventListener(TouchEvent.TOUCH_TAP, this._onTriggerTap);
|
|
42
44
|
}
|
|
43
45
|
// ── Getters / Setters ─────────────────────────────────────────────────
|
|
44
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* The data provider for the drop-down list items.
|
|
48
|
+
*/
|
|
45
49
|
get dataProvider() {
|
|
46
50
|
return this._dataProvider;
|
|
47
51
|
}
|
|
@@ -54,7 +58,9 @@ export class ComboBox extends Component {
|
|
|
54
58
|
}
|
|
55
59
|
this.invalidateProperties();
|
|
56
60
|
}
|
|
57
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Index of the currently selected item, or `-1` if nothing is selected.
|
|
63
|
+
*/
|
|
58
64
|
get selectedIndex() {
|
|
59
65
|
return this._selectedIndex;
|
|
60
66
|
}
|
|
@@ -65,7 +71,9 @@ export class ComboBox extends Component {
|
|
|
65
71
|
this._updateSelectedItem();
|
|
66
72
|
this.invalidateState();
|
|
67
73
|
}
|
|
68
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* The currently selected data item.
|
|
76
|
+
*/
|
|
69
77
|
get selectedItem() {
|
|
70
78
|
return this._selectedItem;
|
|
71
79
|
}
|
|
@@ -81,7 +89,9 @@ export class ComboBox extends Component {
|
|
|
81
89
|
this.invalidateState();
|
|
82
90
|
}
|
|
83
91
|
}
|
|
84
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Whether the drop-down list is currently visible.
|
|
94
|
+
*/
|
|
85
95
|
get isOpen() {
|
|
86
96
|
return this._isOpen;
|
|
87
97
|
}
|
|
@@ -121,7 +131,9 @@ export class ComboBox extends Component {
|
|
|
121
131
|
this._labelFunction = value;
|
|
122
132
|
this._updateLabel();
|
|
123
133
|
}
|
|
124
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* Placeholder text shown when no item is selected.
|
|
136
|
+
*/
|
|
125
137
|
get prompt() {
|
|
126
138
|
return this._prompt;
|
|
127
139
|
}
|
|
@@ -131,7 +143,9 @@ export class ComboBox extends Component {
|
|
|
131
143
|
this.labelDisplay.text = value;
|
|
132
144
|
}
|
|
133
145
|
}
|
|
134
|
-
/**
|
|
146
|
+
/**
|
|
147
|
+
* The displayed text, either the selected item label or the prompt.
|
|
148
|
+
*/
|
|
135
149
|
get text() {
|
|
136
150
|
if (this.labelDisplay)
|
|
137
151
|
return this.labelDisplay.text;
|
|
@@ -146,35 +160,6 @@ export class ComboBox extends Component {
|
|
|
146
160
|
}
|
|
147
161
|
}
|
|
148
162
|
// ── Override methods ──────────────────────────────────────────────────
|
|
149
|
-
getCurrentState() {
|
|
150
|
-
if (!this.enabled)
|
|
151
|
-
return 'disabled';
|
|
152
|
-
if (this._isOpen)
|
|
153
|
-
return 'open';
|
|
154
|
-
return 'normal';
|
|
155
|
-
}
|
|
156
|
-
partAdded(partName, instance) {
|
|
157
|
-
super.partAdded(partName, instance);
|
|
158
|
-
if (partName === 'labelDisplay' && instance === this.labelDisplay) {
|
|
159
|
-
this._updateLabel();
|
|
160
|
-
}
|
|
161
|
-
if (partName === 'list' && instance instanceof List) {
|
|
162
|
-
instance.dataProvider = this._dataProvider;
|
|
163
|
-
instance.addEventListener(Event.CHANGE, this._onListChange);
|
|
164
|
-
}
|
|
165
|
-
if (partName === 'dropDown' && instance instanceof Scroller) {
|
|
166
|
-
instance.visible = this._isOpen;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
partRemoved(partName, instance) {
|
|
170
|
-
if (partName === 'dropDown' && instance === this.dropDown) {
|
|
171
|
-
this.close();
|
|
172
|
-
}
|
|
173
|
-
super.partRemoved(partName, instance);
|
|
174
|
-
if (partName === 'list' && instance instanceof List) {
|
|
175
|
-
instance.removeEventListener(Event.CHANGE, this._onListChange);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
163
|
$onRemoveFromStage() {
|
|
179
164
|
this.close();
|
|
180
165
|
super.$onRemoveFromStage();
|
|
@@ -187,11 +172,15 @@ export class ComboBox extends Component {
|
|
|
187
172
|
}
|
|
188
173
|
}
|
|
189
174
|
// ── Public methods ────────────────────────────────────────────────────
|
|
190
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Open the drop-down list.
|
|
177
|
+
*/
|
|
191
178
|
open() {
|
|
192
179
|
this.isOpen = true;
|
|
193
180
|
}
|
|
194
|
-
/**
|
|
181
|
+
/**
|
|
182
|
+
* Close the drop-down list.
|
|
183
|
+
*/
|
|
195
184
|
close() {
|
|
196
185
|
this.isOpen = false;
|
|
197
186
|
}
|
|
@@ -213,6 +202,45 @@ export class ComboBox extends Component {
|
|
|
213
202
|
}
|
|
214
203
|
return String(item);
|
|
215
204
|
}
|
|
205
|
+
// ── Protected methods ─────────────────────────────────────────────────
|
|
206
|
+
onSkinReady() {
|
|
207
|
+
super.onSkinReady();
|
|
208
|
+
const { labelDisplay, button, list, dropDown } = this.skinParts;
|
|
209
|
+
if (labelDisplay instanceof Label) {
|
|
210
|
+
this.labelDisplay = labelDisplay;
|
|
211
|
+
this._updateLabel();
|
|
212
|
+
}
|
|
213
|
+
if (button instanceof Button) {
|
|
214
|
+
this.button = button;
|
|
215
|
+
}
|
|
216
|
+
if (list instanceof List) {
|
|
217
|
+
this.list = list;
|
|
218
|
+
list.dataProvider = this._dataProvider;
|
|
219
|
+
list.addEventListener(Event.CHANGE, this._onListChange);
|
|
220
|
+
}
|
|
221
|
+
if (dropDown instanceof Scroller) {
|
|
222
|
+
this.dropDown = dropDown;
|
|
223
|
+
dropDown.visible = this._isOpen;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
onSkinRemoved() {
|
|
227
|
+
if (this.dropDown) {
|
|
228
|
+
this.close();
|
|
229
|
+
}
|
|
230
|
+
this.list?.removeEventListener(Event.CHANGE, this._onListChange);
|
|
231
|
+
this.labelDisplay = undefined;
|
|
232
|
+
this.button = undefined;
|
|
233
|
+
this.list = undefined;
|
|
234
|
+
this.dropDown = undefined;
|
|
235
|
+
super.onSkinRemoved();
|
|
236
|
+
}
|
|
237
|
+
getCurrentState() {
|
|
238
|
+
if (!this.enabled)
|
|
239
|
+
return 'disabled';
|
|
240
|
+
if (this._isOpen)
|
|
241
|
+
return 'open';
|
|
242
|
+
return 'normal';
|
|
243
|
+
}
|
|
216
244
|
// ── Private methods ───────────────────────────────────────────────────
|
|
217
245
|
_updateSelectedItem() {
|
|
218
246
|
if (this._dataProvider && this._selectedIndex >= 0 && this._selectedIndex < this._dataProvider.length) {
|
|
@@ -257,7 +285,9 @@ export class ComboBox extends Component {
|
|
|
257
285
|
this._openParentIndex = -1;
|
|
258
286
|
}
|
|
259
287
|
}
|
|
260
|
-
/**
|
|
288
|
+
/**
|
|
289
|
+
* Move only the popup to the stage so layout siblings cannot cover it.
|
|
290
|
+
*/
|
|
261
291
|
_moveDropDownToStage() {
|
|
262
292
|
const dropDown = this.dropDown;
|
|
263
293
|
const stage = this.stage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,16 +19,28 @@ export interface ComponentEvents extends DisplayObjectEvents {
|
|
|
19
19
|
[UIEvent.CLOSING]: UIEvent;
|
|
20
20
|
[UIEvent.MOVE]: UIEvent;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Project-generated skin part declarations augment this interface.
|
|
24
|
+
*
|
|
25
|
+
* Each key is a skin class name and each value is the exact set of parts
|
|
26
|
+
* exported by that skin.
|
|
27
|
+
*/
|
|
28
|
+
export interface SkinPartsMap {
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the generated skin parts for a skin class name.
|
|
32
|
+
*/
|
|
33
|
+
export type SkinPartsOf<TSkin extends string> = TSkin extends keyof SkinPartsMap ? SkinPartsMap[TSkin] : Readonly<Record<string, unknown>>;
|
|
22
34
|
/**
|
|
23
35
|
* Base class for all skinnable UI components.
|
|
24
36
|
*
|
|
25
37
|
* Subclasses should:
|
|
26
38
|
* 1. Override `getCurrentState()` to return the current view-state name.
|
|
27
|
-
* 2. Override `
|
|
28
|
-
* 3. Override `
|
|
39
|
+
* 2. Override `onSkinReady()` for setup that needs the complete skin.
|
|
40
|
+
* 3. Override `onSkinRemoved()` to clean up complete-skin bindings.
|
|
29
41
|
* 4. Override `createChildren()` to perform one-time initialization.
|
|
30
42
|
*/
|
|
31
|
-
export declare class Component extends Sprite implements IUIComponent, ILayoutTarget, IUIOwner {
|
|
43
|
+
export declare class Component<TSkin extends string = string> extends Sprite implements IUIComponent, ILayoutTarget, IUIOwner {
|
|
32
44
|
readonly ui: UIState;
|
|
33
45
|
skinNameExplicitlySet: boolean;
|
|
34
46
|
private _hostComponentKey?;
|
|
@@ -39,6 +51,8 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
|
|
|
39
51
|
private _explicitTouchChildren;
|
|
40
52
|
private _explicitState;
|
|
41
53
|
private _stateIsDirty;
|
|
54
|
+
private _skinReady;
|
|
55
|
+
private _skinParts;
|
|
42
56
|
constructor();
|
|
43
57
|
/**
|
|
44
58
|
* Key used to look up the default skin in the active Theme.
|
|
@@ -117,12 +131,14 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
|
|
|
117
131
|
set scrollH(_v: number);
|
|
118
132
|
get scrollV(): number;
|
|
119
133
|
set scrollV(_v: number);
|
|
120
|
-
_applySkinName(skinName: string): void;
|
|
121
134
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
135
|
+
* Parts exported by the attached skin.
|
|
136
|
+
*
|
|
137
|
+
* Access is only valid after the skin has completed attachment. Generated
|
|
138
|
+
* declarations provide the exact part names and types for known skins.
|
|
124
139
|
*/
|
|
125
|
-
|
|
140
|
+
get skinParts(): Readonly<SkinPartsOf<TSkin>>;
|
|
141
|
+
_applySkinName(skinName: string): void;
|
|
126
142
|
/**
|
|
127
143
|
* Whether the display object receives touch events.
|
|
128
144
|
*
|
|
@@ -167,17 +183,19 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
|
|
|
167
183
|
commitProperties(): void;
|
|
168
184
|
measure(): void;
|
|
169
185
|
updateDisplayList(w: number, h: number): void;
|
|
186
|
+
/**
|
|
187
|
+
* Whether all parts for the current skin have been attached.
|
|
188
|
+
*/
|
|
189
|
+
protected get skinReady(): boolean;
|
|
170
190
|
protected setSkin(skin: Skin | undefined): void;
|
|
171
191
|
/**
|
|
172
|
-
* Called
|
|
173
|
-
* or apply cached property values to the part.
|
|
192
|
+
* Called after the complete skin and all of its parts have been attached.
|
|
174
193
|
*/
|
|
175
|
-
protected
|
|
194
|
+
protected onSkinReady(): void;
|
|
176
195
|
/**
|
|
177
|
-
* Called
|
|
178
|
-
* and cached references.
|
|
196
|
+
* Called before the current skin and its complete part set are detached.
|
|
179
197
|
*/
|
|
180
|
-
protected
|
|
198
|
+
protected onSkinRemoved(): void;
|
|
181
199
|
/**
|
|
182
200
|
* Return the current view-state name. Override in subclasses.
|
|
183
201
|
*/
|