@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.
Files changed (326) hide show
  1. package/README.md +258 -0
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/kurot/binding/Binding.d.ts +38 -0
  7. package/dist/kurot/binding/Binding.d.ts.map +1 -0
  8. package/dist/kurot/binding/Binding.js +88 -0
  9. package/dist/kurot/binding/Binding.js.map +1 -0
  10. package/dist/kurot/binding/Watcher.d.ts +57 -0
  11. package/dist/kurot/binding/Watcher.d.ts.map +1 -0
  12. package/dist/kurot/binding/Watcher.js +119 -0
  13. package/dist/kurot/binding/Watcher.js.map +1 -0
  14. package/dist/kurot/binding/index.d.ts +3 -0
  15. package/dist/kurot/binding/index.d.ts.map +1 -0
  16. package/dist/kurot/binding/index.js +3 -0
  17. package/dist/kurot/binding/index.js.map +1 -0
  18. package/dist/kurot/collections/ArrayCollection.d.ts +56 -0
  19. package/dist/kurot/collections/ArrayCollection.d.ts.map +1 -0
  20. package/dist/kurot/collections/ArrayCollection.js +143 -0
  21. package/dist/kurot/collections/ArrayCollection.js.map +1 -0
  22. package/dist/kurot/collections/ICollection.d.ts +24 -0
  23. package/dist/kurot/collections/ICollection.d.ts.map +1 -0
  24. package/dist/kurot/collections/ICollection.js +2 -0
  25. package/dist/kurot/collections/ICollection.js.map +1 -0
  26. package/dist/kurot/collections/index.d.ts +3 -0
  27. package/dist/kurot/collections/index.d.ts.map +1 -0
  28. package/dist/kurot/collections/index.js +2 -0
  29. package/dist/kurot/collections/index.js.map +1 -0
  30. package/dist/kurot/components/Animation.d.ts +34 -0
  31. package/dist/kurot/components/Animation.d.ts.map +1 -0
  32. package/dist/kurot/components/Animation.js +100 -0
  33. package/dist/kurot/components/Animation.js.map +1 -0
  34. package/dist/kurot/components/Button.d.ts +61 -0
  35. package/dist/kurot/components/Button.d.ts.map +1 -0
  36. package/dist/kurot/components/Button.js +176 -0
  37. package/dist/kurot/components/Button.js.map +1 -0
  38. package/dist/kurot/components/CheckBox.d.ts +11 -0
  39. package/dist/kurot/components/CheckBox.d.ts.map +1 -0
  40. package/dist/kurot/components/CheckBox.js +13 -0
  41. package/dist/kurot/components/CheckBox.js.map +1 -0
  42. package/dist/kurot/components/ComboBox.d.ts +93 -0
  43. package/dist/kurot/components/ComboBox.d.ts.map +1 -0
  44. package/dist/kurot/components/ComboBox.js +307 -0
  45. package/dist/kurot/components/ComboBox.js.map +1 -0
  46. package/dist/kurot/components/Component.d.ts +203 -0
  47. package/dist/kurot/components/Component.d.ts.map +1 -0
  48. package/dist/kurot/components/Component.js +522 -0
  49. package/dist/kurot/components/Component.js.map +1 -0
  50. package/dist/kurot/components/DataGroup.d.ts +90 -0
  51. package/dist/kurot/components/DataGroup.d.ts.map +1 -0
  52. package/dist/kurot/components/DataGroup.js +483 -0
  53. package/dist/kurot/components/DataGroup.js.map +1 -0
  54. package/dist/kurot/components/EditableText.d.ts +44 -0
  55. package/dist/kurot/components/EditableText.d.ts.map +1 -0
  56. package/dist/kurot/components/EditableText.js +126 -0
  57. package/dist/kurot/components/EditableText.js.map +1 -0
  58. package/dist/kurot/components/Group.d.ts +133 -0
  59. package/dist/kurot/components/Group.d.ts.map +1 -0
  60. package/dist/kurot/components/Group.js +454 -0
  61. package/dist/kurot/components/Group.js.map +1 -0
  62. package/dist/kurot/components/HScrollBar.d.ts +13 -0
  63. package/dist/kurot/components/HScrollBar.d.ts.map +1 -0
  64. package/dist/kurot/components/HScrollBar.js +55 -0
  65. package/dist/kurot/components/HScrollBar.js.map +1 -0
  66. package/dist/kurot/components/HSlider.d.ts +17 -0
  67. package/dist/kurot/components/HSlider.d.ts.map +1 -0
  68. package/dist/kurot/components/HSlider.js +48 -0
  69. package/dist/kurot/components/HSlider.js.map +1 -0
  70. package/dist/kurot/components/Image.d.ts +35 -0
  71. package/dist/kurot/components/Image.d.ts.map +1 -0
  72. package/dist/kurot/components/Image.js +141 -0
  73. package/dist/kurot/components/Image.js.map +1 -0
  74. package/dist/kurot/components/ItemRenderer.d.ts +42 -0
  75. package/dist/kurot/components/ItemRenderer.d.ts.map +1 -0
  76. package/dist/kurot/components/ItemRenderer.js +117 -0
  77. package/dist/kurot/components/ItemRenderer.js.map +1 -0
  78. package/dist/kurot/components/Label.d.ts +49 -0
  79. package/dist/kurot/components/Label.d.ts.map +1 -0
  80. package/dist/kurot/components/Label.js +193 -0
  81. package/dist/kurot/components/Label.js.map +1 -0
  82. package/dist/kurot/components/List.d.ts +16 -0
  83. package/dist/kurot/components/List.d.ts.map +1 -0
  84. package/dist/kurot/components/List.js +34 -0
  85. package/dist/kurot/components/List.js.map +1 -0
  86. package/dist/kurot/components/ListBase.d.ts +61 -0
  87. package/dist/kurot/components/ListBase.d.ts.map +1 -0
  88. package/dist/kurot/components/ListBase.js +202 -0
  89. package/dist/kurot/components/ListBase.js.map +1 -0
  90. package/dist/kurot/components/Panel.d.ts +53 -0
  91. package/dist/kurot/components/Panel.d.ts.map +1 -0
  92. package/dist/kurot/components/Panel.js +145 -0
  93. package/dist/kurot/components/Panel.js.map +1 -0
  94. package/dist/kurot/components/ProgressBar.d.ts +48 -0
  95. package/dist/kurot/components/ProgressBar.d.ts.map +1 -0
  96. package/dist/kurot/components/ProgressBar.js +180 -0
  97. package/dist/kurot/components/ProgressBar.js.map +1 -0
  98. package/dist/kurot/components/RadioButton.d.ts +86 -0
  99. package/dist/kurot/components/RadioButton.d.ts.map +1 -0
  100. package/dist/kurot/components/RadioButton.js +246 -0
  101. package/dist/kurot/components/RadioButton.js.map +1 -0
  102. package/dist/kurot/components/Range.d.ts +41 -0
  103. package/dist/kurot/components/Range.d.ts.map +1 -0
  104. package/dist/kurot/components/Range.js +144 -0
  105. package/dist/kurot/components/Range.js.map +1 -0
  106. package/dist/kurot/components/Rect.d.ts +33 -0
  107. package/dist/kurot/components/Rect.d.ts.map +1 -0
  108. package/dist/kurot/components/Rect.js +125 -0
  109. package/dist/kurot/components/Rect.js.map +1 -0
  110. package/dist/kurot/components/ScrollBarBase.d.ts +27 -0
  111. package/dist/kurot/components/ScrollBarBase.d.ts.map +1 -0
  112. package/dist/kurot/components/ScrollBarBase.js +50 -0
  113. package/dist/kurot/components/ScrollBarBase.js.map +1 -0
  114. package/dist/kurot/components/Scroller.d.ts +82 -0
  115. package/dist/kurot/components/Scroller.d.ts.map +1 -0
  116. package/dist/kurot/components/Scroller.js +416 -0
  117. package/dist/kurot/components/Scroller.js.map +1 -0
  118. package/dist/kurot/components/Skin.d.ts +64 -0
  119. package/dist/kurot/components/Skin.d.ts.map +1 -0
  120. package/dist/kurot/components/Skin.js +136 -0
  121. package/dist/kurot/components/Skin.js.map +1 -0
  122. package/dist/kurot/components/SliderBase.d.ts +60 -0
  123. package/dist/kurot/components/SliderBase.d.ts.map +1 -0
  124. package/dist/kurot/components/SliderBase.js +197 -0
  125. package/dist/kurot/components/SliderBase.js.map +1 -0
  126. package/dist/kurot/components/TabBar.d.ts +29 -0
  127. package/dist/kurot/components/TabBar.d.ts.map +1 -0
  128. package/dist/kurot/components/TabBar.js +92 -0
  129. package/dist/kurot/components/TabBar.js.map +1 -0
  130. package/dist/kurot/components/TextInput.d.ts +49 -0
  131. package/dist/kurot/components/TextInput.d.ts.map +1 -0
  132. package/dist/kurot/components/TextInput.js +157 -0
  133. package/dist/kurot/components/TextInput.js.map +1 -0
  134. package/dist/kurot/components/ToggleButton.d.ts +11 -0
  135. package/dist/kurot/components/ToggleButton.d.ts.map +1 -0
  136. package/dist/kurot/components/ToggleButton.js +14 -0
  137. package/dist/kurot/components/ToggleButton.js.map +1 -0
  138. package/dist/kurot/components/ToggleSwitch.d.ts +10 -0
  139. package/dist/kurot/components/ToggleSwitch.d.ts.map +1 -0
  140. package/dist/kurot/components/ToggleSwitch.js +10 -0
  141. package/dist/kurot/components/ToggleSwitch.js.map +1 -0
  142. package/dist/kurot/components/TouchScroll.d.ts +38 -0
  143. package/dist/kurot/components/TouchScroll.d.ts.map +1 -0
  144. package/dist/kurot/components/TouchScroll.js +133 -0
  145. package/dist/kurot/components/TouchScroll.js.map +1 -0
  146. package/dist/kurot/components/UILayer.d.ts +14 -0
  147. package/dist/kurot/components/UILayer.d.ts.map +1 -0
  148. package/dist/kurot/components/UILayer.js +38 -0
  149. package/dist/kurot/components/UILayer.js.map +1 -0
  150. package/dist/kurot/components/VScrollBar.d.ts +13 -0
  151. package/dist/kurot/components/VScrollBar.d.ts.map +1 -0
  152. package/dist/kurot/components/VScrollBar.js +55 -0
  153. package/dist/kurot/components/VScrollBar.js.map +1 -0
  154. package/dist/kurot/components/VSlider.d.ts +17 -0
  155. package/dist/kurot/components/VSlider.d.ts.map +1 -0
  156. package/dist/kurot/components/VSlider.js +49 -0
  157. package/dist/kurot/components/VSlider.js.map +1 -0
  158. package/dist/kurot/components/ViewStack.d.ts +42 -0
  159. package/dist/kurot/components/ViewStack.d.ts.map +1 -0
  160. package/dist/kurot/components/ViewStack.js +160 -0
  161. package/dist/kurot/components/ViewStack.js.map +1 -0
  162. package/dist/kurot/components/index.d.ts +34 -0
  163. package/dist/kurot/components/index.d.ts.map +1 -0
  164. package/dist/kurot/components/index.js +34 -0
  165. package/dist/kurot/components/index.js.map +1 -0
  166. package/dist/kurot/core/AssetAdapterRegistry.d.ts +4 -0
  167. package/dist/kurot/core/AssetAdapterRegistry.d.ts.map +1 -0
  168. package/dist/kurot/core/AssetAdapterRegistry.js +9 -0
  169. package/dist/kurot/core/AssetAdapterRegistry.js.map +1 -0
  170. package/dist/kurot/core/DefaultAssetAdapter.d.ts +10 -0
  171. package/dist/kurot/core/DefaultAssetAdapter.d.ts.map +1 -0
  172. package/dist/kurot/core/DefaultAssetAdapter.js +22 -0
  173. package/dist/kurot/core/DefaultAssetAdapter.js.map +1 -0
  174. package/dist/kurot/core/DefaultThemeAdapter.d.ts +8 -0
  175. package/dist/kurot/core/DefaultThemeAdapter.d.ts.map +1 -0
  176. package/dist/kurot/core/DefaultThemeAdapter.js +27 -0
  177. package/dist/kurot/core/DefaultThemeAdapter.js.map +1 -0
  178. package/dist/kurot/core/Direction.d.ts +10 -0
  179. package/dist/kurot/core/Direction.d.ts.map +1 -0
  180. package/dist/kurot/core/Direction.js +10 -0
  181. package/dist/kurot/core/Direction.js.map +1 -0
  182. package/dist/kurot/core/IAssetAdapter.d.ts +15 -0
  183. package/dist/kurot/core/IAssetAdapter.d.ts.map +1 -0
  184. package/dist/kurot/core/IAssetAdapter.js +2 -0
  185. package/dist/kurot/core/IAssetAdapter.js.map +1 -0
  186. package/dist/kurot/core/IDisplayText.d.ts +12 -0
  187. package/dist/kurot/core/IDisplayText.d.ts.map +1 -0
  188. package/dist/kurot/core/IDisplayText.js +2 -0
  189. package/dist/kurot/core/IDisplayText.js.map +1 -0
  190. package/dist/kurot/core/IItemRenderer.d.ts +19 -0
  191. package/dist/kurot/core/IItemRenderer.d.ts.map +1 -0
  192. package/dist/kurot/core/IItemRenderer.js +2 -0
  193. package/dist/kurot/core/IItemRenderer.js.map +1 -0
  194. package/dist/kurot/core/IThemeAdapter.d.ts +14 -0
  195. package/dist/kurot/core/IThemeAdapter.d.ts.map +1 -0
  196. package/dist/kurot/core/IThemeAdapter.js +2 -0
  197. package/dist/kurot/core/IThemeAdapter.js.map +1 -0
  198. package/dist/kurot/core/IUIComponent.d.ts +63 -0
  199. package/dist/kurot/core/IUIComponent.d.ts.map +1 -0
  200. package/dist/kurot/core/IUIComponent.js +2 -0
  201. package/dist/kurot/core/IUIComponent.js.map +1 -0
  202. package/dist/kurot/core/IViewport.d.ts +12 -0
  203. package/dist/kurot/core/IViewport.d.ts.map +1 -0
  204. package/dist/kurot/core/IViewport.js +2 -0
  205. package/dist/kurot/core/IViewport.js.map +1 -0
  206. package/dist/kurot/core/ScrollPolicy.d.ts +9 -0
  207. package/dist/kurot/core/ScrollPolicy.d.ts.map +1 -0
  208. package/dist/kurot/core/ScrollPolicy.js +9 -0
  209. package/dist/kurot/core/ScrollPolicy.js.map +1 -0
  210. package/dist/kurot/core/Theme.d.ts +53 -0
  211. package/dist/kurot/core/Theme.d.ts.map +1 -0
  212. package/dist/kurot/core/Theme.js +169 -0
  213. package/dist/kurot/core/Theme.js.map +1 -0
  214. package/dist/kurot/core/UIComponent.d.ts +2 -0
  215. package/dist/kurot/core/UIComponent.d.ts.map +1 -0
  216. package/dist/kurot/core/UIComponent.js +4 -0
  217. package/dist/kurot/core/UIComponent.js.map +1 -0
  218. package/dist/kurot/core/UIState.d.ts +84 -0
  219. package/dist/kurot/core/UIState.d.ts.map +1 -0
  220. package/dist/kurot/core/UIState.js +512 -0
  221. package/dist/kurot/core/UIState.js.map +1 -0
  222. package/dist/kurot/core/Validator.d.ts +46 -0
  223. package/dist/kurot/core/Validator.d.ts.map +1 -0
  224. package/dist/kurot/core/Validator.js +368 -0
  225. package/dist/kurot/core/Validator.js.map +1 -0
  226. package/dist/kurot/core/index.d.ts +17 -0
  227. package/dist/kurot/core/index.d.ts.map +1 -0
  228. package/dist/kurot/core/index.js +10 -0
  229. package/dist/kurot/core/index.js.map +1 -0
  230. package/dist/kurot/events/CollectionEvent.d.ts +22 -0
  231. package/dist/kurot/events/CollectionEvent.d.ts.map +1 -0
  232. package/dist/kurot/events/CollectionEvent.js +37 -0
  233. package/dist/kurot/events/CollectionEvent.js.map +1 -0
  234. package/dist/kurot/events/ItemTapEvent.d.ts +11 -0
  235. package/dist/kurot/events/ItemTapEvent.d.ts.map +1 -0
  236. package/dist/kurot/events/ItemTapEvent.js +24 -0
  237. package/dist/kurot/events/ItemTapEvent.js.map +1 -0
  238. package/dist/kurot/events/PropertyEvent.d.ts +8 -0
  239. package/dist/kurot/events/PropertyEvent.d.ts.map +1 -0
  240. package/dist/kurot/events/PropertyEvent.js +20 -0
  241. package/dist/kurot/events/PropertyEvent.js.map +1 -0
  242. package/dist/kurot/events/ScrollerThrowEvent.d.ts +17 -0
  243. package/dist/kurot/events/ScrollerThrowEvent.d.ts.map +1 -0
  244. package/dist/kurot/events/ScrollerThrowEvent.js +22 -0
  245. package/dist/kurot/events/ScrollerThrowEvent.js.map +1 -0
  246. package/dist/kurot/events/UIEvent.d.ts +29 -0
  247. package/dist/kurot/events/UIEvent.d.ts.map +1 -0
  248. package/dist/kurot/events/UIEvent.js +39 -0
  249. package/dist/kurot/events/UIEvent.js.map +1 -0
  250. package/dist/kurot/events/index.d.ts +6 -0
  251. package/dist/kurot/events/index.d.ts.map +1 -0
  252. package/dist/kurot/events/index.js +6 -0
  253. package/dist/kurot/events/index.js.map +1 -0
  254. package/dist/kurot/layouts/BasicLayout.d.ts +13 -0
  255. package/dist/kurot/layouts/BasicLayout.d.ts.map +1 -0
  256. package/dist/kurot/layouts/BasicLayout.js +146 -0
  257. package/dist/kurot/layouts/BasicLayout.js.map +1 -0
  258. package/dist/kurot/layouts/ColumnAlign.d.ts +9 -0
  259. package/dist/kurot/layouts/ColumnAlign.d.ts.map +1 -0
  260. package/dist/kurot/layouts/ColumnAlign.js +9 -0
  261. package/dist/kurot/layouts/ColumnAlign.js.map +1 -0
  262. package/dist/kurot/layouts/HorizontalLayout.d.ts +23 -0
  263. package/dist/kurot/layouts/HorizontalLayout.d.ts.map +1 -0
  264. package/dist/kurot/layouts/HorizontalLayout.js +405 -0
  265. package/dist/kurot/layouts/HorizontalLayout.js.map +1 -0
  266. package/dist/kurot/layouts/ILayoutTarget.d.ts +25 -0
  267. package/dist/kurot/layouts/ILayoutTarget.d.ts.map +1 -0
  268. package/dist/kurot/layouts/ILayoutTarget.js +2 -0
  269. package/dist/kurot/layouts/ILayoutTarget.js.map +1 -0
  270. package/dist/kurot/layouts/JustifyAlign.d.ts +8 -0
  271. package/dist/kurot/layouts/JustifyAlign.d.ts.map +1 -0
  272. package/dist/kurot/layouts/JustifyAlign.js +8 -0
  273. package/dist/kurot/layouts/JustifyAlign.js.map +1 -0
  274. package/dist/kurot/layouts/LayoutBase.d.ts +23 -0
  275. package/dist/kurot/layouts/LayoutBase.d.ts.map +1 -0
  276. package/dist/kurot/layouts/LayoutBase.js +45 -0
  277. package/dist/kurot/layouts/LayoutBase.js.map +1 -0
  278. package/dist/kurot/layouts/LinearLayoutBase.d.ts +70 -0
  279. package/dist/kurot/layouts/LinearLayoutBase.d.ts.map +1 -0
  280. package/dist/kurot/layouts/LinearLayoutBase.js +246 -0
  281. package/dist/kurot/layouts/LinearLayoutBase.js.map +1 -0
  282. package/dist/kurot/layouts/RowAlign.d.ts +9 -0
  283. package/dist/kurot/layouts/RowAlign.d.ts.map +1 -0
  284. package/dist/kurot/layouts/RowAlign.js +9 -0
  285. package/dist/kurot/layouts/RowAlign.js.map +1 -0
  286. package/dist/kurot/layouts/TileLayout.d.ts +79 -0
  287. package/dist/kurot/layouts/TileLayout.d.ts.map +1 -0
  288. package/dist/kurot/layouts/TileLayout.js +577 -0
  289. package/dist/kurot/layouts/TileLayout.js.map +1 -0
  290. package/dist/kurot/layouts/TileOrientation.d.ts +8 -0
  291. package/dist/kurot/layouts/TileOrientation.d.ts.map +1 -0
  292. package/dist/kurot/layouts/TileOrientation.js +8 -0
  293. package/dist/kurot/layouts/TileOrientation.js.map +1 -0
  294. package/dist/kurot/layouts/VerticalLayout.d.ts +23 -0
  295. package/dist/kurot/layouts/VerticalLayout.d.ts.map +1 -0
  296. package/dist/kurot/layouts/VerticalLayout.js +406 -0
  297. package/dist/kurot/layouts/VerticalLayout.js.map +1 -0
  298. package/dist/kurot/layouts/index.d.ts +12 -0
  299. package/dist/kurot/layouts/index.d.ts.map +1 -0
  300. package/dist/kurot/layouts/index.js +11 -0
  301. package/dist/kurot/layouts/index.js.map +1 -0
  302. package/dist/kurot/states/AddItems.d.ts +17 -0
  303. package/dist/kurot/states/AddItems.d.ts.map +1 -0
  304. package/dist/kurot/states/AddItems.js +42 -0
  305. package/dist/kurot/states/AddItems.js.map +1 -0
  306. package/dist/kurot/states/IOverride.d.ts +12 -0
  307. package/dist/kurot/states/IOverride.d.ts.map +1 -0
  308. package/dist/kurot/states/IOverride.js +2 -0
  309. package/dist/kurot/states/IOverride.js.map +1 -0
  310. package/dist/kurot/states/SetProperty.d.ts +19 -0
  311. package/dist/kurot/states/SetProperty.d.ts.map +1 -0
  312. package/dist/kurot/states/SetProperty.js +50 -0
  313. package/dist/kurot/states/SetProperty.js.map +1 -0
  314. package/dist/kurot/states/SetStateProperty.d.ts +17 -0
  315. package/dist/kurot/states/SetStateProperty.d.ts.map +1 -0
  316. package/dist/kurot/states/SetStateProperty.js +35 -0
  317. package/dist/kurot/states/SetStateProperty.js.map +1 -0
  318. package/dist/kurot/states/State.d.ts +14 -0
  319. package/dist/kurot/states/State.d.ts.map +1 -0
  320. package/dist/kurot/states/State.js +18 -0
  321. package/dist/kurot/states/State.js.map +1 -0
  322. package/dist/kurot/states/index.d.ts +6 -0
  323. package/dist/kurot/states/index.d.ts.map +1 -0
  324. package/dist/kurot/states/index.js +5 -0
  325. package/dist/kurot/states/index.js.map +1 -0
  326. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,522 @@
1
+ import { Sprite, Rectangle, Event } from '@kurot/core';
2
+ import { UIState, isUIComponent } from '../core/UIState.js';
3
+ import { BasicLayout } from '../layouts/BasicLayout.js';
4
+ import { getTheme } from '../core/Theme.js';
5
+ import { PropertyEvent } from '../events/PropertyEvent.js';
6
+ import { UIEvent } from '../events/UIEvent.js';
7
+ /**
8
+ * Base class for all skinnable UI components.
9
+ *
10
+ * Subclasses should:
11
+ * 1. Override `getCurrentState()` to return the current view-state name.
12
+ * 2. Override `partAdded()` to bind skin parts to component logic.
13
+ * 3. Override `partRemoved()` to clean up skin part bindings.
14
+ * 4. Override `createChildren()` to perform one-time initialization.
15
+ */
16
+ export class Component extends Sprite {
17
+ // ── Instance fields ───────────────────────────────────────────────────
18
+ ui;
19
+ skinNameExplicitlySet = false;
20
+ _hostComponentKey;
21
+ _skinName;
22
+ _skin;
23
+ _enabled = true;
24
+ _explicitTouchEnabled = true;
25
+ _explicitTouchChildren = true;
26
+ _explicitState = '';
27
+ _stateIsDirty = false;
28
+ // ── Constructor ───────────────────────────────────────────────────────
29
+ constructor() {
30
+ super();
31
+ this.ui = new UIState(this);
32
+ this.touchEnabled = true;
33
+ }
34
+ // ── Getters / Setters ─────────────────────────────────────────────────
35
+ /**
36
+ * Key used to look up the default skin in the active Theme.
37
+ * Defaults to the component's class name if not set.
38
+ */
39
+ get hostComponentKey() {
40
+ return this._hostComponentKey ?? this.constructor.name ?? '';
41
+ }
42
+ set hostComponentKey(value) {
43
+ this._hostComponentKey = value;
44
+ }
45
+ /**
46
+ * Skin identifier. Can be:
47
+ * - A Skin subclass constructor
48
+ * - A Skin instance
49
+ * - A class name string (resolved via global scope)
50
+ */
51
+ get skinName() {
52
+ return this._skinName;
53
+ }
54
+ set skinName(value) {
55
+ this.skinNameExplicitlySet = true;
56
+ if (this._skinName === value)
57
+ return;
58
+ this._skinName = value;
59
+ this._parseSkinName();
60
+ }
61
+ get skin() {
62
+ return this._skin;
63
+ }
64
+ get enabled() {
65
+ return this._enabled;
66
+ }
67
+ /**
68
+ * Enable or disable this component (and its children).
69
+ *
70
+ * Mirrors egret's `$setEnabled`: writes `touchEnabled` / `touchChildren`
71
+ * directly at the display-object level (via `super`) so that:
72
+ *
73
+ * 1. The display-layer values change immediately (disabled components are
74
+ * skipped in hit-testing, just like egret).
75
+ * 2. `_explicitTouchEnabled` / `_explicitTouchChildren` survive the
76
+ * disable→enable cycle so the original intent is restored on re-enable.
77
+ */
78
+ set enabled(value) {
79
+ value = !!value;
80
+ if (this._enabled === value)
81
+ return;
82
+ this._enabled = value;
83
+ if (value) {
84
+ super.touchEnabled = this._explicitTouchEnabled;
85
+ super.touchChildren = this._explicitTouchChildren;
86
+ }
87
+ else {
88
+ super.touchEnabled = false;
89
+ super.touchChildren = false;
90
+ }
91
+ this.invalidateState();
92
+ }
93
+ /**
94
+ * The current view state. Setting this explicitly overrides `getCurrentState()`.
95
+ * Set to `''` to revert to the computed state.
96
+ */
97
+ get currentState() {
98
+ return this._explicitState || this.getCurrentState();
99
+ }
100
+ set currentState(value) {
101
+ if (this._explicitState === value)
102
+ return;
103
+ this._explicitState = value;
104
+ this.invalidateState();
105
+ }
106
+ get includeInLayout() {
107
+ return this.ui.includeInLayout;
108
+ }
109
+ set includeInLayout(v) {
110
+ this.ui.includeInLayout = v;
111
+ }
112
+ get left() {
113
+ return this.ui.left;
114
+ }
115
+ set left(v) {
116
+ this.ui.left = v;
117
+ }
118
+ get right() {
119
+ return this.ui.right;
120
+ }
121
+ set right(v) {
122
+ this.ui.right = v;
123
+ }
124
+ get top() {
125
+ return this.ui.top;
126
+ }
127
+ set top(v) {
128
+ this.ui.top = v;
129
+ }
130
+ get bottom() {
131
+ return this.ui.bottom;
132
+ }
133
+ set bottom(v) {
134
+ this.ui.bottom = v;
135
+ }
136
+ get horizontalCenter() {
137
+ return this.ui.horizontalCenter;
138
+ }
139
+ set horizontalCenter(v) {
140
+ this.ui.horizontalCenter = v;
141
+ }
142
+ get verticalCenter() {
143
+ return this.ui.verticalCenter;
144
+ }
145
+ set verticalCenter(v) {
146
+ this.ui.verticalCenter = v;
147
+ }
148
+ get percentWidth() {
149
+ return this.ui.percentWidth;
150
+ }
151
+ set percentWidth(v) {
152
+ this.ui.percentWidth = v;
153
+ }
154
+ get percentHeight() {
155
+ return this.ui.percentHeight;
156
+ }
157
+ set percentHeight(v) {
158
+ this.ui.percentHeight = v;
159
+ }
160
+ $updateUseTransform() {
161
+ super.$updateUseTransform();
162
+ this.ui.$invalidateParentLayout();
163
+ }
164
+ $setMatrix(matrix, needUpdateProperties = true) {
165
+ super.$setMatrix(matrix, needUpdateProperties);
166
+ this.ui.$invalidateParentLayout();
167
+ }
168
+ $setAnchorOffsetX(value) {
169
+ if (this.$anchorOffsetX === value)
170
+ return;
171
+ super.$setAnchorOffsetX(value);
172
+ this.ui.$invalidateParentLayout();
173
+ }
174
+ $setAnchorOffsetY(value) {
175
+ if (this.$anchorOffsetY === value)
176
+ return;
177
+ super.$setAnchorOffsetY(value);
178
+ this.ui.$invalidateParentLayout();
179
+ }
180
+ $setX(value) {
181
+ const changed = super.$setX(value);
182
+ if (changed) {
183
+ this.ui.$invalidateParentLayout();
184
+ this.invalidateProperties();
185
+ }
186
+ return changed;
187
+ }
188
+ $setY(value) {
189
+ const changed = super.$setY(value);
190
+ if (changed) {
191
+ this.ui.$invalidateParentLayout();
192
+ this.invalidateProperties();
193
+ }
194
+ return changed;
195
+ }
196
+ get width() {
197
+ return this.ui.getWidth();
198
+ }
199
+ set width(v) {
200
+ this.ui.setWidth(v);
201
+ }
202
+ get height() {
203
+ return this.ui.getHeight();
204
+ }
205
+ set height(v) {
206
+ this.ui.setHeight(v);
207
+ }
208
+ get minWidth() {
209
+ return this.ui.minWidth;
210
+ }
211
+ set minWidth(v) {
212
+ this.ui.minWidth = v;
213
+ }
214
+ get maxWidth() {
215
+ return this.ui.maxWidth;
216
+ }
217
+ set maxWidth(v) {
218
+ this.ui.maxWidth = v;
219
+ }
220
+ get minHeight() {
221
+ return this.ui.minHeight;
222
+ }
223
+ set minHeight(v) {
224
+ this.ui.minHeight = v;
225
+ }
226
+ get maxHeight() {
227
+ return this.ui.maxHeight;
228
+ }
229
+ set maxHeight(v) {
230
+ this.ui.maxHeight = v;
231
+ }
232
+ get numElements() {
233
+ return this.numChildren;
234
+ }
235
+ get contentWidth() {
236
+ return this.width;
237
+ }
238
+ get contentHeight() {
239
+ return this.height;
240
+ }
241
+ get scrollH() {
242
+ return 0;
243
+ }
244
+ set scrollH(_v) {
245
+ /* no-op for Component */
246
+ }
247
+ get scrollV() {
248
+ return 0;
249
+ }
250
+ set scrollV(_v) {
251
+ /* no-op for Component */
252
+ }
253
+ // ── Public methods ────────────────────────────────────────────────────
254
+ _applySkinName(skinName) {
255
+ this._skinName = skinName;
256
+ this._parseSkinName();
257
+ this.invalidateProperties();
258
+ }
259
+ /**
260
+ * Bind a skin part instance to this component.
261
+ * Called automatically when a skin is attached.
262
+ */
263
+ setSkinPart(partName, instance) {
264
+ const self = this;
265
+ const old = self[partName];
266
+ if (old)
267
+ this.partRemoved(partName, old);
268
+ self[partName] = instance;
269
+ if (instance)
270
+ this.partAdded(partName, instance);
271
+ }
272
+ /**
273
+ * Whether the display object receives touch events.
274
+ *
275
+ * Unlike the setter, reading this property always returns the *actual*
276
+ * display-level value — even when the component is disabled (the setter
277
+ * deliberately preserves `_explicitTouchEnabled` for the next `enabled`
278
+ * restore, so the getter must bypass that layer).
279
+ */
280
+ get touchEnabled() {
281
+ return super.touchEnabled;
282
+ }
283
+ set touchEnabled(value) {
284
+ this._explicitTouchEnabled = value;
285
+ if (this._enabled)
286
+ super.touchEnabled = value;
287
+ }
288
+ get touchChildren() {
289
+ return super.touchChildren;
290
+ }
291
+ set touchChildren(value) {
292
+ this._explicitTouchChildren = value;
293
+ if (this._enabled)
294
+ super.touchChildren = value;
295
+ }
296
+ /**
297
+ * Mark the view state as dirty so it will be re-applied on next commit.
298
+ */
299
+ invalidateState() {
300
+ if (this._stateIsDirty)
301
+ return;
302
+ this._stateIsDirty = true;
303
+ this.invalidateProperties();
304
+ }
305
+ getElementAt(index) {
306
+ return this.getChildAt(index);
307
+ }
308
+ getVirtualElementAt(index) {
309
+ return this.getChildAt(index);
310
+ }
311
+ setVirtualElementIndicesInView(_startIndex, _endIndex) {
312
+ /* no-op for Component */
313
+ }
314
+ setContentSize(_w, _h) { }
315
+ setMeasuredSize(w, h) {
316
+ this.ui.setMeasuredSize(w, h);
317
+ }
318
+ invalidateProperties() {
319
+ this.ui.invalidateProperties();
320
+ }
321
+ validateProperties() {
322
+ this.ui.validateProperties();
323
+ }
324
+ invalidateSize() {
325
+ this.ui.invalidateSize();
326
+ }
327
+ validateSize(recursive) {
328
+ this.ui.validateSize(recursive);
329
+ }
330
+ invalidateDisplayList() {
331
+ this.ui.invalidateDisplayList();
332
+ }
333
+ validateDisplayList() {
334
+ this.ui.validateDisplayList();
335
+ }
336
+ validateNow() {
337
+ this.ui.validateNow();
338
+ }
339
+ setLayoutBoundsSize(lw, lh) {
340
+ this.ui.setLayoutBoundsSize(lw, lh);
341
+ }
342
+ setLayoutBoundsPosition(x, y) {
343
+ this.ui.setLayoutBoundsPosition(x, y);
344
+ }
345
+ getLayoutBounds(bounds) {
346
+ this.ui.getLayoutBounds(bounds);
347
+ }
348
+ getPreferredBounds(bounds) {
349
+ this.ui.getPreferredBounds(bounds);
350
+ }
351
+ // ── Override methods ──────────────────────────────────────────────────
352
+ $onAddToStage(stage, $nestLevel) {
353
+ super.$onAddToStage(stage, $nestLevel);
354
+ this.ui.$onAddToStage();
355
+ }
356
+ childAdded(_child, _index) {
357
+ this.invalidateSize();
358
+ this.invalidateDisplayList();
359
+ }
360
+ childRemoved(_child, _index) {
361
+ this.invalidateSize();
362
+ this.invalidateDisplayList();
363
+ }
364
+ addEventListener(type,
365
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
366
+ listener, useCapture, priority) {
367
+ super.addEventListener(type, listener, useCapture, priority);
368
+ }
369
+ removeEventListener(type,
370
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
371
+ listener, useCapture) {
372
+ super.removeEventListener(type, listener, useCapture);
373
+ }
374
+ // ── IUIOwner lifecycle ────────────────────────────────────────────────
375
+ createChildren() {
376
+ if (!this._skinName) {
377
+ const theme = getTheme();
378
+ if (theme) {
379
+ const skinName = theme.getSkinName(this);
380
+ if (skinName)
381
+ this._applySkinName(skinName);
382
+ }
383
+ }
384
+ }
385
+ childrenCreated() { }
386
+ commitProperties() {
387
+ this.ui.onCommitProperties();
388
+ if (this._stateIsDirty) {
389
+ this._stateIsDirty = false;
390
+ if (this._skin)
391
+ this._skin.currentState = this.currentState;
392
+ }
393
+ }
394
+ measure() {
395
+ _basicLayout.target = this;
396
+ _basicLayout.measure();
397
+ _basicLayout.target = undefined;
398
+ const skin = this._skin;
399
+ if (!skin)
400
+ return;
401
+ const bounds = new Rectangle();
402
+ this.getPreferredBounds(bounds);
403
+ let mw = bounds.width;
404
+ let mh = bounds.height;
405
+ if (!isNaN(skin.width)) {
406
+ mw = skin.width;
407
+ }
408
+ else {
409
+ mw = Math.max(Math.min(mw, skin.maxWidth), skin.minWidth);
410
+ }
411
+ if (!isNaN(skin.height)) {
412
+ mh = skin.height;
413
+ }
414
+ else {
415
+ mh = Math.max(Math.min(mh, skin.maxHeight), skin.minHeight);
416
+ }
417
+ this.setMeasuredSize(mw, mh);
418
+ }
419
+ updateDisplayList(w, h) {
420
+ _basicLayout.target = this;
421
+ _basicLayout.updateDisplayList(w, h);
422
+ _basicLayout.target = undefined;
423
+ }
424
+ // ── Protected methods ─────────────────────────────────────────────────
425
+ setSkin(skin) {
426
+ this._setSkin(skin);
427
+ }
428
+ /**
429
+ * Called when a skin part is added. Override to bind event listeners
430
+ * or apply cached property values to the part.
431
+ */
432
+ partAdded(_partName, _instance) { }
433
+ /**
434
+ * Called when a skin part is removed. Override to clean up listeners
435
+ * and cached references.
436
+ */
437
+ partRemoved(_partName, _instance) { }
438
+ /**
439
+ * Return the current view-state name. Override in subclasses.
440
+ */
441
+ getCurrentState() {
442
+ return this._enabled ? '' : 'disabled';
443
+ }
444
+ // ── Private methods ───────────────────────────────────────────────────
445
+ _parseSkinName() {
446
+ const skinName = this._skinName;
447
+ let skin;
448
+ if (skinName) {
449
+ if (typeof skinName === 'function') {
450
+ skin = this._invokeSkinFactory(skinName);
451
+ }
452
+ else if (typeof skinName === 'string') {
453
+ const clazz = globalThis[skinName];
454
+ if (clazz)
455
+ skin = this._invokeSkinFactory(clazz);
456
+ }
457
+ else {
458
+ skin = skinName;
459
+ }
460
+ }
461
+ this._setSkin(skin);
462
+ // After the skin is applied, bind any deferred watchers so that
463
+ // Binding.bindProperty(this, ...) calls inside the factory resolve `this`
464
+ // to this component.
465
+ }
466
+ /**
467
+ * Invoke a skin factory function with `this` (the host component) as context.
468
+ *
469
+ * EXML-compiled skins are factory functions (not class constructors) that use
470
+ * `this` for `Binding.bindProperty(this, ...)`. Calling with `.call(this)` ensures
471
+ * the bindings watch the host component, not a `new`-target blank object.
472
+ *
473
+ * For genuine ES class constructors (e.g. a user-written `class MySkin extends Skin`),
474
+ * `.call(this)` would throw `TypeError: Class constructor cannot be invoked without
475
+ * 'new'`, so we detect class constructors by their string representation and use `new`
476
+ * instead. This secondary path never has correct binding-`this`, so user skins should
477
+ * always be factory functions when they contain EXML `{…}` bindings.
478
+ */
479
+ _invokeSkinFactory(factory) {
480
+ const fn = factory;
481
+ // Detect genuine class constructors: `Function.prototype.toString()` returns
482
+ // a string starting with "class" for ES classes. Plain functions never do.
483
+ const isClass = typeof fn === 'function' && /^class\s/.test(Function.prototype.toString.call(fn));
484
+ const result = isClass ? new factory() : fn.call(this);
485
+ return (result && typeof result === 'object' && 'skinParts' in result) ? result : undefined;
486
+ }
487
+ _setSkin(skin) {
488
+ const oldSkin = this._skin;
489
+ if (oldSkin) {
490
+ // Exit the active state while its host and display hierarchy are still
491
+ // intact, then detach bindings, parts and visual elements.
492
+ oldSkin.hostComponent = undefined;
493
+ oldSkin.unwatchAll();
494
+ for (const partName of oldSkin.skinParts) {
495
+ if (this[partName])
496
+ this.setSkinPart(partName, undefined);
497
+ }
498
+ for (const child of oldSkin.elementsContent) {
499
+ if (child.parent === this)
500
+ this.removeChild(child);
501
+ }
502
+ }
503
+ this._skin = skin;
504
+ if (skin) {
505
+ for (const partName of skin.skinParts) {
506
+ const instance = skin.getPart(partName);
507
+ if (instance)
508
+ this.setSkinPart(partName, instance);
509
+ }
510
+ for (let i = skin.elementsContent.length - 1; i >= 0; i--) {
511
+ this.addChildAt(skin.elementsContent[i], 0);
512
+ }
513
+ skin.hostComponent = this;
514
+ }
515
+ this.invalidateSize();
516
+ this.invalidateDisplayList();
517
+ this.dispatchEventWith(Event.COMPLETE);
518
+ }
519
+ }
520
+ const _basicLayout = new BasicLayout();
521
+ export { isUIComponent };
522
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/kurot/components/Component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { DisplayObject } from '@kurot/core';
2
+ import { Group } from './Group.js';
3
+ import { ItemRenderer } from './ItemRenderer.js';
4
+ import { CollectionEvent } from '../events/CollectionEvent.js';
5
+ import type { ICollection } from '../collections/ICollection.js';
6
+ import type { Skin } from './Skin.js';
7
+ type SkinName = string | (new () => Skin) | Skin | undefined;
8
+ /**
9
+ * DataGroup converts data items into visual elements (item renderers).
10
+ *
11
+ * Provide an {@link ICollection} via `dataProvider` and either set
12
+ * `itemRenderer` to a class or supply `itemRendererFunction` for
13
+ * per-item renderer resolution.
14
+ *
15
+ * Supports virtual layout — only creates renderers for visible items.
16
+ *
17
+ * @defaultProperty dataProvider
18
+ */
19
+ export declare class DataGroup extends Group {
20
+ private _dataProvider?;
21
+ private _dataProviderChanged;
22
+ private _itemRenderer?;
23
+ private _itemRendererChanged;
24
+ private _itemRendererFunction?;
25
+ private _itemRendererSkinName;
26
+ private _itemRendererSkinNameChanged;
27
+ private _useVirtualLayout;
28
+ private _useVirtualLayoutChanged;
29
+ private readonly _rendererToClass;
30
+ private readonly _freeRenderers;
31
+ private _renderersBeingUpdated;
32
+ private _indexToRenderer;
33
+ private _createNewRendererFlag;
34
+ private _typicalLayoutRect?;
35
+ private _typicalItem;
36
+ private _typicalItemChanged;
37
+ private _cleanFreeRenderer;
38
+ get dataProvider(): ICollection | undefined;
39
+ set dataProvider(value: ICollection | undefined);
40
+ get itemRenderer(): (new () => ItemRenderer) | undefined;
41
+ set itemRenderer(value: (new () => ItemRenderer) | undefined);
42
+ get itemRendererFunction(): ((item: unknown) => (new () => ItemRenderer) | undefined) | undefined;
43
+ set itemRendererFunction(value: ((item: unknown) => (new () => ItemRenderer) | undefined) | undefined);
44
+ get itemRendererSkinName(): SkinName;
45
+ set itemRendererSkinName(value: SkinName);
46
+ get useVirtualLayout(): boolean;
47
+ set useVirtualLayout(value: boolean);
48
+ /**
49
+ * Update a renderer's itemIndex and data. Called by the layout system.
50
+ */
51
+ updateRenderer(renderer: ItemRenderer, itemIndex: number, data: unknown): ItemRenderer;
52
+ get numElements(): number;
53
+ getElementAt(index: number): DisplayObject | undefined;
54
+ getVirtualElementAt(index: number): DisplayObject | undefined;
55
+ setVirtualElementIndicesInView(startIndex: number, endIndex: number): void;
56
+ createChildren(): void;
57
+ commitProperties(): void;
58
+ measure(): void;
59
+ updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
60
+ protected itemAdded(item: unknown, index: number): void;
61
+ protected itemRemoved(item: unknown, index: number): void;
62
+ protected onCollectionChange(event: CollectionEvent): void;
63
+ protected rendererAdded(_renderer: ItemRenderer, _index: number, _item: unknown): void;
64
+ protected rendererRemoved(_renderer: ItemRenderer, _index: number, _item: unknown): void;
65
+ /**
66
+ * Get the renderer at the given index, if one exists.
67
+ * Used by subclasses (e.g. ListBase) to update renderer state.
68
+ */
69
+ protected getRendererAt(index: number): ItemRenderer | undefined;
70
+ private _removeDataProviderListener;
71
+ private _onCollectionChange;
72
+ private _itemAddedHandler;
73
+ private _itemRemovedHandler;
74
+ private _itemUpdatedHandler;
75
+ private _createVirtualRenderer;
76
+ private _createOneRenderer;
77
+ private _doFreeRenderer;
78
+ private _freeRendererByIndex;
79
+ private _itemToRendererClass;
80
+ private _createRenderers;
81
+ private _removeAllRenderers;
82
+ private _resetRenderersIndices;
83
+ private _ensureTypicalLayoutElement;
84
+ private _measureRendererSize;
85
+ private _setTypicalLayoutRect;
86
+ private _setItemRendererSkinName;
87
+ private _applyItemRendererSkinName;
88
+ }
89
+ export {};
90
+ //# sourceMappingURL=DataGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGroup.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/DataGroup.ts"],"names":[],"mappings":"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"}