@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,512 @@
1
+ import { DisplayObjectContainer, Rectangle, Matrix, Event } from '@kurot/core';
2
+ import { validator } from './Validator.js';
3
+ import { UIEvent } from '../events/UIEvent.js';
4
+ function isDeltaIdentity(m) {
5
+ return m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1;
6
+ }
7
+ /**
8
+ * Encapsulates all UI layout state and logic for a component.
9
+ *
10
+ * Instead of using a mixin, Group and Component each hold a UIState instance
11
+ * and delegate all IUIComponent method calls to it. This keeps the class
12
+ * hierarchy clean and avoids prototype manipulation.
13
+ */
14
+ export class UIState {
15
+ // ── Instance fields ───────────────────────────────────────────────────
16
+ _v;
17
+ _includeInLayout = true;
18
+ _owner;
19
+ // ── Constructor ───────────────────────────────────────────────────────
20
+ constructor(owner) {
21
+ this._owner = owner;
22
+ this._v = {
23
+ [0 /* K.left */]: NaN,
24
+ [1 /* K.right */]: NaN,
25
+ [2 /* K.top */]: NaN,
26
+ [3 /* K.bottom */]: NaN,
27
+ [4 /* K.horizontalCenter */]: NaN,
28
+ [5 /* K.verticalCenter */]: NaN,
29
+ [6 /* K.percentWidth */]: NaN,
30
+ [7 /* K.percentHeight */]: NaN,
31
+ [8 /* K.$explicitWidth */]: NaN,
32
+ [9 /* K.$explicitHeight */]: NaN,
33
+ [10 /* K.width */]: 0,
34
+ [11 /* K.height */]: 0,
35
+ [12 /* K.minWidth */]: 0,
36
+ [13 /* K.maxWidth */]: 100000,
37
+ [14 /* K.minHeight */]: 0,
38
+ [15 /* K.maxHeight */]: 100000,
39
+ [16 /* K.measuredWidth */]: 0,
40
+ [17 /* K.measuredHeight */]: 0,
41
+ [18 /* K.oldPreferWidth */]: NaN,
42
+ [19 /* K.oldPreferHeight */]: NaN,
43
+ [20 /* K.oldX */]: 0,
44
+ [21 /* K.oldY */]: 0,
45
+ [22 /* K.oldWidth */]: 0,
46
+ [23 /* K.oldHeight */]: 0,
47
+ [24 /* K.invalidatePropertiesFlag */]: true,
48
+ [25 /* K.invalidateSizeFlag */]: true,
49
+ [26 /* K.invalidateDisplayListFlag */]: true,
50
+ [27 /* K.layoutWidthExplicitlySet */]: false,
51
+ [28 /* K.layoutHeightExplicitlySet */]: false,
52
+ [29 /* K.initialized */]: false,
53
+ };
54
+ }
55
+ // ── Getters / Setters ─────────────────────────────────────────────────
56
+ get includeInLayout() {
57
+ return this._includeInLayout;
58
+ }
59
+ set includeInLayout(value) {
60
+ value = !!value;
61
+ if (this._includeInLayout === value)
62
+ return;
63
+ this._includeInLayout = value;
64
+ this.$invalidateParentLayout();
65
+ }
66
+ get left() {
67
+ return this._v[0 /* K.left */];
68
+ }
69
+ set left(value) {
70
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
71
+ if (this._v[0 /* K.left */] === v)
72
+ return;
73
+ this._v[0 /* K.left */] = v;
74
+ this.$invalidateParentLayout();
75
+ }
76
+ get right() {
77
+ return this._v[1 /* K.right */];
78
+ }
79
+ set right(value) {
80
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
81
+ if (this._v[1 /* K.right */] === v)
82
+ return;
83
+ this._v[1 /* K.right */] = v;
84
+ this.$invalidateParentLayout();
85
+ }
86
+ get top() {
87
+ return this._v[2 /* K.top */];
88
+ }
89
+ set top(value) {
90
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
91
+ if (this._v[2 /* K.top */] === v)
92
+ return;
93
+ this._v[2 /* K.top */] = v;
94
+ this.$invalidateParentLayout();
95
+ }
96
+ get bottom() {
97
+ return this._v[3 /* K.bottom */];
98
+ }
99
+ set bottom(value) {
100
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
101
+ if (this._v[3 /* K.bottom */] === v)
102
+ return;
103
+ this._v[3 /* K.bottom */] = v;
104
+ this.$invalidateParentLayout();
105
+ }
106
+ get horizontalCenter() {
107
+ return this._v[4 /* K.horizontalCenter */];
108
+ }
109
+ set horizontalCenter(value) {
110
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
111
+ if (this._v[4 /* K.horizontalCenter */] === v)
112
+ return;
113
+ this._v[4 /* K.horizontalCenter */] = v;
114
+ this.$invalidateParentLayout();
115
+ }
116
+ get verticalCenter() {
117
+ return this._v[5 /* K.verticalCenter */];
118
+ }
119
+ set verticalCenter(value) {
120
+ const v = typeof value === 'number' || !value ? +value : String(value).trim();
121
+ if (this._v[5 /* K.verticalCenter */] === v)
122
+ return;
123
+ this._v[5 /* K.verticalCenter */] = v;
124
+ this.$invalidateParentLayout();
125
+ }
126
+ get percentWidth() {
127
+ return this._v[6 /* K.percentWidth */];
128
+ }
129
+ set percentWidth(value) {
130
+ value = +value;
131
+ if (this._v[6 /* K.percentWidth */] === value)
132
+ return;
133
+ this._v[6 /* K.percentWidth */] = value;
134
+ this.$invalidateParentLayout();
135
+ }
136
+ get percentHeight() {
137
+ return this._v[7 /* K.percentHeight */];
138
+ }
139
+ set percentHeight(value) {
140
+ value = +value;
141
+ if (this._v[7 /* K.percentHeight */] === value)
142
+ return;
143
+ this._v[7 /* K.percentHeight */] = value;
144
+ this.$invalidateParentLayout();
145
+ }
146
+ get $explicitWidth() {
147
+ return this._owner.$explicitWidth;
148
+ }
149
+ get $explicitHeight() {
150
+ return this._owner.$explicitHeight;
151
+ }
152
+ get minWidth() {
153
+ return this._v[12 /* K.minWidth */];
154
+ }
155
+ set minWidth(value) {
156
+ value = +value || 0;
157
+ if (value < 0 || this._v[12 /* K.minWidth */] === value)
158
+ return;
159
+ this._v[12 /* K.minWidth */] = value;
160
+ this.invalidateSize();
161
+ this.$invalidateParentLayout();
162
+ }
163
+ get maxWidth() {
164
+ return this._v[13 /* K.maxWidth */];
165
+ }
166
+ set maxWidth(value) {
167
+ value = +value || 0;
168
+ if (value < 0 || this._v[13 /* K.maxWidth */] === value)
169
+ return;
170
+ this._v[13 /* K.maxWidth */] = value;
171
+ this.invalidateSize();
172
+ this.$invalidateParentLayout();
173
+ }
174
+ get minHeight() {
175
+ return this._v[14 /* K.minHeight */];
176
+ }
177
+ set minHeight(value) {
178
+ value = +value || 0;
179
+ if (value < 0 || this._v[14 /* K.minHeight */] === value)
180
+ return;
181
+ this._v[14 /* K.minHeight */] = value;
182
+ this.invalidateSize();
183
+ this.$invalidateParentLayout();
184
+ }
185
+ get maxHeight() {
186
+ return this._v[15 /* K.maxHeight */];
187
+ }
188
+ set maxHeight(value) {
189
+ value = +value || 0;
190
+ if (value < 0 || this._v[15 /* K.maxHeight */] === value)
191
+ return;
192
+ this._v[15 /* K.maxHeight */] = value;
193
+ this.invalidateSize();
194
+ this.$invalidateParentLayout();
195
+ }
196
+ // ── Public methods ────────────────────────────────────────────────────
197
+ $onAddToStage() {
198
+ this._checkInvalidateFlag();
199
+ const v = this._v;
200
+ if (!v[29 /* K.initialized */]) {
201
+ v[29 /* K.initialized */] = true;
202
+ this._owner.createChildren();
203
+ this._owner.childrenCreated();
204
+ UIEvent.dispatchUIEvent(this._owner, UIEvent.CREATION_COMPLETE);
205
+ }
206
+ else {
207
+ // Re-entering the display list after removal — force a redraw so
208
+ // graphics commands are rebuilt in the WebGL instruction set.
209
+ // Use validateNow() to execute synchronously before the next render
210
+ // phase, avoiding the timing issue where structureDirty fires before
211
+ // the Validator has filled the graphics commands.
212
+ this.invalidateDisplayList();
213
+ if (this._owner.stage)
214
+ validator.validateClient(this._owner);
215
+ }
216
+ }
217
+ onCommitProperties() {
218
+ const v = this._v;
219
+ const owner = this._owner;
220
+ if (v[22 /* K.oldWidth */] !== v[10 /* K.width */] || v[23 /* K.oldHeight */] !== v[11 /* K.height */]) {
221
+ owner.dispatchEventWith(Event.RESIZE);
222
+ v[22 /* K.oldWidth */] = v[10 /* K.width */];
223
+ v[23 /* K.oldHeight */] = v[11 /* K.height */];
224
+ }
225
+ if (v[20 /* K.oldX */] !== owner.x || v[21 /* K.oldY */] !== owner.y) {
226
+ UIEvent.dispatchUIEvent(owner, UIEvent.MOVE);
227
+ v[20 /* K.oldX */] = owner.x;
228
+ v[21 /* K.oldY */] = owner.y;
229
+ }
230
+ }
231
+ getWidth() {
232
+ this._validateSizeNow();
233
+ return this._v[10 /* K.width */];
234
+ }
235
+ setWidth(value) {
236
+ value = +value;
237
+ const v = this._v;
238
+ if (value < 0 || (v[10 /* K.width */] === value && this._owner.$explicitWidth === value))
239
+ return;
240
+ this._owner.$explicitWidth = value;
241
+ if (isNaN(value))
242
+ this.invalidateSize();
243
+ this.invalidateProperties();
244
+ this.invalidateDisplayList();
245
+ this.$invalidateParentLayout();
246
+ }
247
+ getHeight() {
248
+ this._validateSizeNow();
249
+ return this._v[11 /* K.height */];
250
+ }
251
+ setHeight(value) {
252
+ value = +value;
253
+ const v = this._v;
254
+ if (value < 0 || (v[11 /* K.height */] === value && this._owner.$explicitHeight === value))
255
+ return;
256
+ this._owner.$explicitHeight = value;
257
+ if (isNaN(value))
258
+ this.invalidateSize();
259
+ this.invalidateProperties();
260
+ this.invalidateDisplayList();
261
+ this.$invalidateParentLayout();
262
+ }
263
+ setMeasuredSize(width, height) {
264
+ this._v[16 /* K.measuredWidth */] = Math.ceil(+width || 0);
265
+ this._v[17 /* K.measuredHeight */] = Math.ceil(+height || 0);
266
+ }
267
+ invalidateProperties() {
268
+ const v = this._v;
269
+ if (!v[24 /* K.invalidatePropertiesFlag */]) {
270
+ v[24 /* K.invalidatePropertiesFlag */] = true;
271
+ if (this._owner.stage)
272
+ validator.invalidateProperties(this._owner);
273
+ }
274
+ }
275
+ validateProperties() {
276
+ const v = this._v;
277
+ if (v[24 /* K.invalidatePropertiesFlag */]) {
278
+ this._owner.commitProperties();
279
+ v[24 /* K.invalidatePropertiesFlag */] = false;
280
+ }
281
+ }
282
+ invalidateSize() {
283
+ const v = this._v;
284
+ if (!v[25 /* K.invalidateSizeFlag */]) {
285
+ v[25 /* K.invalidateSizeFlag */] = true;
286
+ if (this._owner.stage)
287
+ validator.invalidateSize(this._owner);
288
+ }
289
+ }
290
+ validateSize(recursive = false) {
291
+ if (recursive && this._owner instanceof DisplayObjectContainer) {
292
+ for (let i = 0; i < this._owner.numChildren; i++) {
293
+ const child = this._owner.getChildAt(i);
294
+ if (child && isUIComponent(child))
295
+ child.validateSize(true);
296
+ }
297
+ }
298
+ const v = this._v;
299
+ if (v[25 /* K.invalidateSizeFlag */]) {
300
+ if (this._measureSizes()) {
301
+ this.invalidateDisplayList();
302
+ this.$invalidateParentLayout();
303
+ }
304
+ v[25 /* K.invalidateSizeFlag */] = false;
305
+ }
306
+ }
307
+ invalidateDisplayList() {
308
+ const v = this._v;
309
+ if (!v[26 /* K.invalidateDisplayListFlag */]) {
310
+ v[26 /* K.invalidateDisplayListFlag */] = true;
311
+ if (this._owner.stage)
312
+ validator.invalidateDisplayList(this._owner);
313
+ }
314
+ }
315
+ validateDisplayList() {
316
+ const v = this._v;
317
+ if (v[26 /* K.invalidateDisplayListFlag */]) {
318
+ this._updateFinalSize();
319
+ this._owner.updateDisplayList(v[10 /* K.width */], v[11 /* K.height */]);
320
+ v[26 /* K.invalidateDisplayListFlag */] = false;
321
+ }
322
+ }
323
+ validateNow() {
324
+ if (this._owner.stage)
325
+ validator.validateClient(this._owner);
326
+ }
327
+ setLayoutBoundsSize(layoutWidth, layoutHeight) {
328
+ layoutWidth = +layoutWidth;
329
+ layoutHeight = +layoutHeight;
330
+ if (layoutWidth < 0 || layoutHeight < 0)
331
+ return;
332
+ const v = this._v;
333
+ const maxW = v[13 /* K.maxWidth */];
334
+ const maxH = v[15 /* K.maxHeight */];
335
+ const minW = Math.min(v[12 /* K.minWidth */], maxW);
336
+ const minH = Math.min(v[14 /* K.minHeight */], maxH);
337
+ let w, h;
338
+ if (isNaN(layoutWidth)) {
339
+ v[27 /* K.layoutWidthExplicitlySet */] = false;
340
+ w = this._preferredUWidth();
341
+ }
342
+ else {
343
+ v[27 /* K.layoutWidthExplicitlySet */] = true;
344
+ w = Math.max(minW, Math.min(maxW, layoutWidth));
345
+ }
346
+ if (isNaN(layoutHeight)) {
347
+ v[28 /* K.layoutHeightExplicitlySet */] = false;
348
+ h = this._preferredUHeight();
349
+ }
350
+ else {
351
+ v[28 /* K.layoutHeightExplicitlySet */] = true;
352
+ h = Math.max(minH, Math.min(maxH, layoutHeight));
353
+ }
354
+ const m = this._anchorMatrix();
355
+ if (isDeltaIdentity(m)) {
356
+ this._setActualSize(w, h);
357
+ return;
358
+ }
359
+ const fit = fitBounds(layoutWidth, layoutHeight, m, this._owner.$explicitWidth, this._owner.$explicitHeight, this._preferredUWidth(), this._preferredUHeight(), minW, minH, maxW, maxH);
360
+ this._setActualSize(fit.w, fit.h);
361
+ }
362
+ setLayoutBoundsPosition(x, y) {
363
+ const owner = this._owner;
364
+ const m = owner.matrix;
365
+ if (!isDeltaIdentity(m) || owner.anchorOffsetX !== 0 || owner.anchorOffsetY !== 0) {
366
+ const bounds = new Rectangle();
367
+ this.getLayoutBounds(bounds);
368
+ x += owner.x - bounds.x;
369
+ y += owner.y - bounds.y;
370
+ }
371
+ const prevX = owner.x, prevY = owner.y;
372
+ owner.x = x;
373
+ owner.y = y;
374
+ if (owner.x !== prevX || owner.y !== prevY) {
375
+ UIEvent.dispatchUIEvent(owner, UIEvent.MOVE);
376
+ }
377
+ }
378
+ getLayoutBounds(bounds) {
379
+ const v = this._v;
380
+ const w = v[27 /* K.layoutWidthExplicitlySet */]
381
+ ? v[10 /* K.width */]
382
+ : isNaN(this._owner.$explicitWidth)
383
+ ? v[16 /* K.measuredWidth */]
384
+ : this._owner.$explicitWidth;
385
+ const h = v[28 /* K.layoutHeightExplicitlySet */]
386
+ ? v[11 /* K.height */]
387
+ : isNaN(this._owner.$explicitHeight)
388
+ ? v[17 /* K.measuredHeight */]
389
+ : this._owner.$explicitHeight;
390
+ this._applyMatrix(bounds, w, h);
391
+ }
392
+ getPreferredBounds(bounds) {
393
+ this._applyMatrix(bounds, this._preferredUWidth(), this._preferredUHeight());
394
+ }
395
+ $invalidateParentLayout() {
396
+ const parent = this._owner.parent;
397
+ if (!parent || !this._includeInLayout || !isUIComponent(parent))
398
+ return;
399
+ parent.invalidateSize();
400
+ parent.invalidateDisplayList();
401
+ }
402
+ // ── Private methods ───────────────────────────────────────────────────
403
+ _checkInvalidateFlag() {
404
+ const v = this._v;
405
+ const owner = this._owner;
406
+ if (v[24 /* K.invalidatePropertiesFlag */])
407
+ validator.invalidateProperties(owner);
408
+ if (v[25 /* K.invalidateSizeFlag */])
409
+ validator.invalidateSize(owner);
410
+ if (v[26 /* K.invalidateDisplayListFlag */])
411
+ validator.invalidateDisplayList(owner);
412
+ }
413
+ _preferredUWidth() {
414
+ return isNaN(this._owner.$explicitWidth) ? this._v[16 /* K.measuredWidth */] : this._owner.$explicitWidth;
415
+ }
416
+ _preferredUHeight() {
417
+ return isNaN(this._owner.$explicitHeight) ? this._v[17 /* K.measuredHeight */] : this._owner.$explicitHeight;
418
+ }
419
+ _setActualSize(w, h) {
420
+ const v = this._v;
421
+ let changed = false;
422
+ if (v[10 /* K.width */] !== w) {
423
+ v[10 /* K.width */] = w;
424
+ changed = true;
425
+ }
426
+ if (v[11 /* K.height */] !== h) {
427
+ v[11 /* K.height */] = h;
428
+ changed = true;
429
+ }
430
+ if (changed) {
431
+ this.invalidateDisplayList();
432
+ // A layout size change affects this component's rendered bounds.
433
+ // Propagate dirtiness to ancestors so a cacheAsBitmap parent is
434
+ // rasterized again after deferred UI measurement completes.
435
+ this._owner.$markDirty();
436
+ this._owner.dispatchEventWith(Event.RESIZE);
437
+ }
438
+ }
439
+ _validateSizeNow() {
440
+ this.validateSize(true);
441
+ this._updateFinalSize();
442
+ }
443
+ _updateFinalSize() {
444
+ const v = this._v;
445
+ const w = v[27 /* K.layoutWidthExplicitlySet */]
446
+ ? v[10 /* K.width */]
447
+ : isNaN(this._owner.$explicitWidth)
448
+ ? v[16 /* K.measuredWidth */]
449
+ : this._owner.$explicitWidth;
450
+ const h = v[28 /* K.layoutHeightExplicitlySet */]
451
+ ? v[11 /* K.height */]
452
+ : isNaN(this._owner.$explicitHeight)
453
+ ? v[17 /* K.measuredHeight */]
454
+ : this._owner.$explicitHeight;
455
+ this._setActualSize(w, h);
456
+ }
457
+ _measureSizes() {
458
+ const v = this._v;
459
+ if (!v[25 /* K.invalidateSizeFlag */])
460
+ return false;
461
+ if (isNaN(this._owner.$explicitWidth) || isNaN(this._owner.$explicitHeight)) {
462
+ this._owner.measure();
463
+ v[16 /* K.measuredWidth */] = Math.max(Math.min(v[16 /* K.measuredWidth */], v[13 /* K.maxWidth */]), v[12 /* K.minWidth */]);
464
+ v[17 /* K.measuredHeight */] = Math.max(Math.min(v[17 /* K.measuredHeight */], v[15 /* K.maxHeight */]), v[14 /* K.minHeight */]);
465
+ }
466
+ const pw = this._preferredUWidth();
467
+ const ph = this._preferredUHeight();
468
+ if (pw !== v[18 /* K.oldPreferWidth */] || ph !== v[19 /* K.oldPreferHeight */]) {
469
+ v[18 /* K.oldPreferWidth */] = pw;
470
+ v[19 /* K.oldPreferHeight */] = ph;
471
+ return true;
472
+ }
473
+ return false;
474
+ }
475
+ _applyMatrix(bounds, w, h) {
476
+ bounds.setTo(0, 0, w, h);
477
+ const m = this._anchorMatrix();
478
+ if (isDeltaIdentity(m)) {
479
+ bounds.x += m.tx;
480
+ bounds.y += m.ty;
481
+ }
482
+ else {
483
+ const { a, b, c, d, tx, ty } = m;
484
+ const x1 = tx, y1 = ty;
485
+ const x2 = a * w + tx, y2 = b * w + ty;
486
+ const x3 = c * h + tx, y3 = d * h + ty;
487
+ const x4 = a * w + c * h + tx, y4 = b * w + d * h + ty;
488
+ bounds.x = Math.min(x1, x2, x3, x4);
489
+ bounds.y = Math.min(y1, y2, y3, y4);
490
+ bounds.width = Math.max(x1, x2, x3, x4) - bounds.x;
491
+ bounds.height = Math.max(y1, y2, y3, y4) - bounds.y;
492
+ }
493
+ }
494
+ _anchorMatrix() {
495
+ const m = this._owner.matrix;
496
+ const ox = this._owner.anchorOffsetX, oy = this._owner.anchorOffsetY;
497
+ if (ox === 0 && oy === 0)
498
+ return m;
499
+ return new Matrix(m.a, m.b, m.c, m.d, m.a * -ox + m.c * -oy + m.tx, m.b * -ox + m.d * -oy + m.ty);
500
+ }
501
+ }
502
+ // ── Type guard ────────────────────────────────────────────────────────────────
503
+ export function isUIComponent(obj) {
504
+ return obj != null && typeof obj === 'object' && 'ui' in obj;
505
+ }
506
+ // ── fitBounds helper ──────────────────────────────────────────────────────────
507
+ function fitBounds(_layoutW, _layoutH, _matrix, explicitW, explicitH, preferredW, preferredH, minW, minH, maxW, maxH) {
508
+ const w = isNaN(explicitW) ? Math.max(minW, Math.min(maxW, preferredW)) : Math.max(minW, Math.min(maxW, explicitW));
509
+ const h = isNaN(explicitH) ? Math.max(minH, Math.min(maxH, preferredH)) : Math.max(minH, Math.min(maxH, explicitH));
510
+ return { w, h };
511
+ }
512
+ //# sourceMappingURL=UIState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIState.js","sourceRoot":"","sources":["../../../src/kurot/core/UIState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { EventDispatcher, type DisplayObject } from '@kurot/core';
2
+ import type { IUIComponent } from './IUIComponent.js';
3
+ type QueueClient = IUIComponent & DisplayObject;
4
+ type ValidatorClient = QueueClient;
5
+ /**
6
+ * Manages the deferred invalidation/validation cycle for UI components.
7
+ *
8
+ * When a component marks itself as invalid (properties / size / display list),
9
+ * the Validator queues it and processes all queued components on the next
10
+ * ENTER_FRAME tick, in depth order.
11
+ *
12
+ * Processing order:
13
+ * 1. validateProperties — shallowest first
14
+ * 2. validateSize — deepest first ($children before parents)
15
+ * 3. validateDisplayList — shallowest first
16
+ */
17
+ export declare class Validator extends EventDispatcher {
18
+ private _targetLevel;
19
+ private _propsFlag;
20
+ private _clientPropsFlag;
21
+ private _propsQueue;
22
+ private _sizeFlag;
23
+ private _clientSizeFlag;
24
+ private _sizeQueue;
25
+ private _displayFlag;
26
+ private _displayQueue;
27
+ private _scheduled;
28
+ invalidateProperties(client: ValidatorClient): void;
29
+ invalidateSize(client: ValidatorClient): void;
30
+ invalidateDisplayList(client: ValidatorClient): void;
31
+ /**
32
+ * Force immediate validation of all components at or below `target`'s depth.
33
+ */
34
+ validateClient(target: ValidatorClient): void;
35
+ private _schedule;
36
+ private _flush;
37
+ private _validateProperties;
38
+ private _validateSize;
39
+ private _validateDisplayList;
40
+ }
41
+ /**
42
+ * Singleton validator instance shared by all UI components.
43
+ */
44
+ export declare const validator: Validator;
45
+ export {};
46
+ //# sourceMappingURL=Validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../../src/kurot/core/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,KAAK,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;AAChD,KAAK,eAAe,GAAG,WAAW,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,qBAAa,SAAU,SAAQ,eAAe;IAG7C,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,UAAU,CAAS;IAIpB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IASnD,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAS7C,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAQ3D;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAwEpD,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,oBAAoB;CAQ5B;AA8LD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,SAA2B,CAAC"}