blue-chestnut-solar-expert 0.0.69 → 0.0.71

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 (331) hide show
  1. package/dist/{collection/config.js → stencil-library/config-CWfV1nKn.js} +10 -4
  2. package/dist/stencil-library/config-CWfV1nKn.js.map +1 -0
  3. package/dist/stencil-library/constants-hboFofU4.js +1522 -0
  4. package/dist/stencil-library/constants-hboFofU4.js.map +1 -0
  5. package/dist/stencil-library/decoder-DafVsihn.js +39 -0
  6. package/dist/stencil-library/decoder-DafVsihn.js.map +1 -0
  7. package/dist/stencil-library/deflate-BOWpTFAE.js +21 -0
  8. package/dist/{esm/deflate-DHgPf9CO.js.map → stencil-library/deflate-BOWpTFAE.js.map} +1 -1
  9. package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -0
  10. package/dist/{components/p-CL74Q4VR.js → stencil-library/eraser-icon.entry.js} +9 -27
  11. package/dist/stencil-library/eraser-icon.entry.js.map +1 -0
  12. package/dist/stencil-library/house-icon.entry.esm.js.map +1 -0
  13. package/dist/{components/p-D8w3bTPO.js → stencil-library/house-icon.entry.js} +9 -27
  14. package/dist/stencil-library/house-icon.entry.js.map +1 -0
  15. package/dist/{components/loading-widget.js → stencil-library/icon-selector.entry.esm.js.map} +1 -38
  16. package/dist/stencil-library/icon-selector.entry.js +47 -0
  17. package/dist/stencil-library/icon-selector.entry.js.map +1 -0
  18. package/dist/stencil-library/index-CChkgM3J.js +414 -0
  19. package/dist/stencil-library/index-CChkgM3J.js.map +1 -0
  20. package/dist/stencil-library/index-ICfDNUMe.js +4172 -0
  21. package/dist/stencil-library/index-ICfDNUMe.js.map +1 -0
  22. package/dist/stencil-library/index.esm.js +13 -1
  23. package/dist/stencil-library/index.esm.js.map +1 -1
  24. package/dist/{esm/jpeg-CJLm1GkA.js → stencil-library/jpeg-DWgO3UMT.js} +11 -3
  25. package/dist/stencil-library/jpeg-DWgO3UMT.js.map +1 -0
  26. package/dist/{components/p-DLWzgdrw.js → stencil-library/lerc-BQV9jxbc.js} +27 -1981
  27. package/dist/stencil-library/lerc-BQV9jxbc.js.map +1 -0
  28. package/dist/{esm → stencil-library}/loading-widget.entry.js +3 -3
  29. package/dist/{components/p-P28NBglk.js.map → stencil-library/loading-widget.entry.js.map} +1 -1
  30. package/dist/{esm/lzw-DaOzWJUD.js → stencil-library/lzw-fGokKIJR.js} +10 -4
  31. package/dist/stencil-library/lzw-fGokKIJR.js.map +1 -0
  32. package/dist/stencil-library/map-draw-DHsfxmE8.js +25567 -0
  33. package/dist/stencil-library/map-draw-DHsfxmE8.js.map +1 -0
  34. package/dist/stencil-library/map-draw.entry.esm.js.map +1 -0
  35. package/dist/stencil-library/map-draw.entry.js +12 -0
  36. package/dist/stencil-library/map-draw.entry.js.map +1 -0
  37. package/dist/stencil-library/map-selector.entry.esm.js.map +1 -0
  38. package/dist/{components/p-C5QieOat.js → stencil-library/map-selector.entry.js} +164 -96
  39. package/dist/stencil-library/map-selector.entry.js.map +1 -0
  40. package/dist/{components/loading-widget.js.map → stencil-library/marker-icon.entry.esm.js.map} +1 -1
  41. package/dist/{components/p-Umz6nJIv.js → stencil-library/marker-icon.entry.js} +9 -27
  42. package/dist/stencil-library/marker-icon.entry.js.map +1 -0
  43. package/dist/stencil-library/move-icon.entry.esm.js.map +1 -0
  44. package/dist/{components/p-FdEV2qPo.js → stencil-library/move-icon.entry.js} +9 -27
  45. package/dist/stencil-library/move-icon.entry.js.map +1 -0
  46. package/dist/{components/p-DTXeHbuh.js.map → stencil-library/octagon-minus-icon.entry.esm.js.map} +1 -1
  47. package/dist/{components/p-BJLO76Yi.js → stencil-library/octagon-minus-icon.entry.js} +9 -27
  48. package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -0
  49. package/dist/{components/p-ByX6QP-E.js → stencil-library/packbits-vWMrdouf.js} +9 -3
  50. package/dist/stencil-library/packbits-vWMrdouf.js.map +1 -0
  51. package/dist/stencil-library/pako.esm-CPorU236.js +6881 -0
  52. package/dist/{esm/pako.esm-B5WTRCh8.js.map → stencil-library/pako.esm-CPorU236.js.map} +1 -1
  53. package/dist/{components/p-Ddk3b30j.js.map → stencil-library/polygon-buttons.entry.esm.js.map} +1 -1
  54. package/dist/{cjs/loading-widget.cjs.entry.js → stencil-library/polygon-buttons.entry.js} +16 -10
  55. package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
  56. package/dist/{cjs/loading-widget.cjs.entry.js.map → stencil-library/polygon-information.entry.esm.js.map} +1 -1
  57. package/dist/{components/p-OxUYjaAL.js → stencil-library/polygon-information.entry.js} +13 -70
  58. package/dist/stencil-library/polygon-information.entry.js.map +1 -0
  59. package/dist/stencil-library/raw-BZExdvHz.js +20 -0
  60. package/dist/stencil-library/raw-BZExdvHz.js.map +1 -0
  61. package/dist/stencil-library/search-icon.entry.esm.js.map +1 -0
  62. package/dist/{components/p-DBwr8xSB.js → stencil-library/search-icon.entry.js} +9 -27
  63. package/dist/stencil-library/{p-9b4e52c3.entry.js → search-icon.entry.js.map} +1 -2
  64. package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -0
  65. package/dist/{components/p-DTXeHbuh.js → stencil-library/settings-icon.entry.js} +9 -27
  66. package/dist/stencil-library/settings-icon.entry.js.map +1 -0
  67. package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -0
  68. package/dist/{components/p-Ddk3b30j.js → stencil-library/settings-modal.entry.js} +20 -38
  69. package/dist/stencil-library/settings-modal.entry.js.map +1 -0
  70. package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -0
  71. package/dist/{components/solar-expert.js → stencil-library/solar-expert.entry.js} +16 -151
  72. package/dist/stencil-library/solar-expert.entry.js.map +1 -0
  73. package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -0
  74. package/dist/{components/p-C3ZXE525.js → stencil-library/solar-system-form.entry.js} +183 -549
  75. package/dist/stencil-library/solar-system-form.entry.js.map +1 -0
  76. package/dist/stencil-library/stencil-library.esm.js +52 -1
  77. package/dist/stencil-library/stencil-library.esm.js.map +1 -1
  78. package/dist/{components/p-DfzSejIb.js → stencil-library/store-CcqrFuBK.js} +3 -3
  79. package/dist/stencil-library/store-CcqrFuBK.js.map +1 -0
  80. package/dist/{components/p-D2AHNjbG.js.map → stencil-library/toast-notification.entry.esm.js.map} +1 -1
  81. package/dist/{components/p-P28NBglk.js → stencil-library/toast-notification.entry.js} +9 -30
  82. package/dist/stencil-library/toast-notification.entry.js.map +1 -0
  83. package/dist/stencil-library/tool-box.entry.esm.js.map +1 -0
  84. package/dist/{components/p-26DHwbCE.js → stencil-library/tool-box.entry.js} +27 -35
  85. package/dist/stencil-library/tool-box.entry.js.map +1 -0
  86. package/dist/{collection/utils/render/tools.js → stencil-library/tools-BNYKV5H5.js} +14 -8
  87. package/dist/stencil-library/tools-BNYKV5H5.js.map +1 -0
  88. package/dist/stencil-library/tutorial-component.entry.esm.js.map +1 -0
  89. package/dist/{components/p-D2AHNjbG.js → stencil-library/tutorial-component.entry.js} +13 -38
  90. package/dist/stencil-library/tutorial-component.entry.js.map +1 -0
  91. package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
  92. package/dist/{components/p-waOPoUcA.js → stencil-library/undo-icon.entry.js} +9 -27
  93. package/dist/stencil-library/undo-icon.entry.js.map +1 -0
  94. package/dist/{collection/utils/utils.js → stencil-library/utils-BCUZxI9u.js} +9 -3
  95. package/dist/stencil-library/utils-BCUZxI9u.js.map +1 -0
  96. package/dist/{esm/webimage-BiHardhv.js → stencil-library/webimage-DzcyYZ7I.js} +9 -3
  97. package/dist/{esm/webimage-BiHardhv.js.map → stencil-library/webimage-DzcyYZ7I.js.map} +1 -1
  98. package/dist/types/components/map-draw/map-draw.d.ts +1 -0
  99. package/dist/types/components/solar-expert/solar-expert.d.ts +1 -0
  100. package/dist/types/components/solar-system-form/solar-system-form.d.ts +10 -6
  101. package/dist/types/components.d.ts +4 -0
  102. package/package.json +1 -1
  103. package/dist/cjs/app-globals-I24yU8do.js +0 -10
  104. package/dist/cjs/app-globals-I24yU8do.js.map +0 -1
  105. package/dist/cjs/basedecoder-CQuzfSgz.js +0 -116
  106. package/dist/cjs/basedecoder-CQuzfSgz.js.map +0 -1
  107. package/dist/cjs/deflate-AzGzQSW2.js +0 -17
  108. package/dist/cjs/deflate-AzGzQSW2.js.map +0 -1
  109. package/dist/cjs/eraser-icon_19.cjs.entry.js +0 -31
  110. package/dist/cjs/eraser-icon_19.cjs.entry.js.map +0 -1
  111. package/dist/cjs/index-HgRXF6kp.js +0 -1470
  112. package/dist/cjs/index-HgRXF6kp.js.map +0 -1
  113. package/dist/cjs/index.cjs.js +0 -7
  114. package/dist/cjs/index.cjs.js.map +0 -1
  115. package/dist/cjs/jpeg-Bx3bTm32.js +0 -904
  116. package/dist/cjs/jpeg-Bx3bTm32.js.map +0 -1
  117. package/dist/cjs/lerc-Bdx5y-yw.js +0 -4427
  118. package/dist/cjs/lerc-Bdx5y-yw.js.map +0 -1
  119. package/dist/cjs/loader.cjs.js +0 -18
  120. package/dist/cjs/loader.cjs.js.map +0 -1
  121. package/dist/cjs/loading-widget.entry.cjs.js.map +0 -1
  122. package/dist/cjs/lzw-BmFug486.js +0 -140
  123. package/dist/cjs/lzw-BmFug486.js.map +0 -1
  124. package/dist/cjs/packbits-CYx9fB0v.js +0 -35
  125. package/dist/cjs/packbits-CYx9fB0v.js.map +0 -1
  126. package/dist/cjs/pako.esm-0mKI6Jik.js +0 -3243
  127. package/dist/cjs/pako.esm-0mKI6Jik.js.map +0 -1
  128. package/dist/cjs/raw-DC82yoyr.js +0 -16
  129. package/dist/cjs/raw-DC82yoyr.js.map +0 -1
  130. package/dist/cjs/stencil-library.cjs.js +0 -30
  131. package/dist/cjs/stencil-library.cjs.js.map +0 -1
  132. package/dist/cjs/webimage-Dc0t2xAB.js +0 -49
  133. package/dist/cjs/webimage-Dc0t2xAB.js.map +0 -1
  134. package/dist/collection/collection-manifest.json +0 -31
  135. package/dist/collection/components/icons/eraser.js +0 -64
  136. package/dist/collection/components/icons/eraser.js.map +0 -1
  137. package/dist/collection/components/icons/house.js +0 -64
  138. package/dist/collection/components/icons/house.js.map +0 -1
  139. package/dist/collection/components/icons/icon.js +0 -108
  140. package/dist/collection/components/icons/icon.js.map +0 -1
  141. package/dist/collection/components/icons/marker.js +0 -64
  142. package/dist/collection/components/icons/marker.js.map +0 -1
  143. package/dist/collection/components/icons/move.js +0 -64
  144. package/dist/collection/components/icons/move.js.map +0 -1
  145. package/dist/collection/components/icons/octagonMinus.js +0 -64
  146. package/dist/collection/components/icons/octagonMinus.js.map +0 -1
  147. package/dist/collection/components/icons/search.js +0 -64
  148. package/dist/collection/components/icons/search.js.map +0 -1
  149. package/dist/collection/components/icons/settings.js +0 -64
  150. package/dist/collection/components/icons/settings.js.map +0 -1
  151. package/dist/collection/components/icons/undo.js +0 -64
  152. package/dist/collection/components/icons/undo.js.map +0 -1
  153. package/dist/collection/components/map-draw/map-draw.js +0 -824
  154. package/dist/collection/components/map-draw/map-draw.js.map +0 -1
  155. package/dist/collection/components/map-draw/map-selector.js +0 -246
  156. package/dist/collection/components/map-draw/map-selector.js.map +0 -1
  157. package/dist/collection/components/map-draw/polygon-buttons.js +0 -86
  158. package/dist/collection/components/map-draw/polygon-buttons.js.map +0 -1
  159. package/dist/collection/components/map-draw/polygon-information.js +0 -211
  160. package/dist/collection/components/map-draw/polygon-information.js.map +0 -1
  161. package/dist/collection/components/map-draw/tool-box.js +0 -108
  162. package/dist/collection/components/map-draw/tool-box.js.map +0 -1
  163. package/dist/collection/components/map-draw/tutorial-component.js +0 -219
  164. package/dist/collection/components/map-draw/tutorial-component.js.map +0 -1
  165. package/dist/collection/components/settings/settings.js +0 -127
  166. package/dist/collection/components/settings/settings.js.map +0 -1
  167. package/dist/collection/components/solar-expert/solar-expert.js +0 -241
  168. package/dist/collection/components/solar-expert/solar-expert.js.map +0 -1
  169. package/dist/collection/components/solar-system-form/solar-system-form.js +0 -617
  170. package/dist/collection/components/solar-system-form/solar-system-form.js.map +0 -1
  171. package/dist/collection/components/widgets/loading-widget.js +0 -18
  172. package/dist/collection/components/widgets/loading-widget.js.map +0 -1
  173. package/dist/collection/components/widgets/toast-notification.js +0 -133
  174. package/dist/collection/components/widgets/toast-notification.js.map +0 -1
  175. package/dist/collection/config.js.map +0 -1
  176. package/dist/collection/constants.js +0 -90
  177. package/dist/collection/constants.js.map +0 -1
  178. package/dist/collection/index.js +0 -2
  179. package/dist/collection/index.js.map +0 -1
  180. package/dist/collection/output.css +0 -1126
  181. package/dist/collection/store.js +0 -43
  182. package/dist/collection/store.js.map +0 -1
  183. package/dist/collection/types/lang.js +0 -2
  184. package/dist/collection/types/lang.js.map +0 -1
  185. package/dist/collection/types/shapes.js +0 -2
  186. package/dist/collection/types/shapes.js.map +0 -1
  187. package/dist/collection/utils/api.js +0 -94
  188. package/dist/collection/utils/api.js.map +0 -1
  189. package/dist/collection/utils/images.js +0 -2
  190. package/dist/collection/utils/images.js.map +0 -1
  191. package/dist/collection/utils/lang/english.js +0 -164
  192. package/dist/collection/utils/lang/english.js.map +0 -1
  193. package/dist/collection/utils/lang/general.js +0 -30
  194. package/dist/collection/utils/lang/general.js.map +0 -1
  195. package/dist/collection/utils/lang/german.js +0 -164
  196. package/dist/collection/utils/lang/german.js.map +0 -1
  197. package/dist/collection/utils/lang/spanish.js +0 -164
  198. package/dist/collection/utils/lang/spanish.js.map +0 -1
  199. package/dist/collection/utils/render/tools.js.map +0 -1
  200. package/dist/collection/utils/solar.js +0 -135
  201. package/dist/collection/utils/solar.js.map +0 -1
  202. package/dist/collection/utils/theme.js +0 -97
  203. package/dist/collection/utils/theme.js.map +0 -1
  204. package/dist/collection/utils/utils.js.map +0 -1
  205. package/dist/components/eraser-icon.js +0 -11
  206. package/dist/components/eraser-icon.js.map +0 -1
  207. package/dist/components/house-icon.js +0 -11
  208. package/dist/components/house-icon.js.map +0 -1
  209. package/dist/components/icon-selector.js +0 -11
  210. package/dist/components/icon-selector.js.map +0 -1
  211. package/dist/components/index.js +0 -1269
  212. package/dist/components/index.js.map +0 -1
  213. package/dist/components/map-draw.js +0 -11
  214. package/dist/components/map-draw.js.map +0 -1
  215. package/dist/components/map-selector.js +0 -11
  216. package/dist/components/map-selector.js.map +0 -1
  217. package/dist/components/marker-icon.js +0 -11
  218. package/dist/components/marker-icon.js.map +0 -1
  219. package/dist/components/move-icon.js +0 -11
  220. package/dist/components/move-icon.js.map +0 -1
  221. package/dist/components/octagon-minus-icon.js +0 -11
  222. package/dist/components/octagon-minus-icon.js.map +0 -1
  223. package/dist/components/p-26DHwbCE.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-BGoSj_DR.js +0 -902
  229. package/dist/components/p-BGoSj_DR.js.map +0 -1
  230. package/dist/components/p-BJLO76Yi.js.map +0 -1
  231. package/dist/components/p-BOe-Z8rz.js +0 -16323
  232. package/dist/components/p-BOe-Z8rz.js.map +0 -1
  233. package/dist/components/p-Bduzzygj.js +0 -623
  234. package/dist/components/p-Bduzzygj.js.map +0 -1
  235. package/dist/components/p-ByX6QP-E.js.map +0 -1
  236. package/dist/components/p-C3ZXE525.js.map +0 -1
  237. package/dist/components/p-C5QieOat.js.map +0 -1
  238. package/dist/components/p-CL74Q4VR.js.map +0 -1
  239. package/dist/components/p-Cgchl6bA.js +0 -47
  240. package/dist/components/p-Cgchl6bA.js.map +0 -1
  241. package/dist/components/p-Cx7fffWb.js +0 -163
  242. package/dist/components/p-Cx7fffWb.js.map +0 -1
  243. package/dist/components/p-D8w3bTPO.js.map +0 -1
  244. package/dist/components/p-DBwr8xSB.js.map +0 -1
  245. package/dist/components/p-DLWzgdrw.js.map +0 -1
  246. package/dist/components/p-DfzSejIb.js.map +0 -1
  247. package/dist/components/p-FdEV2qPo.js.map +0 -1
  248. package/dist/components/p-OxUYjaAL.js.map +0 -1
  249. package/dist/components/p-Umz6nJIv.js.map +0 -1
  250. package/dist/components/p-WmcSqXD8.js +0 -14
  251. package/dist/components/p-WmcSqXD8.js.map +0 -1
  252. package/dist/components/p-j-vOrhhh.js +0 -114
  253. package/dist/components/p-j-vOrhhh.js.map +0 -1
  254. package/dist/components/p-q8auDIJ2.js +0 -138
  255. package/dist/components/p-q8auDIJ2.js.map +0 -1
  256. package/dist/components/p-waOPoUcA.js.map +0 -1
  257. package/dist/components/polygon-buttons.js +0 -11
  258. package/dist/components/polygon-buttons.js.map +0 -1
  259. package/dist/components/polygon-information.js +0 -11
  260. package/dist/components/polygon-information.js.map +0 -1
  261. package/dist/components/search-icon.js +0 -11
  262. package/dist/components/search-icon.js.map +0 -1
  263. package/dist/components/settings-icon.js +0 -11
  264. package/dist/components/settings-icon.js.map +0 -1
  265. package/dist/components/settings-modal.js +0 -11
  266. package/dist/components/settings-modal.js.map +0 -1
  267. package/dist/components/solar-expert.js.map +0 -1
  268. package/dist/components/solar-system-form.js +0 -11
  269. package/dist/components/solar-system-form.js.map +0 -1
  270. package/dist/components/toast-notification.js +0 -11
  271. package/dist/components/toast-notification.js.map +0 -1
  272. package/dist/components/tool-box.js +0 -11
  273. package/dist/components/tool-box.js.map +0 -1
  274. package/dist/components/tutorial-component.js +0 -11
  275. package/dist/components/tutorial-component.js.map +0 -1
  276. package/dist/components/undo-icon.js +0 -11
  277. package/dist/components/undo-icon.js.map +0 -1
  278. package/dist/esm/basedecoder-j-vOrhhh.js +0 -114
  279. package/dist/esm/basedecoder-j-vOrhhh.js.map +0 -1
  280. package/dist/esm/deflate-DHgPf9CO.js +0 -15
  281. package/dist/esm/eraser-icon_19.entry.js +0 -7
  282. package/dist/esm/eraser-icon_19.entry.js.map +0 -1
  283. package/dist/esm/index-C2JRBB5c.js +0 -1458
  284. package/dist/esm/index-C2JRBB5c.js.map +0 -1
  285. package/dist/esm/index.js +0 -5
  286. package/dist/esm/index.js.map +0 -1
  287. package/dist/esm/jpeg-CJLm1GkA.js.map +0 -1
  288. package/dist/esm/lerc-DF5Lrv5A.js +0 -4424
  289. package/dist/esm/lerc-DF5Lrv5A.js.map +0 -1
  290. package/dist/esm/loader.js +0 -16
  291. package/dist/esm/loader.js.map +0 -1
  292. package/dist/esm/loading-widget.entry.js.map +0 -1
  293. package/dist/esm/lzw-DaOzWJUD.js.map +0 -1
  294. package/dist/esm/packbits-CZPyx9kx.js +0 -33
  295. package/dist/esm/packbits-CZPyx9kx.js.map +0 -1
  296. package/dist/esm/pako.esm-B5WTRCh8.js +0 -3241
  297. package/dist/esm/raw-pqeeWc2_.js +0 -14
  298. package/dist/esm/raw-pqeeWc2_.js.map +0 -1
  299. package/dist/esm/stencil-library.js +0 -26
  300. package/dist/esm/stencil-library.js.map +0 -1
  301. package/dist/index.cjs.js +0 -1
  302. package/dist/index.js +0 -1
  303. package/dist/stencil-library/p-9b4e52c3.entry.js.map +0 -1
  304. package/dist/stencil-library/p-B54Ul0nf.js +0 -2
  305. package/dist/stencil-library/p-B54Ul0nf.js.map +0 -1
  306. package/dist/stencil-library/p-B5WTRCh8.js +0 -2
  307. package/dist/stencil-library/p-B5WTRCh8.js.map +0 -1
  308. package/dist/stencil-library/p-BGoSj_DR.js +0 -2
  309. package/dist/stencil-library/p-BGoSj_DR.js.map +0 -1
  310. package/dist/stencil-library/p-ByX6QP-E.js +0 -2
  311. package/dist/stencil-library/p-ByX6QP-E.js.map +0 -1
  312. package/dist/stencil-library/p-C2JRBB5c.js +0 -3
  313. package/dist/stencil-library/p-C2JRBB5c.js.map +0 -1
  314. package/dist/stencil-library/p-CX8V3eiN.js +0 -2
  315. package/dist/stencil-library/p-CX8V3eiN.js.map +0 -1
  316. package/dist/stencil-library/p-Cgchl6bA.js +0 -2
  317. package/dist/stencil-library/p-Cgchl6bA.js.map +0 -1
  318. package/dist/stencil-library/p-CymYGBJH.js +0 -2
  319. package/dist/stencil-library/p-CymYGBJH.js.map +0 -1
  320. package/dist/stencil-library/p-DHgjDQwz.js +0 -10
  321. package/dist/stencil-library/p-DHgjDQwz.js.map +0 -1
  322. package/dist/stencil-library/p-WmcSqXD8.js +0 -2
  323. package/dist/stencil-library/p-WmcSqXD8.js.map +0 -1
  324. package/dist/stencil-library/p-ba64c5e4.entry.js +0 -2
  325. package/dist/stencil-library/p-ba64c5e4.entry.js.map +0 -1
  326. package/dist/stencil-library/p-j-vOrhhh.js +0 -2
  327. package/dist/stencil-library/p-j-vOrhhh.js.map +0 -1
  328. package/dist/stencil-library/p-q8auDIJ2.js +0 -2
  329. package/dist/stencil-library/p-q8auDIJ2.js.map +0 -1
  330. /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js +0 -0
  331. /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js.map +0 -0
@@ -1,294 +1,46 @@
1
1
 
2
2
  if (typeof global === "undefined") { var global = globalThis || window || self; }
3
- import { p as proxyCustomElement, H, h } from './index.js';
4
- import { g as getLanguageStrings, s as state } from './p-DfzSejIb.js';
3
+ import { r as registerInstance, h } from './index-ICfDNUMe.js';
4
+ import { b as DEFAULT_SOLAR_PANEL_TYPE } from './config-CWfV1nKn.js';
5
+ import { g as getLanguageStrings, s as state } from './store-CcqrFuBK.js';
6
+ import { d as distExports, H as HEAT_PUMP_CONSUMPTION } from './constants-hboFofU4.js';
5
7
 
6
- const SOLAR_RADIATION = [
7
- 0,
8
- 0,
9
- 0,
10
- 0,
11
- 0,
12
- 0,
13
- 0,
14
- 0.1,
15
- 0.2,
16
- 0.4,
17
- 0.8,
18
- 0.9,
19
- 1,
20
- 0.95,
21
- 0.9,
22
- 0.7,
23
- 0.5,
24
- 0.3,
25
- 0.16,
26
- 0.02,
27
- 0,
28
- 0,
29
- 0,
30
- 0,
31
- ];
32
- function getSolarRadiation(discountFactor) {
33
- return SOLAR_RADIATION.map((value) => value * discountFactor);
34
- }
35
- const CONSUMPTION_PROFILES = {
36
- mostly_at_home: [
37
- 0.1,
38
- 0.1,
39
- 0.1,
40
- 0.1,
41
- 0.1,
42
- 0.15,
43
- 0.23,
44
- 0.26,
45
- 0.16,
46
- 0.16,
47
- 0.15,
48
- 0.19,
49
- 0.23,
50
- 0.24,
51
- 0.35,
52
- 0.28,
53
- 0.275,
54
- 0.8,
55
- 0.78,
56
- 0.74,
57
- 0.75,
58
- 0.73,
59
- 0.26,
60
- 0.1,
61
- ],
62
- mostly_away: [
63
- 0.1,
64
- 0.1,
65
- 0.1,
66
- 0.1,
67
- 0.1,
68
- 0.15,
69
- 0.29,
70
- 0.32,
71
- 0.25,
72
- 0.15,
73
- 0.12,
74
- 0.14,
75
- 0.15,
76
- 0.12,
77
- 0.16,
78
- 0.21,
79
- 0.285,
80
- 1,
81
- 0.81,
82
- 0.77,
83
- 0.79,
84
- 0.73,
85
- 0.26,
86
- 0.1,
87
- ],
88
- };
89
-
90
- const DEFAULT_GENERAL_SIMULATION_CONFIG = {
91
- simulationYears: 25,
92
- };
93
-
94
- function generateElectricCarChargingHours(start, end) {
95
- let hours = new Array(24).fill(false);
96
- if (start < end) {
97
- for (let i = start; i <= end; i++) {
98
- hours[i] = true;
99
- }
100
- }
101
- else {
102
- for (let i = start; i <= 24; i++) {
103
- hours[i] = true;
104
- }
105
- for (let i = 0; i <= end; i++) {
106
- hours[i] = true;
107
- }
8
+ async function fetchSolarData(latitude, longitude, apiKey) {
9
+ if (latitude === 0 || longitude === 0) {
10
+ return null;
108
11
  }
109
- return hours;
110
- }
111
- function simulateDay(production, consumption, dailyConsumption, battery) {
112
- let batteryCharge = 0;
113
- let soldEnergy = 0;
114
- let energyUsageOfProduction = 0;
115
- for (let hour = 0; hour < production.length; hour++) {
116
- const energyDifference = production[hour] - consumption[hour];
117
- if (energyDifference > 0) {
118
- energyUsageOfProduction += consumption[hour];
119
- if (batteryCharge < battery &&
120
- batteryCharge + energyDifference <= battery) {
121
- batteryCharge = batteryCharge + energyDifference;
122
- }
123
- else if (batteryCharge < battery) {
124
- const batteryDifference = battery - batteryCharge;
125
- batteryCharge = battery;
126
- soldEnergy += energyDifference - batteryDifference;
127
- }
128
- else {
129
- soldEnergy += energyDifference;
130
- }
12
+ try {
13
+ const args = {
14
+ "location.latitude": latitude.toFixed(5),
15
+ "location.longitude": longitude.toFixed(5),
16
+ };
17
+ const params = new URLSearchParams({
18
+ ...args,
19
+ key: apiKey,
20
+ });
21
+ const response = await fetch(`https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`);
22
+ if (!response.ok) {
23
+ const errorText = await response.text();
24
+ throw new Error(`HTTP error! status: ${response.status}, body: ${errorText}`);
131
25
  }
132
- else {
133
- if (batteryCharge > 0) {
134
- if (batteryCharge >= -energyDifference) {
135
- batteryCharge += energyDifference;
136
- energyUsageOfProduction += consumption[hour];
137
- }
138
- else {
139
- energyUsageOfProduction += production[hour] + batteryCharge;
140
- batteryCharge = 0;
141
- }
142
- }
143
- else {
144
- energyUsageOfProduction += production[hour];
145
- }
26
+ const contentType = response.headers.get("content-type");
27
+ if (!contentType || !contentType.includes("application/json")) {
28
+ const text = await response.text();
29
+ console.error("Unexpected content type:", contentType, "Response:", text);
30
+ return null;
146
31
  }
32
+ const rawData = await response.json();
33
+ return rawData;
147
34
  }
148
- if (batteryCharge > 0) {
149
- soldEnergy += batteryCharge;
150
- }
151
- const autonomy = energyUsageOfProduction / dailyConsumption;
152
- return {
153
- autonomy: autonomy > 1 ? 1 : autonomy,
154
- soldEnergy,
155
- energyUsageOfProduction,
156
- };
157
- }
158
- function simulate(config) {
159
- const generalConfig = {
160
- ...DEFAULT_GENERAL_SIMULATION_CONFIG,
161
- ...config.general,
162
- };
163
- const consumption = CONSUMPTION_PROFILES[config.householdConsumption.consumptionProfile];
164
- const norm = consumption.reduce((acc, curr) => acc + curr, 0);
165
- let additionalConsumption = 0;
166
- if (config.heatPump) {
167
- additionalConsumption =
168
- (config.heatPump.m2 || 0) * config.heatPump.consumptionPerM2 || 0;
169
- }
170
- let electricCarConsumption = 0;
171
- let electricCarNorm = 1;
172
- let electricCarChargingHours = consumption.map((_) => false);
173
- if (config.electricCar) {
174
- electricCarChargingHours = config.electricCar.chargingHours;
175
- const dailyCarUsage = config.electricCar.averageKilometersPerDay / 100 *
176
- config.electricCar.consumptionkWhPer100km;
177
- electricCarConsumption = Math.min(dailyCarUsage, config.electricCar.batteryKWh);
178
- electricCarNorm = config.electricCar.chargingHours.reduce((acc, curr) => acc + (curr ? 1 : 0), 0);
179
- if (electricCarNorm === 0) {
180
- electricCarNorm = 1;
35
+ catch (error) {
36
+ console.error("Error fetching solar data:", error);
37
+ if (error instanceof TypeError &&
38
+ error.message === "Failed to fetch") {
39
+ throw new Error("Unable to connect to the solar data API.");
181
40
  }
41
+ throw error;
182
42
  }
183
- let systemSize = 0;
184
- if (config.solarSystems) {
185
- systemSize = Object.values(config.solarSystems).reduce((acc, curr) => {
186
- return acc + curr.numberOfPanels * curr.panelType.kWattPeak;
187
- }, 0);
188
- }
189
- else if (config.solarSystem) {
190
- console.warn("solarSystem is deprecated, use solarSystems instead");
191
- systemSize = config.solarSystem.numberOfPanels *
192
- config.solarSystem.panelType.kWattPeak;
193
- }
194
- else {
195
- throw new Error("No solar system found");
196
- }
197
- const summerProduction = getSolarRadiation(config.solarRadiation.summerFactor * systemSize);
198
- const winterProduction = getSolarRadiation(config.solarRadiation.winterFactor * systemSize);
199
- const summerConsumptionWholeDay = config.householdConsumption.averageConsumption *
200
- config.householdConsumption.summerConsumptionFactor +
201
- additionalConsumption *
202
- config.householdConsumption.summerConsumptionFactor;
203
- const summerConsumptionDaily = consumption.map((c, i) => c / norm * summerConsumptionWholeDay +
204
- electricCarConsumption / electricCarNorm *
205
- (electricCarChargingHours[i] ? 1 : 0));
206
- const winterConsumptionWholeDay = config.householdConsumption.averageConsumption *
207
- config.householdConsumption.winterConsumptionFactor +
208
- additionalConsumption *
209
- config.householdConsumption.winterConsumptionFactor;
210
- const winterConsumptionDaily = consumption.map((c, i) => c / norm * winterConsumptionWholeDay +
211
- electricCarConsumption / electricCarNorm *
212
- (electricCarChargingHours[i] ? 1 : 0));
213
- const summerDay = simulateDay(summerProduction, summerConsumptionDaily, summerConsumptionWholeDay + electricCarConsumption, config.batteryKWh);
214
- const winterDay = simulateDay(winterProduction, winterConsumptionDaily, winterConsumptionWholeDay + electricCarConsumption, config.batteryKWh);
215
- let savedCostsByYear = [];
216
- const soldEnergy = (summerDay.soldEnergy + winterDay.soldEnergy) / 2;
217
- const ownConsumption = (summerDay.energyUsageOfProduction +
218
- winterDay.energyUsageOfProduction) / 2;
219
- let energyPrice = config.electricityPrice.purchase;
220
- for (let i = 0; i < generalConfig.simulationYears; i++) {
221
- const savedCostsThisYear = ownConsumption * energyPrice * 365;
222
- savedCostsByYear.push(savedCostsThisYear);
223
- energyPrice = (1 + config.electricityPrice.increase) * energyPrice;
224
- }
225
- const totalEnergyProduction = (summerProduction.reduce((acc, curr) => acc + curr, 0) +
226
- winterProduction.reduce((acc, curr) => acc + curr, 0)) / 2;
227
- return {
228
- autonomy: (summerDay.autonomy + winterDay.autonomy) / 2,
229
- compensationPerDay: soldEnergy * config.electricityPrice.sell,
230
- byYearSavedCosts: savedCostsByYear,
231
- totalEnergyConsumptionDay: (summerConsumptionWholeDay + winterConsumptionWholeDay) / 2 +
232
- electricCarConsumption,
233
- totalEnergyProduction,
234
- };
235
43
  }
236
-
237
- const DEFAULT_SOLAR_EXPERT_CONFIG = {
238
- openRoofColor: "#d6eeff",
239
- closedRoofColor: "#ffffff",
240
- openObstructionColor: "#f57242",
241
- closedObstructionColor: "rgba(255, 132, 107, 0.8)",
242
- roofPolygonFillColor: "rgba(92, 187, 255, 0.5)",
243
- obstructionPolygonFillColor: "rgba(255, 132, 107, 0.5)",
244
- roofPolygonHoverFillColor: "rgba(92, 187, 255, 0.8)",
245
- obstructionPolygonHoverFillColor: "rgba(255, 132, 107, 0.8)",
246
- roofPolygonSelectedFillColor: "rgba(92, 187, 255, 0.7)",
247
- obstructionPolygonSelectedFillColor: "rgba(255, 132, 107, 0.7)",
248
- highlightColor: "rgba(0, 89, 255, 1)",
249
- };
250
- const DEFAULT_SOLAR_PANEL_TYPE = {
251
- widthMeters: 1.134,
252
- heightMeters: 1.762,
253
- kWattPeak: 0.455,
254
- efficiency: 0.224,
255
- price: 77.68,
256
- };
257
- const DEFAULT_COLOR_SCHEME = {
258
- primary: "hsl(41 51% 90%)",
259
- primaryForeground: "hsl(0 0% 0%)",
260
- secondary: "hsl(28 100% 8%)",
261
- secondaryForeground: "hsl(0 0% 100%)",
262
- tertiary: "hsl(28 100% 29%)",
263
- tertiaryForeground: "hsl(0 0% 100%)",
264
- muted: "hsl(0 0% 100%)",
265
- mutedForeground: "hsl(0 0% 0%)",
266
- error: "hsl(0 100% 50%)",
267
- errorForeground: "hsl(0 0% 100%)",
268
- // Surface colors
269
- surface: "hsl(0 0% 88%)", // gray-200
270
- surfaceHover: "hsl(0 0% 82%)", // gray-300
271
- surfaceActive: "hsl(0 0% 64%)", // gray-400
272
- // Text colors
273
- textMuted: "hsl(0 0% 45%)", // gray-600
274
- textSecondary: "hsl(0 0% 55%)", // gray-500
275
- textPlaceholder: "hsl(0 0% 73%)", // gray-400
276
- // Border colors
277
- border: "hsl(0 0% 82%)", // gray-300
278
- borderLight: "hsl(0 0% 93%)", // gray-200
279
- // Status colors
280
- success: "hsl(142 76% 36%)", // green-600
281
- info: "hsl(221 83% 53%)", // blue-500
282
- // Interactive colors
283
- hover: "hsl(0 0% 88%)", // gray-200
284
- hoverDark: "hsl(28 100% 8%)", // darker secondary for hover
285
- overlay: "rgba(0, 0, 0, 0.24)", // #0000003c
286
- tooltip: "hsl(0 0% 13%)", // gray-800
287
- };
288
-
289
- const BORDER_INSET = 0;
290
- const HEAT_PUMP_CONSUMPTION = 46; // kWh per m² per year
291
-
292
44
  async function sendLeadToNexvoro(leadData) {
293
45
  try {
294
46
  const extradata = {
@@ -349,10 +101,9 @@ async function sendLeadToNexvoro(leadData) {
349
101
 
350
102
  const outputCss = "/*! 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";
351
103
 
352
- const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm extends H {
353
- constructor() {
354
- super();
355
- this.__registerHost();
104
+ const SolarSystemForm = class {
105
+ constructor(hostRef) {
106
+ registerInstance(this, hostRef);
356
107
  }
357
108
  systemConfigs = {};
358
109
  polygons = [];
@@ -360,7 +111,7 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
360
111
  polygonCanvas;
361
112
  pixelInMeters;
362
113
  householdConsumption = 4500;
363
- consumptionProfile = "mostly_at_home";
114
+ consumptionProfile = 'mostly_at_home';
364
115
  electricityPrice = 0.3;
365
116
  compensationRate = 0.07;
366
117
  annualPriceIncrease = 2;
@@ -368,14 +119,16 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
368
119
  costSavings = 0;
369
120
  numberOfPanels = 5;
370
121
  panelPeakPower = 0.4; // kW per panel
371
- name = "";
372
- email = "";
373
- phone = "";
374
- nameError = "";
375
- emailError = "";
376
- phoneError = "";
122
+ firstname = '';
123
+ surname = '';
124
+ email = '';
125
+ phone = '';
126
+ firstnameError = '';
127
+ surnameError = '';
128
+ emailError = '';
129
+ phoneError = '';
377
130
  electricCar = false;
378
- electricCarChargingTime = "day";
131
+ electricCarChargingTime = 'day';
379
132
  heatPump = 0;
380
133
  battery = 0;
381
134
  batteryEnabled = false;
@@ -386,8 +139,10 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
386
139
  totalEnergyConsumption = 4500;
387
140
  totalEnergyProduction = 0;
388
141
  isSubmitting = false;
389
- submitMessage = "";
142
+ submitMessage = '';
390
143
  submitSuccess = false;
144
+ privacyPolicyAccepted = false;
145
+ privacyPolicyError = '';
391
146
  updateSystemConfigs() {
392
147
  if (Object.keys(this.systemConfigs).length === 0) {
393
148
  this.numberOfPanels = 0;
@@ -396,19 +151,16 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
396
151
  }
397
152
  this.numberOfPanels = Object.keys(this.systemConfigs).reduce((acc, curr) => acc + this.systemConfigs[curr].numberOfPanels, 0);
398
153
  this.maxPanels = Object.keys(this.systemConfigs).reduce((acc, curr) => acc + this.systemConfigs[curr].numberOfPanels, 0);
399
- this.panelPeakPower = Object.entries(this.systemConfigs)[0][1][0]
400
- ?.panel.kWattPeak ?? 0.44;
154
+ this.panelPeakPower = Object.entries(this.systemConfigs)[0][1][0]?.panel.kWattPeak ?? 0.44;
401
155
  this.recalculate();
402
156
  }
403
157
  formatEuropeanNumber(num, decimals = 2) {
404
158
  const fixed = num.toFixed(decimals);
405
- const [integerPart, decimalPart] = fixed.split(".");
159
+ const [integerPart, decimalPart] = fixed.split('.');
406
160
  // Add dots as thousands separators
407
- const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
161
+ const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
408
162
  // Join with comma as decimal separator
409
- return decimalPart
410
- ? `${formattedInteger},${decimalPart}`
411
- : formattedInteger;
163
+ return decimalPart ? `${formattedInteger},${decimalPart}` : formattedInteger;
412
164
  }
413
165
  recalculate() {
414
166
  const currentSystemConfigs = {};
@@ -459,13 +211,11 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
459
211
  averageKilometersPerDay: this.kmDrivenPerYear / 365,
460
212
  consumptionkWhPer100km: 20,
461
213
  batteryKWh: 80,
462
- chargingHours: this.electricCarChargingTime === "day"
463
- ? generateElectricCarChargingHours(6, 18)
464
- : generateElectricCarChargingHours(18, 6),
214
+ chargingHours: this.electricCarChargingTime === 'day' ? distExports.generateElectricCarChargingHours(6, 18) : distExports.generateElectricCarChargingHours(18, 6),
465
215
  }
466
216
  : undefined,
467
217
  };
468
- const result = simulate(simulationConfig);
218
+ const result = distExports.simulate(simulationConfig);
469
219
  this.compensation20Years = result.compensationPerDay * 365 * 20;
470
220
  this.savedCosts20Years = result.byYearSavedCosts.reduce((acc, curr) => acc + curr, 0) + this.compensation20Years;
471
221
  this.costSavings = result.byYearSavedCosts[0];
@@ -480,13 +230,21 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
480
230
  validateForm() {
481
231
  let isValid = true;
482
232
  const t = getLanguageStrings(state.settings.language);
483
- // Validate name
484
- if (!this.name.trim()) {
485
- this.nameError = t.solarSystemForm.nameError;
233
+ // Validate firstname
234
+ if (!this.firstname.trim()) {
235
+ this.firstnameError = t.solarSystemForm.nameError;
486
236
  isValid = false;
487
237
  }
488
238
  else {
489
- this.nameError = "";
239
+ this.firstnameError = '';
240
+ }
241
+ // Validate surname
242
+ if (!this.surname.trim()) {
243
+ this.surnameError = t.solarSystemForm.nameError;
244
+ isValid = false;
245
+ }
246
+ else {
247
+ this.surnameError = '';
490
248
  }
491
249
  // Validate email
492
250
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
@@ -499,17 +257,19 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
499
257
  isValid = false;
500
258
  }
501
259
  else {
502
- this.emailError = "";
260
+ this.emailError = '';
503
261
  }
504
262
  // Validate phone (optional)
505
263
  const phoneRegex = /^[\+]?[1-9][\d]{0,15}$/;
506
- if (this.phone.trim() &&
507
- !phoneRegex.test(this.phone.replace(/[\s\-\(\)]/g, ""))) {
264
+ if (this.phone.trim() && !phoneRegex.test(this.phone.replace(/[\s\-\(\)]/g, ''))) {
508
265
  this.phoneError = t.solarSystemForm.phoneError;
509
266
  isValid = false;
510
267
  }
511
268
  else {
512
- this.phoneError = "";
269
+ this.phoneError = '';
270
+ }
271
+ if (!this.privacyPolicyAccepted) {
272
+ this.privacyPolicyError = 'Datenschutzerklärung muss akzeptiert werden';
513
273
  }
514
274
  return isValid;
515
275
  }
@@ -517,9 +277,14 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
517
277
  if (!this.validateForm()) {
518
278
  return;
519
279
  }
280
+ if (!this.privacyPolicyAccepted) {
281
+ this.privacyPolicyError = 'Datenschutzerklärung muss akzeptiert werden';
282
+ return;
283
+ }
520
284
  this.isSubmitting = true;
521
- this.submitMessage = "";
285
+ this.submitMessage = '';
522
286
  this.submitSuccess = false;
287
+ this.privacyPolicyError = '';
523
288
  const t = getLanguageStrings(state.settings.language);
524
289
  try {
525
290
  const leadData = {
@@ -538,7 +303,7 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
538
303
  annualPriceIncrease: this.annualPriceIncrease,
539
304
  },
540
305
  client: {
541
- name: this.name,
306
+ name: `${this.surname}, ${this.firstname}`.trim(),
542
307
  email: this.email,
543
308
  phone: this.phone,
544
309
  consumption: this.householdConsumption,
@@ -564,25 +329,23 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
564
329
  totalEnergyConsumption: this.totalEnergyConsumption,
565
330
  },
566
331
  };
567
- console.log("leadData", leadData);
332
+ console.log('leadData', leadData);
568
333
  const result = await sendLeadToNexvoro(leadData);
569
334
  this.submitSuccess = result.success;
570
335
  if (result.success) {
571
- console.log("Lead successfully sent to Nexvoro", result);
336
+ console.log('Lead successfully sent to Nexvoro', result);
572
337
  this.submitMessage = t.solarSystemForm.leadSubmitted;
573
338
  // Optionally reset form or show success message
574
339
  }
575
340
  else {
576
- console.error("Failed to send lead to Nexvoro:", result.message);
341
+ console.error('Failed to send lead to Nexvoro:', result.message);
577
342
  this.submitMessage = t.solarSystemForm.leadError;
578
343
  }
579
344
  }
580
345
  catch (error) {
581
- console.error("Error in handleRequestOffer:", error);
346
+ console.error('Error in handleRequestOffer:', error);
582
347
  this.submitSuccess = false;
583
- this.submitMessage = error instanceof Error
584
- ? error.message
585
- : "An unexpected error occurred";
348
+ this.submitMessage = error instanceof Error ? error.message : 'An unexpected error occurred';
586
349
  }
587
350
  finally {
588
351
  this.isSubmitting = false;
@@ -594,262 +357,133 @@ const SolarSystemForm = /*@__PURE__*/ proxyCustomElement(class SolarSystemForm e
594
357
  render() {
595
358
  const t = getLanguageStrings(state.settings.language);
596
359
  // Reusable style objects
597
- const borderStyle = { border: "1px solid var(--color-border)" };
598
- const errorBorderStyle = { border: "1px solid var(--color-error)" };
599
- return (h("div", { key: '42867ab1fc1201f981ee3c96a138ff5d999740fc', class: "flex flex-col justify-center items-center w-full h-full pt-4" // style={{
360
+ const borderStyle = { border: '1px solid var(--color-border)' };
361
+ const errorBorderStyle = { border: '1px solid var(--color-error)' };
362
+ return (h("div", { key: 'd83336b2c52aa0cacb0dc2a0b918f30f9ee0cd41', class: "flex flex-col justify-center items-center w-full h-full pt-4" // style={{
600
363
  ,
601
364
  // display: (Object.keys(this.systemConfigs).length === 0)
602
365
  // ? "none"
603
366
  // : "flex",
604
367
  // }}
605
- id: "solar-system-form" }, h("h1", { key: 'ee1db435412a97d54333c36fc0c1a6fab5fe597f', class: "text-2xl font-bold text-secondary mb-4 w-full" }, t.solarSystemForm.title), h("div", { key: '27dcc67909fcbafd2093792e2ee822d233a23421', class: "w-full bg-primary rounded-4xl space-y-6" }, h("div", { key: '93ae54e79a272a01acdcfe21f1e0983811669ca6', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '2998dbde483a512c28d6b02ace04944eda49ff7c', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.systemInformation), h("div", { key: 'a169b4bdfd3c0b6c175971cfa119c48bdde6ff9d', class: "flex flex-col sm:flex-row gap-4" }, h("div", { key: '72a5c0c40117ddee1d14808898703869e34afb23', class: "flex-1 bg-muted rounded-4xl p-4 space-y-3" }, h("div", { key: '286c9346d417f9325aeb4653a428fc527317f1f2', class: "flex items-center justify-between" }, h("label", { key: 'cd78273dbacea60dfa7d3cd52fd61709c728c179', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.numberOfPanels), !this.isIOS()
606
- ? (h("input", { type: "number", class: "w-20 px-3 py-1 rounded-full bg-muted text-muted-foreground text-right", value: this.numberOfPanels, readOnly: true }))
607
- : (h("input", { type: "number", min: "1", max: this.maxPanels, 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", style: borderStyle, value: this.numberOfPanels, onInput: (e) => {
608
- const value = parseInt(e.target
609
- .value);
610
- if (value >= 1 &&
611
- value <=
612
- this.maxPanels) {
613
- this.numberOfPanels =
614
- value;
615
- this.recalculate();
616
- }
617
- } }))), !this.isIOS() && (h("input", { key: 'db21c520b3151ab4f766bd99092a36707fad3922', type: "range", min: "1", max: this.maxPanels, step: "1", 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", value: this.numberOfPanels, onInput: (e) => {
618
- this.numberOfPanels = parseInt(e.target
619
- .value);
368
+ id: "solar-system-form" }, h("h1", { key: '6a5557d98e2b922cd0caaa4c1c5b57ae3ab288a5', class: "text-2xl font-bold text-secondary mb-4 w-full" }, t.solarSystemForm.title), h("div", { key: 'e770849ad75a8de666eda655cefd24af9e460cea', class: "w-full bg-primary rounded-4xl space-y-6" }, h("div", { key: 'e01f03ca21c12f94e8dd0c41ccf22b7f30b55654', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '31a8946af220f62e5df983dcc9063b41ee0ae69a', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.systemInformation), h("div", { key: 'a5def6291e84d19d071f1ab1fd9ba8e1c42eb57d', class: "flex flex-col sm:flex-row gap-4" }, h("div", { key: '0327da3f92419b737a5c5434b82f668fba86a51a', class: "flex-1 bg-muted rounded-4xl p-4 space-y-3" }, h("div", { key: 'a87ce122643105fd76bf04c7898e2a3eb0aea165', class: "flex items-center justify-between" }, h("label", { key: '8464c85901a94573ab33d12a328bc0b94e47d6cb', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.numberOfPanels), !this.isIOS() ? (h("input", { type: "number", class: "w-20 px-3 py-1 rounded-full bg-muted text-muted-foreground text-right", value: this.numberOfPanels, readOnly: true })) : (h("input", { type: "number", min: "1", max: this.maxPanels, 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", style: borderStyle, value: this.numberOfPanels, onInput: e => {
369
+ const value = parseInt(e.target.value);
370
+ if (value >= 1 && value <= this.maxPanels) {
371
+ this.numberOfPanels = value;
372
+ this.recalculate();
373
+ }
374
+ } }))), !this.isIOS() && (h("input", { key: '9fb98147fcead8fcdf63562558a0ff6b13168fa8', type: "range", min: "1", max: this.maxPanels, step: "1", 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", value: this.numberOfPanels, onInput: e => {
375
+ this.numberOfPanels = parseInt(e.target.value);
620
376
  if (isNaN(this.numberOfPanels)) {
621
377
  this.numberOfPanels = 0;
622
378
  }
623
379
  this.recalculate();
624
- } }))), h("div", { key: 'fed7b9efc92d01c73a34da7dfa3663d801f40ebb', class: "flex-1 bg-muted rounded-4xl p-4" }, h("div", { key: '97cf3fef6db644774469fbca6b7681c5865b54d2', class: "flex items-center justify-between" }, h("label", { key: '7471aeacdeddfe2951b474bb0006bc018b52528c', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.panelPeakPower), h("span", { key: 'cad4639ae980b4228723c78f0b0bbbc27d9322c0', class: "text-text-muted" }, this.panelPeakPower.toFixed(2), " kW")), h("div", { key: 'b344c0c87bbd7e016681034434a36982759f4107', class: "flex items-center justify-between mt-4" }, h("span", { key: '8619d3662fb929a2b9f185f556ded70de0210f70', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.totalSystemPeakPower), h("span", { key: '2ad8de7cb701e9410425bb762d03e03a5e9b3181', class: "font-bold text-text-muted" }, (DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *
625
- this.numberOfPanels).toFixed(1), " kWp"))))), h("div", { key: '2cacc97462ac629a060baad3975179da6ad94e53', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: 'c10ec73052c222c5b3d75f2b28ae98189cf51380', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.householdConsumptionTitle), h("div", { key: '0279cc5c0f7cf3dcfd5c59075f4136edfde0b557', class: "grid grid-rows-2 gap-0" }, h("div", { key: '9e4b72083f26c1c540f757f74297f2bf1fe0c93c', class: "grid grid-cols-2 gap-4" }, h("label", { key: '7a5e9bf3b54bbc8328755837542a3766315247ef', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.annualConsumption), h("label", { key: '5e75002062d1e932d451f8350078afe3b34c3126', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.consumptionProfileTitle)), h("div", { key: '28ead4dbbe0258b6134a5c0c948ae993865c7da9', class: "grid grid-cols-2 gap-4" }, h("input", { key: '3b4cebdf7e4d38b3503d49f2c3cb2291ad17c6d0', type: "number", step: "100", min: "0", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", style: borderStyle, value: this.householdConsumption, onInput: (e) => {
626
- this.householdConsumption = parseInt(e.target
627
- .value);
380
+ } }))), h("div", { key: '5054252fc9c7c2594804fd31645e088c96fe73a0', class: "flex-1 bg-muted rounded-4xl p-4" }, h("div", { key: '3848f5f72a90e97055bb22194dc59e010c11aeb3', class: "flex items-center justify-between" }, h("label", { key: '0c6f3a1bec19921fabe6a5fad3be34a3a56a8c25', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.panelPeakPower), h("span", { key: '0407124e201e648cb13734b5cf488b2cf61fe04d', class: "text-text-muted" }, this.panelPeakPower.toFixed(2), " kW")), h("div", { key: '4dc10d8a88f46c8cc6922e86aa5ede4bd28af5fa', class: "flex items-center justify-between mt-4" }, h("span", { key: 'c47583dde3879f4ba8eb63b7ef7c48c6cd8ccbea', class: "text-sm font-medium text-text-muted" }, t.solarSystemForm.totalSystemPeakPower), h("span", { key: '1d493f02c10dc7175618e087d91b2f7a37d9b191', class: "font-bold text-text-muted" }, (DEFAULT_SOLAR_PANEL_TYPE.kWattPeak * this.numberOfPanels).toFixed(1), " kWp"))))), h("div", { key: 'a2908096347ae4a8f7dbd9b3ef673ef42897c3f2', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: 'e47c7933cfe3672ef6777ced9b3a584c24df5df3', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.householdConsumptionTitle), h("div", { key: '5b125ed71d750cf10d1044490e0ff2beff7d6a11', class: "grid grid-rows-2 gap-0" }, h("div", { key: 'c92dffaa331d4e27d9b6dfd997c8b0f9c0b4c29f', class: "grid grid-cols-2 gap-4" }, h("label", { key: '1c24f209cb239003afb0f9efe07ddb052e3cb3e6', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.annualConsumption), h("label", { key: 'b2a66914aa8ac1ac3ea5d00d0ca97379a319f343', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.consumptionProfileTitle)), h("div", { key: 'bf2f90ba1284645160ddf4da40af95f05ae23ff3', class: "grid grid-cols-2 gap-4" }, h("input", { key: '04944a4210f44dfaa839b2820a5ec7cc1c259961', type: "number", step: "100", min: "0", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", style: borderStyle, value: this.householdConsumption, onInput: e => {
381
+ this.householdConsumption = parseInt(e.target.value);
628
382
  this.recalculate();
629
- } }), h("select", { key: '76994946ffe5e5d53037a58ed13fe103d8af3e64', class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", style: borderStyle, onChange: (e) => {
630
- this.consumptionProfile =
631
- e.target
632
- .value;
383
+ } }), h("select", { key: '93a49d307f068f67c004d6e1b25980b230049bb4', class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", style: borderStyle, onChange: e => {
384
+ this.consumptionProfile = e.target.value;
633
385
  this.recalculate();
634
- } }, h("option", { key: 'c7d2c8ec8d92f9339e33d5532504e92e1868bd0b', value: "mostly_at_home", selected: this.consumptionProfile ===
635
- "mostly_at_home" }, t.solarSystemForm.consumptionProfiles
636
- .mostlyAtHome), h("option", { key: '668d7edd27b5c923c944ab442b960ae94c12af00', value: "mostly_away", selected: this.consumptionProfile ===
637
- "mostly_away" }, t.solarSystemForm.consumptionProfiles
638
- .mostlyAway))))), h("div", { key: 'e2e2e002761485d99790c4727bd46ed1ed190123', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '46f8a7b7fc363d6eca28fbe5701d04c7d95e54e5', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.additionalComponents.title), h("div", { key: '08eaa438ae318304b5f2c3de023823b21f19eb75', class: "flex flex-col gap-4" }, h("div", { key: '4d56b31df0ca2935710fcd8d1733ba5f5ef07d92', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '0f399db912c4851d1d22d430c479f35a684e8405', class: "flex items-center justify-between" }, h("div", { key: 'af002c41ce930b0c1cb7bd9f9e58890064fc3fe8', class: "flex items-center gap-2" }, h("input", { key: '781624b2b616de5b5d9ade954911950c77224d55', type: "checkbox", id: "heatPump", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.heatPump > 0, onChange: (e) => {
639
- this.heatPump =
640
- e.target
641
- .checked
642
- ? 100
643
- : 0;
386
+ } }, h("option", { key: '172aa5c0c222880b97ceea5aea91c5ab6d4ae2e1', value: "mostly_at_home", selected: this.consumptionProfile === 'mostly_at_home' }, t.solarSystemForm.consumptionProfiles.mostlyAtHome), h("option", { key: 'fba174bed66fe40d88dee6f490ff0eeb7eaf3ba8', value: "mostly_away", selected: this.consumptionProfile === 'mostly_away' }, t.solarSystemForm.consumptionProfiles.mostlyAway))))), h("div", { key: 'aee8085e33acf67a13a05070caf9b4560380bc52', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: 'da9b2e9e4c6e5db9bd97740a480a233991884c37', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.additionalComponents.title), h("div", { key: 'fafb65d300516dd1bc93d33459b9b05a81a41813', class: "flex flex-col gap-4" }, h("div", { key: '49b1ff05c592a4c3daa98fa2562e1bbde8e6991e', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '8b8bf5890f16860af212aecbdd7e61de9fe88e82', class: "flex items-center justify-between" }, h("div", { key: '560c2c7e0ba22a30f054563793a1619b022806fd', class: "flex items-center gap-2" }, h("input", { key: '6864b27ab65a8f3f4cca72f0b93dd3e64893b249', type: "checkbox", id: "heatPump", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.heatPump > 0, onChange: e => {
387
+ this.heatPump = e.target.checked ? 100 : 0;
644
388
  this.recalculate();
645
- } }), h("label", { key: '94e129a09f3af63d049c3b58bb6d3bb1b788739c', htmlFor: "heatPump", class: "text-text-muted" }, t.solarSystemForm
646
- .additionalComponents
647
- .heatPump)), (this.heatPump > 0 && !this.isIOS()) && (h("span", { key: '9a9c4208690edaa0809435a9bfb219d65ac825a1', class: "text-text-muted" }, this.heatPump, " m\u00B2"))), this.heatPump > 0 && (h("div", { key: 'b71000e853b6f5317f5b5190fdfe57582217dbbe', class: "flex flex-col gap-2" }, this.isIOS()
648
- ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "10", max: "300", step: "10", class: "flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.heatPump, onInput: (e) => {
649
- let value = parseInt(e.target
650
- .value);
651
- if (isNaN(value)) {
652
- value = 0;
653
- }
654
- if (value >= 0 &&
655
- value <= 300) {
656
- this.heatPump =
657
- value;
658
- this.recalculate();
659
- }
660
- } }), h("span", { class: "text-sm text-text-muted" }, "m\u00B2")))
661
- : (h("input", { type: "range", min: "10", max: "300", step: "10", 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", value: this.heatPump, onInput: (e) => {
662
- this.heatPump =
663
- parseInt(e.target
664
- .value);
389
+ } }), h("label", { key: '864fd520e1e98a8df17d3c0fce95f085e4b6581f', htmlFor: "heatPump", class: "text-text-muted" }, t.solarSystemForm.additionalComponents.heatPump)), this.heatPump > 0 && !this.isIOS() && h("span", { key: '10339a03bff4c208232b5877384263314df9ecad', class: "text-text-muted" }, this.heatPump, " m\u00B2")), this.heatPump > 0 && (h("div", { key: '96818d1077133e11856fe4f19f88f0d29d9b7ac1', class: "flex flex-col gap-2" }, this.isIOS() ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "10", max: "300", step: "10", class: "flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.heatPump, onInput: e => {
390
+ let value = parseInt(e.target.value);
391
+ if (isNaN(value)) {
392
+ value = 0;
393
+ }
394
+ if (value >= 0 && value <= 300) {
395
+ this.heatPump = value;
665
396
  this.recalculate();
666
- } }))))), h("div", { key: 'a3ffb277ff4f4c5539c8484c1e2b9e9c5dbff64f', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '520a1c1f3aff8482bab8206e72fd0f8480192e31', class: "flex items-center justify-between" }, h("div", { key: 'c5dee085ffcc1b93acacf451ce7044c1dbbbd5ae', class: "flex items-center gap-2" }, h("input", { key: '835135fc8cd50873fdc2611526735b2a8b8d238c', type: "checkbox", id: "electricCar", class: "w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.electricCar, onChange: (e) => {
667
- this.electricCar =
668
- e.target
669
- .checked;
397
+ }
398
+ } }), h("span", { class: "text-sm text-text-muted" }, "m\u00B2"))) : (h("input", { type: "range", min: "10", max: "300", step: "10", 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", value: this.heatPump, onInput: e => {
399
+ this.heatPump = parseInt(e.target.value);
400
+ this.recalculate();
401
+ } }))))), h("div", { key: 'b2c26948b91e806323e38ef5c2cf171fb8c3a465', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '1322f4c1d551a3e3e408157a8f164097bc91ce89', class: "flex items-center justify-between" }, h("div", { key: '0ebb09ed454e348e2b1fd2e731a176527108dc00', class: "flex items-center gap-2" }, h("input", { key: '6f51c0af64bdf6122bcd468fd3499d200472f421', type: "checkbox", id: "electricCar", class: "w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.electricCar, onChange: e => {
402
+ this.electricCar = e.target.checked;
670
403
  this.recalculate();
671
- } }), h("label", { key: 'f401eb62de0b05c0e65c89294d65e78925f19749', htmlFor: "electricCar", class: "text-text-muted" }, t.solarSystemForm
672
- .additionalComponents
673
- .electricCar))), this.electricCar && (h("div", { key: 'a53474411832751c7a30aeb5ea02db0f9f512963', class: "flex flex-col gap-2" }, h("div", { key: '19f2e4448eaaa94fba0b6d922ecb18ff28d052bc', class: "grid grid-cols-2 gap-4" }, h("label", { key: 'bd92f4dd142ef6a732c85d9b71bc9eb3c6b60fa6', class: "text-sm text-text-muted" }, t.solarSystemForm
674
- .additionalComponents
675
- .chargingTime), h("label", { key: 'bb0552899cf2642b866213d91d5d90d2d8a1424e', class: "text-sm text-text-muted" }, t.solarSystemForm
676
- .additionalComponents
677
- .kilometersPerYear)), h("div", { key: '35ef876cab7b2d4fe0fea2eb2b821b5c59cdbd34', class: "grid grid-cols-2 gap-4" }, h("select", { key: '9b6961f77e163568d4c09b207cec5958c2a5302b', class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", onChange: (e) => {
678
- this.electricCarChargingTime =
679
- e.target
680
- .value;
404
+ } }), h("label", { key: '856c08ad2ebf10695e98b7401fa3cd200cc03bb0', htmlFor: "electricCar", class: "text-text-muted" }, t.solarSystemForm.additionalComponents.electricCar))), this.electricCar && (h("div", { key: '3bda3a0411a50771246a577eb72d601af2d8c766', class: "flex flex-col gap-2" }, h("div", { key: '6e7f5d7e2569652f8b662cb36c8af196aa571001', class: "grid grid-cols-2 gap-4" }, h("label", { key: '13f82957d96067a66c7c58ba113ebab6ce60cb39', class: "text-sm text-text-muted" }, t.solarSystemForm.additionalComponents.chargingTime), h("label", { key: '44f050353fbcd2848263ae0920bd2a9d2cb80899', class: "text-sm text-text-muted" }, t.solarSystemForm.additionalComponents.kilometersPerYear)), h("div", { key: '3349691e0990da405ff09ca290a345a1dd1dbc82', class: "grid grid-cols-2 gap-4" }, h("select", { key: '7f6dd2976debb593263b999e48451d43961b0d65', class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", onChange: e => {
405
+ this.electricCarChargingTime = e.target.value;
681
406
  this.recalculate();
682
- }, style: borderStyle }, h("option", { key: '5e67bdee8a891ace0299fbc3f2faaa82ceab9963', value: "day", selected: this
683
- .electricCarChargingTime ===
684
- "day" }, t.solarSystemForm
685
- .additionalComponents
686
- .chargingTimeDay), h("option", { key: '00649f89de616ada4292ff71eb15524a5b946059', value: "night", selected: this
687
- .electricCarChargingTime ===
688
- "night" }, t.solarSystemForm
689
- .additionalComponents
690
- .chargingTimeNight)), h("input", { key: '3234b8ac6c559b57b8d24bacb1794fd2860aab24', type: "number", min: "1000", max: "100000", step: "1000", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.kmDrivenPerYear, onInput: (e) => {
691
- this.kmDrivenPerYear =
692
- parseInt(e.target
693
- .value);
407
+ }, style: borderStyle }, h("option", { key: 'd32f0d60117bd602e36c6236906718c5947db546', value: "day", selected: this.electricCarChargingTime === 'day' }, t.solarSystemForm.additionalComponents.chargingTimeDay), h("option", { key: '64a7d7b4708966455f81ec529a86dac640c3ba14', value: "night", selected: this.electricCarChargingTime === 'night' }, t.solarSystemForm.additionalComponents.chargingTimeNight)), h("input", { key: '25ade855219e9a13f636c593a2e8a9c2ad1f68c0', type: "number", min: "1000", max: "100000", step: "1000", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.kmDrivenPerYear, onInput: e => {
408
+ this.kmDrivenPerYear = parseInt(e.target.value);
694
409
  if (isNaN(this.kmDrivenPerYear)) {
695
- this.kmDrivenPerYear =
696
- 0;
410
+ this.kmDrivenPerYear = 0;
697
411
  }
698
412
  this.recalculate();
699
- }, style: borderStyle }))))), h("div", { key: '8d5eec07f8446d8984d3f6b767b404e5840dc67f', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '2321a2419b1f6ab4ab591ac09a44bc9168b591c2', class: "flex items-center justify-between" }, h("div", { key: '33cbfd3dbfac3a3077e73ad3d5a61bd845cfe1c8', class: "flex items-center gap-2" }, h("input", { key: 'd3d6b513e7eb73cc96f4ed1b5b70f4d46eebb8b1', type: "checkbox", id: "battery", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.batteryEnabled, onChange: (e) => {
700
- this.batteryEnabled =
701
- e.target
702
- .checked;
703
- this.battery =
704
- this.batteryEnabled
705
- ? 5
706
- : 0;
413
+ }, style: borderStyle }))))), h("div", { key: 'c6b3968c5150812796965c17ff06d4fdc27ea817', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '5195acf16e1f737e80f32deb7ac9e190cf5b6d57', class: "flex items-center justify-between" }, h("div", { key: '424bd180969324f21c4560670efe3a271f8837b4', class: "flex items-center gap-2" }, h("input", { key: 'cf5ea8cc72c91a9e19831776a93aa772bb80c520', type: "checkbox", id: "battery", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.batteryEnabled, onChange: e => {
414
+ this.batteryEnabled = e.target.checked;
415
+ this.battery = this.batteryEnabled ? 5 : 0;
707
416
  this.recalculate();
708
- } }), h("label", { key: 'd73591c77f3b04c2b78c33a6d71808cdddd782e7', htmlFor: "battery", class: "text-text-muted" }, t.solarSystemForm
709
- .additionalComponents
710
- .battery)), (this.batteryEnabled && !this.isIOS()) && (h("span", { key: 'dffc91a5159c4e2b8889175751c432e318f47dae', class: "text-text-muted" }, this.battery, " kWh"))), this.batteryEnabled && (h("div", { key: 'ead4529d83f84e9f8e762e7ccc6203c886fea2cf', class: "flex flex-col gap-2" }, this.isIOS()
711
- ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "0", max: "20", step: "1", class: "flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.battery, onInput: (e) => {
712
- let value = parseInt(e.target
713
- .value);
714
- if (isNaN(value)) {
715
- value = 0;
716
- }
717
- if (value >= 0 &&
718
- value <= 20) {
719
- this.battery =
720
- value;
721
- }
722
- else {
723
- this.battery =
724
- 20;
725
- }
726
- this.recalculate();
727
- }, style: borderStyle }), h("span", { class: "text-sm text-text-muted" }, "kWh")))
728
- : (h("input", { type: "range", min: "1", max: "20", step: "1", 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", value: this.battery, onInput: (e) => {
729
- const value = parseInt(e.target
730
- .value);
417
+ } }), h("label", { key: '1bed2e15e1b7f093f9ee464c02555532595b766d', htmlFor: "battery", class: "text-text-muted" }, t.solarSystemForm.additionalComponents.battery)), this.batteryEnabled && !this.isIOS() && h("span", { key: 'f2d5d4deabbe5a813f2c3ca151c649b6e9493bc5', class: "text-text-muted" }, this.battery, " kWh")), this.batteryEnabled && (h("div", { key: '5fe85d76365d0a477b3fd16b4d87b7a4c3c3074b', class: "flex flex-col gap-2" }, this.isIOS() ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "0", max: "20", step: "1", class: "flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.battery, onInput: e => {
418
+ let value = parseInt(e.target.value);
419
+ if (isNaN(value)) {
420
+ value = 0;
421
+ }
422
+ if (value >= 0 && value <= 20) {
731
423
  this.battery = value;
732
- this.batteryEnabled =
733
- value > 0;
734
- this.recalculate();
735
- } }))))))), h("div", { key: 'cc21f52e0e1ea5d1f731951325053a4615641288', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '413db6f645abd608dc74c0fe9dd2b8538e439ff3', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.electricityCostsTitle), h("div", { key: '36a7f1d8ca5b115cf86c136ab8b2834c621cbff4', style: {
736
- display: "grid",
737
- gridTemplateColumns: "repeat(auto-fit, minmax(100px, 1fr))",
738
- gap: "1rem",
739
- } }, h("div", { key: '393a18f5a6d81a557d85a77ec83a764ee22043cb' }, h("label", { key: '23c407eba1f39251193d83320f79feb88a709ce9', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.electricityPrice), h("input", { key: '6e9a5ed3a36231ffccc9dcaa00ac6919668078c7', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.electricityPrice.toFixed(2), onInput: (e) => {
740
- this.electricityPrice = parseFloat(e.target
741
- .value);
424
+ }
425
+ else {
426
+ this.battery = 20;
427
+ }
428
+ this.recalculate();
429
+ }, style: borderStyle }), h("span", { class: "text-sm text-text-muted" }, "kWh"))) : (h("input", { type: "range", min: "1", max: "20", step: "1", 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", value: this.battery, onInput: e => {
430
+ const value = parseInt(e.target.value);
431
+ this.battery = value;
432
+ this.batteryEnabled = value > 0;
742
433
  this.recalculate();
743
- } })), h("div", { key: '3942694c95b0b451bca63341cdfb92b5f5829593' }, h("label", { key: 'bdb87c826d37b147c031a2ca53411a7432c845fd', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.compensationRate), h("input", { key: 'b91214ef6aebe7c342ec4bb604f6e3a37b189488', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.compensationRate.toFixed(2), onInput: (e) => {
744
- this.compensationRate = parseFloat(e.target
745
- .value);
434
+ } }))))))), h("div", { key: '6dd880664327368d90962dbc075324dac489b43f', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: 'cae87b42efe9efb67bb981c99536c9c9917c0810', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.electricityCostsTitle), h("div", { key: 'a4e7fafca2069b11602c44c2fd8a66f44db40249', style: {
435
+ display: 'grid',
436
+ gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))',
437
+ gap: '1rem',
438
+ } }, h("div", { key: 'd900544fdf28538bc377ca4cc3b6de1d7ea5a9f0' }, h("label", { key: 'ea7775bee25362953e23c4d56daced2830ab1df7', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.electricityPrice), h("input", { key: '3a290ed738522cff562a86b3d6955338cb9a45c7', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.electricityPrice.toFixed(2), onInput: e => {
439
+ this.electricityPrice = parseFloat(e.target.value);
746
440
  this.recalculate();
747
- } })), h("div", { key: '56684c4d9d65272834bd4cebe8c4c167bb16a958' }, h("label", { key: 'af7337ddaa1529dbc6b07704a2c313a591b6e3bd', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.annualPriceIncrease), h("input", { key: '90bef6067bf8fae6b598a551ab2ddbb4f0725b29', type: "number", step: "0.1", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.annualPriceIncrease.toFixed(1), onInput: (e) => {
748
- this.annualPriceIncrease = parseFloat(e.target
749
- .value);
441
+ } })), h("div", { key: '1691b2cb24ac5bc4cd6e7f1ecc73b6e075dd4b8c' }, h("label", { key: 'e81a4707140a23b83effc6dd4e780f53a743a6a3', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.compensationRate), h("input", { key: '12a74d0d3066206dc1446bcc0e9f99d930564ef6', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.compensationRate.toFixed(2), onInput: e => {
442
+ this.compensationRate = parseFloat(e.target.value);
750
443
  this.recalculate();
751
- } })))), h("div", { key: '266bd42a4b60349bbb098f8a56a1af6444b85fad', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: 'c24a5e56041eeaf26a5648af092a942ccd41e739', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.resultsTitle), h("div", { key: '3fd59700c6cdb99662f8a7232141d1f7efb2109f', class: "bg-muted rounded-4xl p-4" }, h("div", { key: '25708d8c8cdd04b21e66ac05776cef76ce53725a', class: "flex flex-col sm:flex-row sm:items-center justify-between" }, h("span", { key: '0b45f781be44dd70a66d68446319f17800357984', class: "text-text-muted" }, t.solarSystemForm.autonomy), h("span", { key: 'a56d5b093834c6a42f74619ab569a983057e91a0', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.autonomy > 100
752
- ? "100"
753
- : this.formatEuropeanNumber(this.autonomy, 1), "%")), h("div", { key: 'feea3eca497e8f14eb619c4f2ece03c39394ca74', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("span", { key: '3b5ae4b3be1368da0a8c6eb0c9e1c07c6ef6e2d7', class: "text-text-muted" }, t.solarSystemForm.totalEnergyConsumption), h("span", { key: '04d21a3ce938bd47aee28598467984d467c19fba', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.totalEnergyConsumption, 0), " kWh/", t.solarSystemForm.year)), h("div", { key: '6812053410e4372e791cf1fc7f74b411549fc8d9', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("span", { key: '2451f60fe0ec7edb6312bc7b8a50b63c4e4af182', class: "text-text-muted" }, t.solarSystemForm.totalEnergyProduction), h("span", { key: '8695bcaee81b83829460639976872d141734bf16', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.totalEnergyProduction, 0), " kWh/", t.solarSystemForm.year)), h("div", { key: 'c7bc91f11c89d492cdd4545a96af349e2a643fc9', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: 'b28127d6c7cb295a61cd5a5e0a21dbba9acbbdba', class: "flex items-center gap-2" }, h("span", { key: 'f0a7b0e4359155d99e0859da98eb9cbedcd53a00', class: "text-text-muted" }, t.solarSystemForm.costSavings)), h("span", { key: 'ec566bd9d9fb4f2757c8467525bef7a4e584642a', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.costSavings), " \u20AC/", t
754
- .solarSystemForm.year)), h("div", { key: 'f68554341ba8b734ea64507f705a0d1318317598', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: '95ea75c1ada49b28ccbba230fb696660e5892538', class: "flex items-center gap-2" }, h("span", { key: '169dd5d92dad7d8fb54a24eee3f736b30f635600', class: "text-text-muted" }, t.solarSystemForm.compensation20Years)), h("span", { key: 'c1445a608709f8202bf9e9cdc06cce961e1b949f', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.compensation20Years), " \u20AC")), h("div", { key: '9a45d97faab0feefdbbef029c664579347f48aaf', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: 'dce377238f8650fb00f90eb31e533e2282e8c02b', class: "flex items-center gap-2" }, h("span", { key: 'd0c04b9c4aca6c4605f04f68eb86d21f994ea7a9', class: "text-text-muted" }, t.solarSystemForm
755
- .monetaryBenefit20Years)), h("span", { key: 'f56d1995af5bda25c068ee58c36edf4cd6a61d9f', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.savedCosts20Years), " \u20AC")))), h("div", { key: '6b8acc3f0c13fa2b70854214d5882f8024dbcc8c', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '216a6809e770f9e67d9731e104ed50ec68a3d187', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.requestOffer), h("div", { key: '7ed284d01cc4f3375e20f8b85d2c0d1af287227e', style: {
756
- display: "grid",
757
- gridTemplateColumns: "repeat(auto-fit, minmax(1 00px, 1fr))",
758
- gap: "1rem",
759
- } }, h("div", { key: 'e0f7dc87d379fdccbe3c28fbae46b3104235b68d' }, h("label", { key: '6f3b10b41a081224855dd6aa68df0ede72e0a6c7', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.name), h("input", { key: '1e8f43f9818f896e53fa0fcb859b7865e64a2a64', type: "text", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.nameError
760
- ? errorBorderStyle
761
- : borderStyle, value: this.name, onInput: (e) => {
762
- this.name =
763
- e.target
764
- .value;
444
+ } })), h("div", { key: 'a10dbcd535af229303b9bb9f2b17d9450e334398' }, h("label", { key: 'e146fb182b7cf56aa2348b2f6897ea7de91b8f13', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.annualPriceIncrease), h("input", { key: 'b1b8ab7d10328024e07598615316db47acb38f6e', type: "number", step: "0.1", class: "w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: borderStyle, value: this.annualPriceIncrease.toFixed(1), onInput: e => {
445
+ this.annualPriceIncrease = parseFloat(e.target.value);
446
+ this.recalculate();
447
+ } })))), h("div", { key: 'dad26d462b24d45a0caa641f446e629b7ae63264', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '81abb0ec09880ff4ce11405aae67a38baceedeb8', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.resultsTitle), h("div", { key: '233b7a6ccaf7df1b64dd3c39cfbaf646413f0ad3', class: "bg-muted rounded-4xl p-4" }, h("div", { key: '17a985dc687805de4409f27ae7f426acc68c9202', class: "flex flex-col sm:flex-row sm:items-center justify-between" }, h("span", { key: '6956000e756b43ebb55029c54486ff4fca89b81a', class: "text-text-muted" }, t.solarSystemForm.autonomy), h("span", { key: '4357fc407028c179b0f461f49680359e976a8d5f', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.autonomy > 100 ? '100' : this.formatEuropeanNumber(this.autonomy, 1), "%")), h("div", { key: '0fe27ff3dca29bd975f83d9bb98b212eacf9c039', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("span", { key: '9061eada8a064352ca73a934c4d2119cdaa51586', class: "text-text-muted" }, t.solarSystemForm.totalEnergyConsumption), h("span", { key: 'a71c60129a4bb0a18f606838dd35fe869485d8b3', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.totalEnergyConsumption, 0), " kWh/", t.solarSystemForm.year)), h("div", { key: '1052613b71b127aee21764b5af55a2f17a1767ed', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("span", { key: '822ef2bff3dcfb4afd9bef705c7b781be9405cfc', class: "text-text-muted" }, t.solarSystemForm.totalEnergyProduction), h("span", { key: 'c4c1b76ffae543a012489ee6c3d4066600434db8', class: "text-xl font-bold text-secondary mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.totalEnergyProduction, 0), " kWh/", t.solarSystemForm.year)), h("div", { key: '54d64ba1dec38651357281cd6d72f49824de0cfd', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: '4a0e9a9edbf31827832729aab579b8698bba277a', class: "flex items-center gap-2" }, h("span", { key: '90567c48160b0a334238e804a33b6ad138e6574a', class: "text-text-muted" }, t.solarSystemForm.costSavings)), h("span", { key: '37ee3da637cb2c337fe8b57a4ec1dccecaf218e8', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.costSavings), " \u20AC/", t.solarSystemForm.year)), h("div", { key: '325383bf4e2b25c09b6f9bf51556228e0f5bd880', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: '5356e4e858a7d7dd8c85f317a43e275395ead041', class: "flex items-center gap-2" }, h("span", { key: 'f77c6db91303a25125e3473209dcc17cf0d0d172', class: "text-text-muted" }, t.solarSystemForm.compensation20Years)), h("span", { key: '972675d3abce766c86ad0ca13d670f89186237d0', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.compensation20Years), " \u20AC")), h("div", { key: 'e66d8f3a67f52192e479ac37bed7786269b0cf54', class: "flex flex-col sm:flex-row sm:items-center justify-between mt-4" }, h("div", { key: '3c3454141a98b94c933d3deed777b4e2ea1af719', class: "flex items-center gap-2" }, h("span", { key: '9d6b1caa601f7e1bb67bfbab613f17808777b8ee', class: "text-text-muted" }, t.solarSystemForm.monetaryBenefit20Years)), h("span", { key: 'ac633abd9015c0819b5ac2e4b578694ec7565cd8', class: "text-xl font-bold text-success mt-1 sm:mt-0" }, this.formatEuropeanNumber(this.savedCosts20Years), " \u20AC")))), h("div", { key: 'e2260b9fdb2970cb37c02e7167ad36172b2b76ee', class: "space-y-4 p-4 rounded-4xl", style: borderStyle }, h("h2", { key: '14893c12674f2929a916dab8faafbd53393cad8d', class: "font-semibold text-secondary pb-2", style: { fontSize: '0.875rem' } }, t.solarSystemForm.requestOffer), h("div", { key: 'f4cce52bd6a9ad6cbc7cec50836996224c967519', style: {
448
+ display: 'grid',
449
+ gridTemplateColumns: 'repeat(auto-fit, minmax(1 00px, 1fr))',
450
+ gap: '1rem',
451
+ } }, h("div", { key: 'f59efeb320aeeecb1a790516ff80452fce147868' }, h("label", { key: 'e2d128e5b2dc3c1545cb701bc526ffdfaa3566db', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.firstname || 'Vorname'), h("input", { key: '8d83c21774bb4c27053dc1dd7df1fc2f8542ab6e', type: "text", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.firstnameError ? errorBorderStyle : borderStyle, value: this.firstname, onInput: e => {
452
+ this.firstname = e.target.value;
453
+ this.validateForm();
454
+ }, placeholder: "Vorname" }), this.firstnameError && h("p", { key: 'daba4bdd5340e5ab0dd058161496afe472adf467', class: "text-error text-sm mt-1" }, this.firstnameError)), h("div", { key: '01a55f702942a58bbba0fb1e2b36c0d0fe585873' }, h("label", { key: '95f45851757265d86dbf3b0023160411026c9c02', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.surname || 'Nachname'), h("input", { key: '8eb4454b68333741f175a3d346791acb23451051', type: "text", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.surnameError ? errorBorderStyle : borderStyle, value: this.surname, onInput: e => {
455
+ this.surname = e.target.value;
765
456
  this.validateForm();
766
- }, placeholder: "Your name" }), this.nameError && (h("p", { key: '2057d743304e3e4fbb1367971ac7ff5a008b8ae7', class: "text-error text-sm mt-1" }, this.nameError))), h("div", { key: '4884e8d194a8be9c17ca8f38fc4349e5e79396bb' }, h("label", { key: '329f5d0502c8e685a4abc2f49e153f6c3e69f13f', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.email), h("input", { key: '847cff5833cc8d1872fc8a620344085a74d885ca', type: "email", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.emailError
767
- ? errorBorderStyle
768
- : borderStyle, value: this.email, onInput: (e) => {
769
- this.email =
770
- e.target
771
- .value;
457
+ }, placeholder: "Nachname" }), this.surnameError && h("p", { key: '041e66ec9da56d8e2dcfc4f780ed14c798564821', class: "text-error text-sm mt-1" }, this.surnameError)), h("div", { key: '12238bbeff5f009f49d365849b8b608393a63b3f' }, h("label", { key: 'd8ca73233b5732e1c86093c39923718887e1f581', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.email), h("input", { key: '9ef4c4b8400bc162b68ea6a65cc5ab40b9d2a4b5', type: "email", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.emailError ? errorBorderStyle : borderStyle, value: this.email, onInput: e => {
458
+ this.email = e.target.value;
772
459
  this.validateForm();
773
- }, placeholder: "your.email@example.com" }), this.emailError && (h("p", { key: '956e51452f32f6c92d70de7ca28beab4922850f9', class: "text-error text-sm mt-1" }, this.emailError))), h("div", { key: '48e2718dd33ab7efa45e0992c8f281083e77b2de' }, h("label", { key: '545eca60f2f30861cbb49f12391098fcd437d51b', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.phone), h("input", { key: '9baca33fb75c16ca3500b8980c6b55ffe35bedfc', type: "tel", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.phoneError
774
- ? errorBorderStyle
775
- : borderStyle, value: this.phone, onInput: (e) => {
776
- this.phone =
777
- e.target
778
- .value;
460
+ }, placeholder: "mail@beispiel.com" }), this.emailError && h("p", { key: '11bc547c6719238524f15be8fb5b1dad5e9ec6ba', class: "text-error text-sm mt-1" }, this.emailError)), h("div", { key: 'a2b61b7ecd995bbdd6bf04afb835196925720a90' }, h("label", { key: '33c7bee1bd7e2abfe79a516bd924ced31fa38866', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.phone), h("input", { key: 'be172eabd31f0dc1a4aacfbc9d0b9f6fbe02ddb7', type: "tel", class: `w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, style: this.phoneError ? errorBorderStyle : borderStyle, value: this.phone, onInput: e => {
461
+ this.phone = e.target.value;
779
462
  this.validateForm();
780
- }, placeholder: "+34 123 456 789" }), this.phoneError && (h("p", { key: '23c1d5ee25d9b01295627db3feea507e2e0804a4', class: "text-error text-sm mt-1" }, this.phoneError)))), h("div", { key: '155f8a5dcecdb0c330b6ce3f3455f39c1d7689b5', class: "flex flex-col items-center gap-4" }, h("button", { key: 'fabacedfac41216d9b48beed1fce03ccd39dd5cd', onClick: () => this.handleRequestOffer(), disabled: !this.name.trim() ||
781
- !this.email.trim() || !!this.nameError ||
782
- !!this.emailError || !!this.phoneError ||
783
- this.isSubmitting, class: `px-6 py-3 rounded-4xl transition-colors duration-200 flex items-center gap-2 ${this.isSubmitting
784
- ? "bg-muted text-text-muted cursor-not-allowed"
785
- : "bg-secondary hover:bg-tertiary"}`, style: {
786
- color: this.isSubmitting
787
- ? "var(--color-text-muted)"
788
- : "#ffffff",
789
- } }, this.isSubmitting && (h("div", { key: '51b7a0add44644aa898060aeba67ef74cdb32d5d', class: "w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin" })), this.isSubmitting
790
- ? t.solarSystemForm.sending
791
- : t.solarSystemForm.requestOfferButton), this.submitMessage && (h("div", { key: 'cb54060dff88997e93fc105ebb876c8e518de545', class: `text-sm px-4 py-2 rounded-4xl ${this.submitSuccess
792
- ? "bg-success/10 text-success border border-success/20"
793
- : "bg-error/10 text-error border border-error/20"}` }, this.submitMessage)))))));
463
+ }, placeholder: "0171 23456789" }), this.phoneError && h("p", { key: '46a158281ad72c0122fe3985d5913d4dcf7f8d5b', class: "text-error text-sm mt-1" }, this.phoneError))), h("div", { key: '3a0b008d1ddd1412c40476e63d92bd43990ddd3d', class: "flex flex-col items-center gap-4" }, h("div", { key: '52b3a0ba36c517e1d26cbf6ca01d308753c47ae9', class: "flex flex-col items-start w-full" }, h("div", { key: 'd76d00612392d31782ff846fdf25afb56ab64ac3', class: "flex items-center gap-2" }, h("input", { key: '7a4a1d9c4b5abfa8e9cf0ecd8794ce3a69100774', type: "checkbox", id: "privacyPolicy", class: "w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.privacyPolicyAccepted, onChange: e => {
464
+ this.privacyPolicyAccepted = e.target.checked;
465
+ if (e.target.checked) {
466
+ this.privacyPolicyError = '';
467
+ }
468
+ } }), h("label", { key: 'd9a0ad9ec0f06842fe91855e268e6785fcf1e3f6', htmlFor: "privacyPolicy", class: "text-sm text-text-muted" }, "Ich stimme der", ' ', h("a", { key: '7c2c68ce5e0d9c3b1668d36ec4ad12a5f4b6c91c', href: "https://www.solaravatar.com/rechtliches/datenschutz", target: "_blank", rel: "noopener noreferrer", class: "text-secondary hover:underline" }, "Datenschutzerkl\u00E4rung"), ' ', "zu.")), this.privacyPolicyError && h("p", { key: 'b99f2e6e925c43451dd5d6622b045147760d35b7', class: "text-error text-sm mt-1 ml-6" }, this.privacyPolicyError)), h("button", { key: '48772dd20bd3f230af0c39b21ca1ec6db762ac28', onClick: () => this.handleRequestOffer(), disabled: !this.firstname.trim() ||
469
+ !this.surname.trim() ||
470
+ !this.email.trim() ||
471
+ !!this.firstnameError ||
472
+ !!this.surnameError ||
473
+ !!this.emailError ||
474
+ !!this.phoneError ||
475
+ !this.privacyPolicyAccepted ||
476
+ this.isSubmitting, class: `px-6 py-3 rounded-4xl transition-colors duration-200 flex items-center gap-2 ${this.isSubmitting ? 'bg-muted text-text-muted cursor-not-allowed' : 'bg-secondary hover:bg-tertiary'}`, style: {
477
+ color: this.isSubmitting ? 'var(--color-text-muted)' : '#ffffff',
478
+ } }, this.isSubmitting && h("div", { key: '4acbde73ce57dca7fce4dc7c3215e021ee4bf0c3', class: "w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin" }), this.isSubmitting ? t.solarSystemForm.sending : t.solarSystemForm.requestOfferButton), this.submitMessage && (h("div", { key: '3d2117c7beacdc442740afce38655c656c94f830', class: `text-sm px-4 py-2 rounded-4xl ${this.submitSuccess ? 'bg-success/10 text-success border border-success/20' : 'bg-error/10 text-error border border-error/20'}` }, this.submitMessage)))))));
794
479
  }
795
480
  static get watchers() { return {
796
481
  "systemConfigs": ["updateSystemConfigs"]
797
482
  }; }
798
- static get style() { return outputCss; }
799
- }, [0, "solar-system-form", {
800
- "systemConfigs": [16, "system-configs"],
801
- "polygons": [16],
802
- "roofCanvas": [16, "roof-canvas"],
803
- "polygonCanvas": [16, "polygon-canvas"],
804
- "pixelInMeters": [2, "pixel-in-meters"],
805
- "householdConsumption": [32],
806
- "consumptionProfile": [32],
807
- "electricityPrice": [32],
808
- "compensationRate": [32],
809
- "annualPriceIncrease": [32],
810
- "autonomy": [32],
811
- "costSavings": [32],
812
- "numberOfPanels": [32],
813
- "panelPeakPower": [32],
814
- "name": [32],
815
- "email": [32],
816
- "phone": [32],
817
- "nameError": [32],
818
- "emailError": [32],
819
- "phoneError": [32],
820
- "electricCar": [32],
821
- "electricCarChargingTime": [32],
822
- "heatPump": [32],
823
- "battery": [32],
824
- "batteryEnabled": [32],
825
- "compensation20Years": [32],
826
- "savedCosts20Years": [32],
827
- "maxPanels": [32],
828
- "kmDrivenPerYear": [32],
829
- "totalEnergyConsumption": [32],
830
- "totalEnergyProduction": [32],
831
- "isSubmitting": [32],
832
- "submitMessage": [32],
833
- "submitSuccess": [32]
834
- }, undefined, {
835
- "systemConfigs": ["updateSystemConfigs"]
836
- }]);
837
- function defineCustomElement() {
838
- if (typeof customElements === "undefined") {
839
- return;
840
- }
841
- const components = ["solar-system-form"];
842
- components.forEach(tagName => { switch (tagName) {
843
- case "solar-system-form":
844
- if (!customElements.get(tagName)) {
845
- customElements.define(tagName, SolarSystemForm);
846
- }
847
- break;
848
- } });
849
- }
850
- defineCustomElement();
483
+ };
484
+ SolarSystemForm.style = outputCss;
851
485
 
852
- export { BORDER_INSET as B, DEFAULT_COLOR_SCHEME as D, SolarSystemForm as S, DEFAULT_SOLAR_EXPERT_CONFIG as a, DEFAULT_SOLAR_PANEL_TYPE as b, defineCustomElement as d };
853
- //# sourceMappingURL=p-C3ZXE525.js.map
486
+ export { SolarSystemForm as solar_system_form };
487
+ //# sourceMappingURL=solar-system-form.entry.esm.js.map
854
488
 
855
- //# sourceMappingURL=p-C3ZXE525.js.map
489
+ //# sourceMappingURL=solar-system-form.entry.js.map