@kitten-science/kitten-scientists 2.0.0-beta.10-20250402-4e11d20 → 2.0.0-beta.10-dev-2a02d77

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 (300) hide show
  1. package/lib/KittenScientists.d.ts +1 -1
  2. package/lib/KittenScientists.d.ts.map +1 -1
  3. package/lib/KittenScientists.js +6 -6
  4. package/lib/KittenScientists.js.map +1 -1
  5. package/lib/ReligionManager.js +1 -1
  6. package/lib/ReligionManager.js.map +1 -1
  7. package/lib/TimeControlManager.js +2 -2
  8. package/lib/TimeControlManager.js.map +1 -1
  9. package/lib/TradeManager.d.ts.map +1 -1
  10. package/lib/TradeManager.js.map +1 -1
  11. package/lib/tools/Log.d.ts +1 -1
  12. package/lib/tools/Log.d.ts.map +1 -1
  13. package/lib/tools/Log.js +4 -1
  14. package/lib/tools/Log.js.map +1 -1
  15. package/lib/ui/BonfireSettingsUi.d.ts +4 -5
  16. package/lib/ui/BonfireSettingsUi.d.ts.map +1 -1
  17. package/lib/ui/BonfireSettingsUi.js +109 -90
  18. package/lib/ui/BonfireSettingsUi.js.map +1 -1
  19. package/lib/ui/BuildSectionTools.d.ts +3 -13
  20. package/lib/ui/BuildSectionTools.d.ts.map +1 -1
  21. package/lib/ui/BuildSectionTools.js +52 -59
  22. package/lib/ui/BuildSectionTools.js.map +1 -1
  23. package/lib/ui/BuildingUpgradeSettingsUi.d.ts +2 -4
  24. package/lib/ui/BuildingUpgradeSettingsUi.d.ts.map +1 -1
  25. package/lib/ui/BuildingUpgradeSettingsUi.js +13 -20
  26. package/lib/ui/BuildingUpgradeSettingsUi.js.map +1 -1
  27. package/lib/ui/EmbassySettingsUi.d.ts +4 -5
  28. package/lib/ui/EmbassySettingsUi.d.ts.map +1 -1
  29. package/lib/ui/EmbassySettingsUi.js +48 -61
  30. package/lib/ui/EmbassySettingsUi.js.map +1 -1
  31. package/lib/ui/EngineSettingsUi.d.ts +2 -2
  32. package/lib/ui/EngineSettingsUi.d.ts.map +1 -1
  33. package/lib/ui/EngineSettingsUi.js +10 -8
  34. package/lib/ui/EngineSettingsUi.js.map +1 -1
  35. package/lib/ui/InternalsUi.d.ts +2 -2
  36. package/lib/ui/InternalsUi.d.ts.map +1 -1
  37. package/lib/ui/InternalsUi.js +43 -53
  38. package/lib/ui/InternalsUi.js.map +1 -1
  39. package/lib/ui/LogFilterSettingsUi.d.ts +2 -4
  40. package/lib/ui/LogFilterSettingsUi.d.ts.map +1 -1
  41. package/lib/ui/LogFilterSettingsUi.js +24 -32
  42. package/lib/ui/LogFilterSettingsUi.js.map +1 -1
  43. package/lib/ui/MissionSettingsUi.d.ts +2 -4
  44. package/lib/ui/MissionSettingsUi.d.ts.map +1 -1
  45. package/lib/ui/MissionSettingsUi.js +13 -18
  46. package/lib/ui/MissionSettingsUi.js.map +1 -1
  47. package/lib/ui/PolicySettingsUi.d.ts +2 -4
  48. package/lib/ui/PolicySettingsUi.d.ts.map +1 -1
  49. package/lib/ui/PolicySettingsUi.js +13 -20
  50. package/lib/ui/PolicySettingsUi.js.map +1 -1
  51. package/lib/ui/ReligionSettingsUi.d.ts +4 -5
  52. package/lib/ui/ReligionSettingsUi.d.ts.map +1 -1
  53. package/lib/ui/ReligionSettingsUi.js +108 -132
  54. package/lib/ui/ReligionSettingsUi.js.map +1 -1
  55. package/lib/ui/ResetBonfireSettingsUi.d.ts +2 -2
  56. package/lib/ui/ResetBonfireSettingsUi.d.ts.map +1 -1
  57. package/lib/ui/ResetBonfireSettingsUi.js +30 -36
  58. package/lib/ui/ResetBonfireSettingsUi.js.map +1 -1
  59. package/lib/ui/ResetReligionSettingsUi.d.ts +2 -2
  60. package/lib/ui/ResetReligionSettingsUi.d.ts.map +1 -1
  61. package/lib/ui/ResetReligionSettingsUi.js +42 -51
  62. package/lib/ui/ResetReligionSettingsUi.js.map +1 -1
  63. package/lib/ui/ResetResourcesSettingsUi.d.ts +2 -2
  64. package/lib/ui/ResetResourcesSettingsUi.d.ts.map +1 -1
  65. package/lib/ui/ResetResourcesSettingsUi.js +24 -31
  66. package/lib/ui/ResetResourcesSettingsUi.js.map +1 -1
  67. package/lib/ui/ResetSettingsUi.d.ts +2 -4
  68. package/lib/ui/ResetSettingsUi.d.ts.map +1 -1
  69. package/lib/ui/ResetSettingsUi.js +14 -19
  70. package/lib/ui/ResetSettingsUi.js.map +1 -1
  71. package/lib/ui/ResetSpaceSettingsUi.d.ts +2 -2
  72. package/lib/ui/ResetSpaceSettingsUi.d.ts.map +1 -1
  73. package/lib/ui/ResetSpaceSettingsUi.js +30 -39
  74. package/lib/ui/ResetSpaceSettingsUi.js.map +1 -1
  75. package/lib/ui/ResetTimeSettingsUi.d.ts +2 -2
  76. package/lib/ui/ResetTimeSettingsUi.d.ts.map +1 -1
  77. package/lib/ui/ResetTimeSettingsUi.js +32 -41
  78. package/lib/ui/ResetTimeSettingsUi.js.map +1 -1
  79. package/lib/ui/ResetUpgradesSettingsUi.d.ts +2 -2
  80. package/lib/ui/ResetUpgradesSettingsUi.d.ts.map +1 -1
  81. package/lib/ui/ResetUpgradesSettingsUi.js +12 -12
  82. package/lib/ui/ResetUpgradesSettingsUi.js.map +1 -1
  83. package/lib/ui/ResourcesSettingsUi.d.ts +2 -4
  84. package/lib/ui/ResourcesSettingsUi.d.ts.map +1 -1
  85. package/lib/ui/ResourcesSettingsUi.js +16 -20
  86. package/lib/ui/ResourcesSettingsUi.js.map +1 -1
  87. package/lib/ui/ScienceSettingsUi.d.ts +2 -4
  88. package/lib/ui/ScienceSettingsUi.d.ts.map +1 -1
  89. package/lib/ui/ScienceSettingsUi.js +16 -35
  90. package/lib/ui/ScienceSettingsUi.js.map +1 -1
  91. package/lib/ui/SpaceSettingsUi.d.ts +4 -5
  92. package/lib/ui/SpaceSettingsUi.d.ts.map +1 -1
  93. package/lib/ui/SpaceSettingsUi.js +43 -51
  94. package/lib/ui/SpaceSettingsUi.js.map +1 -1
  95. package/lib/ui/StateManagementUi.d.ts +2 -2
  96. package/lib/ui/StateManagementUi.d.ts.map +1 -1
  97. package/lib/ui/StateManagementUi.js +162 -169
  98. package/lib/ui/StateManagementUi.js.map +1 -1
  99. package/lib/ui/TechSettingsUi.d.ts +4 -5
  100. package/lib/ui/TechSettingsUi.d.ts.map +1 -1
  101. package/lib/ui/TechSettingsUi.js +51 -69
  102. package/lib/ui/TechSettingsUi.js.map +1 -1
  103. package/lib/ui/TimeControlSettingsUi.d.ts +3 -4
  104. package/lib/ui/TimeControlSettingsUi.d.ts.map +1 -1
  105. package/lib/ui/TimeControlSettingsUi.js +22 -34
  106. package/lib/ui/TimeControlSettingsUi.js.map +1 -1
  107. package/lib/ui/TimeSettingsUi.d.ts +4 -5
  108. package/lib/ui/TimeSettingsUi.d.ts.map +1 -1
  109. package/lib/ui/TimeSettingsUi.js +55 -62
  110. package/lib/ui/TimeSettingsUi.js.map +1 -1
  111. package/lib/ui/TimeSkipHeatSettingsUi.d.ts +4 -5
  112. package/lib/ui/TimeSkipHeatSettingsUi.d.ts.map +1 -1
  113. package/lib/ui/TimeSkipHeatSettingsUi.js +28 -44
  114. package/lib/ui/TimeSkipHeatSettingsUi.js.map +1 -1
  115. package/lib/ui/TimeSkipSettingsUi.d.ts +2 -4
  116. package/lib/ui/TimeSkipSettingsUi.d.ts.map +1 -1
  117. package/lib/ui/TimeSkipSettingsUi.js +75 -103
  118. package/lib/ui/TimeSkipSettingsUi.js.map +1 -1
  119. package/lib/ui/TradeSettingsUi.d.ts +4 -5
  120. package/lib/ui/TradeSettingsUi.d.ts.map +1 -1
  121. package/lib/ui/TradeSettingsUi.js +102 -115
  122. package/lib/ui/TradeSettingsUi.js.map +1 -1
  123. package/lib/ui/UpgradeSettingsUi.d.ts +4 -5
  124. package/lib/ui/UpgradeSettingsUi.d.ts.map +1 -1
  125. package/lib/ui/UpgradeSettingsUi.js +50 -66
  126. package/lib/ui/UpgradeSettingsUi.js.map +1 -1
  127. package/lib/ui/UserInterface.d.ts +3 -0
  128. package/lib/ui/UserInterface.d.ts.map +1 -1
  129. package/lib/ui/UserInterface.js +37 -19
  130. package/lib/ui/UserInterface.js.map +1 -1
  131. package/lib/ui/VillageSettingsUi.d.ts +2 -4
  132. package/lib/ui/VillageSettingsUi.d.ts.map +1 -1
  133. package/lib/ui/VillageSettingsUi.js +87 -105
  134. package/lib/ui/VillageSettingsUi.js.map +1 -1
  135. package/lib/ui/WorkshopSettingsUi.d.ts +4 -5
  136. package/lib/ui/WorkshopSettingsUi.d.ts.map +1 -1
  137. package/lib/ui/WorkshopSettingsUi.js +82 -103
  138. package/lib/ui/WorkshopSettingsUi.js.map +1 -1
  139. package/lib/ui/components/Button.d.ts +9 -8
  140. package/lib/ui/components/Button.d.ts.map +1 -1
  141. package/lib/ui/components/Button.js +8 -6
  142. package/lib/ui/components/Button.js.map +1 -1
  143. package/lib/ui/components/ButtonListItem.d.ts +4 -4
  144. package/lib/ui/components/ButtonListItem.d.ts.map +1 -1
  145. package/lib/ui/components/ButtonListItem.js +2 -7
  146. package/lib/ui/components/ButtonListItem.js.map +1 -1
  147. package/lib/ui/components/CollapsiblePanel.d.ts +15 -11
  148. package/lib/ui/components/CollapsiblePanel.d.ts.map +1 -1
  149. package/lib/ui/components/CollapsiblePanel.js +42 -25
  150. package/lib/ui/components/CollapsiblePanel.js.map +1 -1
  151. package/lib/ui/components/Container.d.ts +7 -2
  152. package/lib/ui/components/Container.d.ts.map +1 -1
  153. package/lib/ui/components/Container.js +6 -3
  154. package/lib/ui/components/Container.js.map +1 -1
  155. package/lib/ui/components/CyclesList.d.ts +7 -8
  156. package/lib/ui/components/CyclesList.d.ts.map +1 -1
  157. package/lib/ui/components/CyclesList.js +34 -27
  158. package/lib/ui/components/CyclesList.js.map +1 -1
  159. package/lib/ui/components/Delimiter.d.ts +3 -2
  160. package/lib/ui/components/Delimiter.d.ts.map +1 -1
  161. package/lib/ui/components/Delimiter.js +6 -2
  162. package/lib/ui/components/Delimiter.js.map +1 -1
  163. package/lib/ui/components/Dialog.d.ts +14 -6
  164. package/lib/ui/components/Dialog.d.ts.map +1 -1
  165. package/lib/ui/components/Dialog.js +66 -40
  166. package/lib/ui/components/Dialog.js.map +1 -1
  167. package/lib/ui/components/ExplainerListItem.d.ts +5 -2
  168. package/lib/ui/components/ExplainerListItem.d.ts.map +1 -1
  169. package/lib/ui/components/ExplainerListItem.js +7 -4
  170. package/lib/ui/components/ExplainerListItem.js.map +1 -1
  171. package/lib/ui/components/Fieldset.d.ts +6 -4
  172. package/lib/ui/components/Fieldset.d.ts.map +1 -1
  173. package/lib/ui/components/Fieldset.js +6 -3
  174. package/lib/ui/components/Fieldset.js.map +1 -1
  175. package/lib/ui/components/HeaderListItem.d.ts +6 -3
  176. package/lib/ui/components/HeaderListItem.d.ts.map +1 -1
  177. package/lib/ui/components/HeaderListItem.js +6 -3
  178. package/lib/ui/components/HeaderListItem.js.map +1 -1
  179. package/lib/ui/components/IconButton.d.ts +8 -6
  180. package/lib/ui/components/IconButton.d.ts.map +1 -1
  181. package/lib/ui/components/IconButton.js +6 -5
  182. package/lib/ui/components/IconButton.js.map +1 -1
  183. package/lib/ui/components/IconSettingsPanel.d.ts +5 -4
  184. package/lib/ui/components/IconSettingsPanel.d.ts.map +1 -1
  185. package/lib/ui/components/IconSettingsPanel.js +4 -2
  186. package/lib/ui/components/IconSettingsPanel.js.map +1 -1
  187. package/lib/ui/components/Input.d.ts +6 -3
  188. package/lib/ui/components/Input.d.ts.map +1 -1
  189. package/lib/ui/components/Input.js +6 -3
  190. package/lib/ui/components/Input.js.map +1 -1
  191. package/lib/ui/components/LabelListItem.d.ts +10 -7
  192. package/lib/ui/components/LabelListItem.d.ts.map +1 -1
  193. package/lib/ui/components/LabelListItem.js +21 -10
  194. package/lib/ui/components/LabelListItem.js.map +1 -1
  195. package/lib/ui/components/ListItem.d.ts +9 -6
  196. package/lib/ui/components/ListItem.d.ts.map +1 -1
  197. package/lib/ui/components/ListItem.js +6 -3
  198. package/lib/ui/components/ListItem.js.map +1 -1
  199. package/lib/ui/components/OptionsListItem.d.ts +6 -5
  200. package/lib/ui/components/OptionsListItem.d.ts.map +1 -1
  201. package/lib/ui/components/OptionsListItem.js +7 -5
  202. package/lib/ui/components/OptionsListItem.js.map +1 -1
  203. package/lib/ui/components/Paragraph.d.ts +7 -2
  204. package/lib/ui/components/Paragraph.d.ts.map +1 -1
  205. package/lib/ui/components/Paragraph.js +6 -3
  206. package/lib/ui/components/Paragraph.js.map +1 -1
  207. package/lib/ui/components/RadioItem.d.ts +9 -7
  208. package/lib/ui/components/RadioItem.d.ts.map +1 -1
  209. package/lib/ui/components/RadioItem.js +9 -7
  210. package/lib/ui/components/RadioItem.js.map +1 -1
  211. package/lib/ui/components/SeasonsList.d.ts +7 -6
  212. package/lib/ui/components/SeasonsList.d.ts.map +1 -1
  213. package/lib/ui/components/SeasonsList.js +20 -13
  214. package/lib/ui/components/SeasonsList.js.map +1 -1
  215. package/lib/ui/components/SettingLimitedListItem.d.ts +7 -7
  216. package/lib/ui/components/SettingLimitedListItem.d.ts.map +1 -1
  217. package/lib/ui/components/SettingLimitedListItem.js +7 -8
  218. package/lib/ui/components/SettingLimitedListItem.js.map +1 -1
  219. package/lib/ui/components/SettingLimitedTriggerListItem.d.ts +7 -6
  220. package/lib/ui/components/SettingLimitedTriggerListItem.d.ts.map +1 -1
  221. package/lib/ui/components/SettingLimitedTriggerListItem.js +12 -11
  222. package/lib/ui/components/SettingLimitedTriggerListItem.js.map +1 -1
  223. package/lib/ui/components/SettingListItem.d.ts +11 -11
  224. package/lib/ui/components/SettingListItem.d.ts.map +1 -1
  225. package/lib/ui/components/SettingListItem.js +16 -20
  226. package/lib/ui/components/SettingListItem.js.map +1 -1
  227. package/lib/ui/components/SettingMaxListItem.d.ts +7 -7
  228. package/lib/ui/components/SettingMaxListItem.d.ts.map +1 -1
  229. package/lib/ui/components/SettingMaxListItem.js +12 -10
  230. package/lib/ui/components/SettingMaxListItem.js.map +1 -1
  231. package/lib/ui/components/SettingMaxTriggerListItem.d.ts +9 -6
  232. package/lib/ui/components/SettingMaxTriggerListItem.d.ts.map +1 -1
  233. package/lib/ui/components/SettingMaxTriggerListItem.js +19 -14
  234. package/lib/ui/components/SettingMaxTriggerListItem.js.map +1 -1
  235. package/lib/ui/components/SettingTriggerListItem.d.ts +8 -7
  236. package/lib/ui/components/SettingTriggerListItem.d.ts.map +1 -1
  237. package/lib/ui/components/SettingTriggerListItem.js +15 -12
  238. package/lib/ui/components/SettingTriggerListItem.js.map +1 -1
  239. package/lib/ui/components/SettingsList.d.ts +13 -11
  240. package/lib/ui/components/SettingsList.d.ts.map +1 -1
  241. package/lib/ui/components/SettingsList.js +15 -16
  242. package/lib/ui/components/SettingsList.js.map +1 -1
  243. package/lib/ui/components/SettingsPanel.d.ts +9 -8
  244. package/lib/ui/components/SettingsPanel.d.ts.map +1 -1
  245. package/lib/ui/components/SettingsPanel.js +10 -10
  246. package/lib/ui/components/SettingsPanel.js.map +1 -1
  247. package/lib/ui/components/TextButton.d.ts +7 -6
  248. package/lib/ui/components/TextButton.d.ts.map +1 -1
  249. package/lib/ui/components/TextButton.js +7 -5
  250. package/lib/ui/components/TextButton.js.map +1 -1
  251. package/lib/ui/components/ToolbarListItem.d.ts +6 -5
  252. package/lib/ui/components/ToolbarListItem.d.ts.map +1 -1
  253. package/lib/ui/components/ToolbarListItem.js +7 -12
  254. package/lib/ui/components/ToolbarListItem.js.map +1 -1
  255. package/lib/ui/components/UiComponent.d.ts +32 -18
  256. package/lib/ui/components/UiComponent.d.ts.map +1 -1
  257. package/lib/ui/components/UiComponent.js +50 -19
  258. package/lib/ui/components/UiComponent.js.map +1 -1
  259. package/lib/ui/components/WorkshopCraftListItem.d.ts +8 -7
  260. package/lib/ui/components/WorkshopCraftListItem.d.ts.map +1 -1
  261. package/lib/ui/components/WorkshopCraftListItem.js +17 -18
  262. package/lib/ui/components/WorkshopCraftListItem.js.map +1 -1
  263. package/lib/ui/components/buttons/ConsumeButton.d.ts +5 -2
  264. package/lib/ui/components/buttons/ConsumeButton.d.ts.map +1 -1
  265. package/lib/ui/components/buttons/ConsumeButton.js +19 -26
  266. package/lib/ui/components/buttons/ConsumeButton.js.map +1 -1
  267. package/lib/ui/components/buttons/ExpandoButton.d.ts +6 -2
  268. package/lib/ui/components/buttons/ExpandoButton.d.ts.map +1 -1
  269. package/lib/ui/components/buttons/ExpandoButton.js +10 -9
  270. package/lib/ui/components/buttons/ExpandoButton.js.map +1 -1
  271. package/lib/ui/components/buttons/LimitedButton.d.ts +8 -7
  272. package/lib/ui/components/buttons/LimitedButton.d.ts.map +1 -1
  273. package/lib/ui/components/buttons/LimitedButton.js +20 -13
  274. package/lib/ui/components/buttons/LimitedButton.js.map +1 -1
  275. package/lib/ui/components/buttons/MaxButton.d.ts +5 -5
  276. package/lib/ui/components/buttons/MaxButton.d.ts.map +1 -1
  277. package/lib/ui/components/buttons/MaxButton.js +5 -7
  278. package/lib/ui/components/buttons/MaxButton.js.map +1 -1
  279. package/lib/ui/components/buttons/PaddingButton.d.ts +5 -2
  280. package/lib/ui/components/buttons/PaddingButton.d.ts.map +1 -1
  281. package/lib/ui/components/buttons/PaddingButton.js +6 -3
  282. package/lib/ui/components/buttons/PaddingButton.js.map +1 -1
  283. package/lib/ui/components/buttons/StockButton.d.ts +5 -2
  284. package/lib/ui/components/buttons/StockButton.d.ts.map +1 -1
  285. package/lib/ui/components/buttons/StockButton.js +25 -32
  286. package/lib/ui/components/buttons/StockButton.js.map +1 -1
  287. package/lib/ui/components/buttons/TriggerButton.d.ts +6 -5
  288. package/lib/ui/components/buttons/TriggerButton.d.ts.map +1 -1
  289. package/lib/ui/components/buttons/TriggerButton.js +11 -12
  290. package/lib/ui/components/buttons/TriggerButton.js.map +1 -1
  291. package/lib/ui/components/buttons-text/BuyButton.d.ts +6 -5
  292. package/lib/ui/components/buttons-text/BuyButton.d.ts.map +1 -1
  293. package/lib/ui/components/buttons-text/BuyButton.js +19 -26
  294. package/lib/ui/components/buttons-text/BuyButton.js.map +1 -1
  295. package/lib/ui/components/buttons-text/SellButton.d.ts +6 -5
  296. package/lib/ui/components/buttons-text/SellButton.d.ts.map +1 -1
  297. package/lib/ui/components/buttons-text/SellButton.js +19 -28
  298. package/lib/ui/components/buttons-text/SellButton.js.map +1 -1
  299. package/output/kitten-scientists.inject.js +2441 -2516
  300. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../source/ui/components/SettingsPanel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAQ5E,MAAM,OAAO,aAIX,SAAQ,gBAAgB;IAGf,OAAO,CAAW;IAClB,WAAW,CAAY;IAEhC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,MAAe;QAC1B,UAAU;IACZ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,YACE,IAAsB,EACtB,OAAiB,EACjB,WAAsB,EACtB,OAAkD;QAElD,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../source/ui/components/SettingsPanel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AAWvF,MAAM,OAAO,aAIX,SAAQ,gBAAgB;IAIf,OAAO,CAAW;IAClB,WAAW,CAAY;IAEhC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,MAAe;QAC1B,UAAU;IACZ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,YACE,MAAmB,EACnB,OAAiB,EACjB,WAAsB,EACtB,OAAyC;QAEzC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;IAClG,CAAC;CACF"}
@@ -1,14 +1,15 @@
1
- import type { KittenScientists } from "../../KittenScientists.js";
2
1
  import { UiComponent, type UiComponentOptions } from "./UiComponent.js";
3
- export type TextButtonOptions = UiComponentOptions & {
4
- readonly title: string;
5
- readonly onClick: () => void;
2
+ export type TextButtonOptions = ThisType<TextButton> & UiComponentOptions & {
3
+ readonly title?: string;
4
+ readonly onClick?: (event?: MouseEvent) => void | Promise<void>;
6
5
  };
7
6
  export declare class TextButton extends UiComponent {
7
+ readonly options: TextButtonOptions;
8
8
  readonly element: JQuery;
9
9
  readOnly: boolean;
10
- constructor(host: KittenScientists, label?: string, options?: Partial<TextButtonOptions>);
11
- click(): void;
10
+ constructor(parent: UiComponent, label?: string, options?: TextButtonOptions);
11
+ toString(): string;
12
+ click(): void | Promise<void>;
12
13
  refreshUi(): void;
13
14
  }
14
15
  //# sourceMappingURL=TextButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextButton.d.ts","sourceRoot":"","sources":["../../../source/ui/components/TextButton.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,qBAAa,UAAW,SAAQ,WAAW;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;gBAEN,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAsB/E,KAAK;IAQL,SAAS,IAAI,IAAI;CAS3B"}
1
+ {"version":3,"file":"TextButton.d.ts","sourceRoot":"","sources":["../../../source/ui/components/TextButton.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAClD,kBAAkB,GAAG;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE,CAAC;AAEJ,qBAAa,UAAW,SAAQ,WAAW;IACzC,SAAiB,OAAO,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;gBAEN,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAqB5E,QAAQ,IAAI,MAAM;IAIlB,KAAK;IAUL,SAAS,IAAI,IAAI;CAOlB"}
@@ -5,8 +5,8 @@ import { UiComponent } from "./UiComponent.js";
5
5
  export class TextButton extends UiComponent {
6
6
  element;
7
7
  readOnly;
8
- constructor(host, label, options) {
9
- super(host, options);
8
+ constructor(parent, label, options) {
9
+ super(parent, { ...options });
10
10
  const element = $("<div/>").addClass(styles.textButton);
11
11
  if (label !== undefined) {
12
12
  element.text(label);
@@ -16,20 +16,22 @@ export class TextButton extends UiComponent {
16
16
  element.prop("title", title);
17
17
  }
18
18
  this.element = element;
19
- this.addChildren(options?.children);
20
19
  this.readOnly = false;
21
20
  this.element.on("click", () => {
22
21
  this.click();
23
22
  });
24
23
  }
24
+ toString() {
25
+ return `[${TextButton.name}#${this.componentId}]`;
26
+ }
25
27
  click() {
26
28
  if (this.readOnly) {
27
29
  return;
28
30
  }
29
- super.click();
31
+ this.requestRefresh();
32
+ return this.options?.onClick?.call(this);
30
33
  }
31
34
  refreshUi() {
32
- super.refreshUi();
33
35
  if (this.readOnly) {
34
36
  this.element.addClass(stylesButton.readonly);
35
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextButton.js","sourceRoot":"","sources":["../../../source/ui/components/TextButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAE7D,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAOxE,MAAM,OAAO,UAAW,SAAQ,WAAW;IAChC,OAAO,CAAS;IACzB,QAAQ,CAAU;IAElB,YAAY,IAAsB,EAAE,KAAc,EAAE,OAAoC;QACtF,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS;QAChB,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"TextButton.js","sourceRoot":"","sources":["../../../source/ui/components/TextButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAC7D,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAQxE,MAAM,OAAO,UAAW,SAAQ,WAAW;IAEhC,OAAO,CAAS;IACzB,QAAQ,CAAU;IAElB,YAAY,MAAmB,EAAE,KAAc,EAAE,OAA2B;QAC1E,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;IACpD,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
@@ -1,11 +1,12 @@
1
- import type { KittenScientists } from "../../KittenScientists.js";
2
1
  import type { Button } from "./Button.js";
3
2
  import type { IconButton } from "./IconButton.js";
4
3
  import { ListItem, type ListItemOptions } from "./ListItem.js";
5
4
  import type { UiComponent } from "./UiComponent.js";
6
- export declare class ToolbarListItem<TOptions extends ListItemOptions<UiComponent> = ListItemOptions<UiComponent>> extends ListItem {
7
- readonly buttons: Array<Button | IconButton>;
8
- constructor(host: KittenScientists, buttons: Array<Button | IconButton>, options?: Partial<TOptions>);
9
- refreshUi(): void;
5
+ export type ToolbarListItemOptions = ThisType<ToolbarListItem> & ListItemOptions;
6
+ export declare class ToolbarListItem extends ListItem {
7
+ readonly options: ToolbarListItemOptions;
8
+ constructor(parent: UiComponent, options?: ToolbarListItemOptions);
9
+ toString(): string;
10
+ addChild(child: Button | IconButton): this;
10
11
  }
11
12
  //# sourceMappingURL=ToolbarListItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarListItem.d.ts","sourceRoot":"","sources":["../../../source/ui/components/ToolbarListItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qBAAa,eAAe,CAC1B,QAAQ,SAAS,eAAe,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAC5E,SAAQ,QAAQ;IAChB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;gBAG3C,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAW7B,SAAS,IAAI,IAAI;CAOlB"}
1
+ {"version":3,"file":"ToolbarListItem.d.ts","sourceRoot":"","sources":["../../../source/ui/components/ToolbarListItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AAEjF,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,SAAiB,OAAO,EAAE,sBAAsB,CAAC;gBAErC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAMjE,QAAQ,IAAI,MAAM;IAIT,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;CAGpD"}
@@ -1,20 +1,15 @@
1
1
  import { ListItem } from "./ListItem.js";
2
2
  import styles from "./ToolbarListItem.module.css";
3
3
  export class ToolbarListItem extends ListItem {
4
- buttons;
5
- constructor(host, buttons, options) {
6
- super(host, options);
4
+ constructor(parent, options) {
5
+ super(parent, options);
7
6
  this.element.addClass(styles.toolbar);
8
- this.buttons = buttons;
9
- for (const button of buttons) {
10
- this.element.append(button.element);
11
- }
12
7
  }
13
- refreshUi() {
14
- super.refreshUi();
15
- for (const button of this.buttons) {
16
- button.refreshUi();
17
- }
8
+ toString() {
9
+ return `[${ToolbarListItem.name}#${this.componentId}]`;
10
+ }
11
+ addChild(child) {
12
+ return super.addChild(child);
18
13
  }
19
14
  }
20
15
  //# sourceMappingURL=ToolbarListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarListItem.js","sourceRoot":"","sources":["../../../source/ui/components/ToolbarListItem.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAC/D,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAGlD,MAAM,OAAO,eAEX,SAAQ,QAAQ;IACP,OAAO,CAA6B;IAE7C,YACE,IAAsB,EACtB,OAAmC,EACnC,OAA2B;QAE3B,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,SAAS;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ToolbarListItem.js","sourceRoot":"","sources":["../../../source/ui/components/ToolbarListItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAC/D,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAKlD,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAG3C,YAAY,MAAmB,EAAE,OAAgC;QAC/D,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;IACzD,CAAC;IAEQ,QAAQ,CAAC,KAA0B;QAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -1,27 +1,36 @@
1
1
  import type { KittenScientists } from "../../KittenScientists.js";
2
2
  export type UiComponentInterface = EventTarget & {
3
+ readonly children: Iterable<UiComponentInterface>;
4
+ parent: UiComponentInterface | null;
3
5
  get element(): JQuery;
4
6
  refreshUi(): void;
7
+ requestRefresh(withChildren?: boolean, depth?: number): void;
8
+ refresh(force?: boolean, depth?: number): void;
5
9
  };
6
- export type UiComponentOptions<TChild extends UiComponentInterface = UiComponentInterface> = {
7
- readonly children: Array<TChild>;
8
- readonly classes: Array<string>;
9
- readonly onClick: (subject: UiComponent) => void;
10
- readonly onRefresh: (subject: UiComponent) => void;
10
+ export type UiComponentOptions = {
11
+ length?: never;
12
+ readonly onRefresh?: () => void;
11
13
  };
12
- export declare abstract class UiComponent<TOptions extends UiComponentOptions = UiComponentOptions> extends EventTarget implements UiComponentInterface {
14
+ export declare abstract class UiComponent extends EventTarget implements UiComponentInterface {
15
+ private static nextComponentId;
16
+ readonly componentId: number;
13
17
  /**
14
18
  * A reference to the host itself.
15
19
  */
16
- protected readonly _host: KittenScientists;
17
- protected readonly _options: Partial<TOptions>;
20
+ readonly host: KittenScientists;
21
+ parent: UiComponent | null;
22
+ readonly options: UiComponentOptions | undefined;
18
23
  /**
19
24
  * The main DOM element for this component, in a JQuery wrapper.
20
25
  */
21
26
  abstract readonly element: JQuery;
22
- readonly children: Set<TOptions["children"][0]>;
23
- protected readonly _onClick: TOptions["onClick"] | undefined;
24
- protected readonly _onRefresh: TOptions["onRefresh"] | undefined;
27
+ /**
28
+ * NOTE: It is intentional that all children are of the most fundamental base type.
29
+ * If a more specifically typed reference for a child is required, it should be stored
30
+ * on construction.
31
+ * The 'children' set is intended only for inter-component orchestration.
32
+ */
33
+ readonly children: Set<UiComponentInterface>;
25
34
  /**
26
35
  * Constructs the base `UiComponent`.
27
36
  * Subclasses MUST add children from options when `this.element` is constructed.
@@ -29,12 +38,17 @@ export declare abstract class UiComponent<TOptions extends UiComponentOptions =
29
38
  * @param host A reference to the host.
30
39
  * @param options The options for this component.
31
40
  */
32
- constructor(host: KittenScientists, options?: Partial<TOptions>);
33
- click(): void;
34
- refreshUi(): void;
35
- addChild(child: TOptions["children"][0]): void;
36
- addChildren(children?: Iterable<TOptions["children"][0]>): void;
37
- removeChild(child: TOptions["children"][0]): void;
38
- removeChildren(children: Iterable<TOptions["children"][0]>): void;
41
+ constructor(parent: UiComponent | {
42
+ host: KittenScientists;
43
+ }, options?: UiComponentOptions);
44
+ abstract toString(): string;
45
+ protected _needsRefresh: boolean;
46
+ requestRefresh(withChildren?: boolean, depth?: number): void;
47
+ refresh(force?: boolean, depth?: number): void;
48
+ abstract refreshUi(): void;
49
+ addChild(child: UiComponentInterface): this;
50
+ addChildren(children?: Iterable<UiComponentInterface>): this;
51
+ removeChild(child: UiComponentInterface): void;
52
+ removeChildren(children: Iterable<UiComponentInterface>): void;
39
53
  }
40
54
  //# sourceMappingURL=UiComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponent.d.ts","sourceRoot":"","sources":["../../../source/ui/components/UiComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,IAAI,OAAO,IAAI,MAAM,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,IAAI;IAC3F,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF,8BAAsB,WAAW,CAAC,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CACxF,SAAQ,WACR,YAAW,oBAAoB;IAE/B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAE3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,QAAQ,+BAAsC;IAEvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IAEjE;;;;;;OAMG;gBACS,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAQ/D,KAAK;IAIL,SAAS;IAWT,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAIvC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAMxD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQ1C,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAK3D"}
1
+ {"version":3,"file":"UiComponent.d.ts","sourceRoot":"","sources":["../../../source/ui/components/UiComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAClD,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,IAAI,OAAO,IAAI,MAAM,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF,8BAAsB,WAAY,SAAQ,WAAY,YAAW,oBAAoB;IACnF,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,4BAAmC;IAEpD;;;;;;OAMG;gBACS,MAAM,EAAE,WAAW,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAU1F,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,SAAS,CAAC,aAAa,UAAC;IACxB,cAAc,CAAC,YAAY,UAAQ,EAAE,KAAK,SAAI;IA2B9C,OAAO,CAAC,KAAK,UAAQ,EAAE,KAAK,SAAI;IA2BhC,QAAQ,CAAC,SAAS,IAAI,IAAI;IAE1B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAM3C,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAO5D,WAAW,CAAC,KAAK,EAAE,oBAAoB;IAQvC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC;CAKxD"}
@@ -1,13 +1,20 @@
1
1
  import { cl } from "../../tools/Log.js";
2
2
  export class UiComponent extends EventTarget {
3
+ static nextComponentId = 0;
4
+ componentId;
3
5
  /**
4
6
  * A reference to the host itself.
5
7
  */
6
- _host;
7
- _options;
8
+ host;
9
+ parent;
10
+ options;
11
+ /**
12
+ * NOTE: It is intentional that all children are of the most fundamental base type.
13
+ * If a more specifically typed reference for a child is required, it should be stored
14
+ * on construction.
15
+ * The 'children' set is intended only for inter-component orchestration.
16
+ */
8
17
  children = new Set();
9
- _onClick;
10
- _onRefresh;
11
18
  /**
12
19
  * Constructs the base `UiComponent`.
13
20
  * Subclasses MUST add children from options when `this.element` is constructed.
@@ -15,35 +22,59 @@ export class UiComponent extends EventTarget {
15
22
  * @param host A reference to the host.
16
23
  * @param options The options for this component.
17
24
  */
18
- constructor(host, options) {
25
+ constructor(parent, options) {
19
26
  super();
20
- this._host = host;
21
- this._options = options ?? {};
22
- this._onClick = options?.onClick;
23
- this._onRefresh = options?.onRefresh;
27
+ this.componentId = UiComponent.nextComponentId++;
28
+ this.host = parent.host;
29
+ this.options = options;
30
+ this.parent = parent instanceof UiComponent ? parent : null;
31
+ this._needsRefresh = false;
24
32
  }
25
- click() {
26
- this._onClick?.(this);
33
+ _needsRefresh;
34
+ requestRefresh(withChildren = false, depth = 0) {
35
+ console.debug(...cl(depth < 0 ? "⤒".repeat(depth * -1) : " ".repeat(depth), this.toString(), "requestRefresh", withChildren ? "with children" : "on self"));
36
+ if (withChildren) {
37
+ for (const child of this.children) {
38
+ child.requestRefresh(withChildren, depth + 1);
39
+ }
40
+ }
41
+ if (this._needsRefresh) {
42
+ return;
43
+ }
44
+ this._needsRefresh = true;
45
+ this.parent?.requestRefresh(false, depth - 1);
46
+ if (depth === 0) {
47
+ console.info(...cl("requestRefresh() complete."));
48
+ }
27
49
  }
28
- refreshUi() {
29
- this._onRefresh?.(this);
50
+ refresh(force = false, depth = 0) {
51
+ if (!force && !this._needsRefresh) {
52
+ return;
53
+ }
54
+ if (!force) {
55
+ console.debug(...cl(depth < 0 ? "⤒".repeat(depth * -1) : " ".repeat(depth), this.toString(), "refresh", typeof this.options?.onRefresh !== "undefined" ? "with onRefresh()" : ""));
56
+ }
57
+ this.options?.onRefresh?.call(this);
58
+ this.refreshUi();
30
59
  for (const child of this.children) {
31
- try {
32
- child.refreshUi();
33
- }
34
- catch (error) {
35
- console.error(...cl("Error while refreshing child component!", error));
36
- }
60
+ child.refresh(force, depth + 1);
61
+ }
62
+ this._needsRefresh = false;
63
+ if (depth === 0) {
64
+ console.info(...cl("refresh() complete."));
37
65
  }
38
66
  }
39
67
  addChild(child) {
68
+ child.parent = this;
40
69
  this.children.add(child);
41
70
  this.element.append(child.element);
71
+ return this;
42
72
  }
43
73
  addChildren(children) {
44
74
  for (const child of children ?? []) {
45
75
  this.addChild(child);
46
76
  }
77
+ return this;
47
78
  }
48
79
  removeChild(child) {
49
80
  if (!this.children.has(child)) {
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponent.js","sourceRoot":"","sources":["../../../source/ui/components/UiComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAcxC,MAAM,OAAgB,WACpB,SAAQ,WAAW;IAGnB;;OAEG;IACgB,KAAK,CAAmB;IAExB,QAAQ,CAAoB;IAOtC,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpC,QAAQ,CAAkC;IAC1C,UAAU,CAAoC;IAEjE;;;;;;OAMG;IACH,YAAY,IAAsB,EAAE,OAA2B;QAC7D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,WAAW,CAAC,QAA4C;QACtD,KAAK,MAAM,KAAK,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAA8B;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,cAAc,CAAC,QAA2C;QACxD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"UiComponent.js","sourceRoot":"","sources":["../../../source/ui/components/UiComponent.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,21 @@
1
1
  import type { SupportedLocale } from "../../Engine.js";
2
- import type { KittenScientists } from "../../KittenScientists.js";
3
2
  import type { SettingOptions } from "../../settings/Settings.js";
4
3
  import type { CraftSettingsItem } from "../../settings/WorkshopSettings.js";
5
- import type { SettingListItemOptionsLimited } from "./SettingLimitedListItem.js";
4
+ import type { SettingLimitedListItemOptions } from "./SettingLimitedListItem.js";
6
5
  import { SettingListItem, type SettingListItemOptions } from "./SettingListItem.js";
7
- import type { SettingListItemOptionsMax } from "./SettingMaxListItem.js";
8
- import type { SettingListItemOptionsTrigger } from "./SettingTriggerListItem.js";
6
+ import type { SettingMaxListItemOptions } from "./SettingMaxListItem.js";
7
+ import type { SettingTriggerListItemOptions } from "./SettingTriggerListItem.js";
9
8
  import type { UiComponent } from "./UiComponent.js";
10
9
  import { LimitedButton } from "./buttons/LimitedButton.js";
11
10
  import { MaxButton } from "./buttons/MaxButton.js";
12
11
  import { TriggerButton } from "./buttons/TriggerButton.js";
13
- export declare class WorkshopCraftListItem<TOptions extends SettingListItemOptions<UiComponent> & SettingListItemOptionsLimited & SettingListItemOptionsMax & SettingListItemOptionsTrigger = SettingListItemOptions<UiComponent> & SettingListItemOptionsLimited & SettingListItemOptionsMax & SettingListItemOptionsTrigger> extends SettingListItem<CraftSettingsItem> {
12
+ export type WorkshopCraftListItemOptions = SettingListItemOptions & SettingLimitedListItemOptions & SettingMaxListItemOptions & SettingTriggerListItemOptions & ThisType<WorkshopCraftListItem>;
13
+ export declare class WorkshopCraftListItem extends SettingListItem<CraftSettingsItem> {
14
+ readonly options: WorkshopCraftListItemOptions;
14
15
  readonly limitedButton: LimitedButton;
15
16
  readonly maxButton: MaxButton;
16
17
  readonly triggerButton: TriggerButton;
17
- constructor(host: KittenScientists, setting: CraftSettingsItem, locale: SettingOptions<SupportedLocale>, label: string, options?: Partial<TOptions>);
18
- refreshUi(): void;
18
+ constructor(parent: UiComponent, setting: CraftSettingsItem, locale: SettingOptions<SupportedLocale>, label: string, options: WorkshopCraftListItemOptions);
19
+ toString(): string;
19
20
  }
20
21
  //# sourceMappingURL=WorkshopCraftListItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkshopCraftListItem.d.ts","sourceRoot":"","sources":["../../../source/ui/components/WorkshopCraftListItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAK5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,qBAAa,qBAAqB,CAChC,QAAQ,SAAS,sBAAsB,CAAC,WAAW,CAAC,GAClD,6BAA6B,GAC7B,yBAAyB,GACzB,6BAA6B,GAAG,sBAAsB,CAAC,WAAW,CAAC,GACnE,6BAA6B,GAC7B,yBAAyB,GACzB,6BAA6B,CAC/B,SAAQ,eAAe,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAGpC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,EACvC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAiC7B,SAAS;CAOV"}
1
+ {"version":3,"file":"WorkshopCraftListItem.d.ts","sourceRoot":"","sources":["../../../source/ui/components/WorkshopCraftListItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAK5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,GAC/D,6BAA6B,GAC7B,yBAAyB,GACzB,6BAA6B,GAC7B,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAElC,qBAAa,qBAAsB,SAAQ,eAAe,CAAC,iBAAiB,CAAC;IAC3E,SAAiB,OAAO,EAAE,4BAA4B,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAGpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,EACvC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,4BAA4B;IAmCvC,QAAQ,IAAI,MAAM;CAGnB"}
@@ -10,39 +10,38 @@ export class WorkshopCraftListItem extends SettingListItem {
10
10
  limitedButton;
11
11
  maxButton;
12
12
  triggerButton;
13
- constructor(host, setting, locale, label, options) {
14
- super(host, setting, label, options);
15
- this.limitedButton = new LimitedButton(host, setting, {
13
+ constructor(parent, setting, locale, label, options) {
14
+ super(parent, setting, label, options);
15
+ this.limitedButton = new LimitedButton(parent, setting, {
16
16
  ...options,
17
17
  classes: [stylesListItem.headAction],
18
18
  });
19
- this.maxButton = new MaxButton(host, setting, {
19
+ this.maxButton = new MaxButton(parent, setting, {
20
20
  alignment: "right",
21
21
  border: false,
22
22
  classes: [stylesButton.headAction],
23
- onClick: options?.onSetMax ? () => options.onSetMax?.(this) : undefined,
24
- onRefresh: options?.onRefreshMax ? () => options.onRefreshMax?.(this) : undefined,
23
+ onClick: () => options.onSetMax.call(this),
24
+ onRefresh: options?.onRefreshMax ? () => options.onRefreshMax?.call(this) : undefined,
25
25
  });
26
- this.triggerButton = new TriggerButton(host, setting, locale, {
26
+ this.triggerButton = new TriggerButton(parent, setting, locale, {
27
27
  border: false,
28
28
  classes: [stylesButton.lastHeadAction],
29
- onClick: options?.onSetTrigger ? () => options.onSetTrigger?.(this) : undefined,
30
- onRefreshTitle: options?.onRefreshTrigger
31
- ? () => options.onRefreshTrigger?.(this)
32
- : undefined,
29
+ onClick: async () => {
30
+ await options.onSetTrigger.call(this);
31
+ this.requestRefresh();
32
+ },
33
+ onRefresh: options?.onRefreshTrigger ? () => options.onRefreshTrigger?.call(this) : undefined,
34
+ renderLabel: options?.renderLabelTrigger ?? true,
33
35
  });
34
- this.head.addChildren([
35
- new Container(host, { classes: [stylesLabelListItem.fillSpace] }),
36
+ this.addChildrenHead([
37
+ new Container(parent, { classes: [stylesLabelListItem.fillSpace] }),
36
38
  this.limitedButton,
37
39
  this.maxButton,
38
40
  this.triggerButton,
39
41
  ]);
40
42
  }
41
- refreshUi() {
42
- super.refreshUi();
43
- this.limitedButton.refreshUi();
44
- this.maxButton.refreshUi();
45
- this.triggerButton.refreshUi();
43
+ toString() {
44
+ return `[${WorkshopCraftListItem.name}#${this.componentId}]`;
46
45
  }
47
46
  }
48
47
  //# sourceMappingURL=WorkshopCraftListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkshopCraftListItem.js","sourceRoot":"","sources":["../../../source/ui/components/WorkshopCraftListItem.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,qBAQX,SAAQ,eAAkC;IACjC,aAAa,CAAgB;IAC7B,SAAS,CAAY;IACrB,aAAa,CAAgB;IAEtC,YACE,IAAsB,EACtB,OAA0B,EAC1B,MAAuC,EACvC,KAAa,EACb,OAA2B;QAE3B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE;YACpD,GAAG,OAAO;YACV,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE;YAC5C,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACvE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC;YACtC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/E,cAAc,EAAE,OAAO,EAAE,gBAAgB;gBACvC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC;gBACxC,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,aAAa;SACnB,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"WorkshopCraftListItem.js","sourceRoot":"","sources":["../../../source/ui/components/WorkshopCraftListItem.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,MAAM,OAAO,qBAAsB,SAAQ,eAAkC;IAElE,aAAa,CAAgB;IAC7B,SAAS,CAAY;IACrB,aAAa,CAAgB;IAEtC,YACE,MAAmB,EACnB,OAA0B,EAC1B,MAAuC,EACvC,KAAa,EACb,OAAqC;QAErC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEvC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;YACtD,GAAG,OAAO;YACV,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;YAC9C,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;YAClC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACtF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;YAC9D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC;YACtC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;YACD,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7F,WAAW,EAAE,OAAO,EAAE,kBAAkB,IAAI,IAAI;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC;YACnB,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,aAAa;SACnB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,qBAAqB,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;IAC/D,CAAC;CACF"}
@@ -1,12 +1,15 @@
1
1
  import type { SupportedLocale } from "../../../Engine.js";
2
- import type { KittenScientists } from "../../../KittenScientists.js";
3
2
  import type { ResourcesSettingsItem } from "../../../settings/ResourcesSettings.js";
4
3
  import type { SettingOptions } from "../../../settings/Settings.js";
5
4
  import { Button, type ButtonOptions } from "../Button.js";
5
+ import type { UiComponent } from "../UiComponent.js";
6
+ export type ConsumeButtonOptions = ThisType<ConsumeButton> & ButtonOptions;
6
7
  export declare class ConsumeButton extends Button {
8
+ readonly options: ConsumeButtonOptions;
7
9
  readonly setting: ResourcesSettingsItem;
8
10
  readonly resourceName: string;
9
- constructor(host: KittenScientists, setting: ResourcesSettingsItem, locale: SettingOptions<SupportedLocale>, resourceName: string, options?: Partial<ButtonOptions>);
11
+ constructor(parent: UiComponent, setting: ResourcesSettingsItem, locale: SettingOptions<SupportedLocale>, resourceName: string, options: Omit<ConsumeButtonOptions, "onClick">);
12
+ toString(): string;
10
13
  refreshUi(): void;
11
14
  }
12
15
  //# sourceMappingURL=ConsumeButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumeButton.d.ts","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ConsumeButton.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAI1D,qBAAa,aAAc,SAAQ,MAAM;IACvC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAG5B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,EACvC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IA2ClC,SAAS;CAcV"}
1
+ {"version":3,"file":"ConsumeButton.d.ts","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ConsumeButton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;AAE3E,qBAAa,aAAc,SAAQ,MAAM;IACvC,SAAiB,OAAO,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAG5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,EACvC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAkChD,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,IAAI;CAclB"}
@@ -1,4 +1,3 @@
1
- import { redirectErrorsToConsole } from "@oliversalzburg/js-utils/errors/console.js";
2
1
  import { Icons } from "../../../images/Icons.js";
3
2
  import { Button } from "../Button.js";
4
3
  import stylesButton from "../Button.module.css";
@@ -6,42 +5,36 @@ import { Dialog } from "../Dialog.js";
6
5
  export class ConsumeButton extends Button {
7
6
  setting;
8
7
  resourceName;
9
- constructor(host, setting, locale, resourceName, options) {
10
- super(host, "", Icons.DataUsage, {
8
+ constructor(parent, setting, locale, resourceName, options) {
9
+ super(parent, "", Icons.DataUsage, {
11
10
  ...options,
12
- onClick: () => {
13
- Dialog.prompt(host, host.engine.i18n("resources.consume.prompt"), host.engine.i18n("resources.consume.promptTitle", [
11
+ onClick: async () => {
12
+ const value = await Dialog.prompt(parent, parent.host.engine.i18n("resources.consume.prompt"), parent.host.engine.i18n("resources.consume.promptTitle", [
14
13
  resourceName,
15
- host.renderPercentage(setting.consume, locale.selected, true),
16
- ]), host.renderPercentage(setting.consume), host.engine.i18n("resources.consume.promptExplainer"))
17
- .then(value => {
18
- if (value === undefined) {
19
- return;
20
- }
21
- if (value === "" || value.startsWith("-")) {
22
- return;
23
- }
24
- setting.consume = host.parsePercentage(value);
25
- })
26
- .then(() => {
27
- this.refreshUi();
28
- if (options?.onClick) {
29
- options.onClick(this);
30
- }
31
- })
32
- .catch(redirectErrorsToConsole(console));
14
+ parent.host.renderPercentage(setting.consume, locale.selected, true),
15
+ ]), parent.host.renderPercentage(setting.consume), parent.host.engine.i18n("resources.consume.promptExplainer"));
16
+ if (value === undefined) {
17
+ return;
18
+ }
19
+ if (value === "" || value.startsWith("-")) {
20
+ return;
21
+ }
22
+ setting.consume = parent.host.parsePercentage(value);
33
23
  },
34
24
  });
35
25
  this.element.addClass(stylesButton.consumeButton);
36
26
  this.resourceName = resourceName;
37
27
  this.setting = setting;
38
28
  }
29
+ toString() {
30
+ return `[${ConsumeButton.name}#${this.componentId}]`;
31
+ }
39
32
  refreshUi() {
40
33
  super.refreshUi();
41
- const consumeValue = this._host.renderPercentage(this.setting.consume, this._host.engine.settings.locale.selected, true);
34
+ const consumeValue = this.host.renderPercentage(this.setting.consume, this.host.engine.settings.locale.selected, true);
42
35
  const title = this.setting.consume === 0
43
- ? this._host.engine.i18n("resources.consume.titleZero", [this.resourceName])
44
- : this._host.engine.i18n("resources.consume.title", [consumeValue, this.resourceName]);
36
+ ? this.host.engine.i18n("resources.consume.titleZero", [this.resourceName])
37
+ : this.host.engine.i18n("resources.consume.title", [consumeValue, this.resourceName]);
45
38
  this.updateTitle(title);
46
39
  }
47
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumeButton.js","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ConsumeButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AAC1D,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,OAAO,aAAc,SAAQ,MAAM;IAC9B,OAAO,CAAwB;IAC/B,YAAY,CAAS;IAE9B,YACE,IAAsB,EACtB,OAA8B,EAC9B,MAAuC,EACvC,YAAoB,EACpB,OAAgC;QAEhC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE;YAC/B,GAAG,OAAO;YACV,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,MAAM,CACX,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBAChD,YAAY;oBACZ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;iBAC9D,CAAC,EACF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CACtD;qBACE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,OAAO;oBACT,CAAC;oBAED,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1C,OAAO;oBACT,CAAC;oBAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAChD,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,EAAE;oBACT,IAAI,CAAC,SAAS,EAAE,CAAC;oBAEjB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;wBACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAElD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,SAAS;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAC1C,IAAI,CACL,CAAC;QACF,MAAM,KAAK,GACT,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"ConsumeButton.js","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ConsumeButton.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AAC1D,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,MAAM,OAAO,aAAc,SAAQ,MAAM;IAE9B,OAAO,CAAwB;IAC/B,YAAY,CAAS;IAE9B,YACE,MAAmB,EACnB,OAA8B,EAC9B,MAAuC,EACvC,YAAoB,EACpB,OAA8C;QAE9C,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE;YACjC,GAAG,OAAO;YACV,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAC/B,MAAM,EACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,EACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBACvD,YAAY;oBACZ,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACrE,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAC7D,CAAC;gBAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAElD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;IACvD,CAAC;IAED,SAAS;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EACzC,IAAI,CACL,CAAC;QACF,MAAM,KAAK,GACT,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -1,6 +1,9 @@
1
- import type { KittenScientists } from "../../../KittenScientists.js";
2
1
  import { UiComponent, type UiComponentOptions } from "../UiComponent.js";
2
+ export type ExpandoButtonOptions = ThisType<ExpandoButton> & UiComponentOptions & {
3
+ readonly onClick?: (event?: MouseEvent) => void | Promise<void>;
4
+ };
3
5
  export declare class ExpandoButton extends UiComponent {
6
+ readonly options: ExpandoButtonOptions;
4
7
  readonly element: JQuery;
5
8
  ineffective: boolean;
6
9
  /**
@@ -10,7 +13,8 @@ export declare class ExpandoButton extends UiComponent {
10
13
  * @param host A reference to the host.
11
14
  * @param options Options for this expando.
12
15
  */
13
- constructor(host: KittenScientists, options?: Partial<UiComponentOptions>);
16
+ constructor(parent: UiComponent, options?: ExpandoButtonOptions);
17
+ toString(): string;
14
18
  setCollapsed(): void;
15
19
  setExpanded(): void;
16
20
  refreshUi(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandoButton.d.ts","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ExpandoButton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;gBACS,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAkBzE,YAAY;IAIZ,WAAW;IAKF,SAAS,IAAI,IAAI;CAS3B"}
1
+ {"version":3,"file":"ExpandoButton.d.ts","sourceRoot":"","sources":["../../../../source/ui/components/buttons/ExpandoButton.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GACxD,kBAAkB,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE3F,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAiB,OAAO,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;gBACS,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAkB/D,QAAQ,IAAI,MAAM;IAIlB,YAAY;IAIZ,WAAW;IAKX,SAAS,IAAI,IAAI;CAOlB"}