@kurot/ui 1.1.7
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 +258 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/kurot/binding/Binding.d.ts +38 -0
- package/dist/kurot/binding/Binding.d.ts.map +1 -0
- package/dist/kurot/binding/Binding.js +88 -0
- package/dist/kurot/binding/Binding.js.map +1 -0
- package/dist/kurot/binding/Watcher.d.ts +57 -0
- package/dist/kurot/binding/Watcher.d.ts.map +1 -0
- package/dist/kurot/binding/Watcher.js +119 -0
- package/dist/kurot/binding/Watcher.js.map +1 -0
- package/dist/kurot/binding/index.d.ts +3 -0
- package/dist/kurot/binding/index.d.ts.map +1 -0
- package/dist/kurot/binding/index.js +3 -0
- package/dist/kurot/binding/index.js.map +1 -0
- package/dist/kurot/collections/ArrayCollection.d.ts +56 -0
- package/dist/kurot/collections/ArrayCollection.d.ts.map +1 -0
- package/dist/kurot/collections/ArrayCollection.js +143 -0
- package/dist/kurot/collections/ArrayCollection.js.map +1 -0
- package/dist/kurot/collections/ICollection.d.ts +24 -0
- package/dist/kurot/collections/ICollection.d.ts.map +1 -0
- package/dist/kurot/collections/ICollection.js +2 -0
- package/dist/kurot/collections/ICollection.js.map +1 -0
- package/dist/kurot/collections/index.d.ts +3 -0
- package/dist/kurot/collections/index.d.ts.map +1 -0
- package/dist/kurot/collections/index.js +2 -0
- package/dist/kurot/collections/index.js.map +1 -0
- package/dist/kurot/components/Animation.d.ts +34 -0
- package/dist/kurot/components/Animation.d.ts.map +1 -0
- package/dist/kurot/components/Animation.js +100 -0
- package/dist/kurot/components/Animation.js.map +1 -0
- package/dist/kurot/components/Button.d.ts +61 -0
- package/dist/kurot/components/Button.d.ts.map +1 -0
- package/dist/kurot/components/Button.js +176 -0
- package/dist/kurot/components/Button.js.map +1 -0
- package/dist/kurot/components/CheckBox.d.ts +11 -0
- package/dist/kurot/components/CheckBox.d.ts.map +1 -0
- package/dist/kurot/components/CheckBox.js +13 -0
- package/dist/kurot/components/CheckBox.js.map +1 -0
- package/dist/kurot/components/ComboBox.d.ts +93 -0
- package/dist/kurot/components/ComboBox.d.ts.map +1 -0
- package/dist/kurot/components/ComboBox.js +307 -0
- package/dist/kurot/components/ComboBox.js.map +1 -0
- package/dist/kurot/components/Component.d.ts +203 -0
- package/dist/kurot/components/Component.d.ts.map +1 -0
- package/dist/kurot/components/Component.js +522 -0
- package/dist/kurot/components/Component.js.map +1 -0
- package/dist/kurot/components/DataGroup.d.ts +90 -0
- package/dist/kurot/components/DataGroup.d.ts.map +1 -0
- package/dist/kurot/components/DataGroup.js +483 -0
- package/dist/kurot/components/DataGroup.js.map +1 -0
- package/dist/kurot/components/EditableText.d.ts +44 -0
- package/dist/kurot/components/EditableText.d.ts.map +1 -0
- package/dist/kurot/components/EditableText.js +126 -0
- package/dist/kurot/components/EditableText.js.map +1 -0
- package/dist/kurot/components/Group.d.ts +133 -0
- package/dist/kurot/components/Group.d.ts.map +1 -0
- package/dist/kurot/components/Group.js +454 -0
- package/dist/kurot/components/Group.js.map +1 -0
- package/dist/kurot/components/HScrollBar.d.ts +13 -0
- package/dist/kurot/components/HScrollBar.d.ts.map +1 -0
- package/dist/kurot/components/HScrollBar.js +55 -0
- package/dist/kurot/components/HScrollBar.js.map +1 -0
- package/dist/kurot/components/HSlider.d.ts +17 -0
- package/dist/kurot/components/HSlider.d.ts.map +1 -0
- package/dist/kurot/components/HSlider.js +48 -0
- package/dist/kurot/components/HSlider.js.map +1 -0
- package/dist/kurot/components/Image.d.ts +35 -0
- package/dist/kurot/components/Image.d.ts.map +1 -0
- package/dist/kurot/components/Image.js +141 -0
- package/dist/kurot/components/Image.js.map +1 -0
- package/dist/kurot/components/ItemRenderer.d.ts +42 -0
- package/dist/kurot/components/ItemRenderer.d.ts.map +1 -0
- package/dist/kurot/components/ItemRenderer.js +117 -0
- package/dist/kurot/components/ItemRenderer.js.map +1 -0
- package/dist/kurot/components/Label.d.ts +49 -0
- package/dist/kurot/components/Label.d.ts.map +1 -0
- package/dist/kurot/components/Label.js +193 -0
- package/dist/kurot/components/Label.js.map +1 -0
- package/dist/kurot/components/List.d.ts +16 -0
- package/dist/kurot/components/List.d.ts.map +1 -0
- package/dist/kurot/components/List.js +34 -0
- package/dist/kurot/components/List.js.map +1 -0
- package/dist/kurot/components/ListBase.d.ts +61 -0
- package/dist/kurot/components/ListBase.d.ts.map +1 -0
- package/dist/kurot/components/ListBase.js +202 -0
- package/dist/kurot/components/ListBase.js.map +1 -0
- package/dist/kurot/components/Panel.d.ts +53 -0
- package/dist/kurot/components/Panel.d.ts.map +1 -0
- package/dist/kurot/components/Panel.js +145 -0
- package/dist/kurot/components/Panel.js.map +1 -0
- package/dist/kurot/components/ProgressBar.d.ts +48 -0
- package/dist/kurot/components/ProgressBar.d.ts.map +1 -0
- package/dist/kurot/components/ProgressBar.js +180 -0
- package/dist/kurot/components/ProgressBar.js.map +1 -0
- package/dist/kurot/components/RadioButton.d.ts +86 -0
- package/dist/kurot/components/RadioButton.d.ts.map +1 -0
- package/dist/kurot/components/RadioButton.js +246 -0
- package/dist/kurot/components/RadioButton.js.map +1 -0
- package/dist/kurot/components/Range.d.ts +41 -0
- package/dist/kurot/components/Range.d.ts.map +1 -0
- package/dist/kurot/components/Range.js +144 -0
- package/dist/kurot/components/Range.js.map +1 -0
- package/dist/kurot/components/Rect.d.ts +33 -0
- package/dist/kurot/components/Rect.d.ts.map +1 -0
- package/dist/kurot/components/Rect.js +125 -0
- package/dist/kurot/components/Rect.js.map +1 -0
- package/dist/kurot/components/ScrollBarBase.d.ts +27 -0
- package/dist/kurot/components/ScrollBarBase.d.ts.map +1 -0
- package/dist/kurot/components/ScrollBarBase.js +50 -0
- package/dist/kurot/components/ScrollBarBase.js.map +1 -0
- package/dist/kurot/components/Scroller.d.ts +82 -0
- package/dist/kurot/components/Scroller.d.ts.map +1 -0
- package/dist/kurot/components/Scroller.js +416 -0
- package/dist/kurot/components/Scroller.js.map +1 -0
- package/dist/kurot/components/Skin.d.ts +64 -0
- package/dist/kurot/components/Skin.d.ts.map +1 -0
- package/dist/kurot/components/Skin.js +136 -0
- package/dist/kurot/components/Skin.js.map +1 -0
- package/dist/kurot/components/SliderBase.d.ts +60 -0
- package/dist/kurot/components/SliderBase.d.ts.map +1 -0
- package/dist/kurot/components/SliderBase.js +197 -0
- package/dist/kurot/components/SliderBase.js.map +1 -0
- package/dist/kurot/components/TabBar.d.ts +29 -0
- package/dist/kurot/components/TabBar.d.ts.map +1 -0
- package/dist/kurot/components/TabBar.js +92 -0
- package/dist/kurot/components/TabBar.js.map +1 -0
- package/dist/kurot/components/TextInput.d.ts +49 -0
- package/dist/kurot/components/TextInput.d.ts.map +1 -0
- package/dist/kurot/components/TextInput.js +157 -0
- package/dist/kurot/components/TextInput.js.map +1 -0
- package/dist/kurot/components/ToggleButton.d.ts +11 -0
- package/dist/kurot/components/ToggleButton.d.ts.map +1 -0
- package/dist/kurot/components/ToggleButton.js +14 -0
- package/dist/kurot/components/ToggleButton.js.map +1 -0
- package/dist/kurot/components/ToggleSwitch.d.ts +10 -0
- package/dist/kurot/components/ToggleSwitch.d.ts.map +1 -0
- package/dist/kurot/components/ToggleSwitch.js +10 -0
- package/dist/kurot/components/ToggleSwitch.js.map +1 -0
- package/dist/kurot/components/TouchScroll.d.ts +38 -0
- package/dist/kurot/components/TouchScroll.d.ts.map +1 -0
- package/dist/kurot/components/TouchScroll.js +133 -0
- package/dist/kurot/components/TouchScroll.js.map +1 -0
- package/dist/kurot/components/UILayer.d.ts +14 -0
- package/dist/kurot/components/UILayer.d.ts.map +1 -0
- package/dist/kurot/components/UILayer.js +38 -0
- package/dist/kurot/components/UILayer.js.map +1 -0
- package/dist/kurot/components/VScrollBar.d.ts +13 -0
- package/dist/kurot/components/VScrollBar.d.ts.map +1 -0
- package/dist/kurot/components/VScrollBar.js +55 -0
- package/dist/kurot/components/VScrollBar.js.map +1 -0
- package/dist/kurot/components/VSlider.d.ts +17 -0
- package/dist/kurot/components/VSlider.d.ts.map +1 -0
- package/dist/kurot/components/VSlider.js +49 -0
- package/dist/kurot/components/VSlider.js.map +1 -0
- package/dist/kurot/components/ViewStack.d.ts +42 -0
- package/dist/kurot/components/ViewStack.d.ts.map +1 -0
- package/dist/kurot/components/ViewStack.js +160 -0
- package/dist/kurot/components/ViewStack.js.map +1 -0
- package/dist/kurot/components/index.d.ts +34 -0
- package/dist/kurot/components/index.d.ts.map +1 -0
- package/dist/kurot/components/index.js +34 -0
- package/dist/kurot/components/index.js.map +1 -0
- package/dist/kurot/core/AssetAdapterRegistry.d.ts +4 -0
- package/dist/kurot/core/AssetAdapterRegistry.d.ts.map +1 -0
- package/dist/kurot/core/AssetAdapterRegistry.js +9 -0
- package/dist/kurot/core/AssetAdapterRegistry.js.map +1 -0
- package/dist/kurot/core/DefaultAssetAdapter.d.ts +10 -0
- package/dist/kurot/core/DefaultAssetAdapter.d.ts.map +1 -0
- package/dist/kurot/core/DefaultAssetAdapter.js +22 -0
- package/dist/kurot/core/DefaultAssetAdapter.js.map +1 -0
- package/dist/kurot/core/DefaultThemeAdapter.d.ts +8 -0
- package/dist/kurot/core/DefaultThemeAdapter.d.ts.map +1 -0
- package/dist/kurot/core/DefaultThemeAdapter.js +27 -0
- package/dist/kurot/core/DefaultThemeAdapter.js.map +1 -0
- package/dist/kurot/core/Direction.d.ts +10 -0
- package/dist/kurot/core/Direction.d.ts.map +1 -0
- package/dist/kurot/core/Direction.js +10 -0
- package/dist/kurot/core/Direction.js.map +1 -0
- package/dist/kurot/core/IAssetAdapter.d.ts +15 -0
- package/dist/kurot/core/IAssetAdapter.d.ts.map +1 -0
- package/dist/kurot/core/IAssetAdapter.js +2 -0
- package/dist/kurot/core/IAssetAdapter.js.map +1 -0
- package/dist/kurot/core/IDisplayText.d.ts +12 -0
- package/dist/kurot/core/IDisplayText.d.ts.map +1 -0
- package/dist/kurot/core/IDisplayText.js +2 -0
- package/dist/kurot/core/IDisplayText.js.map +1 -0
- package/dist/kurot/core/IItemRenderer.d.ts +19 -0
- package/dist/kurot/core/IItemRenderer.d.ts.map +1 -0
- package/dist/kurot/core/IItemRenderer.js +2 -0
- package/dist/kurot/core/IItemRenderer.js.map +1 -0
- package/dist/kurot/core/IThemeAdapter.d.ts +14 -0
- package/dist/kurot/core/IThemeAdapter.d.ts.map +1 -0
- package/dist/kurot/core/IThemeAdapter.js +2 -0
- package/dist/kurot/core/IThemeAdapter.js.map +1 -0
- package/dist/kurot/core/IUIComponent.d.ts +63 -0
- package/dist/kurot/core/IUIComponent.d.ts.map +1 -0
- package/dist/kurot/core/IUIComponent.js +2 -0
- package/dist/kurot/core/IUIComponent.js.map +1 -0
- package/dist/kurot/core/IViewport.d.ts +12 -0
- package/dist/kurot/core/IViewport.d.ts.map +1 -0
- package/dist/kurot/core/IViewport.js +2 -0
- package/dist/kurot/core/IViewport.js.map +1 -0
- package/dist/kurot/core/ScrollPolicy.d.ts +9 -0
- package/dist/kurot/core/ScrollPolicy.d.ts.map +1 -0
- package/dist/kurot/core/ScrollPolicy.js +9 -0
- package/dist/kurot/core/ScrollPolicy.js.map +1 -0
- package/dist/kurot/core/Theme.d.ts +53 -0
- package/dist/kurot/core/Theme.d.ts.map +1 -0
- package/dist/kurot/core/Theme.js +169 -0
- package/dist/kurot/core/Theme.js.map +1 -0
- package/dist/kurot/core/UIComponent.d.ts +2 -0
- package/dist/kurot/core/UIComponent.d.ts.map +1 -0
- package/dist/kurot/core/UIComponent.js +4 -0
- package/dist/kurot/core/UIComponent.js.map +1 -0
- package/dist/kurot/core/UIState.d.ts +84 -0
- package/dist/kurot/core/UIState.d.ts.map +1 -0
- package/dist/kurot/core/UIState.js +512 -0
- package/dist/kurot/core/UIState.js.map +1 -0
- package/dist/kurot/core/Validator.d.ts +46 -0
- package/dist/kurot/core/Validator.d.ts.map +1 -0
- package/dist/kurot/core/Validator.js +368 -0
- package/dist/kurot/core/Validator.js.map +1 -0
- package/dist/kurot/core/index.d.ts +17 -0
- package/dist/kurot/core/index.d.ts.map +1 -0
- package/dist/kurot/core/index.js +10 -0
- package/dist/kurot/core/index.js.map +1 -0
- package/dist/kurot/events/CollectionEvent.d.ts +22 -0
- package/dist/kurot/events/CollectionEvent.d.ts.map +1 -0
- package/dist/kurot/events/CollectionEvent.js +37 -0
- package/dist/kurot/events/CollectionEvent.js.map +1 -0
- package/dist/kurot/events/ItemTapEvent.d.ts +11 -0
- package/dist/kurot/events/ItemTapEvent.d.ts.map +1 -0
- package/dist/kurot/events/ItemTapEvent.js +24 -0
- package/dist/kurot/events/ItemTapEvent.js.map +1 -0
- package/dist/kurot/events/PropertyEvent.d.ts +8 -0
- package/dist/kurot/events/PropertyEvent.d.ts.map +1 -0
- package/dist/kurot/events/PropertyEvent.js +20 -0
- package/dist/kurot/events/PropertyEvent.js.map +1 -0
- package/dist/kurot/events/ScrollerThrowEvent.d.ts +17 -0
- package/dist/kurot/events/ScrollerThrowEvent.d.ts.map +1 -0
- package/dist/kurot/events/ScrollerThrowEvent.js +22 -0
- package/dist/kurot/events/ScrollerThrowEvent.js.map +1 -0
- package/dist/kurot/events/UIEvent.d.ts +29 -0
- package/dist/kurot/events/UIEvent.d.ts.map +1 -0
- package/dist/kurot/events/UIEvent.js +39 -0
- package/dist/kurot/events/UIEvent.js.map +1 -0
- package/dist/kurot/events/index.d.ts +6 -0
- package/dist/kurot/events/index.d.ts.map +1 -0
- package/dist/kurot/events/index.js +6 -0
- package/dist/kurot/events/index.js.map +1 -0
- package/dist/kurot/layouts/BasicLayout.d.ts +13 -0
- package/dist/kurot/layouts/BasicLayout.d.ts.map +1 -0
- package/dist/kurot/layouts/BasicLayout.js +146 -0
- package/dist/kurot/layouts/BasicLayout.js.map +1 -0
- package/dist/kurot/layouts/ColumnAlign.d.ts +9 -0
- package/dist/kurot/layouts/ColumnAlign.d.ts.map +1 -0
- package/dist/kurot/layouts/ColumnAlign.js +9 -0
- package/dist/kurot/layouts/ColumnAlign.js.map +1 -0
- package/dist/kurot/layouts/HorizontalLayout.d.ts +23 -0
- package/dist/kurot/layouts/HorizontalLayout.d.ts.map +1 -0
- package/dist/kurot/layouts/HorizontalLayout.js +405 -0
- package/dist/kurot/layouts/HorizontalLayout.js.map +1 -0
- package/dist/kurot/layouts/ILayoutTarget.d.ts +25 -0
- package/dist/kurot/layouts/ILayoutTarget.d.ts.map +1 -0
- package/dist/kurot/layouts/ILayoutTarget.js +2 -0
- package/dist/kurot/layouts/ILayoutTarget.js.map +1 -0
- package/dist/kurot/layouts/JustifyAlign.d.ts +8 -0
- package/dist/kurot/layouts/JustifyAlign.d.ts.map +1 -0
- package/dist/kurot/layouts/JustifyAlign.js +8 -0
- package/dist/kurot/layouts/JustifyAlign.js.map +1 -0
- package/dist/kurot/layouts/LayoutBase.d.ts +23 -0
- package/dist/kurot/layouts/LayoutBase.d.ts.map +1 -0
- package/dist/kurot/layouts/LayoutBase.js +45 -0
- package/dist/kurot/layouts/LayoutBase.js.map +1 -0
- package/dist/kurot/layouts/LinearLayoutBase.d.ts +70 -0
- package/dist/kurot/layouts/LinearLayoutBase.d.ts.map +1 -0
- package/dist/kurot/layouts/LinearLayoutBase.js +246 -0
- package/dist/kurot/layouts/LinearLayoutBase.js.map +1 -0
- package/dist/kurot/layouts/RowAlign.d.ts +9 -0
- package/dist/kurot/layouts/RowAlign.d.ts.map +1 -0
- package/dist/kurot/layouts/RowAlign.js +9 -0
- package/dist/kurot/layouts/RowAlign.js.map +1 -0
- package/dist/kurot/layouts/TileLayout.d.ts +79 -0
- package/dist/kurot/layouts/TileLayout.d.ts.map +1 -0
- package/dist/kurot/layouts/TileLayout.js +577 -0
- package/dist/kurot/layouts/TileLayout.js.map +1 -0
- package/dist/kurot/layouts/TileOrientation.d.ts +8 -0
- package/dist/kurot/layouts/TileOrientation.d.ts.map +1 -0
- package/dist/kurot/layouts/TileOrientation.js +8 -0
- package/dist/kurot/layouts/TileOrientation.js.map +1 -0
- package/dist/kurot/layouts/VerticalLayout.d.ts +23 -0
- package/dist/kurot/layouts/VerticalLayout.d.ts.map +1 -0
- package/dist/kurot/layouts/VerticalLayout.js +406 -0
- package/dist/kurot/layouts/VerticalLayout.js.map +1 -0
- package/dist/kurot/layouts/index.d.ts +12 -0
- package/dist/kurot/layouts/index.d.ts.map +1 -0
- package/dist/kurot/layouts/index.js +11 -0
- package/dist/kurot/layouts/index.js.map +1 -0
- package/dist/kurot/states/AddItems.d.ts +17 -0
- package/dist/kurot/states/AddItems.d.ts.map +1 -0
- package/dist/kurot/states/AddItems.js +42 -0
- package/dist/kurot/states/AddItems.js.map +1 -0
- package/dist/kurot/states/IOverride.d.ts +12 -0
- package/dist/kurot/states/IOverride.d.ts.map +1 -0
- package/dist/kurot/states/IOverride.js +2 -0
- package/dist/kurot/states/IOverride.js.map +1 -0
- package/dist/kurot/states/SetProperty.d.ts +19 -0
- package/dist/kurot/states/SetProperty.d.ts.map +1 -0
- package/dist/kurot/states/SetProperty.js +50 -0
- package/dist/kurot/states/SetProperty.js.map +1 -0
- package/dist/kurot/states/SetStateProperty.d.ts +17 -0
- package/dist/kurot/states/SetStateProperty.d.ts.map +1 -0
- package/dist/kurot/states/SetStateProperty.js +35 -0
- package/dist/kurot/states/SetStateProperty.js.map +1 -0
- package/dist/kurot/states/State.d.ts +14 -0
- package/dist/kurot/states/State.d.ts.map +1 -0
- package/dist/kurot/states/State.js +18 -0
- package/dist/kurot/states/State.js.map +1 -0
- package/dist/kurot/states/index.d.ts +6 -0
- package/dist/kurot/states/index.d.ts.map +1 -0
- package/dist/kurot/states/index.js +5 -0
- package/dist/kurot/states/index.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { DisplayObject, TouchEvent } from '@kurot/core';
|
|
2
|
+
import { Component } from './Component.js';
|
|
3
|
+
import { Button } from './Button.js';
|
|
4
|
+
import { UIEvent } from '../events/UIEvent.js';
|
|
5
|
+
/**
|
|
6
|
+
* Panel — a skinnable container with an optional title bar, close button, and drag area.
|
|
7
|
+
*
|
|
8
|
+
* Skin parts:
|
|
9
|
+
* - `titleDisplay` — Label for the panel title
|
|
10
|
+
* - `closeButton` — Button that dispatches UIEvent.CLOSING when tapped
|
|
11
|
+
* - `moveArea` — DisplayObject used as the drag handle
|
|
12
|
+
*
|
|
13
|
+
* Events:
|
|
14
|
+
* - `UIEvent.CLOSING` — dispatched (bubbles, cancelable) when closeButton is tapped
|
|
15
|
+
*
|
|
16
|
+
* @defaultProperty elementsContent
|
|
17
|
+
*/
|
|
18
|
+
export class Panel extends Component {
|
|
19
|
+
// ── Instance fields ───────────────────────────────────────────────────
|
|
20
|
+
closeButton;
|
|
21
|
+
moveArea;
|
|
22
|
+
_title = '';
|
|
23
|
+
_titleChanged = false;
|
|
24
|
+
_titleDisplay;
|
|
25
|
+
_dragStartX = 0;
|
|
26
|
+
_dragStartY = 0;
|
|
27
|
+
_panelStartX = 0;
|
|
28
|
+
_panelStartY = 0;
|
|
29
|
+
_dragStage;
|
|
30
|
+
// ── Default property (EXML children) ───────────────────────────────
|
|
31
|
+
/**
|
|
32
|
+
* Write-only: adds EXML-declared children to the panel.
|
|
33
|
+
* Mirrors Egret's `registerProperty(Panel, "elementsContent", "Array", true)`.
|
|
34
|
+
*/
|
|
35
|
+
set elementsContent(value) {
|
|
36
|
+
if (!value)
|
|
37
|
+
return;
|
|
38
|
+
for (const child of value) {
|
|
39
|
+
this.addChild(child);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// ── Getters / Setters ─────────────────────────────────────────────────
|
|
43
|
+
get title() {
|
|
44
|
+
return this._title;
|
|
45
|
+
}
|
|
46
|
+
set title(value) {
|
|
47
|
+
if (this._title === value)
|
|
48
|
+
return;
|
|
49
|
+
this._title = value;
|
|
50
|
+
this._titleChanged = true;
|
|
51
|
+
this.invalidateProperties();
|
|
52
|
+
}
|
|
53
|
+
get titleDisplay() {
|
|
54
|
+
return this._titleDisplay;
|
|
55
|
+
}
|
|
56
|
+
set titleDisplay(value) {
|
|
57
|
+
if (this._titleDisplay === value)
|
|
58
|
+
return;
|
|
59
|
+
this._titleDisplay = value;
|
|
60
|
+
if (value && this._title)
|
|
61
|
+
value.text = this._title;
|
|
62
|
+
}
|
|
63
|
+
// ── Override methods ──────────────────────────────────────────────────
|
|
64
|
+
commitProperties() {
|
|
65
|
+
super.commitProperties();
|
|
66
|
+
if (this._titleChanged) {
|
|
67
|
+
this._titleChanged = false;
|
|
68
|
+
if (this._titleDisplay)
|
|
69
|
+
this._titleDisplay.text = this._title;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
partAdded(partName, instance) {
|
|
73
|
+
super.partAdded(partName, instance);
|
|
74
|
+
if (instance instanceof Button && partName === 'closeButton') {
|
|
75
|
+
this.closeButton = instance;
|
|
76
|
+
instance.addEventListener(TouchEvent.TOUCH_TAP, this._onCloseButtonTap);
|
|
77
|
+
}
|
|
78
|
+
else if (instance instanceof DisplayObject && partName === 'moveArea') {
|
|
79
|
+
this.moveArea = instance;
|
|
80
|
+
instance.addEventListener(TouchEvent.TOUCH_BEGIN, this._onMoveAreaTouchBegin);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
partRemoved(partName, instance) {
|
|
84
|
+
super.partRemoved(partName, instance);
|
|
85
|
+
if (instance instanceof Button && partName === 'closeButton') {
|
|
86
|
+
instance.removeEventListener(TouchEvent.TOUCH_TAP, this._onCloseButtonTap);
|
|
87
|
+
this.closeButton = undefined;
|
|
88
|
+
}
|
|
89
|
+
else if (instance instanceof DisplayObject && partName === 'moveArea') {
|
|
90
|
+
this._removeDragListeners();
|
|
91
|
+
instance.removeEventListener(TouchEvent.TOUCH_BEGIN, this._onMoveAreaTouchBegin);
|
|
92
|
+
this.moveArea = undefined;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
$onRemoveFromStage() {
|
|
96
|
+
this._removeDragListeners();
|
|
97
|
+
super.$onRemoveFromStage();
|
|
98
|
+
}
|
|
99
|
+
// ── Public methods ────────────────────────────────────────────────────
|
|
100
|
+
/**
|
|
101
|
+
* Close the panel by removing it from its parent.
|
|
102
|
+
* Called automatically after UIEvent.CLOSING if not cancelled.
|
|
103
|
+
*/
|
|
104
|
+
close() {
|
|
105
|
+
if (this.parent)
|
|
106
|
+
this.parent.removeChild(this);
|
|
107
|
+
}
|
|
108
|
+
// ── Private methods ───────────────────────────────────────────────────
|
|
109
|
+
_onCloseButtonTap = () => {
|
|
110
|
+
if (UIEvent.dispatchUIEvent(this, UIEvent.CLOSING, true, true)) {
|
|
111
|
+
this.close();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
_onMoveAreaTouchBegin = (e) => {
|
|
115
|
+
this.includeInLayout = false;
|
|
116
|
+
this._dragStartX = e.stageX;
|
|
117
|
+
this._dragStartY = e.stageY;
|
|
118
|
+
this._panelStartX = this.x;
|
|
119
|
+
this._panelStartY = this.y;
|
|
120
|
+
const stage = this.stage;
|
|
121
|
+
if (stage) {
|
|
122
|
+
this._dragStage = stage;
|
|
123
|
+
stage.addEventListener(TouchEvent.TOUCH_MOVE, this._onMoveAreaTouchMove);
|
|
124
|
+
stage.addEventListener(TouchEvent.TOUCH_END, this._onMoveAreaTouchEnd);
|
|
125
|
+
stage.addEventListener(TouchEvent.TOUCH_CANCEL, this._onMoveAreaTouchEnd);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
_onMoveAreaTouchMove = (e) => {
|
|
129
|
+
this.x = this._panelStartX + (e.stageX - this._dragStartX);
|
|
130
|
+
this.y = this._panelStartY + (e.stageY - this._dragStartY);
|
|
131
|
+
};
|
|
132
|
+
_onMoveAreaTouchEnd = () => {
|
|
133
|
+
this._removeDragListeners();
|
|
134
|
+
};
|
|
135
|
+
_removeDragListeners() {
|
|
136
|
+
const stage = this._dragStage;
|
|
137
|
+
if (!stage)
|
|
138
|
+
return;
|
|
139
|
+
stage.removeEventListener(TouchEvent.TOUCH_MOVE, this._onMoveAreaTouchMove);
|
|
140
|
+
stage.removeEventListener(TouchEvent.TOUCH_END, this._onMoveAreaTouchEnd);
|
|
141
|
+
stage.removeEventListener(TouchEvent.TOUCH_CANCEL, this._onMoveAreaTouchEnd);
|
|
142
|
+
this._dragStage = undefined;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=Panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../src/kurot/components/Panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import type { Label } from './Label.js';
|
|
3
|
+
/**
|
|
4
|
+
* ProgressBar component that visualizes the progress of a task over time.
|
|
5
|
+
*
|
|
6
|
+
* The progress bar fills from `minimum` to `maximum` based on the current `value`.
|
|
7
|
+
* The direction of fill is controlled by the `direction` property.
|
|
8
|
+
*
|
|
9
|
+
* States: none (non-interactive visual element).
|
|
10
|
+
*/
|
|
11
|
+
export declare class ProgressBar extends Component {
|
|
12
|
+
thumb?: Component;
|
|
13
|
+
labelDisplay?: Label;
|
|
14
|
+
private _minimum;
|
|
15
|
+
private _maximum;
|
|
16
|
+
private _value;
|
|
17
|
+
private _direction;
|
|
18
|
+
private _labelFunction?;
|
|
19
|
+
private _slideDuration;
|
|
20
|
+
private _animationValue;
|
|
21
|
+
private readonly _animation;
|
|
22
|
+
constructor();
|
|
23
|
+
get minimum(): number;
|
|
24
|
+
set minimum(value: number);
|
|
25
|
+
get maximum(): number;
|
|
26
|
+
set maximum(value: number);
|
|
27
|
+
get value(): number;
|
|
28
|
+
set value(val: number);
|
|
29
|
+
private _applyValue;
|
|
30
|
+
private _startSlide;
|
|
31
|
+
private _onAnimationUpdate;
|
|
32
|
+
get direction(): string;
|
|
33
|
+
set direction(value: string);
|
|
34
|
+
get labelFunction(): ((value: number, maximum: number) => string) | undefined;
|
|
35
|
+
set labelFunction(fn: ((value: number, maximum: number) => string) | undefined);
|
|
36
|
+
/** Duration (ms) of the value-change slide animation. 0 = instant. @default 500 */
|
|
37
|
+
get slideDuration(): number;
|
|
38
|
+
set slideDuration(value: number);
|
|
39
|
+
get ratio(): number;
|
|
40
|
+
updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* Converts the current value to display text.
|
|
43
|
+
* Override this method to customize the label format.
|
|
44
|
+
* The default format is `"value / maximum"`.
|
|
45
|
+
*/
|
|
46
|
+
protected _valueToLabel(value: number, maximum: number): string;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ProgressBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAGlC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,cAAc,CAAC,CAA6C;IACpE,OAAO,CAAC,cAAc,CAAO;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;;IAWvC,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAK/B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAK/B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,GAAG,EAAE,MAAM,EAS3B;IAED,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB,CAIxB;IAEF,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAEnF;IAED,IAAW,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,EAIpF;IAED,mFAAmF;IACnF,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAQrC;IAED,IAAW,KAAK,IAAI,MAAM,CAKzB;IAIe,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAyCtF;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAM/D"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import { Event, Rectangle } from '@kurot/core';
|
|
3
|
+
import { Direction } from '../core/Direction.js';
|
|
4
|
+
import { Animation } from './Animation.js';
|
|
5
|
+
/**
|
|
6
|
+
* ProgressBar component that visualizes the progress of a task over time.
|
|
7
|
+
*
|
|
8
|
+
* The progress bar fills from `minimum` to `maximum` based on the current `value`.
|
|
9
|
+
* The direction of fill is controlled by the `direction` property.
|
|
10
|
+
*
|
|
11
|
+
* States: none (non-interactive visual element).
|
|
12
|
+
*/
|
|
13
|
+
export class ProgressBar extends Component {
|
|
14
|
+
// ── Instance fields ───────────────────────────────────────────────────
|
|
15
|
+
thumb;
|
|
16
|
+
labelDisplay;
|
|
17
|
+
_minimum = 0;
|
|
18
|
+
_maximum = 100;
|
|
19
|
+
_value = 0;
|
|
20
|
+
_direction = Direction.LTR;
|
|
21
|
+
_labelFunction;
|
|
22
|
+
_slideDuration = 500;
|
|
23
|
+
_animationValue = 0;
|
|
24
|
+
_animation;
|
|
25
|
+
// ── Constructor ───────────────────────────────────────────────────────
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
this._animation = new Animation(this._onAnimationUpdate, this);
|
|
29
|
+
}
|
|
30
|
+
// ── Getters / Setters ─────────────────────────────────────────────────
|
|
31
|
+
get minimum() {
|
|
32
|
+
return this._minimum;
|
|
33
|
+
}
|
|
34
|
+
set minimum(value) {
|
|
35
|
+
if (this._minimum === value)
|
|
36
|
+
return;
|
|
37
|
+
this._minimum = value;
|
|
38
|
+
if (this._value < value)
|
|
39
|
+
this._value = value;
|
|
40
|
+
this.invalidateDisplayList();
|
|
41
|
+
}
|
|
42
|
+
get maximum() {
|
|
43
|
+
return this._maximum;
|
|
44
|
+
}
|
|
45
|
+
set maximum(value) {
|
|
46
|
+
if (this._maximum === value)
|
|
47
|
+
return;
|
|
48
|
+
this._maximum = value;
|
|
49
|
+
if (this._value > value)
|
|
50
|
+
this._value = value;
|
|
51
|
+
this.invalidateDisplayList();
|
|
52
|
+
}
|
|
53
|
+
get value() {
|
|
54
|
+
return this._value;
|
|
55
|
+
}
|
|
56
|
+
set value(val) {
|
|
57
|
+
val = Math.max(this._minimum, Math.min(this._maximum, val));
|
|
58
|
+
if (this._value === val)
|
|
59
|
+
return;
|
|
60
|
+
if (this._slideDuration > 0 && this.stage) {
|
|
61
|
+
this._startSlide(val);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this._applyValue(val);
|
|
65
|
+
this.dispatchEventWith(Event.CHANGE);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
_applyValue(val) {
|
|
69
|
+
this._value = val;
|
|
70
|
+
this._animationValue = val;
|
|
71
|
+
this.invalidateDisplayList();
|
|
72
|
+
}
|
|
73
|
+
_startSlide(targetValue) {
|
|
74
|
+
if (this._animation.isPlaying) {
|
|
75
|
+
this._animation.stop();
|
|
76
|
+
}
|
|
77
|
+
const range = this._maximum - this._minimum;
|
|
78
|
+
const distance = Math.abs(targetValue - this._animationValue);
|
|
79
|
+
const duration = range > 0 ? this._slideDuration * (distance / range) : 0;
|
|
80
|
+
this._animation.duration = duration === Infinity ? 0 : duration;
|
|
81
|
+
this._animation.from = this._animationValue;
|
|
82
|
+
this._animation.to = targetValue;
|
|
83
|
+
this._animation.play();
|
|
84
|
+
}
|
|
85
|
+
_onAnimationUpdate = (_anim) => {
|
|
86
|
+
this._animationValue = _anim.currentValue;
|
|
87
|
+
this._value = _anim.currentValue;
|
|
88
|
+
this.invalidateDisplayList();
|
|
89
|
+
};
|
|
90
|
+
get direction() {
|
|
91
|
+
return this._direction;
|
|
92
|
+
}
|
|
93
|
+
set direction(value) {
|
|
94
|
+
if (this._direction === value)
|
|
95
|
+
return;
|
|
96
|
+
this._direction = value;
|
|
97
|
+
this.invalidateDisplayList();
|
|
98
|
+
}
|
|
99
|
+
get labelFunction() {
|
|
100
|
+
return this._labelFunction;
|
|
101
|
+
}
|
|
102
|
+
set labelFunction(fn) {
|
|
103
|
+
if (this._labelFunction === fn)
|
|
104
|
+
return;
|
|
105
|
+
this._labelFunction = fn;
|
|
106
|
+
this.invalidateDisplayList();
|
|
107
|
+
}
|
|
108
|
+
/** Duration (ms) of the value-change slide animation. 0 = instant. @default 500 */
|
|
109
|
+
get slideDuration() {
|
|
110
|
+
return this._slideDuration;
|
|
111
|
+
}
|
|
112
|
+
set slideDuration(value) {
|
|
113
|
+
value = +value || 0;
|
|
114
|
+
if (this._slideDuration === value)
|
|
115
|
+
return;
|
|
116
|
+
this._slideDuration = value;
|
|
117
|
+
if (this._animation.isPlaying) {
|
|
118
|
+
this._animation.stop();
|
|
119
|
+
this._applyValue(this._animation.to);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
get ratio() {
|
|
123
|
+
const v = this._animation.isPlaying ? this._animationValue : this._value;
|
|
124
|
+
const range = this._maximum - this._minimum;
|
|
125
|
+
if (range <= 0)
|
|
126
|
+
return 0;
|
|
127
|
+
return (v - this._minimum) / range;
|
|
128
|
+
}
|
|
129
|
+
// ── Override methods ──────────────────────────────────────────────────
|
|
130
|
+
updateDisplayList(unscaledWidth, unscaledHeight) {
|
|
131
|
+
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
|
132
|
+
const thumb = this.thumb;
|
|
133
|
+
if (thumb) {
|
|
134
|
+
const thumbWidth = thumb.width;
|
|
135
|
+
const thumbHeight = thumb.height;
|
|
136
|
+
const r = this.ratio;
|
|
137
|
+
let clipW = Math.round(r * thumbWidth);
|
|
138
|
+
if (clipW < 0 || clipW === Infinity)
|
|
139
|
+
clipW = 0;
|
|
140
|
+
let clipH = Math.round(r * thumbHeight);
|
|
141
|
+
if (clipH < 0 || clipH === Infinity)
|
|
142
|
+
clipH = 0;
|
|
143
|
+
const rect = thumb.scrollRect ?? new Rectangle();
|
|
144
|
+
switch (this._direction) {
|
|
145
|
+
case Direction.RTL:
|
|
146
|
+
rect.setTo(thumbWidth - clipW, 0, clipW, thumbHeight);
|
|
147
|
+
thumb.x = thumbWidth - clipW;
|
|
148
|
+
break;
|
|
149
|
+
case Direction.TTB:
|
|
150
|
+
rect.setTo(0, 0, thumbWidth, clipH);
|
|
151
|
+
break;
|
|
152
|
+
case Direction.BTT:
|
|
153
|
+
rect.setTo(0, thumbHeight - clipH, thumbWidth, clipH);
|
|
154
|
+
thumb.y = thumbHeight - clipH;
|
|
155
|
+
break;
|
|
156
|
+
default: // LTR
|
|
157
|
+
rect.setTo(0, 0, clipW, thumbHeight);
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
thumb.scrollRect = rect;
|
|
161
|
+
}
|
|
162
|
+
if (this.labelDisplay) {
|
|
163
|
+
const v = this._animation.isPlaying ? this._animationValue : this._value;
|
|
164
|
+
this.labelDisplay.text = this._valueToLabel(v, this._maximum);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// ── Protected methods ─────────────────────────────────────────────────
|
|
168
|
+
/**
|
|
169
|
+
* Converts the current value to display text.
|
|
170
|
+
* Override this method to customize the label format.
|
|
171
|
+
* The default format is `"value / maximum"`.
|
|
172
|
+
*/
|
|
173
|
+
_valueToLabel(value, maximum) {
|
|
174
|
+
if (this._labelFunction) {
|
|
175
|
+
return this._labelFunction(value, maximum);
|
|
176
|
+
}
|
|
177
|
+
return value + ' / ' + maximum;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../src/kurot/components/ProgressBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { EventDispatcher } from '@kurot/core';
|
|
2
|
+
import { ToggleButton } from './ToggleButton.js';
|
|
3
|
+
/**
|
|
4
|
+
* Manages a group of mutually exclusive RadioButtons.
|
|
5
|
+
* Only one radio button in a group can be selected at a time.
|
|
6
|
+
*
|
|
7
|
+
* Dispatches `Event.CHANGE` on interactive selection (via `buttonReleased`),
|
|
8
|
+
* and `PropertyEvent` for `selectedValue` on every selection change.
|
|
9
|
+
*/
|
|
10
|
+
export declare class RadioButtonGroup extends EventDispatcher {
|
|
11
|
+
private _radioButtons;
|
|
12
|
+
private _selectedValue?;
|
|
13
|
+
private _selection?;
|
|
14
|
+
private _name;
|
|
15
|
+
private _enabled;
|
|
16
|
+
constructor(name?: string);
|
|
17
|
+
get name(): string;
|
|
18
|
+
get numRadioButtons(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the group (and therefore all its members) is enabled.
|
|
21
|
+
* Toggling invalidates every member's state so skins re-render.
|
|
22
|
+
*/
|
|
23
|
+
get enabled(): boolean;
|
|
24
|
+
set enabled(value: boolean);
|
|
25
|
+
/**
|
|
26
|
+
* The value of the selected radio. Falls back to the radio's `label`
|
|
27
|
+
* when `value` is empty.
|
|
28
|
+
*/
|
|
29
|
+
get selectedValue(): string | number | undefined;
|
|
30
|
+
set selectedValue(value: string | number | undefined);
|
|
31
|
+
get selection(): RadioButton | undefined;
|
|
32
|
+
set selection(value: RadioButton | undefined);
|
|
33
|
+
addInstance(radioButton: RadioButton): void;
|
|
34
|
+
removeInstance(radioButton: RadioButton): void;
|
|
35
|
+
/**
|
|
36
|
+
* The single source of truth for changing the selection.
|
|
37
|
+
*
|
|
38
|
+
* @param value The radio to select, or `undefined` to clear.
|
|
39
|
+
* @param fireChange If `true`, dispatches `Event.CHANGE` — use `true` for
|
|
40
|
+
* interactive changes (tap), `false` for programmatic ones.
|
|
41
|
+
*/
|
|
42
|
+
$setSelection(value: RadioButton | undefined, fireChange: boolean): boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* RadioButton — a toggle button belonging to a mutually exclusive group.
|
|
46
|
+
* Only one radio per group can be selected at a time.
|
|
47
|
+
*
|
|
48
|
+
* Defaults to `groupName = "radioGroup"` so that radios with no explicit
|
|
49
|
+
* group still get mutual exclusion.
|
|
50
|
+
*
|
|
51
|
+
* States: same as Button (`up`, `down`, `disabled`, `upAndSelected`, `downAndSelected`, `disabledAndSelected`).
|
|
52
|
+
*/
|
|
53
|
+
export declare class RadioButton extends ToggleButton {
|
|
54
|
+
private _groupName;
|
|
55
|
+
private _group?;
|
|
56
|
+
private _value;
|
|
57
|
+
constructor();
|
|
58
|
+
/** Enabled only if both the radio itself and its group are enabled. */
|
|
59
|
+
get enabled(): boolean;
|
|
60
|
+
set enabled(value: boolean);
|
|
61
|
+
get group(): RadioButtonGroup | undefined;
|
|
62
|
+
set group(value: RadioButtonGroup | undefined);
|
|
63
|
+
get groupName(): string;
|
|
64
|
+
set groupName(value: string);
|
|
65
|
+
get value(): string | number;
|
|
66
|
+
set value(val: string | number);
|
|
67
|
+
get selected(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Keeps the group's selection in sync. Programmatic changes use
|
|
70
|
+
* `fireChange=false` (no `Event.CHANGE`); interactive changes go through
|
|
71
|
+
* `buttonReleased`, which dispatches `CHANGE` separately.
|
|
72
|
+
*/
|
|
73
|
+
set selected(value: boolean);
|
|
74
|
+
/**
|
|
75
|
+
* @internal Sets `selected` without triggering group sync.
|
|
76
|
+
* Used by `RadioButtonGroup.$setSelection` to avoid recursion.
|
|
77
|
+
*/
|
|
78
|
+
$setSelected(value: boolean): void;
|
|
79
|
+
/**
|
|
80
|
+
* Interactive tap: toggle `selected` (syncs the group with no Change via
|
|
81
|
+
* the setter), then dispatch `Event.CHANGE` on the group — reserved for
|
|
82
|
+
* interaction, not programmatic selection.
|
|
83
|
+
*/
|
|
84
|
+
protected buttonReleased(): void;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=RadioButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioButton.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/RadioButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IAGpD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAQ;gBAIL,IAAI,SAAK;IAO5B,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED;;;OAGG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAOhC;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,CAKtD;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAc1D;IAED,IAAW,SAAS,IAAI,WAAW,GAAG,SAAS,CAE9C;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAGlD;IAIM,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAY3C,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IASrD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;CAiBlF;AAeD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAG5C,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAuB;;IAWrC,uEAAuE;IACvE,IAAoB,OAAO,IAAI,OAAO,CAGrC;IAED,IAAoB,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzC;IAED,IAAW,KAAK,IAAI,gBAAgB,GAAG,SAAS,CAE/C;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EAKnD;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,KAAK,IAAI,MAAM,GAAG,MAAM,CAElC;IAED,IAAW,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAQpC;IAED,IAAoB,QAAQ,IAAI,OAAO,CAEtC;IAED;;;;OAIG;IACH,IAAoB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1C;IAED;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIzC;;;;OAIG;cACgB,cAAc,IAAI,IAAI;CASzC"}
|