@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,55 @@
|
|
|
1
|
+
import { Rectangle } from '@kurot/core';
|
|
2
|
+
import { ScrollBarBase } from './ScrollBarBase.js';
|
|
3
|
+
/**
|
|
4
|
+
* Horizontal scroll bar.
|
|
5
|
+
*
|
|
6
|
+
* Positions the `thumb` skin part proportionally based on the viewport's
|
|
7
|
+
* horizontal scroll position (`scrollH`) relative to content width.
|
|
8
|
+
*/
|
|
9
|
+
export class HScrollBar extends ScrollBarBase {
|
|
10
|
+
// ── Override methods ──────────────────────────────────────────────────
|
|
11
|
+
updateDisplayList(unscaledWidth, unscaledHeight) {
|
|
12
|
+
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
|
13
|
+
const thumb = this.thumb;
|
|
14
|
+
const viewport = this.viewport;
|
|
15
|
+
if (!thumb || !viewport)
|
|
16
|
+
return;
|
|
17
|
+
const bounds = new Rectangle();
|
|
18
|
+
thumb.getPreferredBounds(bounds);
|
|
19
|
+
const minThumbWidth = bounds.width;
|
|
20
|
+
const thumbY = bounds.y;
|
|
21
|
+
const hsp = viewport.scrollH;
|
|
22
|
+
const contentWidth = viewport.contentWidth;
|
|
23
|
+
const vpBounds = new Rectangle();
|
|
24
|
+
viewport.getLayoutBounds(vpBounds);
|
|
25
|
+
const vpWidth = vpBounds.width;
|
|
26
|
+
const proportionalWidth = contentWidth > 0 ? Math.round((unscaledWidth * vpWidth) / contentWidth) : unscaledWidth;
|
|
27
|
+
const thumbWidth = Math.min(unscaledWidth, Math.max(minThumbWidth, proportionalWidth));
|
|
28
|
+
if (hsp <= 0) {
|
|
29
|
+
let scaleWidth = thumbWidth * (1 - -hsp / (vpWidth * 0.5));
|
|
30
|
+
scaleWidth = Math.max(5, Math.round(scaleWidth));
|
|
31
|
+
thumb.setLayoutBoundsSize(scaleWidth, NaN);
|
|
32
|
+
thumb.setLayoutBoundsPosition(0, thumbY);
|
|
33
|
+
}
|
|
34
|
+
else if (hsp >= contentWidth - vpWidth) {
|
|
35
|
+
let scaleWidth = thumbWidth * (1 - (hsp - contentWidth + vpWidth) / (vpWidth * 0.5));
|
|
36
|
+
scaleWidth = Math.max(5, Math.round(scaleWidth));
|
|
37
|
+
thumb.setLayoutBoundsSize(scaleWidth, NaN);
|
|
38
|
+
thumb.setLayoutBoundsPosition(unscaledWidth - scaleWidth, thumbY);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const thumbX = ((unscaledWidth - thumbWidth) * hsp) / (contentWidth - vpWidth);
|
|
42
|
+
thumb.setLayoutBoundsSize(thumbWidth, NaN);
|
|
43
|
+
thumb.setLayoutBoundsPosition(thumbX, thumbY);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
onPropertyChanged(event) {
|
|
47
|
+
switch (event.property) {
|
|
48
|
+
case 'scrollH':
|
|
49
|
+
case 'contentWidth':
|
|
50
|
+
this.invalidateDisplayList();
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=HScrollBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HScrollBar.js","sourceRoot":"","sources":["../../../src/kurot/components/HScrollBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SliderBase } from './SliderBase.js';
|
|
2
|
+
/**
|
|
3
|
+
* HSlider — a horizontal slider (left-to-right).
|
|
4
|
+
*
|
|
5
|
+
* Overrides `pointToValue` and `updateSkinDisplayList` to position the thumb
|
|
6
|
+
* using the track's layout bounds (not the slider's own width), matching egret.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HSlider extends SliderBase {
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Range of thumb movement = track width − thumb width.
|
|
12
|
+
*/
|
|
13
|
+
private _getThumbRange;
|
|
14
|
+
protected pointToValue(x: number, _y: number): number;
|
|
15
|
+
protected updateSkinDisplayList(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=HSlider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HSlider.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/HSlider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,UAAU;;IAOtC;;OAEG;IACH,OAAO,CAAC,cAAc;cAWH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;cAM3C,qBAAqB,IAAI,IAAI;CAahD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Rectangle } from '@kurot/core';
|
|
2
|
+
import { SliderBase } from './SliderBase.js';
|
|
3
|
+
import { Direction } from '../core/Direction.js';
|
|
4
|
+
import { isUIComponent } from '../core/UIComponent.js';
|
|
5
|
+
/**
|
|
6
|
+
* HSlider — a horizontal slider (left-to-right).
|
|
7
|
+
*
|
|
8
|
+
* Overrides `pointToValue` and `updateSkinDisplayList` to position the thumb
|
|
9
|
+
* using the track's layout bounds (not the slider's own width), matching egret.
|
|
10
|
+
*/
|
|
11
|
+
export class HSlider extends SliderBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.direction = Direction.LTR;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Range of thumb movement = track width − thumb width.
|
|
18
|
+
*/
|
|
19
|
+
_getThumbRange() {
|
|
20
|
+
const track = this.track;
|
|
21
|
+
const thumb = this.thumb;
|
|
22
|
+
if (!track || !thumb || !isUIComponent(track) || !isUIComponent(thumb))
|
|
23
|
+
return 0;
|
|
24
|
+
const b = new Rectangle();
|
|
25
|
+
track.getLayoutBounds(b);
|
|
26
|
+
const trackWidth = b.width;
|
|
27
|
+
thumb.getLayoutBounds(b);
|
|
28
|
+
return trackWidth - b.width;
|
|
29
|
+
}
|
|
30
|
+
pointToValue(x, _y) {
|
|
31
|
+
const range = this.maximum - this.minimum;
|
|
32
|
+
const thumbRange = this._getThumbRange();
|
|
33
|
+
return this.minimum + (thumbRange !== 0 ? (x / thumbRange) * range : 0);
|
|
34
|
+
}
|
|
35
|
+
updateSkinDisplayList() {
|
|
36
|
+
const thumb = this.thumb;
|
|
37
|
+
const track = this.track;
|
|
38
|
+
if (!thumb || !track || !isUIComponent(track))
|
|
39
|
+
return;
|
|
40
|
+
const thumbRange = this._getThumbRange();
|
|
41
|
+
const range = this.maximum - this.minimum;
|
|
42
|
+
const ratio = range > 0 ? (this.value - this.minimum) / range : 0;
|
|
43
|
+
const trackBounds = new Rectangle();
|
|
44
|
+
track.getLayoutBounds(trackBounds);
|
|
45
|
+
thumb.x = trackBounds.x + ratio * thumbRange;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=HSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HSlider.js","sourceRoot":"","sources":["../../../src/kurot/components/HSlider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,OAAO,OAAQ,SAAQ,UAAU;IAEtC;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;IAChC,CAAC;IAED;;OAEG;IACK,cAAc;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEkB,YAAY,CAAC,CAAS,EAAE,EAAU;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAEkB,qBAAqB;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO;QAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;IAC9C,CAAC;CACD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import { Texture, Bitmap, BitmapFillMode, Rectangle } from '@kurot/core';
|
|
3
|
+
/**
|
|
4
|
+
* Image component that displays bitmap data.
|
|
5
|
+
*
|
|
6
|
+
* Supports setting `source` to a URL string (loaded via the asset adapter)
|
|
7
|
+
* or a Texture instance directly.
|
|
8
|
+
*
|
|
9
|
+
* States: none (non-interactive visual element).
|
|
10
|
+
*/
|
|
11
|
+
export declare class Image extends Component {
|
|
12
|
+
private _source?;
|
|
13
|
+
private _sourceChanged;
|
|
14
|
+
private _bitmap?;
|
|
15
|
+
private _scale9Grid?;
|
|
16
|
+
private _fillMode;
|
|
17
|
+
private _smoothing;
|
|
18
|
+
constructor(source?: string | Texture);
|
|
19
|
+
get source(): string | Texture | undefined;
|
|
20
|
+
set source(value: string | Texture | undefined);
|
|
21
|
+
get scale9Grid(): Rectangle | undefined;
|
|
22
|
+
set scale9Grid(value: Rectangle | undefined);
|
|
23
|
+
get fillMode(): BitmapFillMode;
|
|
24
|
+
set fillMode(value: BitmapFillMode);
|
|
25
|
+
get smoothing(): boolean;
|
|
26
|
+
set smoothing(value: boolean);
|
|
27
|
+
get bitmap(): Bitmap | undefined;
|
|
28
|
+
commitProperties(): void;
|
|
29
|
+
createChildren(): void;
|
|
30
|
+
measure(): void;
|
|
31
|
+
updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
|
|
32
|
+
private _parseSource;
|
|
33
|
+
private _applyTexture;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=Image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAS,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhF;;;;;;;GAOG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAGnC,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,UAAU,CAAQ;gBAIP,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAO5C,IAAW,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAEhD;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EASpD;IAED,IAAW,UAAU,IAAI,SAAS,GAAG,SAAS,CAE7C;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAKjD;IAED,IAAW,QAAQ,IAAI,cAAc,CAEpC;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,cAAc,EAKxC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAKlC;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAIe,gBAAgB,IAAI,IAAI;IAQxB,cAAc,IAAI,IAAI;IAQtB,OAAO,IAAI,IAAI;IASf,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAUtF,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,aAAa;CAYrB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import { Event, Bitmap, BitmapFillMode } from '@kurot/core';
|
|
3
|
+
import { getAssetAdapter } from '../core/AssetAdapterRegistry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Image component that displays bitmap data.
|
|
6
|
+
*
|
|
7
|
+
* Supports setting `source` to a URL string (loaded via the asset adapter)
|
|
8
|
+
* or a Texture instance directly.
|
|
9
|
+
*
|
|
10
|
+
* States: none (non-interactive visual element).
|
|
11
|
+
*/
|
|
12
|
+
export class Image extends Component {
|
|
13
|
+
// ── Instance fields ───────────────────────────────────────────────────
|
|
14
|
+
_source;
|
|
15
|
+
_sourceChanged = false;
|
|
16
|
+
_bitmap;
|
|
17
|
+
_scale9Grid;
|
|
18
|
+
_fillMode = BitmapFillMode.SCALE;
|
|
19
|
+
_smoothing = true;
|
|
20
|
+
// ── Constructor ───────────────────────────────────────────────────────
|
|
21
|
+
constructor(source) {
|
|
22
|
+
super();
|
|
23
|
+
if (source)
|
|
24
|
+
this.source = source;
|
|
25
|
+
}
|
|
26
|
+
// ── Getters / Setters ─────────────────────────────────────────────────
|
|
27
|
+
get source() {
|
|
28
|
+
return this._source;
|
|
29
|
+
}
|
|
30
|
+
set source(value) {
|
|
31
|
+
if (this._source === value)
|
|
32
|
+
return;
|
|
33
|
+
this._source = value;
|
|
34
|
+
if (value && typeof value === 'string') {
|
|
35
|
+
this._sourceChanged = true;
|
|
36
|
+
this.invalidateProperties();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this._applyTexture(value ?? undefined);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get scale9Grid() {
|
|
43
|
+
return this._scale9Grid;
|
|
44
|
+
}
|
|
45
|
+
set scale9Grid(value) {
|
|
46
|
+
if (this._scale9Grid === value)
|
|
47
|
+
return;
|
|
48
|
+
this._scale9Grid = value;
|
|
49
|
+
if (this._bitmap)
|
|
50
|
+
this._bitmap.scale9Grid = value;
|
|
51
|
+
this.invalidateDisplayList();
|
|
52
|
+
}
|
|
53
|
+
get fillMode() {
|
|
54
|
+
return this._fillMode;
|
|
55
|
+
}
|
|
56
|
+
set fillMode(value) {
|
|
57
|
+
if (this._fillMode === value)
|
|
58
|
+
return;
|
|
59
|
+
this._fillMode = value;
|
|
60
|
+
if (this._bitmap)
|
|
61
|
+
this._bitmap.fillMode = value;
|
|
62
|
+
this.invalidateDisplayList();
|
|
63
|
+
}
|
|
64
|
+
get smoothing() {
|
|
65
|
+
return this._smoothing;
|
|
66
|
+
}
|
|
67
|
+
set smoothing(value) {
|
|
68
|
+
if (this._smoothing === value)
|
|
69
|
+
return;
|
|
70
|
+
this._smoothing = value;
|
|
71
|
+
if (this._bitmap)
|
|
72
|
+
this._bitmap.smoothing = value;
|
|
73
|
+
this.invalidateDisplayList();
|
|
74
|
+
}
|
|
75
|
+
get bitmap() {
|
|
76
|
+
return this._bitmap;
|
|
77
|
+
}
|
|
78
|
+
// ── Override methods ──────────────────────────────────────────────────
|
|
79
|
+
commitProperties() {
|
|
80
|
+
super.commitProperties();
|
|
81
|
+
if (this._sourceChanged) {
|
|
82
|
+
this._sourceChanged = false;
|
|
83
|
+
this._parseSource();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
createChildren() {
|
|
87
|
+
super.createChildren();
|
|
88
|
+
if (this._sourceChanged) {
|
|
89
|
+
this._sourceChanged = false;
|
|
90
|
+
this._parseSource();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
measure() {
|
|
94
|
+
const texture = this._bitmap?.texture;
|
|
95
|
+
if (texture) {
|
|
96
|
+
this.setMeasuredSize(texture.textureWidth, texture.textureHeight);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.setMeasuredSize(0, 0);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
updateDisplayList(unscaledWidth, unscaledHeight) {
|
|
103
|
+
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
|
104
|
+
if (this._bitmap) {
|
|
105
|
+
this._bitmap.width = unscaledWidth;
|
|
106
|
+
this._bitmap.height = unscaledHeight;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// ── Private methods ───────────────────────────────────────────────────
|
|
110
|
+
_parseSource() {
|
|
111
|
+
const source = this._source;
|
|
112
|
+
if (source && typeof source === 'string') {
|
|
113
|
+
const capturedSource = source;
|
|
114
|
+
getAssetAdapter().getAsset(capturedSource, content => {
|
|
115
|
+
if (this._source !== capturedSource)
|
|
116
|
+
return;
|
|
117
|
+
this._applyTexture(content ?? undefined);
|
|
118
|
+
if (content) {
|
|
119
|
+
this.dispatchEventWith(Event.COMPLETE);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this._applyTexture(source ?? undefined);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
_applyTexture(texture) {
|
|
128
|
+
if (!this._bitmap) {
|
|
129
|
+
this._bitmap = new Bitmap();
|
|
130
|
+
this._bitmap.smoothing = this._smoothing;
|
|
131
|
+
this._bitmap.fillMode = this._fillMode;
|
|
132
|
+
if (this._scale9Grid)
|
|
133
|
+
this._bitmap.scale9Grid = this._scale9Grid;
|
|
134
|
+
this.addChild(this._bitmap);
|
|
135
|
+
}
|
|
136
|
+
this._bitmap.texture = texture;
|
|
137
|
+
this.invalidateSize();
|
|
138
|
+
this.invalidateDisplayList();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=Image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/kurot/components/Image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAW,KAAK,EAAE,MAAM,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,OAAO,KAAM,SAAQ,SAAS;IACnC,yEAAyE;IAEjE,OAAO,CAAoB;IAC3B,cAAc,GAAG,KAAK,CAAC;IACvB,OAAO,CAAU;IACjB,WAAW,CAAa;IACxB,SAAS,GAAmB,cAAc,CAAC,KAAK,CAAC;IACjD,UAAU,GAAG,IAAI,CAAC;IAE1B,yEAAyE;IAEzE,YAAmB,MAAyB;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,yEAAyE;IAEzE,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAW,MAAM,CAAC,KAAmC;QACpD,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,CAAE,KAAiB,IAAI,SAAS,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAW,UAAU,CAAC,KAA4B;QACjD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ,CAAC,KAAqB;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAW,SAAS,CAAC,KAAc;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;YAAE,OAAO;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QACjD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,yEAAyE;IAEzD,gBAAgB;QAC/B,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAEe,cAAc;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAEe,OAAO;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAEe,iBAAiB,CAAC,aAAqB,EAAE,cAAsB;QAC9E,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;QACtC,CAAC;IACF,CAAC;IAED,yEAAyE;IAEjE,YAAY;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;gBACpD,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc;oBAAE,OAAO;gBAC5C,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;gBACzC,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,CAAE,MAAkB,IAAI,SAAS,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAEO,aAAa,CAAC,OAA4B;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;CACD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import { Label } from './Label.js';
|
|
3
|
+
import type { IItemRenderer } from '../core/IItemRenderer.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for item renderers used in data-driven containers
|
|
6
|
+
* (DataGroup, List, TabBar…).
|
|
7
|
+
*
|
|
8
|
+
* States: `up` | `down` | `disabled` | `upAndSelected` | `downAndSelected`
|
|
9
|
+
*
|
|
10
|
+
* @skinPart iconDisplay — optional DisplayObject for an icon
|
|
11
|
+
* @skinPart labelDisplay — optional Label for the item label
|
|
12
|
+
*/
|
|
13
|
+
export declare class ItemRenderer extends Component implements IItemRenderer {
|
|
14
|
+
itemIndex: number;
|
|
15
|
+
private _data;
|
|
16
|
+
private _selected;
|
|
17
|
+
private _touchCaptured;
|
|
18
|
+
private _touchStage?;
|
|
19
|
+
/**
|
|
20
|
+
* Skin part: the label. When present, `data` is auto-synced to its `text`
|
|
21
|
+
* (fallback for when the EXML `{data}` binding isn't compiled in).
|
|
22
|
+
*/
|
|
23
|
+
labelDisplay?: Label;
|
|
24
|
+
constructor();
|
|
25
|
+
get data(): unknown;
|
|
26
|
+
set data(value: unknown);
|
|
27
|
+
get selected(): boolean;
|
|
28
|
+
set selected(value: boolean);
|
|
29
|
+
protected partAdded(partName: string, instance: unknown): void;
|
|
30
|
+
protected partRemoved(partName: string, instance: unknown): void;
|
|
31
|
+
protected getCurrentState(): string;
|
|
32
|
+
$onRemoveFromStage(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Called after `data` changes. Override to update the view.
|
|
35
|
+
*/
|
|
36
|
+
protected dataChanged(): void;
|
|
37
|
+
private _syncLabel;
|
|
38
|
+
private _onTouchBegin;
|
|
39
|
+
private _onStageTouchEnd;
|
|
40
|
+
private _releaseTouchCapture;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=ItemRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ItemRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,SAAU,YAAW,aAAa;IAG5D,SAAS,SAAM;IAEtB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAE5B;;;OAGG;IACI,YAAY,CAAC,EAAE,KAAK,CAAC;;IAW5B,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAK7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAIjC;cAIkB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;cAQpD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;cAOtD,eAAe,IAAI,MAAM;IAU5B,kBAAkB,IAAI,IAAI;IAO1C;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa,CASnB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,oBAAoB;CAQ5B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { TouchEvent } from '@kurot/core';
|
|
2
|
+
import { Component } from './Component.js';
|
|
3
|
+
import { Label } from './Label.js';
|
|
4
|
+
import { PropertyEvent } from '../events/PropertyEvent.js';
|
|
5
|
+
/**
|
|
6
|
+
* Base class for item renderers used in data-driven containers
|
|
7
|
+
* (DataGroup, List, TabBar…).
|
|
8
|
+
*
|
|
9
|
+
* States: `up` | `down` | `disabled` | `upAndSelected` | `downAndSelected`
|
|
10
|
+
*
|
|
11
|
+
* @skinPart iconDisplay — optional DisplayObject for an icon
|
|
12
|
+
* @skinPart labelDisplay — optional Label for the item label
|
|
13
|
+
*/
|
|
14
|
+
export class ItemRenderer extends Component {
|
|
15
|
+
// ── Instance fields ───────────────────────────────────────────────────
|
|
16
|
+
itemIndex = -1;
|
|
17
|
+
_data;
|
|
18
|
+
_selected = false;
|
|
19
|
+
_touchCaptured = false;
|
|
20
|
+
_touchStage;
|
|
21
|
+
/**
|
|
22
|
+
* Skin part: the label. When present, `data` is auto-synced to its `text`
|
|
23
|
+
* (fallback for when the EXML `{data}` binding isn't compiled in).
|
|
24
|
+
*/
|
|
25
|
+
labelDisplay;
|
|
26
|
+
// ── Constructor ───────────────────────────────────────────────────────
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
this.addEventListener(TouchEvent.TOUCH_BEGIN, this._onTouchBegin);
|
|
30
|
+
}
|
|
31
|
+
// ── Getters / Setters ─────────────────────────────────────────────────
|
|
32
|
+
get data() {
|
|
33
|
+
return this._data;
|
|
34
|
+
}
|
|
35
|
+
set data(value) {
|
|
36
|
+
if (this._data === value)
|
|
37
|
+
return;
|
|
38
|
+
this._data = value;
|
|
39
|
+
PropertyEvent.dispatchPropertyEvent(this, 'data');
|
|
40
|
+
this.dataChanged();
|
|
41
|
+
}
|
|
42
|
+
get selected() {
|
|
43
|
+
return this._selected;
|
|
44
|
+
}
|
|
45
|
+
set selected(value) {
|
|
46
|
+
if (this._selected === value)
|
|
47
|
+
return;
|
|
48
|
+
this._selected = value;
|
|
49
|
+
this.invalidateState();
|
|
50
|
+
}
|
|
51
|
+
// ── Override methods ──────────────────────────────────────────────────
|
|
52
|
+
partAdded(partName, instance) {
|
|
53
|
+
super.partAdded(partName, instance);
|
|
54
|
+
if (partName === 'labelDisplay' && instance instanceof Label) {
|
|
55
|
+
this.labelDisplay = instance;
|
|
56
|
+
this._syncLabel();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
partRemoved(partName, instance) {
|
|
60
|
+
super.partRemoved(partName, instance);
|
|
61
|
+
if (partName === 'labelDisplay') {
|
|
62
|
+
this.labelDisplay = undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getCurrentState() {
|
|
66
|
+
if (!this.enabled)
|
|
67
|
+
return 'disabled';
|
|
68
|
+
if (this._touchCaptured)
|
|
69
|
+
return this._selected ? 'downAndSelected' : 'down';
|
|
70
|
+
if (this._selected) {
|
|
71
|
+
if (this.skin?.hasState('upAndSelected'))
|
|
72
|
+
return 'upAndSelected';
|
|
73
|
+
return 'down';
|
|
74
|
+
}
|
|
75
|
+
return 'up';
|
|
76
|
+
}
|
|
77
|
+
$onRemoveFromStage() {
|
|
78
|
+
this._releaseTouchCapture();
|
|
79
|
+
super.$onRemoveFromStage();
|
|
80
|
+
}
|
|
81
|
+
// ── Protected methods ─────────────────────────────────────────────────
|
|
82
|
+
/**
|
|
83
|
+
* Called after `data` changes. Override to update the view.
|
|
84
|
+
*/
|
|
85
|
+
dataChanged() {
|
|
86
|
+
this._syncLabel();
|
|
87
|
+
}
|
|
88
|
+
_syncLabel() {
|
|
89
|
+
if (this.labelDisplay) {
|
|
90
|
+
this.labelDisplay.text = this._data == null ? '' : String(this._data);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ── Private methods ───────────────────────────────────────────────────
|
|
94
|
+
_onTouchBegin = (e) => {
|
|
95
|
+
const stage = this.stage;
|
|
96
|
+
if (!stage)
|
|
97
|
+
return;
|
|
98
|
+
this._touchStage = stage;
|
|
99
|
+
stage.addEventListener(TouchEvent.TOUCH_END, this._onStageTouchEnd);
|
|
100
|
+
stage.addEventListener(TouchEvent.TOUCH_CANCEL, this._onStageTouchEnd);
|
|
101
|
+
this._touchCaptured = true;
|
|
102
|
+
this.invalidateState();
|
|
103
|
+
e.updateAfterEvent();
|
|
104
|
+
};
|
|
105
|
+
_onStageTouchEnd = (_e) => {
|
|
106
|
+
this._releaseTouchCapture();
|
|
107
|
+
};
|
|
108
|
+
_releaseTouchCapture() {
|
|
109
|
+
const stage = this._touchStage;
|
|
110
|
+
stage?.removeEventListener(TouchEvent.TOUCH_END, this._onStageTouchEnd);
|
|
111
|
+
stage?.removeEventListener(TouchEvent.TOUCH_CANCEL, this._onStageTouchEnd);
|
|
112
|
+
this._touchStage = undefined;
|
|
113
|
+
this._touchCaptured = false;
|
|
114
|
+
this.invalidateState();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=ItemRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemRenderer.js","sourceRoot":"","sources":["../../../src/kurot/components/ItemRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Component } from './Component.js';
|
|
2
|
+
import { TextField } from '@kurot/core';
|
|
3
|
+
import type { IDisplayText } from '../core/IDisplayText.js';
|
|
4
|
+
/**
|
|
5
|
+
* Label component for displaying text.
|
|
6
|
+
* Wraps a TextField and integrates it with the UI component lifecycle.
|
|
7
|
+
*
|
|
8
|
+
* States: none (non-interactive visual element).
|
|
9
|
+
*/
|
|
10
|
+
export declare class Label extends Component implements IDisplayText {
|
|
11
|
+
protected _textField: TextField;
|
|
12
|
+
private _widthConstraint;
|
|
13
|
+
constructor(text?: string);
|
|
14
|
+
get text(): string;
|
|
15
|
+
set text(value: string);
|
|
16
|
+
get fontFamily(): string;
|
|
17
|
+
set fontFamily(value: string);
|
|
18
|
+
get size(): number;
|
|
19
|
+
set size(value: number);
|
|
20
|
+
get bold(): boolean;
|
|
21
|
+
set bold(value: boolean);
|
|
22
|
+
get italic(): boolean;
|
|
23
|
+
set italic(value: boolean);
|
|
24
|
+
get textColor(): number;
|
|
25
|
+
set textColor(value: number);
|
|
26
|
+
get strokeColor(): number;
|
|
27
|
+
set strokeColor(value: number);
|
|
28
|
+
get stroke(): number;
|
|
29
|
+
set stroke(value: number);
|
|
30
|
+
get textAlign(): string;
|
|
31
|
+
set textAlign(value: string);
|
|
32
|
+
get verticalAlign(): string;
|
|
33
|
+
set verticalAlign(value: string);
|
|
34
|
+
get multiline(): boolean;
|
|
35
|
+
set multiline(value: boolean);
|
|
36
|
+
get wordWrap(): boolean;
|
|
37
|
+
set wordWrap(value: boolean);
|
|
38
|
+
get lineSpacing(): number;
|
|
39
|
+
set lineSpacing(value: number);
|
|
40
|
+
get maxChars(): number;
|
|
41
|
+
set maxChars(value: number);
|
|
42
|
+
get displayAsPassword(): boolean;
|
|
43
|
+
set displayAsPassword(value: boolean);
|
|
44
|
+
createChildren(): void;
|
|
45
|
+
measure(): void;
|
|
46
|
+
setLayoutBoundsSize(layoutWidth: number, layoutHeight: number): void;
|
|
47
|
+
updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,SAAU,YAAW,YAAY;IAG3D,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAEhC,OAAO,CAAC,gBAAgB,CAAO;gBAIZ,IAAI,CAAC,EAAE,MAAM;IAShC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAM5B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAKlC;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAK7B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAK/B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAKjC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAKrC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAKlC;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAKnC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAE1C;IAIe,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAoBf,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAepE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;CAKtF"}
|