blue-chestnut-solar-expert 0.0.67 → 0.0.68

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 (333) hide show
  1. package/dist/stencil-library/assets/tutorial4.mp4 +0 -0
  2. package/dist/{collection/config.js → stencil-library/config-CWfV1nKn.js} +10 -4
  3. package/dist/stencil-library/config-CWfV1nKn.js.map +1 -0
  4. package/dist/stencil-library/constants-hboFofU4.js +1522 -0
  5. package/dist/stencil-library/constants-hboFofU4.js.map +1 -0
  6. package/dist/stencil-library/decoder-DNOvLSaS.js +39 -0
  7. package/dist/stencil-library/decoder-DNOvLSaS.js.map +1 -0
  8. package/dist/stencil-library/deflate-0Vdd6-55.js +21 -0
  9. package/dist/{esm/deflate-DHgPf9CO.js.map → stencil-library/deflate-0Vdd6-55.js.map} +1 -1
  10. package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -0
  11. package/dist/{components/p-CL74Q4VR.js → stencil-library/eraser-icon.entry.js} +9 -27
  12. package/dist/stencil-library/eraser-icon.entry.js.map +1 -0
  13. package/dist/stencil-library/house-icon.entry.esm.js.map +1 -0
  14. package/dist/{components/p-D8w3bTPO.js → stencil-library/house-icon.entry.js} +9 -27
  15. package/dist/stencil-library/house-icon.entry.js.map +1 -0
  16. package/dist/{components/loading-widget.js → stencil-library/icon-selector.entry.esm.js.map} +1 -38
  17. package/dist/stencil-library/icon-selector.entry.js +47 -0
  18. package/dist/stencil-library/icon-selector.entry.js.map +1 -0
  19. package/dist/stencil-library/index-CChkgM3J.js +414 -0
  20. package/dist/stencil-library/index-CChkgM3J.js.map +1 -0
  21. package/dist/stencil-library/index-ICfDNUMe.js +4172 -0
  22. package/dist/stencil-library/index-ICfDNUMe.js.map +1 -0
  23. package/dist/stencil-library/index.esm.js +13 -1
  24. package/dist/stencil-library/index.esm.js.map +1 -1
  25. package/dist/{esm/jpeg-CJLm1GkA.js → stencil-library/jpeg-Dd5nnHR5.js} +11 -3
  26. package/dist/stencil-library/jpeg-Dd5nnHR5.js.map +1 -0
  27. package/dist/{components/p-BcVa4_YP.js → stencil-library/lerc-7W4E8EBs.js} +27 -1981
  28. package/dist/stencil-library/lerc-7W4E8EBs.js.map +1 -0
  29. package/dist/{esm → stencil-library}/loading-widget.entry.js +3 -3
  30. package/dist/{components/p-P28NBglk.js.map → stencil-library/loading-widget.entry.js.map} +1 -1
  31. package/dist/{esm/lzw-DaOzWJUD.js → stencil-library/lzw--P4c0ZHH.js} +10 -4
  32. package/dist/stencil-library/lzw--P4c0ZHH.js.map +1 -0
  33. package/dist/stencil-library/map-draw-Cx9WZoKH.js +25567 -0
  34. package/dist/stencil-library/map-draw-Cx9WZoKH.js.map +1 -0
  35. package/dist/stencil-library/map-draw.entry.esm.js.map +1 -0
  36. package/dist/stencil-library/map-draw.entry.js +12 -0
  37. package/dist/stencil-library/map-draw.entry.js.map +1 -0
  38. package/dist/stencil-library/map-selector.entry.esm.js.map +1 -0
  39. package/dist/{components/p-C5QieOat.js → stencil-library/map-selector.entry.js} +164 -96
  40. package/dist/stencil-library/map-selector.entry.js.map +1 -0
  41. package/dist/{components/loading-widget.js.map → stencil-library/marker-icon.entry.esm.js.map} +1 -1
  42. package/dist/{components/p-Umz6nJIv.js → stencil-library/marker-icon.entry.js} +9 -27
  43. package/dist/stencil-library/marker-icon.entry.js.map +1 -0
  44. package/dist/stencil-library/move-icon.entry.esm.js.map +1 -0
  45. package/dist/{components/p-FdEV2qPo.js → stencil-library/move-icon.entry.js} +9 -27
  46. package/dist/stencil-library/move-icon.entry.js.map +1 -0
  47. package/dist/{components/p-DTXeHbuh.js.map → stencil-library/octagon-minus-icon.entry.esm.js.map} +1 -1
  48. package/dist/{components/p-BJLO76Yi.js → stencil-library/octagon-minus-icon.entry.js} +9 -27
  49. package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -0
  50. package/dist/{components/p-ByX6QP-E.js → stencil-library/packbits-X3R_utTs.js} +9 -3
  51. package/dist/stencil-library/packbits-X3R_utTs.js.map +1 -0
  52. package/dist/stencil-library/pako.esm-CPorU236.js +6881 -0
  53. package/dist/{esm/pako.esm-B5WTRCh8.js.map → stencil-library/pako.esm-CPorU236.js.map} +1 -1
  54. package/dist/{components/p-B4X-RCW0.js.map → stencil-library/polygon-buttons.entry.esm.js.map} +1 -1
  55. package/dist/{cjs/loading-widget.cjs.entry.js → stencil-library/polygon-buttons.entry.js} +16 -10
  56. package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
  57. package/dist/{cjs/loading-widget.cjs.entry.js.map → stencil-library/polygon-information.entry.esm.js.map} +1 -1
  58. package/dist/{components/p-BFJHTJPM.js → stencil-library/polygon-information.entry.js} +13 -70
  59. package/dist/stencil-library/polygon-information.entry.js.map +1 -0
  60. package/dist/stencil-library/raw-BxukYehy.js +20 -0
  61. package/dist/stencil-library/raw-BxukYehy.js.map +1 -0
  62. package/dist/stencil-library/search-icon.entry.esm.js.map +1 -0
  63. package/dist/{components/p-DBwr8xSB.js → stencil-library/search-icon.entry.js} +9 -27
  64. package/dist/stencil-library/{p-ab0f2031.entry.js → search-icon.entry.js.map} +1 -2
  65. package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -0
  66. package/dist/{components/p-DTXeHbuh.js → stencil-library/settings-icon.entry.js} +9 -27
  67. package/dist/stencil-library/settings-icon.entry.js.map +1 -0
  68. package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -0
  69. package/dist/{components/p-B4X-RCW0.js → stencil-library/settings-modal.entry.js} +20 -38
  70. package/dist/stencil-library/settings-modal.entry.js.map +1 -0
  71. package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -0
  72. package/dist/{components/solar-expert.js → stencil-library/solar-expert.entry.js} +14 -150
  73. package/dist/{components/p-i1uLweD0.js.map → stencil-library/solar-expert.entry.js.map} +1 -1
  74. package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -0
  75. package/dist/stencil-library/solar-system-form.entry.js +553 -0
  76. package/dist/stencil-library/solar-system-form.entry.js.map +1 -0
  77. package/dist/stencil-library/stencil-library.esm.js +52 -1
  78. package/dist/stencil-library/stencil-library.esm.js.map +1 -1
  79. package/dist/{components/p-eDwaXClX.js → stencil-library/store-CcqrFuBK.js} +24 -3
  80. package/dist/stencil-library/store-CcqrFuBK.js.map +1 -0
  81. package/dist/stencil-library/toast-notification.entry.esm.js.map +1 -0
  82. package/dist/{components/p-P28NBglk.js → stencil-library/toast-notification.entry.js} +9 -30
  83. package/dist/stencil-library/toast-notification.entry.js.map +1 -0
  84. package/dist/stencil-library/tool-box.entry.esm.js.map +1 -0
  85. package/dist/{components/p-i1uLweD0.js → stencil-library/tool-box.entry.js} +27 -35
  86. package/dist/stencil-library/tool-box.entry.js.map +1 -0
  87. package/dist/{collection/utils/render/tools.js → stencil-library/tools-BNYKV5H5.js} +14 -8
  88. package/dist/stencil-library/tools-BNYKV5H5.js.map +1 -0
  89. package/dist/stencil-library/tutorial-component.entry.esm.js.map +1 -0
  90. package/dist/{components/p-Dzl6kfPI.js → stencil-library/tutorial-component.entry.js} +42 -35
  91. package/dist/stencil-library/tutorial-component.entry.js.map +1 -0
  92. package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
  93. package/dist/{components/p-waOPoUcA.js → stencil-library/undo-icon.entry.js} +9 -27
  94. package/dist/stencil-library/undo-icon.entry.js.map +1 -0
  95. package/dist/{collection/utils/utils.js → stencil-library/utils-BCUZxI9u.js} +9 -3
  96. package/dist/stencil-library/utils-BCUZxI9u.js.map +1 -0
  97. package/dist/{esm/webimage-BiHardhv.js → stencil-library/webimage-CBrfoxHM.js} +9 -3
  98. package/dist/{esm/webimage-BiHardhv.js.map → stencil-library/webimage-CBrfoxHM.js.map} +1 -1
  99. package/dist/types/components/map-draw/map-draw.d.ts +5 -0
  100. package/dist/types/components/map-draw/tutorial-component.d.ts +7 -0
  101. package/dist/types/components.d.ts +4 -0
  102. package/dist/types/types/lang.d.ts +7 -0
  103. package/package.json +1 -1
  104. package/dist/cjs/app-globals-I24yU8do.js +0 -10
  105. package/dist/cjs/app-globals-I24yU8do.js.map +0 -1
  106. package/dist/cjs/basedecoder-CQuzfSgz.js +0 -116
  107. package/dist/cjs/basedecoder-CQuzfSgz.js.map +0 -1
  108. package/dist/cjs/deflate-AzGzQSW2.js +0 -17
  109. package/dist/cjs/deflate-AzGzQSW2.js.map +0 -1
  110. package/dist/cjs/eraser-icon_19.cjs.entry.js +0 -31
  111. package/dist/cjs/eraser-icon_19.cjs.entry.js.map +0 -1
  112. package/dist/cjs/index-HgRXF6kp.js +0 -1470
  113. package/dist/cjs/index-HgRXF6kp.js.map +0 -1
  114. package/dist/cjs/index.cjs.js +0 -7
  115. package/dist/cjs/index.cjs.js.map +0 -1
  116. package/dist/cjs/jpeg-Bx3bTm32.js +0 -904
  117. package/dist/cjs/jpeg-Bx3bTm32.js.map +0 -1
  118. package/dist/cjs/lerc-v64rYVDy.js +0 -4427
  119. package/dist/cjs/lerc-v64rYVDy.js.map +0 -1
  120. package/dist/cjs/loader.cjs.js +0 -18
  121. package/dist/cjs/loader.cjs.js.map +0 -1
  122. package/dist/cjs/loading-widget.entry.cjs.js.map +0 -1
  123. package/dist/cjs/lzw-BmFug486.js +0 -140
  124. package/dist/cjs/lzw-BmFug486.js.map +0 -1
  125. package/dist/cjs/packbits-CYx9fB0v.js +0 -35
  126. package/dist/cjs/packbits-CYx9fB0v.js.map +0 -1
  127. package/dist/cjs/pako.esm-0mKI6Jik.js +0 -3243
  128. package/dist/cjs/pako.esm-0mKI6Jik.js.map +0 -1
  129. package/dist/cjs/raw-DC82yoyr.js +0 -16
  130. package/dist/cjs/raw-DC82yoyr.js.map +0 -1
  131. package/dist/cjs/stencil-library.cjs.js +0 -30
  132. package/dist/cjs/stencil-library.cjs.js.map +0 -1
  133. package/dist/cjs/webimage-Dc0t2xAB.js +0 -49
  134. package/dist/cjs/webimage-Dc0t2xAB.js.map +0 -1
  135. package/dist/collection/collection-manifest.json +0 -31
  136. package/dist/collection/components/icons/eraser.js +0 -64
  137. package/dist/collection/components/icons/eraser.js.map +0 -1
  138. package/dist/collection/components/icons/house.js +0 -64
  139. package/dist/collection/components/icons/house.js.map +0 -1
  140. package/dist/collection/components/icons/icon.js +0 -108
  141. package/dist/collection/components/icons/icon.js.map +0 -1
  142. package/dist/collection/components/icons/marker.js +0 -64
  143. package/dist/collection/components/icons/marker.js.map +0 -1
  144. package/dist/collection/components/icons/move.js +0 -64
  145. package/dist/collection/components/icons/move.js.map +0 -1
  146. package/dist/collection/components/icons/octagonMinus.js +0 -64
  147. package/dist/collection/components/icons/octagonMinus.js.map +0 -1
  148. package/dist/collection/components/icons/search.js +0 -64
  149. package/dist/collection/components/icons/search.js.map +0 -1
  150. package/dist/collection/components/icons/settings.js +0 -64
  151. package/dist/collection/components/icons/settings.js.map +0 -1
  152. package/dist/collection/components/icons/undo.js +0 -64
  153. package/dist/collection/components/icons/undo.js.map +0 -1
  154. package/dist/collection/components/map-draw/map-draw.js +0 -795
  155. package/dist/collection/components/map-draw/map-draw.js.map +0 -1
  156. package/dist/collection/components/map-draw/map-selector.js +0 -246
  157. package/dist/collection/components/map-draw/map-selector.js.map +0 -1
  158. package/dist/collection/components/map-draw/polygon-buttons.js +0 -86
  159. package/dist/collection/components/map-draw/polygon-buttons.js.map +0 -1
  160. package/dist/collection/components/map-draw/polygon-information.js +0 -211
  161. package/dist/collection/components/map-draw/polygon-information.js.map +0 -1
  162. package/dist/collection/components/map-draw/tool-box.js +0 -108
  163. package/dist/collection/components/map-draw/tool-box.js.map +0 -1
  164. package/dist/collection/components/map-draw/tutorial-component.js +0 -151
  165. package/dist/collection/components/map-draw/tutorial-component.js.map +0 -1
  166. package/dist/collection/components/settings/settings.js +0 -127
  167. package/dist/collection/components/settings/settings.js.map +0 -1
  168. package/dist/collection/components/solar-expert/solar-expert.js +0 -241
  169. package/dist/collection/components/solar-expert/solar-expert.js.map +0 -1
  170. package/dist/collection/components/solar-system-form/solar-system-form.js +0 -596
  171. package/dist/collection/components/solar-system-form/solar-system-form.js.map +0 -1
  172. package/dist/collection/components/widgets/loading-widget.js +0 -18
  173. package/dist/collection/components/widgets/loading-widget.js.map +0 -1
  174. package/dist/collection/components/widgets/toast-notification.js +0 -133
  175. package/dist/collection/components/widgets/toast-notification.js.map +0 -1
  176. package/dist/collection/config.js.map +0 -1
  177. package/dist/collection/constants.js +0 -90
  178. package/dist/collection/constants.js.map +0 -1
  179. package/dist/collection/index.js +0 -2
  180. package/dist/collection/index.js.map +0 -1
  181. package/dist/collection/output.css +0 -1126
  182. package/dist/collection/store.js +0 -43
  183. package/dist/collection/store.js.map +0 -1
  184. package/dist/collection/types/lang.js +0 -2
  185. package/dist/collection/types/lang.js.map +0 -1
  186. package/dist/collection/types/shapes.js +0 -2
  187. package/dist/collection/types/shapes.js.map +0 -1
  188. package/dist/collection/utils/api.js +0 -93
  189. package/dist/collection/utils/api.js.map +0 -1
  190. package/dist/collection/utils/images.js +0 -2
  191. package/dist/collection/utils/images.js.map +0 -1
  192. package/dist/collection/utils/lang/english.js +0 -157
  193. package/dist/collection/utils/lang/english.js.map +0 -1
  194. package/dist/collection/utils/lang/general.js +0 -30
  195. package/dist/collection/utils/lang/general.js.map +0 -1
  196. package/dist/collection/utils/lang/german.js +0 -157
  197. package/dist/collection/utils/lang/german.js.map +0 -1
  198. package/dist/collection/utils/lang/spanish.js +0 -157
  199. package/dist/collection/utils/lang/spanish.js.map +0 -1
  200. package/dist/collection/utils/render/tools.js.map +0 -1
  201. package/dist/collection/utils/solar.js +0 -136
  202. package/dist/collection/utils/solar.js.map +0 -1
  203. package/dist/collection/utils/theme.js +0 -97
  204. package/dist/collection/utils/theme.js.map +0 -1
  205. package/dist/collection/utils/utils.js.map +0 -1
  206. package/dist/components/eraser-icon.js +0 -11
  207. package/dist/components/eraser-icon.js.map +0 -1
  208. package/dist/components/house-icon.js +0 -11
  209. package/dist/components/house-icon.js.map +0 -1
  210. package/dist/components/icon-selector.js +0 -11
  211. package/dist/components/icon-selector.js.map +0 -1
  212. package/dist/components/index.js +0 -1269
  213. package/dist/components/index.js.map +0 -1
  214. package/dist/components/map-draw.js +0 -11
  215. package/dist/components/map-draw.js.map +0 -1
  216. package/dist/components/map-selector.js +0 -11
  217. package/dist/components/map-selector.js.map +0 -1
  218. package/dist/components/marker-icon.js +0 -11
  219. package/dist/components/marker-icon.js.map +0 -1
  220. package/dist/components/move-icon.js +0 -11
  221. package/dist/components/move-icon.js.map +0 -1
  222. package/dist/components/octagon-minus-icon.js +0 -11
  223. package/dist/components/octagon-minus-icon.js.map +0 -1
  224. package/dist/components/p-B54Ul0nf.js +0 -15
  225. package/dist/components/p-B54Ul0nf.js.map +0 -1
  226. package/dist/components/p-B5WTRCh8.js +0 -3241
  227. package/dist/components/p-B5WTRCh8.js.map +0 -1
  228. package/dist/components/p-BFJHTJPM.js.map +0 -1
  229. package/dist/components/p-BGoSj_DR.js +0 -902
  230. package/dist/components/p-BGoSj_DR.js.map +0 -1
  231. package/dist/components/p-BJLO76Yi.js.map +0 -1
  232. package/dist/components/p-BcVa4_YP.js.map +0 -1
  233. package/dist/components/p-Bopprtc7.js +0 -623
  234. package/dist/components/p-Bopprtc7.js.map +0 -1
  235. package/dist/components/p-ByX6QP-E.js.map +0 -1
  236. package/dist/components/p-C5QieOat.js.map +0 -1
  237. package/dist/components/p-CL74Q4VR.js.map +0 -1
  238. package/dist/components/p-Cgchl6bA.js +0 -47
  239. package/dist/components/p-Cgchl6bA.js.map +0 -1
  240. package/dist/components/p-D8w3bTPO.js.map +0 -1
  241. package/dist/components/p-DBwr8xSB.js.map +0 -1
  242. package/dist/components/p-DWirjxpO.js +0 -163
  243. package/dist/components/p-DWirjxpO.js.map +0 -1
  244. package/dist/components/p-DlNHVTGB.js +0 -15949
  245. package/dist/components/p-DlNHVTGB.js.map +0 -1
  246. package/dist/components/p-Dzl6kfPI.js.map +0 -1
  247. package/dist/components/p-FdEV2qPo.js.map +0 -1
  248. package/dist/components/p-PkMjF2if.js +0 -1985
  249. package/dist/components/p-PkMjF2if.js.map +0 -1
  250. package/dist/components/p-Umz6nJIv.js.map +0 -1
  251. package/dist/components/p-WmcSqXD8.js +0 -14
  252. package/dist/components/p-WmcSqXD8.js.map +0 -1
  253. package/dist/components/p-eDwaXClX.js.map +0 -1
  254. package/dist/components/p-j-vOrhhh.js +0 -114
  255. package/dist/components/p-j-vOrhhh.js.map +0 -1
  256. package/dist/components/p-q8auDIJ2.js +0 -138
  257. package/dist/components/p-q8auDIJ2.js.map +0 -1
  258. package/dist/components/p-waOPoUcA.js.map +0 -1
  259. package/dist/components/polygon-buttons.js +0 -11
  260. package/dist/components/polygon-buttons.js.map +0 -1
  261. package/dist/components/polygon-information.js +0 -11
  262. package/dist/components/polygon-information.js.map +0 -1
  263. package/dist/components/search-icon.js +0 -11
  264. package/dist/components/search-icon.js.map +0 -1
  265. package/dist/components/settings-icon.js +0 -11
  266. package/dist/components/settings-icon.js.map +0 -1
  267. package/dist/components/settings-modal.js +0 -11
  268. package/dist/components/settings-modal.js.map +0 -1
  269. package/dist/components/solar-expert.js.map +0 -1
  270. package/dist/components/solar-system-form.js +0 -11
  271. package/dist/components/solar-system-form.js.map +0 -1
  272. package/dist/components/toast-notification.js +0 -11
  273. package/dist/components/toast-notification.js.map +0 -1
  274. package/dist/components/tool-box.js +0 -11
  275. package/dist/components/tool-box.js.map +0 -1
  276. package/dist/components/tutorial-component.js +0 -11
  277. package/dist/components/tutorial-component.js.map +0 -1
  278. package/dist/components/undo-icon.js +0 -11
  279. package/dist/components/undo-icon.js.map +0 -1
  280. package/dist/esm/basedecoder-j-vOrhhh.js +0 -114
  281. package/dist/esm/basedecoder-j-vOrhhh.js.map +0 -1
  282. package/dist/esm/deflate-DHgPf9CO.js +0 -15
  283. package/dist/esm/eraser-icon_19.entry.js +0 -7
  284. package/dist/esm/eraser-icon_19.entry.js.map +0 -1
  285. package/dist/esm/index-C2JRBB5c.js +0 -1458
  286. package/dist/esm/index-C2JRBB5c.js.map +0 -1
  287. package/dist/esm/index.js +0 -5
  288. package/dist/esm/index.js.map +0 -1
  289. package/dist/esm/jpeg-CJLm1GkA.js.map +0 -1
  290. package/dist/esm/lerc-CAiDQjTu.js +0 -4424
  291. package/dist/esm/lerc-CAiDQjTu.js.map +0 -1
  292. package/dist/esm/loader.js +0 -16
  293. package/dist/esm/loader.js.map +0 -1
  294. package/dist/esm/loading-widget.entry.js.map +0 -1
  295. package/dist/esm/lzw-DaOzWJUD.js.map +0 -1
  296. package/dist/esm/packbits-CZPyx9kx.js +0 -33
  297. package/dist/esm/packbits-CZPyx9kx.js.map +0 -1
  298. package/dist/esm/pako.esm-B5WTRCh8.js +0 -3241
  299. package/dist/esm/raw-pqeeWc2_.js +0 -14
  300. package/dist/esm/raw-pqeeWc2_.js.map +0 -1
  301. package/dist/esm/stencil-library.js +0 -26
  302. package/dist/esm/stencil-library.js.map +0 -1
  303. package/dist/index.cjs.js +0 -1
  304. package/dist/index.js +0 -1
  305. package/dist/stencil-library/p-B54Ul0nf.js +0 -2
  306. package/dist/stencil-library/p-B54Ul0nf.js.map +0 -1
  307. package/dist/stencil-library/p-B5WTRCh8.js +0 -2
  308. package/dist/stencil-library/p-B5WTRCh8.js.map +0 -1
  309. package/dist/stencil-library/p-BBtmpSUK.js +0 -2
  310. package/dist/stencil-library/p-BBtmpSUK.js.map +0 -1
  311. package/dist/stencil-library/p-BGoSj_DR.js +0 -2
  312. package/dist/stencil-library/p-BGoSj_DR.js.map +0 -1
  313. package/dist/stencil-library/p-ByX6QP-E.js +0 -2
  314. package/dist/stencil-library/p-ByX6QP-E.js.map +0 -1
  315. package/dist/stencil-library/p-C2JRBB5c.js +0 -3
  316. package/dist/stencil-library/p-C2JRBB5c.js.map +0 -1
  317. package/dist/stencil-library/p-CX8V3eiN.js +0 -2
  318. package/dist/stencil-library/p-CX8V3eiN.js.map +0 -1
  319. package/dist/stencil-library/p-Cgchl6bA.js +0 -2
  320. package/dist/stencil-library/p-Cgchl6bA.js.map +0 -1
  321. package/dist/stencil-library/p-WmcSqXD8.js +0 -2
  322. package/dist/stencil-library/p-WmcSqXD8.js.map +0 -1
  323. package/dist/stencil-library/p-ab0f2031.entry.js.map +0 -1
  324. package/dist/stencil-library/p-cAuhy_jT.js +0 -10
  325. package/dist/stencil-library/p-cAuhy_jT.js.map +0 -1
  326. package/dist/stencil-library/p-e7b94dbb.entry.js +0 -2
  327. package/dist/stencil-library/p-e7b94dbb.entry.js.map +0 -1
  328. package/dist/stencil-library/p-j-vOrhhh.js +0 -2
  329. package/dist/stencil-library/p-j-vOrhhh.js.map +0 -1
  330. package/dist/stencil-library/p-q8auDIJ2.js +0 -2
  331. package/dist/stencil-library/p-q8auDIJ2.js.map +0 -1
  332. /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js +0 -0
  333. /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js.map +0 -0
@@ -1 +0,0 @@
1
- {"file":"p-PkMjF2if.js","mappings":"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","names":["utils","this","require$$0","require$$1","require$$2","__stencil_proxyCustomElement","HTMLElement","generateElectricCarChargingHours","simulate"],"sources":["../../../harmonia/packages/harmonia-types/dist/shapes/polygon.js","../../../harmonia/packages/harmonia-types/dist/shapes/utils.js","../../../harmonia/packages/harmonia-types/dist/shapes/index.js","../../../harmonia/packages/harmonia-types/dist/solar/location.js","../../../harmonia/packages/harmonia-types/dist/solar/solarPanel.js","../../../harmonia/packages/harmonia-types/dist/solar/googleSolar.js","../../../harmonia/packages/harmonia-types/dist/solar/index.js","../../../harmonia/packages/harmonia-types/dist/heating/index.js","../../../harmonia/packages/harmonia-types/dist/index.js","../../../harmonia/packages/harmonia-sim/dist/utils/solarApi.js","../../../harmonia/packages/harmonia-sim/dist/utils/index.js","../../../harmonia/packages/harmonia-sim/dist/geometry/fitting.js","../../../harmonia/packages/harmonia-sim/dist/geometry/gridMatch.js","../../../harmonia/packages/harmonia-sim/dist/geometry/index.js","../../../harmonia/packages/harmonia-sim/dist/simulation/solarCurves.js","../../../harmonia/packages/harmonia-sim/dist/simulation/types.js","../../../harmonia/packages/harmonia-sim/dist/simulation/simulation.js","../../../harmonia/packages/harmonia-sim/dist/simulation/heatingConstants.js","../../../harmonia/packages/harmonia-sim/dist/simulation/heatingSimulation.js","../../../harmonia/packages/harmonia-sim/dist/simulation/index.js","../../../harmonia/packages/harmonia-sim/dist/index.js","src/config.ts","src/constants.ts","src/utils/api.ts","src/output.css?tag=solar-system-form","src/components/solar-system-form/solar-system-form.tsx"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonType = exports.Point = void 0;\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n}\nexports.Point = Point;\nvar PolygonType;\n(function (PolygonType) {\n PolygonType[\"ROOF\"] = \"roof\";\n PolygonType[\"OBSTRUCTION\"] = \"obstruction\";\n})(PolygonType || (exports.PolygonType = PolygonType = {}));\n//# sourceMappingURL=polygon.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPointInPolygon = isPointInPolygon;\nexports.isPointOnBorder = isPointOnBorder;\nfunction isPointInPolygon(point, polygon) {\n if (!polygon.closed || polygon.points.length < 3)\n return false;\n const num_vertices = polygon.points.length;\n const x = point.x;\n const y = point.y;\n let inside = false;\n let p1 = polygon.points[0];\n let p2;\n for (let i = 1; i <= num_vertices; i++) {\n p2 = polygon.points[i % num_vertices];\n if (y > Math.min(p1.y, p2.y)) {\n if (y <= Math.max(p1.y, p2.y)) {\n if (x <= Math.max(p1.x, p2.x)) {\n const x_intersection = ((y - p1.y) * (p2.x - p1.x)) / (p2.y - p1.y) + p1.x;\n if (p1.x === p2.x || x <= x_intersection) {\n inside = !inside;\n }\n }\n }\n }\n p1 = p2;\n }\n return inside;\n}\nfunction isPointOnBorder(point, polygon) {\n if (!polygon.closed || polygon.points.length < 3)\n return false;\n const x = point.x;\n const y = point.y;\n for (let i = 0; i < polygon.points.length; i++) {\n const p1 = polygon.points[i];\n const p2 = polygon.points[(i + 1) % polygon.points.length];\n const distance = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n const distanceToPoint = Math.sqrt(Math.pow(p1.x - x, 2) + Math.pow(p1.y - y, 2));\n const distanceFromPoint = Math.sqrt(Math.pow(p2.x - x, 2) + Math.pow(p2.y - y, 2));\n if (distance === distanceToPoint + distanceFromPoint) {\n return true;\n }\n }\n return false;\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./polygon\"), exports);\n__exportStar(require(\"./utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=location.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=solarPanel.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findClosestBuilding = findClosestBuilding;\nexports.getDataLayerUrls = getDataLayerUrls;\nfunction findClosestBuilding(location, apiKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const args = {\n \"location.latitude\": location.lat().toFixed(5),\n \"location.longitude\": location.lng().toFixed(5),\n };\n const params = new URLSearchParams(Object.assign(Object.assign({}, args), { key: apiKey }));\n return fetch(`https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`).then((response) => __awaiter(this, void 0, void 0, function* () {\n const content = yield response.json();\n if (response.status != 200) {\n console.error(\"findClosestBuilding\\n\", content);\n throw content;\n }\n return content;\n }));\n });\n}\nfunction getDataLayerUrls(location, radiusMeters, apiKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const args = {\n \"location.latitude\": location.latitude.toFixed(5),\n \"location.longitude\": location.longitude.toFixed(5),\n radius_meters: radiusMeters.toString(),\n required_quality: \"LOW\",\n };\n const params = new URLSearchParams(Object.assign(Object.assign({}, args), { key: apiKey }));\n return fetch(`https://solar.googleapis.com/v1/dataLayers:get?${params}`)\n .then((response) => __awaiter(this, void 0, void 0, function* () {\n const content = yield response.json();\n if (response.status != 200) {\n console.error(\"getDataLayerUrls\\n\", content);\n throw content;\n }\n return content;\n }));\n });\n}\n//# sourceMappingURL=googleSolar.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./location\"), exports);\n__exportStar(require(\"./solarPanel\"), exports);\n__exportStar(require(\"./googleSolar\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./shapes\"), exports);\n__exportStar(require(\"./solar\"), exports);\n__exportStar(require(\"./heating\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchSolarData = fetchSolarData;\nexports.getPixelInMeters = getPixelInMeters;\nfunction fetchSolarData(latitude, longitude, apiKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (latitude === 0 || longitude === 0) {\n return null;\n }\n try {\n const args = {\n \"location.latitude\": latitude.toFixed(5),\n \"location.longitude\": longitude.toFixed(5),\n };\n const params = new URLSearchParams(Object.assign(Object.assign({}, args), { key: apiKey }));\n const response = yield fetch(`https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`);\n if (!response.ok) {\n const errorText = yield response.text();\n throw new Error(`HTTP error! status: ${response.status}, body: ${errorText}`);\n }\n const contentType = response.headers.get(\"content-type\");\n if (!contentType || !contentType.includes(\"application/json\")) {\n const text = yield response.text();\n console.error(\"Unexpected content type:\", contentType, \"Response:\", text);\n return null;\n }\n const rawData = yield response.json();\n return rawData;\n }\n catch (error) {\n console.error(\"Error fetching solar data:\", error);\n if (error instanceof TypeError &&\n error.message === \"Failed to fetch\") {\n throw new Error(\"Unable to connect to the solar data API.\");\n }\n throw error;\n }\n });\n}\nfunction getPixelInMeters(rgbTiff) {\n const latDiff = rgbTiff.bounds.north - rgbTiff.bounds.south;\n const pixelHeight = rgbTiff.height;\n const pixelInMeters = latDiff * 111320 / pixelHeight;\n return pixelInMeters;\n}\n//# sourceMappingURL=solarApi.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.latLngToPixel = latLngToPixel;\nconst harmonia_types_1 = require(\"harmonia-types\");\n__exportStar(require(\"./solarApi\"), exports);\nfunction latLngToPixel(bounds, canvas, latLng) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Canvas context not found\");\n }\n const latToPixel = (lat) => {\n return canvas.height *\n (1 - (lat - bounds.south) / (bounds.north - bounds.south));\n };\n const lngToPixel = (lng) => {\n return canvas.width * (lng - bounds.west) / (bounds.east - bounds.west);\n };\n return new harmonia_types_1.Point(lngToPixel(latLng.longitude), latToPixel(latLng.latitude));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.projectPoint = projectPoint;\nexports.projectPolygon = projectPolygon;\nexports.intersects = intersects;\nexports.offsetPolygon = offsetPolygon;\nexports.getBestFittingRoofSegment = getBestFittingRoofSegment;\nconst harmonia_types_1 = require(\"harmonia-types\");\nconst utils_1 = require(\"../utils\");\nfunction projectPoint(point, azimuth) {\n const angle = azimuth * (Math.PI / 180);\n const x = point.x * Math.cos(angle) - point.y * Math.sin(angle);\n const y = point.x * Math.sin(angle) + point.y * Math.cos(angle);\n return new harmonia_types_1.Point(x, y);\n}\nfunction projectPolygon(polygon, azimuth) {\n return {\n points: polygon.points.map((point) => projectPoint(point, azimuth)),\n type: polygon.type,\n closed: polygon.closed,\n id: polygon.id,\n };\n}\nfunction intersects(line1, line2) {\n const p1 = line1.start;\n const p2 = line1.end;\n const p3 = line2.start;\n const p4 = line2.end;\n if (p1.equals(p3) ||\n p1.equals(p4) ||\n p2.equals(p3) ||\n p2.equals(p4)) {\n return false;\n }\n const d1 = (p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x);\n const d2 = (p4.x - p3.x) * (p2.y - p3.y) - (p4.y - p3.y) * (p2.x - p3.x);\n const d3 = (p2.x - p1.x) * (p3.y - p1.y) - (p2.y - p1.y) * (p3.x - p1.x);\n const d4 = (p2.x - p1.x) * (p4.y - p1.y) - (p2.y - p1.y) * (p4.x - p1.x);\n return (d1 * d2 < 0) && (d3 * d4 < 0);\n}\nfunction offsetPolygon(polygon, offset) {\n if (polygon.points.length === 0) {\n return { polygon: polygon, offset: { x: 0, y: 0 } };\n }\n let offsetX = 0;\n let offsetY = 0;\n if (!offset) {\n const minX = Math.min(...polygon.points.map((point) => point.x));\n const minY = Math.min(...polygon.points.map((point) => point.y));\n const maxX = Math.max(...polygon.points.map((point) => point.x));\n const maxY = Math.max(...polygon.points.map((point) => point.y));\n offsetX = minX + (maxX - minX) / 2;\n offsetY = minY + (maxY - minY) / 2;\n }\n else {\n offsetX = offset.x;\n offsetY = offset.y;\n }\n const newPoints = polygon.points.map((point) => new harmonia_types_1.Point(point.x - offsetX, point.y - offsetY));\n return {\n polygon: Object.assign(Object.assign({}, polygon), { points: newPoints }),\n offset: { x: offsetX, y: offsetY },\n };\n}\nfunction getBestFittingRoofSegment(roof, roofSegmentStats, bounds, canvas) {\n const polygonBounds = {\n minX: Math.min(...roof.points.map((p) => p.x)),\n maxX: Math.max(...roof.points.map((p) => p.x)),\n minY: Math.min(...roof.points.map((p) => p.y)),\n maxY: Math.max(...roof.points.map((p) => p.y)),\n };\n let bestSegment = null;\n let bestIoU = 0;\n for (const segment of roofSegmentStats) {\n const sw = (0, utils_1.latLngToPixel)(bounds, canvas, {\n latitude: segment.boundingBox.sw.latitude,\n longitude: segment.boundingBox.sw.longitude,\n });\n const ne = (0, utils_1.latLngToPixel)(bounds, canvas, {\n latitude: segment.boundingBox.ne.latitude,\n longitude: segment.boundingBox.ne.longitude,\n });\n const segmentBounds = {\n minX: sw.x,\n maxX: ne.x,\n minY: ne.y,\n maxY: sw.y,\n };\n const interLeft = Math.max(polygonBounds.minX, segmentBounds.minX);\n const interRight = Math.min(polygonBounds.maxX, segmentBounds.maxX);\n const interTop = Math.max(polygonBounds.minY, segmentBounds.minY);\n const interBottom = Math.min(polygonBounds.maxY, segmentBounds.maxY);\n const interWidth = interRight - interLeft;\n const interHeight = interBottom - interTop;\n let intersectionArea = 0;\n if (interWidth > 0 && interHeight > 0) {\n intersectionArea = interWidth * interHeight;\n }\n const polygonArea = (polygonBounds.maxX - polygonBounds.minX) *\n (polygonBounds.maxY - polygonBounds.minY);\n const segmentArea = (segmentBounds.maxX - segmentBounds.minX) *\n (segmentBounds.maxY - segmentBounds.minY);\n const unionArea = polygonArea + segmentArea - intersectionArea;\n const iou = unionArea > 0 ? intersectionArea / unionArea : 0;\n if (iou > bestIoU) {\n bestIoU = iou;\n bestSegment = segment;\n }\n }\n return bestSegment;\n}\n//# sourceMappingURL=fitting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateGrid = generateGrid;\nexports.solarPanelInObstacle = solarPanelInObstacle;\nexports.solarPanelInPolygon = solarPanelInPolygon;\nexports.isPanelObstructed = isPanelObstructed;\nexports.getSolarPanelsInPolygon = getSolarPanelsInPolygon;\nexports.getOptimalSolarPosition = getOptimalSolarPosition;\nexports.insetPolygon = insetPolygon;\nexports.getOptimalSolarPositionFully = getOptimalSolarPositionFully;\nconst harmonia_types_1 = require(\"harmonia-types\");\nconst fitting_1 = require(\"./fitting\");\nfunction generateGrid(minMax, solarPanel, horizontal, anker, rowSpacing, columnSpacing) {\n const grid = [];\n const width = horizontal ? solarPanel.heightMeters : solarPanel.widthMeters;\n const widthCount = Math.ceil((minMax.maxX - minMax.minX) / width);\n const height = horizontal\n ? solarPanel.widthMeters\n : solarPanel.heightMeters;\n const heightCount = Math.ceil((minMax.maxY - minMax.minY) / height);\n const widthOffset = width / 2;\n const heightOffset = height / 2;\n const startX = anker.x -\n (Math.ceil((anker.x - minMax.minX) / width) * width);\n const startY = anker.y -\n (Math.ceil((anker.y - minMax.minY) / height) * height);\n for (let i = 0; i < heightCount; i++) {\n const row = [];\n for (let j = 0; j < widthCount; j++) {\n const x = startX + j * width + j * columnSpacing + widthOffset;\n const y = startY + i * height + i * rowSpacing + heightOffset;\n const positionedSolarPanel = {\n panel: solarPanel,\n pixelPosition: new harmonia_types_1.Point(x, y),\n horizontal: horizontal,\n };\n row.push(positionedSolarPanel);\n }\n grid.push(row);\n }\n return grid;\n}\nfunction getSolarPanelLines(positionedSolarPanel, horizontal) {\n const width = horizontal\n ? positionedSolarPanel.panel.heightMeters\n : positionedSolarPanel.panel.widthMeters;\n const height = horizontal\n ? positionedSolarPanel.panel.widthMeters\n : positionedSolarPanel.panel.heightMeters;\n const p1 = new harmonia_types_1.Point(positionedSolarPanel.pixelPosition.x - width / 2, positionedSolarPanel.pixelPosition.y - height / 2);\n const p2 = new harmonia_types_1.Point(positionedSolarPanel.pixelPosition.x - width / 2, positionedSolarPanel.pixelPosition.y + height / 2);\n const p3 = new harmonia_types_1.Point(positionedSolarPanel.pixelPosition.x + width / 2, positionedSolarPanel.pixelPosition.y + height / 2);\n const p4 = new harmonia_types_1.Point(positionedSolarPanel.pixelPosition.x + width / 2, positionedSolarPanel.pixelPosition.y - height / 2);\n const lines = [\n {\n start: p1,\n end: p2,\n },\n {\n start: p2,\n end: p3,\n },\n {\n start: p3,\n end: p4,\n },\n {\n start: p4,\n end: p1,\n },\n ];\n return lines;\n}\nfunction solarPanelInObstacle(positionedSolarPanel, obstacle, horizontal) {\n const lines = getSolarPanelLines(positionedSolarPanel, horizontal);\n if ((0, harmonia_types_1.isPointInPolygon)(positionedSolarPanel.pixelPosition, obstacle)) {\n return true;\n }\n for (let i = 0; i < obstacle.points.length; i++) {\n const point = obstacle.points[i];\n const nextPoint = obstacle.points[(i + 1) % obstacle.points.length];\n const border = {\n start: point,\n end: nextPoint,\n };\n for (const line of lines) {\n if ((0, fitting_1.intersects)(line, border)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction solarPanelInPolygon(positionedSolarPanel, polygon, horizontal) {\n const lines = getSolarPanelLines(positionedSolarPanel, horizontal);\n for (let i = 0; i < polygon.points.length; i++) {\n const point = polygon.points[i];\n const nextPoint = polygon.points[(i + 1) % polygon.points.length];\n const border = {\n start: point,\n end: nextPoint,\n };\n for (const line of lines) {\n if ((0, fitting_1.intersects)(line, border)) {\n return false;\n }\n }\n }\n return (0, harmonia_types_1.isPointInPolygon)(positionedSolarPanel.pixelPosition, polygon);\n}\nfunction isPanelObstructed(positionedSolarPanel, obstacles, horizontal) {\n for (const obstacle of obstacles) {\n if (solarPanelInObstacle(positionedSolarPanel, obstacle.polygon, horizontal)) {\n return true;\n }\n }\n return false;\n}\nfunction getSolarPanelsInPolygon(grid, polygon, horizontal, obstacles) {\n const solarPanels = [];\n for (const row of grid) {\n let newRow = [];\n for (const positionedSolarPanel of row) {\n const isObstructed = isPanelObstructed(positionedSolarPanel, obstacles, horizontal);\n if (solarPanelInPolygon(positionedSolarPanel, polygon, horizontal) && !isObstructed) {\n newRow.push(positionedSolarPanel);\n }\n }\n solarPanels.push(newRow);\n }\n return solarPanels;\n}\nfunction getOptimalSolarPosition(roof, obstacles, solarPanel, angle, columnSpacing, rowSpacing) {\n const minX = Math.min(...roof.points.map((p) => p.x));\n const maxX = Math.max(...roof.points.map((p) => p.x));\n const minY = Math.min(...roof.points.map((p) => p.y));\n const maxY = Math.max(...roof.points.map((p) => p.y));\n const minMax = {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY,\n };\n const horizontalSolarPanel = Object.assign(Object.assign({}, solarPanel), { widthMeters: solarPanel.widthMeters * Math.cos(angle * Math.PI / 180), heightMeters: solarPanel.heightMeters });\n const verticalSolarPanel = Object.assign(Object.assign({}, solarPanel), { widthMeters: solarPanel.widthMeters, heightMeters: solarPanel.heightMeters * Math.cos(angle * Math.PI / 180) });\n let solarPanels = [];\n let numberOfPanels = 0;\n for (const point of roof.points) {\n for (const horizontal of [true]) {\n const grid = generateGrid(minMax, verticalSolarPanel, horizontal, point, rowSpacing, columnSpacing);\n const solarPanelsInPolygon = getSolarPanelsInPolygon(grid, roof, horizontal, obstacles);\n const numberOfPanelsInPolygon = solarPanelsInPolygon.reduce((acc, row) => acc + row.length, 0);\n if (numberOfPanelsInPolygon > numberOfPanels) {\n numberOfPanels = numberOfPanelsInPolygon;\n solarPanels = solarPanelsInPolygon;\n }\n }\n break;\n }\n return solarPanels;\n}\nfunction projectObstacles(obstacles, azimuth, offset, inset) {\n const result = [];\n for (const obstacle of obstacles) {\n const offsetObstacle = (0, fitting_1.offsetPolygon)(obstacle, offset);\n const projectedObstacle = (0, fitting_1.projectPolygon)(offsetObstacle.polygon, -azimuth);\n const insetObstacle = insetPolygon(projectedObstacle, -inset);\n const minX = Math.min(...insetObstacle.points.map((p) => p.x));\n const maxX = Math.max(...insetObstacle.points.map((p) => p.x));\n const minY = Math.min(...insetObstacle.points.map((p) => p.y));\n const maxY = Math.max(...insetObstacle.points.map((p) => p.y));\n const boundingBox = {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY,\n };\n result.push({\n polygon: projectedObstacle,\n boundingBox: boundingBox,\n });\n }\n return result;\n}\nfunction isClockwise(points) {\n let sum = 0;\n for (let i = 0; i < points.length; i++) {\n const curr = points[i];\n const next = points[(i + 1) % points.length];\n sum += (next.x - curr.x) * (next.y + curr.y);\n }\n return sum > 0;\n}\nfunction insetPolygon(polygon, inset) {\n const points = polygon.points;\n const isClockwisePolygon = isClockwise(points);\n inset = inset * Math.sqrt(2) * (isClockwisePolygon ? -1 : 1);\n const insetPoints = [];\n for (let i = 0; i < points.length; i++) {\n const prev = points[(i - 1 + points.length) % points.length];\n const curr = points[i];\n const next = points[(i + 1) % points.length];\n const v1 = {\n x: curr.x - prev.x,\n y: curr.y - prev.y,\n };\n const v2 = {\n x: next.x - curr.x,\n y: next.y - curr.y,\n };\n const perp1 = {\n x: -v1.y,\n y: v1.x,\n };\n const perp2 = {\n x: -v2.y,\n y: v2.x,\n };\n const length1 = Math.sqrt(perp1.x * perp1.x + perp1.y * perp1.y);\n const length2 = Math.sqrt(perp2.x * perp2.x + perp2.y * perp2.y);\n perp1.x /= length1;\n perp1.y /= length1;\n perp2.x /= length2;\n perp2.y /= length2;\n const bisector = {\n x: perp1.x + perp2.x,\n y: perp1.y + perp2.y,\n };\n const bisectorLength = Math.sqrt(bisector.x * bisector.x + bisector.y * bisector.y);\n bisector.x /= bisectorLength;\n bisector.y /= bisectorLength;\n const insetPoint = new harmonia_types_1.Point(curr.x + bisector.x * inset, curr.y + bisector.y * inset);\n insetPoints.push(insetPoint);\n }\n return {\n points: insetPoints,\n type: polygon.type,\n closed: polygon.closed,\n id: polygon.id,\n area: polygon.area,\n };\n}\nfunction getOptimalSolarPositionFully(roof, obstacles, solarPanel, azimuth, inset, angle, columnSpacing, rowSpacing) {\n const insetRoof = insetPolygon(roof, inset);\n const offset = (0, fitting_1.offsetPolygon)(insetRoof);\n const projectedOffset = (0, fitting_1.projectPolygon)(offset.polygon, -azimuth);\n const projectedObstacles = projectObstacles(obstacles, azimuth, offset.offset, inset);\n const horizontalSolarPanels = getOptimalSolarPosition(projectedOffset, projectedObstacles, solarPanel, angle, columnSpacing, rowSpacing);\n const unprojectedPanels = [];\n for (const panel of horizontalSolarPanels.flat()) {\n const unprojectedPanel = (0, fitting_1.projectPoint)(panel.pixelPosition, azimuth);\n const offsetPosition = new harmonia_types_1.Point(unprojectedPanel.x + offset.offset.x, unprojectedPanel.y + offset.offset.y);\n unprojectedPanels.push({\n panel: panel.panel,\n pixelPosition: offsetPosition,\n horizontal: panel.horizontal,\n });\n }\n return unprojectedPanels;\n}\n//# sourceMappingURL=gridMatch.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./gridMatch\"), exports);\n__exportStar(require(\"./fitting\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SOLAR_RADIATION = exports.CONSUMPTION_PROFILES = void 0;\nexports.getSolarRadiation = getSolarRadiation;\nconst SOLAR_RADIATION = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0.1,\n 0.2,\n 0.4,\n 0.8,\n 0.9,\n 1,\n 0.95,\n 0.9,\n 0.7,\n 0.5,\n 0.3,\n 0.16,\n 0.02,\n 0,\n 0,\n 0,\n 0,\n];\nexports.SOLAR_RADIATION = SOLAR_RADIATION;\nfunction getSolarRadiation(discountFactor) {\n return SOLAR_RADIATION.map((value) => value * discountFactor);\n}\nconst CONSUMPTION_PROFILES = {\n mostly_at_home: [\n 0.1,\n 0.1,\n 0.1,\n 0.1,\n 0.1,\n 0.15,\n 0.23,\n 0.26,\n 0.16,\n 0.16,\n 0.15,\n 0.19,\n 0.23,\n 0.24,\n 0.35,\n 0.28,\n 0.275,\n 0.8,\n 0.78,\n 0.74,\n 0.75,\n 0.73,\n 0.26,\n 0.1,\n ],\n mostly_away: [\n 0.1,\n 0.1,\n 0.1,\n 0.1,\n 0.1,\n 0.15,\n 0.29,\n 0.32,\n 0.25,\n 0.15,\n 0.12,\n 0.14,\n 0.15,\n 0.12,\n 0.16,\n 0.21,\n 0.285,\n 1,\n 0.81,\n 0.77,\n 0.79,\n 0.73,\n 0.26,\n 0.1,\n ],\n};\nexports.CONSUMPTION_PROFILES = CONSUMPTION_PROFILES;\n//# sourceMappingURL=solarCurves.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_GENERAL_SIMULATION_CONFIG = void 0;\nexports.DEFAULT_GENERAL_SIMULATION_CONFIG = {\n simulationYears: 25,\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateElectricCarChargingHours = generateElectricCarChargingHours;\nexports.simulateDay = simulateDay;\nexports.simulate = simulate;\nconst solarCurves_1 = require(\"./solarCurves\");\nconst types_1 = require(\"./types\");\nfunction generateElectricCarChargingHours(start, end) {\n let hours = new Array(24).fill(false);\n if (start < end) {\n for (let i = start; i <= end; i++) {\n hours[i] = true;\n }\n }\n else {\n for (let i = start; i <= 24; i++) {\n hours[i] = true;\n }\n for (let i = 0; i <= end; i++) {\n hours[i] = true;\n }\n }\n return hours;\n}\nfunction simulateDay(production, consumption, dailyConsumption, battery) {\n let batteryCharge = 0;\n let soldEnergy = 0;\n let energyUsageOfProduction = 0;\n for (let hour = 0; hour < production.length; hour++) {\n const energyDifference = production[hour] - consumption[hour];\n if (energyDifference > 0) {\n energyUsageOfProduction += consumption[hour];\n if (batteryCharge < battery &&\n batteryCharge + energyDifference <= battery) {\n batteryCharge = batteryCharge + energyDifference;\n }\n else if (batteryCharge < battery) {\n const batteryDifference = battery - batteryCharge;\n batteryCharge = battery;\n soldEnergy += energyDifference - batteryDifference;\n }\n else {\n soldEnergy += energyDifference;\n }\n }\n else {\n if (batteryCharge > 0) {\n if (batteryCharge >= -energyDifference) {\n batteryCharge += energyDifference;\n energyUsageOfProduction += consumption[hour];\n }\n else {\n energyUsageOfProduction += production[hour] + batteryCharge;\n batteryCharge = 0;\n }\n }\n else {\n energyUsageOfProduction += production[hour];\n }\n }\n }\n if (batteryCharge > 0) {\n soldEnergy += batteryCharge;\n }\n const autonomy = energyUsageOfProduction / dailyConsumption;\n return {\n autonomy: autonomy > 1 ? 1 : autonomy,\n soldEnergy,\n energyUsageOfProduction,\n };\n}\nfunction simulate(config) {\n const generalConfig = Object.assign(Object.assign({}, types_1.DEFAULT_GENERAL_SIMULATION_CONFIG), config.general);\n const consumption = solarCurves_1.CONSUMPTION_PROFILES[config.householdConsumption.consumptionProfile];\n const norm = consumption.reduce((acc, curr) => acc + curr, 0);\n let additionalConsumption = 0;\n if (config.heatPump) {\n additionalConsumption =\n (config.heatPump.m2 || 0) * config.heatPump.consumptionPerM2 || 0;\n }\n let electricCarConsumption = 0;\n let electricCarNorm = 1;\n let electricCarChargingHours = consumption.map((_) => false);\n if (config.electricCar) {\n electricCarChargingHours = config.electricCar.chargingHours;\n const dailyCarUsage = config.electricCar.averageKilometersPerDay / 100 *\n config.electricCar.consumptionkWhPer100km;\n electricCarConsumption = Math.min(dailyCarUsage, config.electricCar.batteryKWh);\n electricCarNorm = config.electricCar.chargingHours.reduce((acc, curr) => acc + (curr ? 1 : 0), 0);\n if (electricCarNorm === 0) {\n electricCarNorm = 1;\n }\n }\n let systemSize = 0;\n if (config.solarSystems) {\n systemSize = Object.values(config.solarSystems).reduce((acc, curr) => {\n return acc + curr.numberOfPanels * curr.panelType.kWattPeak;\n }, 0);\n }\n else if (config.solarSystem) {\n console.warn(\"solarSystem is deprecated, use solarSystems instead\");\n systemSize = config.solarSystem.numberOfPanels *\n config.solarSystem.panelType.kWattPeak;\n }\n else {\n throw new Error(\"No solar system found\");\n }\n const summerProduction = (0, solarCurves_1.getSolarRadiation)(config.solarRadiation.summerFactor * systemSize);\n const winterProduction = (0, solarCurves_1.getSolarRadiation)(config.solarRadiation.winterFactor * systemSize);\n const summerConsumptionWholeDay = config.householdConsumption.averageConsumption *\n config.householdConsumption.summerConsumptionFactor +\n additionalConsumption *\n config.householdConsumption.summerConsumptionFactor;\n const summerConsumptionDaily = consumption.map((c, i) => c / norm * summerConsumptionWholeDay +\n electricCarConsumption / electricCarNorm *\n (electricCarChargingHours[i] ? 1 : 0));\n const winterConsumptionWholeDay = config.householdConsumption.averageConsumption *\n config.householdConsumption.winterConsumptionFactor +\n additionalConsumption *\n config.householdConsumption.winterConsumptionFactor;\n const winterConsumptionDaily = consumption.map((c, i) => c / norm * winterConsumptionWholeDay +\n electricCarConsumption / electricCarNorm *\n (electricCarChargingHours[i] ? 1 : 0));\n const summerDay = simulateDay(summerProduction, summerConsumptionDaily, summerConsumptionWholeDay + electricCarConsumption, config.batteryKWh);\n const winterDay = simulateDay(winterProduction, winterConsumptionDaily, winterConsumptionWholeDay + electricCarConsumption, config.batteryKWh);\n let savedCosts = 0;\n let savedCostsByYear = [];\n const soldEnergy = (summerDay.soldEnergy + winterDay.soldEnergy) / 2;\n const ownConsumption = (summerDay.energyUsageOfProduction +\n winterDay.energyUsageOfProduction) / 2;\n let energyPrice = config.electricityPrice.purchase;\n for (let i = 0; i < generalConfig.simulationYears; i++) {\n const savedCostsThisYear = ownConsumption * energyPrice * 365;\n savedCosts += savedCostsThisYear;\n savedCostsByYear.push(savedCostsThisYear);\n energyPrice = (1 + config.electricityPrice.increase) * energyPrice;\n }\n const totalEnergyProduction = (summerProduction.reduce((acc, curr) => acc + curr, 0) +\n winterProduction.reduce((acc, curr) => acc + curr, 0)) / 2;\n return {\n autonomy: (summerDay.autonomy + winterDay.autonomy) / 2,\n compensationPerDay: soldEnergy * config.electricityPrice.sell,\n byYearSavedCosts: savedCostsByYear,\n totalEnergyConsumptionDay: (summerConsumptionWholeDay + winterConsumptionWholeDay) / 2 +\n electricCarConsumption,\n totalEnergyProduction,\n };\n}\n//# sourceMappingURL=simulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SYSTEM_EFFICIENCY = exports.INSULATION_FACTORS = exports.EQUIPMENT_COSTS = exports.DISTRIBUTION_EFFICIENCY = exports.DISTRIBUTION_COSTS = exports.CO2_EMISSIONS = exports.CLIMATE_DATA = void 0;\nconst CLIMATE_DATA = {\n \"Zone 1\": { heatingDegreeHours: 1200, coolingDegreeHours: 2800 },\n \"Zone 2\": { heatingDegreeHours: 1800, coolingDegreeHours: 2200 },\n \"Zone 3\": { heatingDegreeHours: 2400, coolingDegreeHours: 1800 },\n \"Zone 4\": { heatingDegreeHours: 3200, coolingDegreeHours: 1400 },\n \"Zone 5\": { heatingDegreeHours: 4200, coolingDegreeHours: 1000 },\n \"Zone 6\": { heatingDegreeHours: 5400, coolingDegreeHours: 600 },\n \"Zone 7\": { heatingDegreeHours: 6800, coolingDegreeHours: 300 },\n \"Zone 8\": { heatingDegreeHours: 8400, coolingDegreeHours: 100 },\n};\nexports.CLIMATE_DATA = CLIMATE_DATA;\nconst INSULATION_FACTORS = {\n poor: 1.4,\n fair: 1.2,\n good: 1.0,\n excellent: 0.8,\n};\nexports.INSULATION_FACTORS = INSULATION_FACTORS;\nconst CO2_EMISSIONS = {\n electricity: 0.855,\n gas: 11.7,\n oil: 22.4,\n};\nexports.CO2_EMISSIONS = CO2_EMISSIONS;\nconst SYSTEM_EFFICIENCY = {\n \"heat-pump\": { heating: 3.2, cooling: 16 },\n \"electric\": { heating: 1.0, cooling: 0 },\n \"gas\": { heating: 0.85, cooling: 0 },\n \"oil\": { heating: 0.8, cooling: 0 },\n \"split-ac\": { heating: 2.8, cooling: 14 },\n \"central-ac\": { heating: 0, cooling: 13 },\n};\nexports.SYSTEM_EFFICIENCY = SYSTEM_EFFICIENCY;\nconst DISTRIBUTION_EFFICIENCY = {\n \"central-air\": 0.85,\n \"radiators\": 0.9,\n \"radiant-floor\": 0.95,\n \"radiant-ceiling\": 0.92,\n};\nexports.DISTRIBUTION_EFFICIENCY = DISTRIBUTION_EFFICIENCY;\nconst EQUIPMENT_COSTS = {\n \"heat-pump\": { base: 8000, perSqFt: 3 },\n \"electric\": { base: 2000, perSqFt: 1 },\n \"gas\": { base: 4000, perSqFt: 2 },\n \"oil\": { base: 5000, perSqFt: 2.5 },\n \"split-ac\": { base: 6000, perSqFt: 2.5 },\n \"central-ac\": { base: 7000, perSqFt: 3 },\n};\nexports.EQUIPMENT_COSTS = EQUIPMENT_COSTS;\nconst DISTRIBUTION_COSTS = {\n \"central-air\": { base: 3000, perSqFt: 2 },\n \"radiators\": { base: 4000, perSqFt: 3 },\n \"radiant-floor\": { base: 8000, perSqFt: 6 },\n \"radiant-ceiling\": { base: 6000, perSqFt: 4 },\n};\nexports.DISTRIBUTION_COSTS = DISTRIBUTION_COSTS;\n//# sourceMappingURL=heatingConstants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.houseSchema = exports.locationSchema = void 0;\nexports.calculateHeatingSystemComparison = calculateHeatingSystemComparison;\nexports.getDefaultUtilityRates = getDefaultUtilityRates;\nconst heatingConstants_1 = require(\"./heatingConstants\");\nfunction calculateHeatLoss(house, location) {\n const climateData = heatingConstants_1.CLIMATE_DATA[\"Zone 1\"];\n const baseHeatLoss = house.size * 30;\n const insulationFactor = heatingConstants_1.INSULATION_FACTORS[house.insulationLevel];\n const sharedWallFactor = 1;\n return baseHeatLoss * insulationFactor * sharedWallFactor *\n ((climateData === null || climateData === void 0 ? void 0 : climateData.heatingDegreeHours) || 3000) / 3000;\n}\nfunction calculateCoolingLoad(house, location) {\n const climateData = heatingConstants_1.CLIMATE_DATA[\"Zone 1\"];\n const baseCoolingLoad = house.size * 25;\n const insulationFactor = heatingConstants_1.INSULATION_FACTORS[house.insulationLevel];\n return baseCoolingLoad * insulationFactor *\n ((climateData === null || climateData === void 0 ? void 0 : climateData.coolingDegreeHours) || 1500) / 1500;\n}\nfunction calculateEnergyConsumption(heatLoss, coolingLoad, system, hours) {\n const systemEff = heatingConstants_1.SYSTEM_EFFICIENCY[system.type];\n const distEff = heatingConstants_1.DISTRIBUTION_EFFICIENCY[system.distribution];\n const heatingEnergy = (heatLoss * hours) /\n (systemEff.heating * distEff * 3412);\n const coolingEnergy = (coolingLoad * hours) /\n (systemEff.cooling * distEff * 3412);\n return { heating: heatingEnergy, cooling: coolingEnergy };\n}\nfunction calculateCosts(energy, system, rates) {\n let cost = 0;\n if (system.type === \"heat-pump\" || system.type === \"electric\" ||\n system.type === \"split-ac\" || system.type === \"central-ac\") {\n cost = (energy.heating + energy.cooling) * rates.electricity;\n }\n else if (system.type === \"gas\") {\n cost = (energy.heating * 3412 / 100000) * rates.gas +\n energy.cooling * rates.electricity;\n }\n else if (system.type === \"oil\") {\n cost = (energy.heating * 3412 / 138690) * rates.oil +\n energy.cooling * rates.electricity;\n }\n return cost;\n}\nfunction calculateCO2Emissions(energy, system) {\n let emissions = 0;\n if (system.type === \"heat-pump\" || system.type === \"electric\" ||\n system.type === \"split-ac\" || system.type === \"central-ac\") {\n emissions = (energy.heating + energy.cooling) *\n heatingConstants_1.CO2_EMISSIONS.electricity;\n }\n else if (system.type === \"gas\") {\n emissions = (energy.heating * 3412 / 100000) * heatingConstants_1.CO2_EMISSIONS.gas +\n energy.cooling * heatingConstants_1.CO2_EMISSIONS.electricity;\n }\n else if (system.type === \"oil\") {\n emissions = (energy.heating * 3412 / 138690) * heatingConstants_1.CO2_EMISSIONS.oil +\n energy.cooling * heatingConstants_1.CO2_EMISSIONS.electricity;\n }\n return emissions;\n}\nfunction calculateSystemCosts(system, house) {\n const equipmentCost = heatingConstants_1.EQUIPMENT_COSTS[system.type];\n const distributionCost = heatingConstants_1.DISTRIBUTION_COSTS[system.distribution];\n const equipment = equipmentCost.base + (equipmentCost.perSqFt * house.size);\n const distribution = distributionCost.base +\n (distributionCost.perSqFt * house.size);\n const installation = (equipment + distribution) * 0.3;\n return {\n equipment: equipment + distribution,\n installation,\n total: equipment + distribution + installation,\n };\n}\nfunction calculateHeatingSystemComparison(input) {\n const heatLoss = calculateHeatLoss(input.house, input.location);\n const coolingLoad = calculateCoolingLoad(input.house, input.location);\n const operatingHours = 2000;\n const currentEnergy = calculateEnergyConsumption(heatLoss, coolingLoad, input.currentSystem, operatingHours);\n const currentCost = calculateCosts(currentEnergy, input.currentSystem, input.utilityRates);\n const currentCO2 = calculateCO2Emissions(currentEnergy, input.currentSystem);\n const proposedEnergy = calculateEnergyConsumption(heatLoss, coolingLoad, input.proposedSystem, operatingHours);\n const proposedCost = calculateCosts(proposedEnergy, input.proposedSystem, input.utilityRates);\n const proposedCO2 = calculateCO2Emissions(proposedEnergy, input.proposedSystem);\n const systemCosts = calculateSystemCosts(input.proposedSystem, input.house);\n const totalCurrentEnergy = currentEnergy.heating + currentEnergy.cooling;\n const totalProposedEnergy = proposedEnergy.heating + proposedEnergy.cooling;\n const energySavings = totalCurrentEnergy - totalProposedEnergy;\n const costSavings = currentCost - proposedCost;\n const co2Savings = currentCO2 - proposedCO2;\n const paybackPeriod = costSavings > 0\n ? systemCosts.total / costSavings\n : Infinity;\n return {\n energySavings: {\n annual: energySavings,\n percentage: (energySavings / totalCurrentEnergy) * 100,\n },\n co2Savings: {\n annual: co2Savings,\n percentage: (co2Savings / currentCO2) * 100,\n },\n costSavings: {\n annual: costSavings,\n monthlyAverage: costSavings / 12,\n percentage: (costSavings / currentCost) * 100,\n },\n newSystemCosts: {\n equipment: systemCosts.equipment,\n installation: systemCosts.installation,\n total: systemCosts.total,\n paybackPeriod,\n },\n efficiency: {\n current: heatingConstants_1.SYSTEM_EFFICIENCY[input.currentSystem.type].heating,\n proposed: heatingConstants_1.SYSTEM_EFFICIENCY[input.proposedSystem.type].heating,\n improvement: ((heatingConstants_1.SYSTEM_EFFICIENCY[input.proposedSystem.type].heating -\n heatingConstants_1.SYSTEM_EFFICIENCY[input.currentSystem.type].heating) /\n heatingConstants_1.SYSTEM_EFFICIENCY[input.currentSystem.type].heating) * 100,\n },\n };\n}\nfunction getDefaultUtilityRates(location) {\n const stateRates = {\n \"CA\": { electricity: 0.28, gas: 1.15, oil: 3.20 },\n \"NY\": { electricity: 0.20, gas: 1.05, oil: 3.10 },\n \"TX\": { electricity: 0.12, gas: 0.95, oil: 2.90 },\n \"FL\": { electricity: 0.14, gas: 1.20, oil: 3.00 },\n };\n return stateRates[location.address] ||\n { electricity: 0.16, gas: 1.00, oil: 3.00 };\n}\nexports.locationSchema = {\n city: (value) => value.length > 0 ? null : \"City is required\",\n state: (value) => value.length > 0 ? null : \"State is required\",\n climateZone: (value) => Object.keys(heatingConstants_1.CLIMATE_DATA).includes(value)\n ? null\n : \"Invalid climate zone\",\n};\nexports.houseSchema = {\n size: (value) => value > 0 && value < 50000\n ? null\n : \"House size must be between 1 and 50,000 sq ft\",\n sharedWalls: (value) => value >= 0 && value <= 4\n ? null\n : \"Shared walls must be between 0 and 4\",\n};\n//# sourceMappingURL=heatingSimulation.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./simulation\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./heatingSimulation\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./geometry\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./simulation\"), exports);\n//# sourceMappingURL=index.js.map","import { SolarPanelType } from \"harmonia-types\";\r\n\r\nexport interface SolarExpertConfig {\r\n openRoofColor: string;\r\n closedRoofColor: string;\r\n openObstructionColor: string;\r\n closedObstructionColor: string;\r\n roofPolygonFillColor: string;\r\n obstructionPolygonFillColor: string;\r\n roofPolygonHoverFillColor: string;\r\n obstructionPolygonHoverFillColor: string;\r\n roofPolygonSelectedFillColor: string;\r\n obstructionPolygonSelectedFillColor: string;\r\n highlightColor: string;\r\n}\r\n\r\nexport const DEFAULT_SOLAR_EXPERT_CONFIG: SolarExpertConfig = {\r\n openRoofColor: \"#d6eeff\",\r\n closedRoofColor: \"#ffffff\",\r\n openObstructionColor: \"#f57242\",\r\n closedObstructionColor: \"rgba(255, 132, 107, 0.8)\",\r\n roofPolygonFillColor: \"rgba(92, 187, 255, 0.5)\",\r\n obstructionPolygonFillColor: \"rgba(255, 132, 107, 0.5)\",\r\n roofPolygonHoverFillColor: \"rgba(92, 187, 255, 0.8)\",\r\n obstructionPolygonHoverFillColor: \"rgba(255, 132, 107, 0.8)\",\r\n roofPolygonSelectedFillColor: \"rgba(92, 187, 255, 0.7)\",\r\n obstructionPolygonSelectedFillColor: \"rgba(255, 132, 107, 0.7)\",\r\n highlightColor: \"rgba(0, 89, 255, 1)\",\r\n};\r\n\r\nexport const DEFAULT_SOLAR_PANEL_TYPE: SolarPanelType = {\r\n widthMeters: 1.134,\r\n heightMeters: 1.762,\r\n kWattPeak: 0.455,\r\n efficiency: 0.224,\r\n price: 77.68,\r\n};\r\n\r\nexport const DEFAULT_COLOR_SCHEME: ColorScheme = {\r\n primary: \"hsl(41 51% 90%)\",\r\n primaryForeground: \"hsl(0 0% 0%)\",\r\n secondary: \"hsl(28 100% 8%)\",\r\n secondaryForeground: \"hsl(0 0% 100%)\",\r\n tertiary: \"hsl(28 100% 29%)\",\r\n tertiaryForeground: \"hsl(0 0% 100%)\",\r\n muted: \"hsl(0 0% 100%)\",\r\n mutedForeground: \"hsl(0 0% 0%)\",\r\n error: \"hsl(0 100% 50%)\",\r\n errorForeground: \"hsl(0 0% 100%)\",\r\n\r\n // Surface colors\r\n surface: \"hsl(0 0% 88%)\", // gray-200\r\n surfaceHover: \"hsl(0 0% 82%)\", // gray-300\r\n surfaceActive: \"hsl(0 0% 64%)\", // gray-400\r\n\r\n // Text colors\r\n textMuted: \"hsl(0 0% 45%)\", // gray-600\r\n textSecondary: \"hsl(0 0% 55%)\", // gray-500\r\n textPlaceholder: \"hsl(0 0% 73%)\", // gray-400\r\n\r\n // Border colors\r\n border: \"hsl(0 0% 82%)\", // gray-300\r\n borderLight: \"hsl(0 0% 93%)\", // gray-200\r\n\r\n // Status colors\r\n success: \"hsl(142 76% 36%)\", // green-600\r\n info: \"hsl(221 83% 53%)\", // blue-500\r\n\r\n // Interactive colors\r\n hover: \"hsl(0 0% 88%)\", // gray-200\r\n hoverDark: \"hsl(28 100% 8%)\", // darker secondary for hover\r\n overlay: \"rgba(0, 0, 0, 0.24)\", // #0000003c\r\n tooltip: \"hsl(0 0% 13%)\", // gray-800\r\n};\r\n\r\nexport interface ColorScheme {\r\n primary: string;\r\n primaryForeground: string;\r\n secondary: string;\r\n secondaryForeground: string;\r\n tertiary: string;\r\n tertiaryForeground: string;\r\n muted: string;\r\n mutedForeground: string;\r\n error: string;\r\n errorForeground: string;\r\n // Surface colors\r\n surface: string;\r\n surfaceHover: string;\r\n surfaceActive: string;\r\n // Text colors\r\n textMuted: string;\r\n textSecondary: string;\r\n textPlaceholder: string;\r\n // Border colors\r\n border: string;\r\n borderLight: string;\r\n // Status colors\r\n success: string;\r\n info: string;\r\n // Interactive colors\r\n hover: string;\r\n hoverDark: string;\r\n overlay: string;\r\n tooltip: string;\r\n}\r\n","const OPEN_POLYGON_COLOR = \"red\"; //\"#ffffff\";\r\nconst CLOSED_POLYGON_COLOR = \"#fcba03\";\r\nconst DOTTED_LINE_COLOR = \"rgba(0, 0, 0, 0.5)\";\r\n\r\nconst ROW_SPACING = 1;\r\nconst COLUMN_SPACING = 1;\r\n\r\nconst BORDER_INSET = 0;\r\nconst DEFAULT_SUNNINESS = 600;\r\n\r\nconst HEAT_PUMP_CONSUMPTION = 46; // kWh per m² per year\r\n\r\nconst SOLAR_RADIATION = [\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0, // 00:00 - 05:00 - 6\r\n 0,\r\n 0.1,\r\n 0.2, // 8\r\n 0.4,\r\n 0.8,\r\n 1, // 06:00 - 11:00 - 12\r\n 1,\r\n 1,\r\n 1,\r\n 0.7,\r\n 0.5,\r\n 0.3, // 12:00 - 17:00 - 18\r\n 0.16,\r\n 0.02,\r\n 0,\r\n 0,\r\n 0,\r\n 0, // 18:00 - 23:00 - 24\r\n];\r\nconst CONSUMPTION_PROFILES = {\r\n mostly_at_home: [\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.15, // 00:00 - 05:00 - 6\r\n 0.23,\r\n 0.26,\r\n 0.16,\r\n 0.16,\r\n 0.15,\r\n 0.19, // 06:00 - 11:00 - 12\r\n 0.23,\r\n 0.24,\r\n 0.35,\r\n 0.28,\r\n 0.275,\r\n 0.8, // 12:00 - 17:00 - 18\r\n 0.78,\r\n 0.74,\r\n 0.75,\r\n 0.73,\r\n 0.26,\r\n 0.1, // 18:00 - 23:00 - 24\r\n ],\r\n mostly_away: [\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.15, // 00:00 - 05:00 - 6\r\n 0.29,\r\n 0.32,\r\n 0.25,\r\n 0.15,\r\n 0.12,\r\n 0.14, // 06:00 - 11:00 - 12\r\n 0.15,\r\n 0.12,\r\n 0.16,\r\n 0.21,\r\n 0.285,\r\n 1, // 12:00 - 17:00 - 18\r\n 0.81,\r\n 0.77,\r\n 0.79,\r\n 0.73,\r\n 0.26,\r\n 0.1, // 18:00 - 23:00 - 24\r\n ],\r\n};\r\n\r\nexport {\r\n BORDER_INSET,\r\n CLOSED_POLYGON_COLOR,\r\n COLUMN_SPACING,\r\n CONSUMPTION_PROFILES,\r\n DEFAULT_SUNNINESS,\r\n DOTTED_LINE_COLOR,\r\n HEAT_PUMP_CONSUMPTION,\r\n OPEN_POLYGON_COLOR,\r\n ROW_SPACING,\r\n SOLAR_RADIATION,\r\n};\r\n","import { BuildingInsightsResponse } from \"harmonia-types\";\r\n\r\nexport async function fetchSolarData(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n) {\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const contentType = response.headers.get(\"content-type\");\r\n if (!contentType || !contentType.includes(\"application/json\")) {\r\n const text = await response.text();\r\n console.error(\"Unexpected content type:\", contentType, \"Response:\", text);\r\n return null;\r\n }\r\n\r\n const rawData: BuildingInsightsResponse = await response.json();\r\n return rawData;\r\n } catch (error) {\r\n console.error(\"Error fetching solar data:\", error);\r\n if (\r\n error instanceof TypeError &&\r\n error.message === \"Failed to fetch\"\r\n ) {\r\n throw new Error(\"Unable to connect to the solar data API.\");\r\n }\r\n throw error;\r\n }\r\n}\r\n\r\nexport interface LeadData {\r\n location: {\r\n name: string;\r\n latitude: number;\r\n longitude: number;\r\n };\r\n systemConfig: {\r\n maxNumberOfPanels: number;\r\n panelPeakPower: number;\r\n polygons: any[];\r\n solarSystems: any;\r\n electricityPrice: number;\r\n compensationRate: number;\r\n annualPriceIncrease: number;\r\n };\r\n client: {\r\n name: string;\r\n email: string;\r\n phone: string;\r\n consumption: number;\r\n consumptionProfile: string;\r\n hasBattery: boolean;\r\n battery: number;\r\n hasHeatPump: boolean;\r\n heatPumpM2: number;\r\n hasElectricCar: boolean;\r\n electricCarChargingTime: string;\r\n electricCarKmPerYear: number;\r\n };\r\n images: {\r\n roof: string;\r\n polygon: string;\r\n };\r\n results: {\r\n autonomy: number;\r\n costSavings: number;\r\n compensation20Years: number;\r\n savedCosts20Years: number;\r\n totalEnergyConsumption: number;\r\n };\r\n}\r\n\r\nexport async function sendLeadToNexvoro(\r\n leadData: LeadData,\r\n): Promise<{ success: boolean; message: string; leadId?: string }> {\r\n try {\r\n const extradata = {\r\n leadtype: \"A-lead\",\r\n phase: \"10 Anbahnung\",\r\n title: `${leadData.client.name}/solarExpert`,\r\n extradata: leadData,\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append(\"md\", \"81.87.84.89.90.\");\r\n formData.append(\"token\", \"rdwetayarqzwtdsqystyraa\");\r\n formData.append(\"type\", \"new\");\r\n formData.append(\"data\", \"lead\");\r\n formData.append(\"values\", JSON.stringify(extradata));\r\n\r\n // Build the URL\r\n const baseUrl = \"https://workspace.nexvoro.cloud/exchange/extevent\";\r\n const url = baseUrl;\r\n\r\n // Send the request with FormData to avoid CORS preflight\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n body: formData,\r\n // No custom headers to avoid preflight request\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n console.error(\r\n \"Error sending lead to Nexvoro:\",\r\n response.status,\r\n errorText,\r\n );\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const result = await response.text();\r\n console.log(\"result\", result);\r\n\r\n // Check if the response contains a lead ID (successful creation)\r\n if (result.includes(\"ERROR\")) {\r\n return {\r\n success: false,\r\n message: \"Lead not created\",\r\n leadId: result,\r\n };\r\n } else {\r\n return {\r\n success: true,\r\n message: \"Lead submitted successfully\",\r\n leadId: undefined,\r\n };\r\n }\r\n } catch (error) {\r\n console.error(\"Error sending lead to Nexvoro:\", error);\r\n return {\r\n success: false,\r\n message: error instanceof Error\r\n ? error.message\r\n : \"Unknown error occurred\",\r\n };\r\n }\r\n}\r\n","/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n","import { Component, h, Prop, State, Watch } from \"@stencil/core\";\nimport { DEFAULT_SOLAR_PANEL_TYPE } from \"../../config\";\nimport { getLanguageStrings } from \"../../utils/lang/general\";\nimport { Polygon } from \"harmonia-types\";\nimport { state } from \"../../store\";\nimport { SimulationConfig, SolarSystem } from \"harmonia-sim\";\nimport { generateElectricCarChargingHours, simulate } from \"harmonia-sim\";\nimport { HEAT_PUMP_CONSUMPTION } from \"../../constants\";\nimport { LeadData, sendLeadToNexvoro } from \"../../utils/api\";\n\n@Component({\n tag: \"solar-system-form\",\n styleUrl: \"../../output.css\",\n shadow: false,\n})\nexport class SolarSystemForm {\n @Prop()\n systemConfigs: { [id: string]: SolarSystem } = {};\n @Prop()\n polygons: Polygon[] = [];\n @Prop()\n roofCanvas: HTMLCanvasElement;\n @Prop()\n polygonCanvas: HTMLCanvasElement;\n\n @State()\n householdConsumption: number = 4500;\n @State()\n consumptionProfile: \"mostly_at_home\" | \"mostly_away\" = \"mostly_at_home\";\n @State()\n electricityPrice: number = 0.3;\n @State()\n compensationRate: number = 0.07;\n @State()\n annualPriceIncrease: number = 2;\n @State()\n autonomy: number = 0;\n @State()\n costSavings: number = 0;\n @State()\n numberOfPanels: number = 5;\n @State()\n panelPeakPower: number = 0.4; // kW per panel\n @State()\n name: string = \"\";\n @State()\n email: string = \"\";\n @State()\n phone: string = \"\";\n @State()\n nameError: string = \"\";\n @State()\n emailError: string = \"\";\n @State()\n phoneError: string = \"\";\n @State()\n electricCar: boolean = false;\n @State()\n electricCarChargingTime: \"day\" | \"night\" = \"day\";\n @State()\n heatPump: number = 0;\n @State()\n battery: number = 0;\n @State()\n batteryEnabled: boolean = false;\n\n @State()\n compensation20Years: number = 0;\n @State()\n savedCosts20Years: number = 0;\n @State()\n maxPanels: number = 5;\n @State()\n kmDrivenPerYear: number = 10000;\n @State()\n totalEnergyConsumption: number = 4500;\n @State()\n totalEnergyProduction: number = 0;\n @State()\n isSubmitting: boolean = false;\n @State()\n submitMessage: string = \"\";\n @State()\n submitSuccess: boolean = false;\n\n @Watch(\"systemConfigs\")\n updateSystemConfigs() {\n if (Object.keys(this.systemConfigs).length === 0) {\n this.numberOfPanels = 0;\n this.maxPanels = 0;\n return;\n }\n this.numberOfPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n this.maxPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n\n this.panelPeakPower = Object.entries(this.systemConfigs)[0][1][0]\n ?.panel.kWattPeak ?? 0.44;\n\n this.recalculate();\n }\n\n private formatEuropeanNumber(num: number, decimals: number = 2): string {\n const fixed = num.toFixed(decimals);\n const [integerPart, decimalPart] = fixed.split(\".\");\n\n // Add dots as thousands separators\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n \".\",\n );\n\n // Join with comma as decimal separator\n return decimalPart\n ? `${formattedInteger},${decimalPart}`\n : formattedInteger;\n }\n\n private recalculate() {\n const currentSystemConfigs = {};\n let totalNumberOfPanels = 0;\n for (const [key, value] of Object.entries(this.systemConfigs)) {\n if (totalNumberOfPanels >= this.numberOfPanels) {\n break;\n }\n if (\n value.numberOfPanels + totalNumberOfPanels > this.numberOfPanels\n ) {\n currentSystemConfigs[key] = {\n ...value,\n numberOfPanels: this.numberOfPanels - totalNumberOfPanels,\n };\n totalNumberOfPanels = this.numberOfPanels;\n } else {\n currentSystemConfigs[key] = value;\n totalNumberOfPanels += value.numberOfPanels;\n }\n }\n\n const simulationConfig: SimulationConfig = {\n general: {\n simulationYears: 20,\n },\n householdConsumption: {\n consumptionProfile: this.consumptionProfile,\n winterConsumptionFactor: 1.4,\n summerConsumptionFactor: 0.6,\n averageConsumption: this.householdConsumption / 365,\n },\n electricityPrice: {\n purchase: this.electricityPrice,\n sell: this.compensationRate,\n increase: this.annualPriceIncrease / 100,\n },\n solarSystems: currentSystemConfigs,\n batteryKWh: this.battery,\n solarRadiation: {\n winterFactor: 0.2,\n summerFactor: 0.6,\n },\n heatPump: {\n m2: this.heatPump,\n consumptionPerM2: HEAT_PUMP_CONSUMPTION / 365,\n },\n electricCar: this.electricCar\n ? {\n averageKilometersPerDay: this.kmDrivenPerYear / 365,\n consumptionkWhPer100km: 20,\n batteryKWh: 80,\n chargingHours: this.electricCarChargingTime === \"day\"\n ? generateElectricCarChargingHours(6, 18)\n : generateElectricCarChargingHours(18, 6),\n }\n : undefined,\n };\n\n const result = simulate(simulationConfig);\n\n this.compensation20Years = result.compensationPerDay * 365 * 20;\n this.savedCosts20Years = result.byYearSavedCosts.reduce(\n (acc, curr) => acc + curr,\n 0,\n ) + this.compensation20Years;\n this.costSavings = result.byYearSavedCosts[0];\n this.autonomy = result.autonomy * 100;\n this.totalEnergyConsumption = result.totalEnergyConsumptionDay * 365;\n // Calculate total energy production based on compensation and rate\n this.totalEnergyProduction = result.totalEnergyProduction * 365;\n }\n\n componentWillLoad() {\n this.updateSystemConfigs();\n }\n\n private validateForm(): boolean {\n let isValid = true;\n const t = getLanguageStrings(state.settings.language);\n\n // Validate name\n if (!this.name.trim()) {\n this.nameError = t.solarSystemForm.nameError;\n isValid = false;\n } else {\n this.nameError = \"\";\n }\n\n // Validate email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!this.email.trim()) {\n this.emailError = t.solarSystemForm.emailError;\n isValid = false;\n } else if (!emailRegex.test(this.email)) {\n this.emailError = t.solarSystemForm.validEmailError;\n isValid = false;\n } else {\n this.emailError = \"\";\n }\n\n // Validate phone (optional)\n const phoneRegex = /^[\\+]?[1-9][\\d]{0,15}$/;\n if (\n this.phone.trim() &&\n !phoneRegex.test(this.phone.replace(/[\\s\\-\\(\\)]/g, \"\"))\n ) {\n this.phoneError = t.solarSystemForm.phoneError;\n isValid = false;\n } else {\n this.phoneError = \"\";\n }\n\n return isValid;\n }\n\n private async handleRequestOffer() {\n if (!this.validateForm()) {\n return;\n }\n\n this.isSubmitting = true;\n this.submitMessage = \"\";\n this.submitSuccess = false;\n\n const t = getLanguageStrings(state.settings.language);\n\n try {\n const leadData: LeadData = {\n location: {\n name: state.location,\n latitude: state.latitude,\n longitude: state.longitude,\n },\n systemConfig: {\n maxNumberOfPanels: this.maxPanels,\n panelPeakPower: this.panelPeakPower,\n polygons: this.polygons,\n solarSystems: this.systemConfigs,\n electricityPrice: this.electricityPrice,\n compensationRate: this.compensationRate,\n annualPriceIncrease: this.annualPriceIncrease,\n },\n client: {\n name: this.name,\n email: this.email,\n phone: this.phone,\n consumption: this.householdConsumption,\n consumptionProfile: this.consumptionProfile,\n hasBattery: this.batteryEnabled,\n battery: this.battery,\n hasHeatPump: this.heatPump > 0,\n heatPumpM2: this.heatPump,\n hasElectricCar: this.electricCar,\n electricCarChargingTime: this.electricCarChargingTime,\n electricCarKmPerYear: this.kmDrivenPerYear,\n },\n images: {\n roof: this.roofCanvas.toDataURL(),\n polygon: this.polygonCanvas.toDataURL(),\n },\n results: {\n autonomy: this.autonomy,\n costSavings: this.costSavings,\n compensation20Years: this.compensation20Years,\n savedCosts20Years: this.savedCosts20Years,\n totalEnergyConsumption: this.totalEnergyConsumption,\n },\n };\n console.log(\"leadData\", leadData);\n const result = await sendLeadToNexvoro(leadData);\n\n this.submitSuccess = result.success;\n\n if (result.success) {\n console.log(\"Lead successfully sent to Nexvoro\", result);\n this.submitMessage = t.solarSystemForm.leadSubmitted;\n // Optionally reset form or show success message\n } else {\n console.error(\n \"Failed to send lead to Nexvoro:\",\n result.message,\n );\n this.submitMessage = t.solarSystemForm.leadError;\n }\n } catch (error) {\n console.error(\"Error in handleRequestOffer:\", error);\n this.submitSuccess = false;\n this.submitMessage = error instanceof Error\n ? error.message\n : \"An unexpected error occurred\";\n } finally {\n this.isSubmitting = false;\n }\n }\n\n private isIOS(): boolean {\n return state.isIOS;\n }\n\n render() {\n const t = getLanguageStrings(state.settings.language);\n\n // Reusable style objects\n const borderStyle = { border: \"1px solid var(--color-border)\" };\n const errorBorderStyle = { border: \"1px solid var(--color-error)\" };\n\n return (\n <div\n class=\"flex flex-col justify-center items-center w-full h-full pt-4\" // style={{\n // display: (Object.keys(this.systemConfigs).length === 0)\n // ? \"none\"\n // : \"flex\",\n // }}\n id=\"solar-system-form\"\n >\n <h1 class=\"text-2xl font-bold text-secondary mb-4 w-full\">\n {t.solarSystemForm.title}\n </h1>\n\n <div class=\"w-full bg-primary rounded-4xl space-y-6\">\n {/* System Info Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.systemInformation}\n </h2>\n <div class=\"flex flex-col sm:flex-row gap-4\">\n {/* Number of Panels */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4 space-y-3\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.numberOfPanels}\n </label>\n {!this.isIOS()\n ? (\n <input\n type=\"number\"\n class=\"w-20 px-3 py-1 rounded-full bg-muted text-muted-foreground text-right\"\n value={this.numberOfPanels}\n readOnly\n />\n )\n : (\n <input\n type=\"number\"\n min=\"1\"\n max={this.maxPanels}\n class=\"w-20 px-3 py-1 rounded-full focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground text-center\"\n style={borderStyle}\n value={this.numberOfPanels}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n value >= 1 &&\n value <=\n this.maxPanels\n ) {\n this.numberOfPanels =\n value;\n this.recalculate();\n }\n }}\n />\n )}\n </div>\n {!this.isIOS() && (\n <input\n type=\"range\"\n min=\"1\"\n max={this.maxPanels}\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.numberOfPanels}\n onInput={(e) => {\n this.numberOfPanels = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(this.numberOfPanels)) {\n this.numberOfPanels = 0;\n }\n this.recalculate();\n }}\n />\n )}\n </div>\n\n {/* Panel Peak Power */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.panelPeakPower}\n </label>\n <span class=\"text-text-muted\">\n {this.panelPeakPower.toFixed(2)} kW\n </span>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <span class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.totalSystemPeakPower}\n </span>\n <span class=\"font-bold text-text-muted\">\n {(DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *\n this.numberOfPanels).toFixed(1)} kWp\n </span>\n </div>\n </div>\n </div>\n </div>\n {/* Household Consumption Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.householdConsumptionTitle}\n </h2>\n <div class=\"grid grid-rows-2 gap-0\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.annualConsumption}\n </label>\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.consumptionProfileTitle}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <input\n type=\"number\"\n step=\"100\"\n min=\"0\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n value={this.householdConsumption}\n onInput={(e) => {\n this.householdConsumption = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n onChange={(e) => {\n this.consumptionProfile =\n (e.target as HTMLSelectElement)\n .value as\n | \"mostly_at_home\"\n | \"mostly_away\";\n this.recalculate();\n }}\n >\n <option\n value=\"mostly_at_home\"\n selected={this.consumptionProfile ===\n \"mostly_at_home\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAtHome}\n </option>\n <option\n value=\"mostly_away\"\n selected={this.consumptionProfile ===\n \"mostly_away\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAway}\n </option>\n </select>\n </div>\n </div>\n {\n /* <div class=\"mt-4 h-48\">\n <canvas ref={(el) => this.chartRef = el}></canvas>\n </div> */\n }\n </div>\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.additionalComponents.title}\n </h2>\n <div class=\"flex flex-col gap-4\">\n {/* Heat Pump Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"heatPump\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.heatPump > 0}\n onChange={(e) => {\n this.heatPump =\n (e.target as HTMLInputElement)\n .checked\n ? 100\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"heatPump\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .heatPump}\n </label>\n </div>\n {(this.heatPump > 0 && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.heatPump} m²\n </span>\n )}\n </div>\n {this.heatPump > 0 && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.heatPump}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 300\n ) {\n this.heatPump =\n value;\n this.recalculate();\n }\n }}\n />\n <span class=\"text-sm text-text-muted\">\n m²\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"input-slider custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.heatPump}\n onInput={(e) => {\n this.heatPump =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n\n {/* Electric Car Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"electricCar\"\n class=\"w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.electricCar}\n onChange={(e) => {\n this.electricCar =\n (e.target as HTMLInputElement)\n .checked;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"electricCar\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .electricCar}\n </label>\n </div>\n </div>\n {this.electricCar && (\n <div class=\"flex flex-col gap-2\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .chargingTime}\n </label>\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .kilometersPerYear}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n onChange={(e) => {\n this.electricCarChargingTime =\n (e.target as HTMLSelectElement)\n .value as\n | \"day\"\n | \"night\";\n this.recalculate();\n }}\n style={borderStyle}\n >\n <option\n value=\"day\"\n selected={this\n .electricCarChargingTime ===\n \"day\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeDay}\n </option>\n <option\n value=\"night\"\n selected={this\n .electricCarChargingTime ===\n \"night\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeNight}\n </option>\n </select>\n <input\n type=\"number\"\n min=\"1000\"\n max=\"100000\"\n step=\"1000\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.kmDrivenPerYear}\n onInput={(e) => {\n this.kmDrivenPerYear =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n isNaN(\n this.kmDrivenPerYear,\n )\n ) {\n this.kmDrivenPerYear =\n 0;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n </div>\n </div>\n )}\n </div>\n\n {/* Battery Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"battery\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.batteryEnabled}\n onChange={(e) => {\n this.batteryEnabled =\n (e.target as HTMLInputElement)\n .checked;\n this.battery =\n this.batteryEnabled\n ? 5\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"battery\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .battery}\n </label>\n </div>\n {(this.batteryEnabled && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.battery} kWh\n </span>\n )}\n </div>\n {this.batteryEnabled && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"0\"\n max=\"20\"\n step=\"1\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.battery}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 20\n ) {\n this.battery =\n value;\n } else {\n this.battery =\n 20;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n <span class=\"text-sm text-text-muted\">\n kWh\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"1\"\n max=\"20\"\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.battery}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.battery = value;\n this.batteryEnabled =\n value > 0;\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Electricity Price and Compensation Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.electricityCostsTitle}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(100px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.electricityPrice}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.electricityPrice.toFixed(2)}\n onInput={(e) => {\n this.electricityPrice = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.compensationRate}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.compensationRate.toFixed(2)}\n onInput={(e) => {\n this.compensationRate = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.annualPriceIncrease}\n </label>\n <input\n type=\"number\"\n step=\"0.1\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.annualPriceIncrease.toFixed(1)}\n onInput={(e) => {\n this.annualPriceIncrease = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n </div>\n </div>\n\n {/* Results Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.resultsTitle}\n </h2>\n <div class=\"bg-muted rounded-4xl p-4\">\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.autonomy}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.autonomy > 100\n ? \"100\"\n : this.formatEuropeanNumber(\n this.autonomy,\n 1,\n )}%\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyConsumption}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyConsumption,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyProduction}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyProduction,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.costSavings}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.costSavings,\n )} €/{t\n .solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.compensation20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.compensation20Years,\n )} €\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm\n .monetaryBenefit20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.savedCosts20Years,\n )} €\n </span>\n </div>\n </div>\n </div>\n\n {/* Contact Information Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.requestOffer}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(1 00px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.name}\n </label>\n <input\n type=\"text\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.nameError\n ? errorBorderStyle\n : borderStyle}\n value={this.name}\n onInput={(e) => {\n this.name =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"Your name\"\n />\n {this.nameError && (\n <p class=\"text-error text-sm mt-1\">\n {this.nameError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.email}\n </label>\n <input\n type=\"email\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.emailError\n ? errorBorderStyle\n : borderStyle}\n value={this.email}\n onInput={(e) => {\n this.email =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"your.email@example.com\"\n />\n {this.emailError && (\n <p class=\"text-error text-sm mt-1\">\n {this.emailError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.phone}\n </label>\n <input\n type=\"tel\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.phoneError\n ? errorBorderStyle\n : borderStyle}\n value={this.phone}\n onInput={(e) => {\n this.phone =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"+34 123 456 789\"\n />\n {this.phoneError && (\n <p class=\"text-error text-sm mt-1\">\n {this.phoneError}\n </p>\n )}\n </div>\n </div>\n <div class=\"flex flex-col items-center gap-4\">\n <button\n onClick={() => this.handleRequestOffer()}\n disabled={!this.name.trim() ||\n !this.email.trim() || !!this.nameError ||\n !!this.emailError || !!this.phoneError ||\n this.isSubmitting}\n class={`px-6 py-3 rounded-4xl transition-colors duration-200 flex items-center gap-2 ${\n this.isSubmitting\n ? \"bg-muted text-text-muted cursor-not-allowed\"\n : \"bg-secondary hover:bg-tertiary\"\n }`}\n style={{\n color: this.isSubmitting\n ? \"var(--color-text-muted)\"\n : \"#ffffff\",\n }}\n >\n {this.isSubmitting && (\n <div class=\"w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin\">\n </div>\n )}\n {this.isSubmitting\n ? t.solarSystemForm.sending\n : t.solarSystemForm.requestOfferButton}\n </button>\n\n {this.submitMessage && (\n <div\n class={`text-sm px-4 py-2 rounded-4xl ${\n this.submitSuccess\n ? \"bg-success/10 text-success border border-success/20\"\n : \"bg-error/10 text-error border border-error/20\"\n }`}\n >\n {this.submitMessage}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}