@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,483 @@
|
|
|
1
|
+
import { Rectangle } from '@kurot/core';
|
|
2
|
+
import { Group } from './Group.js';
|
|
3
|
+
import { ItemRenderer } from './ItemRenderer.js';
|
|
4
|
+
import { CollectionEvent, CollectionEventKind } from '../events/CollectionEvent.js';
|
|
5
|
+
import { VerticalLayout } from '../layouts/VerticalLayout.js';
|
|
6
|
+
import { JustifyAlign } from '../layouts/JustifyAlign.js';
|
|
7
|
+
/**
|
|
8
|
+
* DataGroup converts data items into visual elements (item renderers).
|
|
9
|
+
*
|
|
10
|
+
* Provide an {@link ICollection} via `dataProvider` and either set
|
|
11
|
+
* `itemRenderer` to a class or supply `itemRendererFunction` for
|
|
12
|
+
* per-item renderer resolution.
|
|
13
|
+
*
|
|
14
|
+
* Supports virtual layout — only creates renderers for visible items.
|
|
15
|
+
*
|
|
16
|
+
* @defaultProperty dataProvider
|
|
17
|
+
*/
|
|
18
|
+
export class DataGroup extends Group {
|
|
19
|
+
// ── Instance fields ───────────────────────────────────────────────────────
|
|
20
|
+
_dataProvider;
|
|
21
|
+
_dataProviderChanged = false;
|
|
22
|
+
_itemRenderer;
|
|
23
|
+
_itemRendererChanged = false;
|
|
24
|
+
_itemRendererFunction;
|
|
25
|
+
_itemRendererSkinName;
|
|
26
|
+
_itemRendererSkinNameChanged = false;
|
|
27
|
+
_useVirtualLayout = false;
|
|
28
|
+
_useVirtualLayoutChanged = false;
|
|
29
|
+
_rendererToClass = new Map();
|
|
30
|
+
_freeRenderers = new Map();
|
|
31
|
+
_renderersBeingUpdated = false;
|
|
32
|
+
_indexToRenderer = [];
|
|
33
|
+
_createNewRendererFlag = false;
|
|
34
|
+
_typicalLayoutRect;
|
|
35
|
+
_typicalItem;
|
|
36
|
+
_typicalItemChanged = false;
|
|
37
|
+
_cleanFreeRenderer = false;
|
|
38
|
+
// ── Getters / Setters ─────────────────────────────────────────────────────
|
|
39
|
+
get dataProvider() {
|
|
40
|
+
return this._dataProvider;
|
|
41
|
+
}
|
|
42
|
+
set dataProvider(value) {
|
|
43
|
+
if (this._dataProvider === value)
|
|
44
|
+
return;
|
|
45
|
+
this._removeDataProviderListener();
|
|
46
|
+
this._dataProvider = value;
|
|
47
|
+
this._dataProviderChanged = true;
|
|
48
|
+
this._cleanFreeRenderer = true;
|
|
49
|
+
this.invalidateProperties();
|
|
50
|
+
this.invalidateSize();
|
|
51
|
+
this.invalidateDisplayList();
|
|
52
|
+
}
|
|
53
|
+
get itemRenderer() {
|
|
54
|
+
return this._itemRenderer;
|
|
55
|
+
}
|
|
56
|
+
set itemRenderer(value) {
|
|
57
|
+
if (this._itemRenderer === value)
|
|
58
|
+
return;
|
|
59
|
+
this._itemRenderer = value;
|
|
60
|
+
this._itemRendererChanged = true;
|
|
61
|
+
this._typicalItemChanged = true;
|
|
62
|
+
this._cleanFreeRenderer = true;
|
|
63
|
+
this._removeDataProviderListener();
|
|
64
|
+
this.invalidateProperties();
|
|
65
|
+
}
|
|
66
|
+
get itemRendererFunction() {
|
|
67
|
+
return this._itemRendererFunction;
|
|
68
|
+
}
|
|
69
|
+
set itemRendererFunction(value) {
|
|
70
|
+
if (this._itemRendererFunction === value)
|
|
71
|
+
return;
|
|
72
|
+
this._itemRendererFunction = value;
|
|
73
|
+
this._itemRendererChanged = true;
|
|
74
|
+
this._typicalItemChanged = true;
|
|
75
|
+
this._removeDataProviderListener();
|
|
76
|
+
this.invalidateProperties();
|
|
77
|
+
}
|
|
78
|
+
get itemRendererSkinName() {
|
|
79
|
+
return this._itemRendererSkinName;
|
|
80
|
+
}
|
|
81
|
+
set itemRendererSkinName(value) {
|
|
82
|
+
if (this._itemRendererSkinName === value)
|
|
83
|
+
return;
|
|
84
|
+
this._itemRendererSkinName = value;
|
|
85
|
+
this._itemRendererSkinNameChanged = true;
|
|
86
|
+
this.invalidateProperties();
|
|
87
|
+
}
|
|
88
|
+
get useVirtualLayout() {
|
|
89
|
+
const layout = this.layout;
|
|
90
|
+
if (layout)
|
|
91
|
+
return layout.useVirtualLayout;
|
|
92
|
+
return this._useVirtualLayout;
|
|
93
|
+
}
|
|
94
|
+
set useVirtualLayout(value) {
|
|
95
|
+
if (this._useVirtualLayout === value)
|
|
96
|
+
return;
|
|
97
|
+
this._useVirtualLayout = value;
|
|
98
|
+
const layout = this.layout;
|
|
99
|
+
if (layout)
|
|
100
|
+
layout.useVirtualLayout = value;
|
|
101
|
+
}
|
|
102
|
+
// ── Public methods ────────────────────────────────────────────────────────
|
|
103
|
+
/**
|
|
104
|
+
* Update a renderer's itemIndex and data. Called by the layout system.
|
|
105
|
+
*/
|
|
106
|
+
updateRenderer(renderer, itemIndex, data) {
|
|
107
|
+
this._renderersBeingUpdated = true;
|
|
108
|
+
renderer.itemIndex = itemIndex;
|
|
109
|
+
if (renderer.parent === this) {
|
|
110
|
+
this.setChildIndex(renderer, itemIndex);
|
|
111
|
+
}
|
|
112
|
+
renderer.data = data;
|
|
113
|
+
this._renderersBeingUpdated = false;
|
|
114
|
+
return renderer;
|
|
115
|
+
}
|
|
116
|
+
// ── Override methods ──────────────────────────────────────────────────────
|
|
117
|
+
get numElements() {
|
|
118
|
+
if (!this._dataProvider)
|
|
119
|
+
return 0;
|
|
120
|
+
return this._dataProvider.length;
|
|
121
|
+
}
|
|
122
|
+
getElementAt(index) {
|
|
123
|
+
return this._indexToRenderer[index] ?? undefined;
|
|
124
|
+
}
|
|
125
|
+
getVirtualElementAt(index) {
|
|
126
|
+
index = index | 0;
|
|
127
|
+
if (!this._dataProvider || index < 0 || index >= this._dataProvider.length)
|
|
128
|
+
return undefined;
|
|
129
|
+
let renderer = this._indexToRenderer[index];
|
|
130
|
+
if (!renderer) {
|
|
131
|
+
const item = this._dataProvider.getItemAt(index);
|
|
132
|
+
renderer = this._createVirtualRenderer(item);
|
|
133
|
+
this._indexToRenderer[index] = renderer;
|
|
134
|
+
this.updateRenderer(renderer, index, item);
|
|
135
|
+
if (this._createNewRendererFlag) {
|
|
136
|
+
renderer.validateNow();
|
|
137
|
+
this._createNewRendererFlag = false;
|
|
138
|
+
this.rendererAdded(renderer, index, item);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return renderer;
|
|
142
|
+
}
|
|
143
|
+
setVirtualElementIndicesInView(startIndex, endIndex) {
|
|
144
|
+
const layout = this.layout;
|
|
145
|
+
if (!layout?.useVirtualLayout)
|
|
146
|
+
return;
|
|
147
|
+
const map = this._indexToRenderer;
|
|
148
|
+
for (let i = 0; i < map.length; i++) {
|
|
149
|
+
if (map[i] && (i < startIndex || i > endIndex)) {
|
|
150
|
+
this._freeRendererByIndex(i);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
createChildren() {
|
|
155
|
+
if (!this.layout) {
|
|
156
|
+
const vl = new VerticalLayout();
|
|
157
|
+
vl.gap = 0;
|
|
158
|
+
vl.horizontalAlign = JustifyAlign.CONTENT_JUSTIFY;
|
|
159
|
+
if (this._useVirtualLayout) {
|
|
160
|
+
vl.useVirtualLayout = true;
|
|
161
|
+
}
|
|
162
|
+
this.layout = vl;
|
|
163
|
+
}
|
|
164
|
+
super.createChildren();
|
|
165
|
+
}
|
|
166
|
+
commitProperties() {
|
|
167
|
+
if (this._itemRendererChanged || this._dataProviderChanged || this._useVirtualLayoutChanged) {
|
|
168
|
+
this._removeAllRenderers();
|
|
169
|
+
const layout = this.layout;
|
|
170
|
+
if (layout)
|
|
171
|
+
layout.clearVirtualLayoutCache();
|
|
172
|
+
this._setTypicalLayoutRect(undefined);
|
|
173
|
+
this._useVirtualLayoutChanged = false;
|
|
174
|
+
this._itemRendererChanged = false;
|
|
175
|
+
if (this._dataProvider) {
|
|
176
|
+
this._dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, this._onCollectionChange);
|
|
177
|
+
}
|
|
178
|
+
const useVirtual = layout ? layout.useVirtualLayout : this._useVirtualLayout;
|
|
179
|
+
if (useVirtual) {
|
|
180
|
+
this.invalidateSize();
|
|
181
|
+
this.invalidateDisplayList();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this._createRenderers();
|
|
185
|
+
}
|
|
186
|
+
if (this._dataProviderChanged) {
|
|
187
|
+
this._dataProviderChanged = false;
|
|
188
|
+
this.scrollH = 0;
|
|
189
|
+
this.scrollV = 0;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
super.commitProperties();
|
|
193
|
+
if (this._typicalItemChanged) {
|
|
194
|
+
this._typicalItemChanged = false;
|
|
195
|
+
if (this._dataProvider && this._dataProvider.length > 0) {
|
|
196
|
+
this._typicalItem = this._dataProvider.getItemAt(0);
|
|
197
|
+
this._measureRendererSize();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (this._itemRendererSkinNameChanged) {
|
|
201
|
+
this._itemRendererSkinNameChanged = false;
|
|
202
|
+
this._applyItemRendererSkinName();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
measure() {
|
|
206
|
+
if (this.layout?.useVirtualLayout)
|
|
207
|
+
this._ensureTypicalLayoutElement();
|
|
208
|
+
super.measure();
|
|
209
|
+
}
|
|
210
|
+
updateDisplayList(unscaledWidth, unscaledHeight) {
|
|
211
|
+
const useVirtual = this.layout?.useVirtualLayout;
|
|
212
|
+
if (useVirtual)
|
|
213
|
+
this._ensureTypicalLayoutElement();
|
|
214
|
+
super.updateDisplayList(unscaledWidth, unscaledHeight);
|
|
215
|
+
if (useVirtual && this._typicalLayoutRect) {
|
|
216
|
+
const r0 = this._indexToRenderer[0];
|
|
217
|
+
if (r0) {
|
|
218
|
+
const b = new Rectangle();
|
|
219
|
+
r0.getPreferredBounds(b);
|
|
220
|
+
if (b.width !== this._typicalLayoutRect.width || b.height !== this._typicalLayoutRect.height) {
|
|
221
|
+
this._typicalLayoutRect = undefined;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// ── Protected methods (subclass hooks) ────────────────────────────────────
|
|
227
|
+
itemAdded(item, index) {
|
|
228
|
+
this.layout?.elementAdded(index);
|
|
229
|
+
if (this.layout?.useVirtualLayout) {
|
|
230
|
+
this._indexToRenderer.splice(index, 0, undefined);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const renderer = this._createVirtualRenderer(item);
|
|
234
|
+
this._indexToRenderer.splice(index, 0, renderer);
|
|
235
|
+
if (renderer) {
|
|
236
|
+
this.updateRenderer(renderer, index, item);
|
|
237
|
+
if (this._createNewRendererFlag) {
|
|
238
|
+
this._createNewRendererFlag = false;
|
|
239
|
+
this.rendererAdded(renderer, index, item);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
itemRemoved(item, index) {
|
|
244
|
+
this.layout?.elementRemoved(index);
|
|
245
|
+
const oldRenderer = this._indexToRenderer[index];
|
|
246
|
+
if (this._indexToRenderer.length > index) {
|
|
247
|
+
this._indexToRenderer.splice(index, 1);
|
|
248
|
+
}
|
|
249
|
+
if (oldRenderer) {
|
|
250
|
+
if (this.layout?.useVirtualLayout) {
|
|
251
|
+
this._doFreeRenderer(oldRenderer);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
this.rendererRemoved(oldRenderer, index, item);
|
|
255
|
+
this.removeChild(oldRenderer);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
onCollectionChange(event) {
|
|
260
|
+
switch (event.kind) {
|
|
261
|
+
case CollectionEventKind.ADD:
|
|
262
|
+
this._itemAddedHandler(event.items, event.location);
|
|
263
|
+
break;
|
|
264
|
+
case CollectionEventKind.REMOVE:
|
|
265
|
+
this._itemRemovedHandler(event.items, event.location);
|
|
266
|
+
break;
|
|
267
|
+
case CollectionEventKind.UPDATE:
|
|
268
|
+
case CollectionEventKind.REPLACE:
|
|
269
|
+
this._itemUpdatedHandler(event.items[0], event.location);
|
|
270
|
+
break;
|
|
271
|
+
case CollectionEventKind.RESET:
|
|
272
|
+
case CollectionEventKind.REFRESH: {
|
|
273
|
+
if (this.layout?.useVirtualLayout) {
|
|
274
|
+
for (let i = this._indexToRenderer.length - 1; i >= 0; i--) {
|
|
275
|
+
if (this._indexToRenderer[i])
|
|
276
|
+
this._freeRendererByIndex(i);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
this._dataProviderChanged = true;
|
|
280
|
+
this.invalidateProperties();
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
default:
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
this.invalidateSize();
|
|
287
|
+
this.invalidateDisplayList();
|
|
288
|
+
}
|
|
289
|
+
rendererAdded(_renderer, _index, _item) { }
|
|
290
|
+
rendererRemoved(_renderer, _index, _item) { }
|
|
291
|
+
/**
|
|
292
|
+
* Get the renderer at the given index, if one exists.
|
|
293
|
+
* Used by subclasses (e.g. ListBase) to update renderer state.
|
|
294
|
+
*/
|
|
295
|
+
getRendererAt(index) {
|
|
296
|
+
return this._indexToRenderer[index];
|
|
297
|
+
}
|
|
298
|
+
// ── Private methods ───────────────────────────────────────────────────────
|
|
299
|
+
_removeDataProviderListener() {
|
|
300
|
+
if (this._dataProvider) {
|
|
301
|
+
this._dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, this._onCollectionChange);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
_onCollectionChange = (e) => {
|
|
305
|
+
this.onCollectionChange(e);
|
|
306
|
+
};
|
|
307
|
+
_itemAddedHandler(items, index) {
|
|
308
|
+
for (let i = 0; i < items.length; i++) {
|
|
309
|
+
this.itemAdded(items[i], index + i);
|
|
310
|
+
}
|
|
311
|
+
this._resetRenderersIndices();
|
|
312
|
+
}
|
|
313
|
+
_itemRemovedHandler(items, location) {
|
|
314
|
+
for (let i = items.length - 1; i >= 0; i--) {
|
|
315
|
+
this.itemRemoved(items[i], location + i);
|
|
316
|
+
}
|
|
317
|
+
this._resetRenderersIndices();
|
|
318
|
+
}
|
|
319
|
+
_itemUpdatedHandler(item, location) {
|
|
320
|
+
if (this._renderersBeingUpdated)
|
|
321
|
+
return;
|
|
322
|
+
const renderer = this._indexToRenderer[location];
|
|
323
|
+
if (renderer) {
|
|
324
|
+
this.updateRenderer(renderer, location, item);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
_createVirtualRenderer(item) {
|
|
328
|
+
const rendererClass = this._itemToRendererClass(item);
|
|
329
|
+
const pool = this._freeRenderers.get(rendererClass);
|
|
330
|
+
if (pool && pool.length > 0) {
|
|
331
|
+
const renderer = pool.pop();
|
|
332
|
+
renderer.visible = true;
|
|
333
|
+
this.invalidateDisplayList();
|
|
334
|
+
return renderer;
|
|
335
|
+
}
|
|
336
|
+
this._createNewRendererFlag = true;
|
|
337
|
+
return this._createOneRenderer(rendererClass);
|
|
338
|
+
}
|
|
339
|
+
_createOneRenderer(rendererClass) {
|
|
340
|
+
const renderer = new rendererClass();
|
|
341
|
+
this._rendererToClass.set(renderer, rendererClass);
|
|
342
|
+
if (this._itemRendererSkinName) {
|
|
343
|
+
this._setItemRendererSkinName(renderer, this._itemRendererSkinName);
|
|
344
|
+
}
|
|
345
|
+
this.addChild(renderer);
|
|
346
|
+
return renderer;
|
|
347
|
+
}
|
|
348
|
+
_doFreeRenderer(renderer) {
|
|
349
|
+
const cls = this._rendererToClass.get(renderer);
|
|
350
|
+
if (!cls)
|
|
351
|
+
return;
|
|
352
|
+
let pool = this._freeRenderers.get(cls);
|
|
353
|
+
if (!pool) {
|
|
354
|
+
pool = [];
|
|
355
|
+
this._freeRenderers.set(cls, pool);
|
|
356
|
+
}
|
|
357
|
+
pool.push(renderer);
|
|
358
|
+
renderer.visible = false;
|
|
359
|
+
}
|
|
360
|
+
_freeRendererByIndex(index) {
|
|
361
|
+
const renderer = this._indexToRenderer[index];
|
|
362
|
+
if (renderer) {
|
|
363
|
+
delete this._indexToRenderer[index];
|
|
364
|
+
this._doFreeRenderer(renderer);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
_itemToRendererClass(item) {
|
|
368
|
+
let cls;
|
|
369
|
+
if (this._itemRendererFunction) {
|
|
370
|
+
cls = this._itemRendererFunction(item);
|
|
371
|
+
}
|
|
372
|
+
if (!cls)
|
|
373
|
+
cls = this._itemRenderer;
|
|
374
|
+
if (!cls)
|
|
375
|
+
cls = ItemRenderer;
|
|
376
|
+
return cls;
|
|
377
|
+
}
|
|
378
|
+
_createRenderers() {
|
|
379
|
+
if (!this._dataProvider)
|
|
380
|
+
return;
|
|
381
|
+
const len = this._dataProvider.length;
|
|
382
|
+
for (let i = 0; i < len; i++) {
|
|
383
|
+
const item = this._dataProvider.getItemAt(i);
|
|
384
|
+
const cls = this._itemToRendererClass(item);
|
|
385
|
+
const renderer = this._createOneRenderer(cls);
|
|
386
|
+
this._indexToRenderer[i] = renderer;
|
|
387
|
+
this.updateRenderer(renderer, i, item);
|
|
388
|
+
this.rendererAdded(renderer, i, item);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
_removeAllRenderers() {
|
|
392
|
+
for (let i = 0; i < this._indexToRenderer.length; i++) {
|
|
393
|
+
const renderer = this._indexToRenderer[i];
|
|
394
|
+
if (renderer) {
|
|
395
|
+
this.rendererRemoved(renderer, renderer.itemIndex, renderer.data);
|
|
396
|
+
this.removeChild(renderer);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
this._indexToRenderer = [];
|
|
400
|
+
if (this._cleanFreeRenderer) {
|
|
401
|
+
for (const pool of this._freeRenderers.values()) {
|
|
402
|
+
for (const renderer of pool) {
|
|
403
|
+
this.rendererRemoved(renderer, renderer.itemIndex, renderer.data);
|
|
404
|
+
this.removeChild(renderer);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
this._freeRenderers.clear();
|
|
408
|
+
this._rendererToClass.clear();
|
|
409
|
+
this._cleanFreeRenderer = false;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
_resetRenderersIndices() {
|
|
413
|
+
const map = this._indexToRenderer;
|
|
414
|
+
if (map.length === 0)
|
|
415
|
+
return;
|
|
416
|
+
for (let i = 0; i < map.length; i++) {
|
|
417
|
+
if (map[i])
|
|
418
|
+
map[i].itemIndex = i;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
_ensureTypicalLayoutElement() {
|
|
422
|
+
if (this._typicalLayoutRect)
|
|
423
|
+
return;
|
|
424
|
+
if (this._dataProvider && this._dataProvider.length > 0) {
|
|
425
|
+
this._typicalItem = this._dataProvider.getItemAt(0);
|
|
426
|
+
this._measureRendererSize();
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
_measureRendererSize() {
|
|
430
|
+
if (this._typicalItem === undefined) {
|
|
431
|
+
this._setTypicalLayoutRect(undefined);
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
const renderer = this._createVirtualRenderer(this._typicalItem);
|
|
435
|
+
this.updateRenderer(renderer, 0, this._typicalItem);
|
|
436
|
+
renderer.validateNow();
|
|
437
|
+
const b = new Rectangle();
|
|
438
|
+
renderer.getPreferredBounds(b);
|
|
439
|
+
const rect = new Rectangle(0, 0, b.width, b.height);
|
|
440
|
+
if (this.layout?.useVirtualLayout) {
|
|
441
|
+
if (this._createNewRendererFlag) {
|
|
442
|
+
this.rendererAdded(renderer, 0, this._typicalItem);
|
|
443
|
+
}
|
|
444
|
+
this._doFreeRenderer(renderer);
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
this.removeChild(renderer);
|
|
448
|
+
}
|
|
449
|
+
this._setTypicalLayoutRect(rect);
|
|
450
|
+
this._createNewRendererFlag = false;
|
|
451
|
+
}
|
|
452
|
+
_setTypicalLayoutRect(rect) {
|
|
453
|
+
this._typicalLayoutRect = rect;
|
|
454
|
+
if (this.layout) {
|
|
455
|
+
if (rect) {
|
|
456
|
+
this.layout.setTypicalSize(rect.width, rect.height);
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
this.layout.setTypicalSize(0, 0);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
_setItemRendererSkinName(renderer, skinName) {
|
|
464
|
+
if (!renderer.skinNameExplicitlySet) {
|
|
465
|
+
renderer.skinName = skinName;
|
|
466
|
+
renderer.skinNameExplicitlySet = false;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
_applyItemRendererSkinName() {
|
|
470
|
+
const skinName = this._itemRendererSkinName;
|
|
471
|
+
for (const renderer of this._indexToRenderer) {
|
|
472
|
+
if (renderer) {
|
|
473
|
+
this._setItemRendererSkinName(renderer, skinName);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
for (const pool of this._freeRenderers.values()) {
|
|
477
|
+
for (const renderer of pool) {
|
|
478
|
+
this._setItemRendererSkinName(renderer, skinName);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=DataGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGroup.js","sourceRoot":"","sources":["../../../src/kurot/components/DataGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { TextFieldInputType } from '@kurot/core';
|
|
2
|
+
import type { IDisplayText } from '../core/IDisplayText.js';
|
|
3
|
+
import { Label } from './Label.js';
|
|
4
|
+
/**
|
|
5
|
+
* Editable text component with EUI layout participation and prompt support.
|
|
6
|
+
*
|
|
7
|
+
* The native-input TextField lives inside this Component, just like Label's
|
|
8
|
+
* display TextField. Consequently BasicLayout constraints are resolved on the
|
|
9
|
+
* wrapper first and updateDisplayList passes the final bounds to StageText.
|
|
10
|
+
*
|
|
11
|
+
* Egret-compatible: eui.EditableText
|
|
12
|
+
*/
|
|
13
|
+
export declare class EditableText extends Label implements IDisplayText {
|
|
14
|
+
private _prompt;
|
|
15
|
+
private _promptColor;
|
|
16
|
+
private _userTextColor;
|
|
17
|
+
private _isShowingPrompt;
|
|
18
|
+
private _isFocused;
|
|
19
|
+
private _asPassword;
|
|
20
|
+
constructor();
|
|
21
|
+
get prompt(): string;
|
|
22
|
+
set prompt(value: string);
|
|
23
|
+
get promptColor(): number;
|
|
24
|
+
set promptColor(value: number);
|
|
25
|
+
get text(): string;
|
|
26
|
+
set text(value: string);
|
|
27
|
+
get textColor(): number;
|
|
28
|
+
set textColor(value: number);
|
|
29
|
+
get displayAsPassword(): boolean;
|
|
30
|
+
set displayAsPassword(value: boolean);
|
|
31
|
+
get inputType(): TextFieldInputType;
|
|
32
|
+
set inputType(value: TextFieldInputType);
|
|
33
|
+
get restrict(): string | undefined;
|
|
34
|
+
set restrict(value: string | undefined);
|
|
35
|
+
get selectionBeginIndex(): number;
|
|
36
|
+
get selectionEndIndex(): number;
|
|
37
|
+
get caretIndex(): number;
|
|
38
|
+
setFocus(): void;
|
|
39
|
+
setSelection(beginIndex: number, endIndex: number): void;
|
|
40
|
+
private _showPrompt;
|
|
41
|
+
private _onFocusIn;
|
|
42
|
+
private _onFocusOut;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=EditableText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/EditableText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,kBAAkB,EAAiB,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,KAAM,YAAW,YAAY;IAC9D,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;;IAS5B,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAI9B;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAGnC;IAED,IAAoB,IAAI,IAAI,MAAM,CAEjC;IAED,IAAoB,IAAI,CAAC,KAAK,EAAE,MAAM,EAUrC;IAED,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED,IAAoB,SAAS,CAAC,KAAK,EAAE,MAAM,EAG1C;IAED,IAAoB,iBAAiB,IAAI,OAAO,CAE/C;IAED,IAAoB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAGnD;IAED,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAE7C;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAE5C;IAED,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,QAAQ,IAAI,IAAI;IAIhB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/D,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU,CAQhB;IAEF,OAAO,CAAC,WAAW,CAGjB;CACF"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Event, TextFieldType } from '@kurot/core';
|
|
2
|
+
import { PropertyEvent } from '../events/PropertyEvent.js';
|
|
3
|
+
import { Label } from './Label.js';
|
|
4
|
+
/**
|
|
5
|
+
* Editable text component with EUI layout participation and prompt support.
|
|
6
|
+
*
|
|
7
|
+
* The native-input TextField lives inside this Component, just like Label's
|
|
8
|
+
* display TextField. Consequently BasicLayout constraints are resolved on the
|
|
9
|
+
* wrapper first and updateDisplayList passes the final bounds to StageText.
|
|
10
|
+
*
|
|
11
|
+
* Egret-compatible: eui.EditableText
|
|
12
|
+
*/
|
|
13
|
+
export class EditableText extends Label {
|
|
14
|
+
_prompt = '';
|
|
15
|
+
_promptColor = 0x999999;
|
|
16
|
+
_userTextColor = 0xffffff;
|
|
17
|
+
_isShowingPrompt = false;
|
|
18
|
+
_isFocused = false;
|
|
19
|
+
_asPassword = false;
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this._textField.type = TextFieldType.INPUT;
|
|
23
|
+
this.addEventListener(Event.FOCUS_IN, this._onFocusIn);
|
|
24
|
+
this.addEventListener(Event.FOCUS_OUT, this._onFocusOut);
|
|
25
|
+
}
|
|
26
|
+
get prompt() {
|
|
27
|
+
return this._prompt;
|
|
28
|
+
}
|
|
29
|
+
set prompt(value) {
|
|
30
|
+
if (this._prompt === value)
|
|
31
|
+
return;
|
|
32
|
+
this._prompt = value;
|
|
33
|
+
if (!this._isFocused && (!this.text || this.text === this._prompt))
|
|
34
|
+
this._showPrompt();
|
|
35
|
+
}
|
|
36
|
+
get promptColor() {
|
|
37
|
+
return this._promptColor;
|
|
38
|
+
}
|
|
39
|
+
set promptColor(value) {
|
|
40
|
+
this._promptColor = value;
|
|
41
|
+
if (this._isShowingPrompt)
|
|
42
|
+
this._textField.textColor = value;
|
|
43
|
+
}
|
|
44
|
+
get text() {
|
|
45
|
+
return this._isShowingPrompt ? '' : this._textField.text;
|
|
46
|
+
}
|
|
47
|
+
set text(value) {
|
|
48
|
+
if (this._isShowingPrompt && value === this._prompt)
|
|
49
|
+
return;
|
|
50
|
+
this._isShowingPrompt = false;
|
|
51
|
+
this._textField.textColor = this._userTextColor;
|
|
52
|
+
this._textField.displayAsPassword = this._asPassword;
|
|
53
|
+
this._textField.text = value ?? '';
|
|
54
|
+
PropertyEvent.dispatchPropertyEvent(this, 'text');
|
|
55
|
+
this.invalidateSize();
|
|
56
|
+
this.invalidateDisplayList();
|
|
57
|
+
if (!this._isFocused && !value)
|
|
58
|
+
this._showPrompt();
|
|
59
|
+
}
|
|
60
|
+
get textColor() {
|
|
61
|
+
return this._textField.textColor;
|
|
62
|
+
}
|
|
63
|
+
set textColor(value) {
|
|
64
|
+
if (!this._isShowingPrompt)
|
|
65
|
+
this._userTextColor = value;
|
|
66
|
+
this._textField.textColor = value;
|
|
67
|
+
}
|
|
68
|
+
get displayAsPassword() {
|
|
69
|
+
return this._textField.displayAsPassword;
|
|
70
|
+
}
|
|
71
|
+
set displayAsPassword(value) {
|
|
72
|
+
this._asPassword = value;
|
|
73
|
+
if (!this._isShowingPrompt)
|
|
74
|
+
this._textField.displayAsPassword = value;
|
|
75
|
+
}
|
|
76
|
+
get inputType() {
|
|
77
|
+
return this._textField.inputType;
|
|
78
|
+
}
|
|
79
|
+
set inputType(value) {
|
|
80
|
+
this._textField.inputType = value;
|
|
81
|
+
}
|
|
82
|
+
get restrict() {
|
|
83
|
+
return this._textField.restrict;
|
|
84
|
+
}
|
|
85
|
+
set restrict(value) {
|
|
86
|
+
this._textField.restrict = value;
|
|
87
|
+
}
|
|
88
|
+
get selectionBeginIndex() {
|
|
89
|
+
return this._textField.selectionBeginIndex;
|
|
90
|
+
}
|
|
91
|
+
get selectionEndIndex() {
|
|
92
|
+
return this._textField.selectionEndIndex;
|
|
93
|
+
}
|
|
94
|
+
get caretIndex() {
|
|
95
|
+
return this._textField.caretIndex;
|
|
96
|
+
}
|
|
97
|
+
setFocus() {
|
|
98
|
+
this._textField.setFocus();
|
|
99
|
+
}
|
|
100
|
+
setSelection(beginIndex, endIndex) {
|
|
101
|
+
this._textField.setSelection(beginIndex, endIndex);
|
|
102
|
+
}
|
|
103
|
+
_showPrompt() {
|
|
104
|
+
if (!this._prompt)
|
|
105
|
+
return;
|
|
106
|
+
this._isShowingPrompt = true;
|
|
107
|
+
this._textField.textColor = this._promptColor;
|
|
108
|
+
this._textField.displayAsPassword = false;
|
|
109
|
+
this._textField.text = this._prompt;
|
|
110
|
+
}
|
|
111
|
+
_onFocusIn = () => {
|
|
112
|
+
this._isFocused = true;
|
|
113
|
+
if (this._isShowingPrompt) {
|
|
114
|
+
this._isShowingPrompt = false;
|
|
115
|
+
this._textField.textColor = this._userTextColor;
|
|
116
|
+
this._textField.displayAsPassword = this._asPassword;
|
|
117
|
+
this._textField.text = '';
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
_onFocusOut = () => {
|
|
121
|
+
this._isFocused = false;
|
|
122
|
+
if (!this._textField.text)
|
|
123
|
+
this._showPrompt();
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=EditableText.js.map
|