blue-chestnut-solar-expert 0.0.67 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stencil-library/assets/tutorial4.mp4 +0 -0
- package/dist/{collection/config.js → stencil-library/config-CWfV1nKn.js} +10 -4
- package/dist/stencil-library/config-CWfV1nKn.js.map +1 -0
- package/dist/stencil-library/constants-hboFofU4.js +1522 -0
- package/dist/stencil-library/constants-hboFofU4.js.map +1 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js +39 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js.map +1 -0
- package/dist/stencil-library/deflate-0Vdd6-55.js +21 -0
- package/dist/{esm/deflate-DHgPf9CO.js.map → stencil-library/deflate-0Vdd6-55.js.map} +1 -1
- package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-CL74Q4VR.js → stencil-library/eraser-icon.entry.js} +9 -27
- package/dist/stencil-library/eraser-icon.entry.js.map +1 -0
- package/dist/stencil-library/house-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-D8w3bTPO.js → stencil-library/house-icon.entry.js} +9 -27
- package/dist/stencil-library/house-icon.entry.js.map +1 -0
- package/dist/{components/loading-widget.js → stencil-library/icon-selector.entry.esm.js.map} +1 -38
- package/dist/stencil-library/icon-selector.entry.js +47 -0
- package/dist/stencil-library/icon-selector.entry.js.map +1 -0
- package/dist/stencil-library/index-CChkgM3J.js +414 -0
- package/dist/stencil-library/index-CChkgM3J.js.map +1 -0
- package/dist/stencil-library/index-ICfDNUMe.js +4172 -0
- package/dist/stencil-library/index-ICfDNUMe.js.map +1 -0
- package/dist/stencil-library/index.esm.js +13 -1
- package/dist/stencil-library/index.esm.js.map +1 -1
- package/dist/{esm/jpeg-CJLm1GkA.js → stencil-library/jpeg-Dd5nnHR5.js} +11 -3
- package/dist/stencil-library/jpeg-Dd5nnHR5.js.map +1 -0
- package/dist/{components/p-BcVa4_YP.js → stencil-library/lerc-7W4E8EBs.js} +27 -1981
- package/dist/stencil-library/lerc-7W4E8EBs.js.map +1 -0
- package/dist/{esm → stencil-library}/loading-widget.entry.js +3 -3
- package/dist/{components/p-P28NBglk.js.map → stencil-library/loading-widget.entry.js.map} +1 -1
- package/dist/{esm/lzw-DaOzWJUD.js → stencil-library/lzw--P4c0ZHH.js} +10 -4
- package/dist/stencil-library/lzw--P4c0ZHH.js.map +1 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js +25567 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.esm.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.js +12 -0
- package/dist/stencil-library/map-draw.entry.js.map +1 -0
- package/dist/stencil-library/map-selector.entry.esm.js.map +1 -0
- package/dist/{components/p-C5QieOat.js → stencil-library/map-selector.entry.js} +164 -96
- package/dist/stencil-library/map-selector.entry.js.map +1 -0
- package/dist/{components/loading-widget.js.map → stencil-library/marker-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-Umz6nJIv.js → stencil-library/marker-icon.entry.js} +9 -27
- package/dist/stencil-library/marker-icon.entry.js.map +1 -0
- package/dist/stencil-library/move-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-FdEV2qPo.js → stencil-library/move-icon.entry.js} +9 -27
- package/dist/stencil-library/move-icon.entry.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js.map → stencil-library/octagon-minus-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-BJLO76Yi.js → stencil-library/octagon-minus-icon.entry.js} +9 -27
- package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -0
- package/dist/{components/p-ByX6QP-E.js → stencil-library/packbits-X3R_utTs.js} +9 -3
- package/dist/stencil-library/packbits-X3R_utTs.js.map +1 -0
- package/dist/stencil-library/pako.esm-CPorU236.js +6881 -0
- package/dist/{esm/pako.esm-B5WTRCh8.js.map → stencil-library/pako.esm-CPorU236.js.map} +1 -1
- package/dist/{components/p-B4X-RCW0.js.map → stencil-library/polygon-buttons.entry.esm.js.map} +1 -1
- package/dist/{cjs/loading-widget.cjs.entry.js → stencil-library/polygon-buttons.entry.js} +16 -10
- package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
- package/dist/{cjs/loading-widget.cjs.entry.js.map → stencil-library/polygon-information.entry.esm.js.map} +1 -1
- package/dist/{components/p-BFJHTJPM.js → stencil-library/polygon-information.entry.js} +13 -70
- package/dist/stencil-library/polygon-information.entry.js.map +1 -0
- package/dist/stencil-library/raw-BxukYehy.js +20 -0
- package/dist/stencil-library/raw-BxukYehy.js.map +1 -0
- package/dist/stencil-library/search-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DBwr8xSB.js → stencil-library/search-icon.entry.js} +9 -27
- package/dist/stencil-library/{p-ab0f2031.entry.js → search-icon.entry.js.map} +1 -2
- package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js → stencil-library/settings-icon.entry.js} +9 -27
- package/dist/stencil-library/settings-icon.entry.js.map +1 -0
- package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -0
- package/dist/{components/p-B4X-RCW0.js → stencil-library/settings-modal.entry.js} +20 -38
- package/dist/stencil-library/settings-modal.entry.js.map +1 -0
- package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -0
- package/dist/{components/solar-expert.js → stencil-library/solar-expert.entry.js} +14 -150
- package/dist/{components/p-i1uLweD0.js.map → stencil-library/solar-expert.entry.js.map} +1 -1
- package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -0
- package/dist/stencil-library/solar-system-form.entry.js +553 -0
- package/dist/stencil-library/solar-system-form.entry.js.map +1 -0
- package/dist/stencil-library/stencil-library.esm.js +52 -1
- package/dist/stencil-library/stencil-library.esm.js.map +1 -1
- package/dist/{components/p-eDwaXClX.js → stencil-library/store-CcqrFuBK.js} +24 -3
- package/dist/stencil-library/store-CcqrFuBK.js.map +1 -0
- package/dist/stencil-library/toast-notification.entry.esm.js.map +1 -0
- package/dist/{components/p-P28NBglk.js → stencil-library/toast-notification.entry.js} +9 -30
- package/dist/stencil-library/toast-notification.entry.js.map +1 -0
- package/dist/stencil-library/tool-box.entry.esm.js.map +1 -0
- package/dist/{components/p-i1uLweD0.js → stencil-library/tool-box.entry.js} +27 -35
- package/dist/stencil-library/tool-box.entry.js.map +1 -0
- package/dist/{collection/utils/render/tools.js → stencil-library/tools-BNYKV5H5.js} +14 -8
- package/dist/stencil-library/tools-BNYKV5H5.js.map +1 -0
- package/dist/stencil-library/tutorial-component.entry.esm.js.map +1 -0
- package/dist/{components/p-Dzl6kfPI.js → stencil-library/tutorial-component.entry.js} +42 -35
- package/dist/stencil-library/tutorial-component.entry.js.map +1 -0
- package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-waOPoUcA.js → stencil-library/undo-icon.entry.js} +9 -27
- package/dist/stencil-library/undo-icon.entry.js.map +1 -0
- package/dist/{collection/utils/utils.js → stencil-library/utils-BCUZxI9u.js} +9 -3
- package/dist/stencil-library/utils-BCUZxI9u.js.map +1 -0
- package/dist/{esm/webimage-BiHardhv.js → stencil-library/webimage-CBrfoxHM.js} +9 -3
- package/dist/{esm/webimage-BiHardhv.js.map → stencil-library/webimage-CBrfoxHM.js.map} +1 -1
- package/dist/types/components/map-draw/map-draw.d.ts +5 -0
- package/dist/types/components/map-draw/tutorial-component.d.ts +7 -0
- package/dist/types/components.d.ts +4 -0
- package/dist/types/types/lang.d.ts +7 -0
- package/package.json +1 -1
- package/dist/cjs/app-globals-I24yU8do.js +0 -10
- package/dist/cjs/app-globals-I24yU8do.js.map +0 -1
- package/dist/cjs/basedecoder-CQuzfSgz.js +0 -116
- package/dist/cjs/basedecoder-CQuzfSgz.js.map +0 -1
- package/dist/cjs/deflate-AzGzQSW2.js +0 -17
- package/dist/cjs/deflate-AzGzQSW2.js.map +0 -1
- package/dist/cjs/eraser-icon_19.cjs.entry.js +0 -31
- package/dist/cjs/eraser-icon_19.cjs.entry.js.map +0 -1
- package/dist/cjs/index-HgRXF6kp.js +0 -1470
- package/dist/cjs/index-HgRXF6kp.js.map +0 -1
- package/dist/cjs/index.cjs.js +0 -7
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/jpeg-Bx3bTm32.js +0 -904
- package/dist/cjs/jpeg-Bx3bTm32.js.map +0 -1
- package/dist/cjs/lerc-v64rYVDy.js +0 -4427
- package/dist/cjs/lerc-v64rYVDy.js.map +0 -1
- package/dist/cjs/loader.cjs.js +0 -18
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/loading-widget.entry.cjs.js.map +0 -1
- package/dist/cjs/lzw-BmFug486.js +0 -140
- package/dist/cjs/lzw-BmFug486.js.map +0 -1
- package/dist/cjs/packbits-CYx9fB0v.js +0 -35
- package/dist/cjs/packbits-CYx9fB0v.js.map +0 -1
- package/dist/cjs/pako.esm-0mKI6Jik.js +0 -3243
- package/dist/cjs/pako.esm-0mKI6Jik.js.map +0 -1
- package/dist/cjs/raw-DC82yoyr.js +0 -16
- package/dist/cjs/raw-DC82yoyr.js.map +0 -1
- package/dist/cjs/stencil-library.cjs.js +0 -30
- package/dist/cjs/stencil-library.cjs.js.map +0 -1
- package/dist/cjs/webimage-Dc0t2xAB.js +0 -49
- package/dist/cjs/webimage-Dc0t2xAB.js.map +0 -1
- package/dist/collection/collection-manifest.json +0 -31
- package/dist/collection/components/icons/eraser.js +0 -64
- package/dist/collection/components/icons/eraser.js.map +0 -1
- package/dist/collection/components/icons/house.js +0 -64
- package/dist/collection/components/icons/house.js.map +0 -1
- package/dist/collection/components/icons/icon.js +0 -108
- package/dist/collection/components/icons/icon.js.map +0 -1
- package/dist/collection/components/icons/marker.js +0 -64
- package/dist/collection/components/icons/marker.js.map +0 -1
- package/dist/collection/components/icons/move.js +0 -64
- package/dist/collection/components/icons/move.js.map +0 -1
- package/dist/collection/components/icons/octagonMinus.js +0 -64
- package/dist/collection/components/icons/octagonMinus.js.map +0 -1
- package/dist/collection/components/icons/search.js +0 -64
- package/dist/collection/components/icons/search.js.map +0 -1
- package/dist/collection/components/icons/settings.js +0 -64
- package/dist/collection/components/icons/settings.js.map +0 -1
- package/dist/collection/components/icons/undo.js +0 -64
- package/dist/collection/components/icons/undo.js.map +0 -1
- package/dist/collection/components/map-draw/map-draw.js +0 -795
- package/dist/collection/components/map-draw/map-draw.js.map +0 -1
- package/dist/collection/components/map-draw/map-selector.js +0 -246
- package/dist/collection/components/map-draw/map-selector.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-buttons.js +0 -86
- package/dist/collection/components/map-draw/polygon-buttons.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-information.js +0 -211
- package/dist/collection/components/map-draw/polygon-information.js.map +0 -1
- package/dist/collection/components/map-draw/tool-box.js +0 -108
- package/dist/collection/components/map-draw/tool-box.js.map +0 -1
- package/dist/collection/components/map-draw/tutorial-component.js +0 -151
- package/dist/collection/components/map-draw/tutorial-component.js.map +0 -1
- package/dist/collection/components/settings/settings.js +0 -127
- package/dist/collection/components/settings/settings.js.map +0 -1
- package/dist/collection/components/solar-expert/solar-expert.js +0 -241
- package/dist/collection/components/solar-expert/solar-expert.js.map +0 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +0 -596
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +0 -1
- package/dist/collection/components/widgets/loading-widget.js +0 -18
- package/dist/collection/components/widgets/loading-widget.js.map +0 -1
- package/dist/collection/components/widgets/toast-notification.js +0 -133
- package/dist/collection/components/widgets/toast-notification.js.map +0 -1
- package/dist/collection/config.js.map +0 -1
- package/dist/collection/constants.js +0 -90
- package/dist/collection/constants.js.map +0 -1
- package/dist/collection/index.js +0 -2
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/output.css +0 -1126
- package/dist/collection/store.js +0 -43
- package/dist/collection/store.js.map +0 -1
- package/dist/collection/types/lang.js +0 -2
- package/dist/collection/types/lang.js.map +0 -1
- package/dist/collection/types/shapes.js +0 -2
- package/dist/collection/types/shapes.js.map +0 -1
- package/dist/collection/utils/api.js +0 -93
- package/dist/collection/utils/api.js.map +0 -1
- package/dist/collection/utils/images.js +0 -2
- package/dist/collection/utils/images.js.map +0 -1
- package/dist/collection/utils/lang/english.js +0 -157
- package/dist/collection/utils/lang/english.js.map +0 -1
- package/dist/collection/utils/lang/general.js +0 -30
- package/dist/collection/utils/lang/general.js.map +0 -1
- package/dist/collection/utils/lang/german.js +0 -157
- package/dist/collection/utils/lang/german.js.map +0 -1
- package/dist/collection/utils/lang/spanish.js +0 -157
- package/dist/collection/utils/lang/spanish.js.map +0 -1
- package/dist/collection/utils/render/tools.js.map +0 -1
- package/dist/collection/utils/solar.js +0 -136
- package/dist/collection/utils/solar.js.map +0 -1
- package/dist/collection/utils/theme.js +0 -97
- package/dist/collection/utils/theme.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/components/eraser-icon.js +0 -11
- package/dist/components/eraser-icon.js.map +0 -1
- package/dist/components/house-icon.js +0 -11
- package/dist/components/house-icon.js.map +0 -1
- package/dist/components/icon-selector.js +0 -11
- package/dist/components/icon-selector.js.map +0 -1
- package/dist/components/index.js +0 -1269
- package/dist/components/index.js.map +0 -1
- package/dist/components/map-draw.js +0 -11
- package/dist/components/map-draw.js.map +0 -1
- package/dist/components/map-selector.js +0 -11
- package/dist/components/map-selector.js.map +0 -1
- package/dist/components/marker-icon.js +0 -11
- package/dist/components/marker-icon.js.map +0 -1
- package/dist/components/move-icon.js +0 -11
- package/dist/components/move-icon.js.map +0 -1
- package/dist/components/octagon-minus-icon.js +0 -11
- package/dist/components/octagon-minus-icon.js.map +0 -1
- package/dist/components/p-B54Ul0nf.js +0 -15
- package/dist/components/p-B54Ul0nf.js.map +0 -1
- package/dist/components/p-B5WTRCh8.js +0 -3241
- package/dist/components/p-B5WTRCh8.js.map +0 -1
- package/dist/components/p-BFJHTJPM.js.map +0 -1
- package/dist/components/p-BGoSj_DR.js +0 -902
- package/dist/components/p-BGoSj_DR.js.map +0 -1
- package/dist/components/p-BJLO76Yi.js.map +0 -1
- package/dist/components/p-BcVa4_YP.js.map +0 -1
- package/dist/components/p-Bopprtc7.js +0 -623
- package/dist/components/p-Bopprtc7.js.map +0 -1
- package/dist/components/p-ByX6QP-E.js.map +0 -1
- package/dist/components/p-C5QieOat.js.map +0 -1
- package/dist/components/p-CL74Q4VR.js.map +0 -1
- package/dist/components/p-Cgchl6bA.js +0 -47
- package/dist/components/p-Cgchl6bA.js.map +0 -1
- package/dist/components/p-D8w3bTPO.js.map +0 -1
- package/dist/components/p-DBwr8xSB.js.map +0 -1
- package/dist/components/p-DWirjxpO.js +0 -163
- package/dist/components/p-DWirjxpO.js.map +0 -1
- package/dist/components/p-DlNHVTGB.js +0 -15949
- package/dist/components/p-DlNHVTGB.js.map +0 -1
- package/dist/components/p-Dzl6kfPI.js.map +0 -1
- package/dist/components/p-FdEV2qPo.js.map +0 -1
- package/dist/components/p-PkMjF2if.js +0 -1985
- package/dist/components/p-PkMjF2if.js.map +0 -1
- package/dist/components/p-Umz6nJIv.js.map +0 -1
- package/dist/components/p-WmcSqXD8.js +0 -14
- package/dist/components/p-WmcSqXD8.js.map +0 -1
- package/dist/components/p-eDwaXClX.js.map +0 -1
- package/dist/components/p-j-vOrhhh.js +0 -114
- package/dist/components/p-j-vOrhhh.js.map +0 -1
- package/dist/components/p-q8auDIJ2.js +0 -138
- package/dist/components/p-q8auDIJ2.js.map +0 -1
- package/dist/components/p-waOPoUcA.js.map +0 -1
- package/dist/components/polygon-buttons.js +0 -11
- package/dist/components/polygon-buttons.js.map +0 -1
- package/dist/components/polygon-information.js +0 -11
- package/dist/components/polygon-information.js.map +0 -1
- package/dist/components/search-icon.js +0 -11
- package/dist/components/search-icon.js.map +0 -1
- package/dist/components/settings-icon.js +0 -11
- package/dist/components/settings-icon.js.map +0 -1
- package/dist/components/settings-modal.js +0 -11
- package/dist/components/settings-modal.js.map +0 -1
- package/dist/components/solar-expert.js.map +0 -1
- package/dist/components/solar-system-form.js +0 -11
- package/dist/components/solar-system-form.js.map +0 -1
- package/dist/components/toast-notification.js +0 -11
- package/dist/components/toast-notification.js.map +0 -1
- package/dist/components/tool-box.js +0 -11
- package/dist/components/tool-box.js.map +0 -1
- package/dist/components/tutorial-component.js +0 -11
- package/dist/components/tutorial-component.js.map +0 -1
- package/dist/components/undo-icon.js +0 -11
- package/dist/components/undo-icon.js.map +0 -1
- package/dist/esm/basedecoder-j-vOrhhh.js +0 -114
- package/dist/esm/basedecoder-j-vOrhhh.js.map +0 -1
- package/dist/esm/deflate-DHgPf9CO.js +0 -15
- package/dist/esm/eraser-icon_19.entry.js +0 -7
- package/dist/esm/eraser-icon_19.entry.js.map +0 -1
- package/dist/esm/index-C2JRBB5c.js +0 -1458
- package/dist/esm/index-C2JRBB5c.js.map +0 -1
- package/dist/esm/index.js +0 -5
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/jpeg-CJLm1GkA.js.map +0 -1
- package/dist/esm/lerc-CAiDQjTu.js +0 -4424
- package/dist/esm/lerc-CAiDQjTu.js.map +0 -1
- package/dist/esm/loader.js +0 -16
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/loading-widget.entry.js.map +0 -1
- package/dist/esm/lzw-DaOzWJUD.js.map +0 -1
- package/dist/esm/packbits-CZPyx9kx.js +0 -33
- package/dist/esm/packbits-CZPyx9kx.js.map +0 -1
- package/dist/esm/pako.esm-B5WTRCh8.js +0 -3241
- package/dist/esm/raw-pqeeWc2_.js +0 -14
- package/dist/esm/raw-pqeeWc2_.js.map +0 -1
- package/dist/esm/stencil-library.js +0 -26
- package/dist/esm/stencil-library.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/stencil-library/p-B54Ul0nf.js +0 -2
- package/dist/stencil-library/p-B54Ul0nf.js.map +0 -1
- package/dist/stencil-library/p-B5WTRCh8.js +0 -2
- package/dist/stencil-library/p-B5WTRCh8.js.map +0 -1
- package/dist/stencil-library/p-BBtmpSUK.js +0 -2
- package/dist/stencil-library/p-BBtmpSUK.js.map +0 -1
- package/dist/stencil-library/p-BGoSj_DR.js +0 -2
- package/dist/stencil-library/p-BGoSj_DR.js.map +0 -1
- package/dist/stencil-library/p-ByX6QP-E.js +0 -2
- package/dist/stencil-library/p-ByX6QP-E.js.map +0 -1
- package/dist/stencil-library/p-C2JRBB5c.js +0 -3
- package/dist/stencil-library/p-C2JRBB5c.js.map +0 -1
- package/dist/stencil-library/p-CX8V3eiN.js +0 -2
- package/dist/stencil-library/p-CX8V3eiN.js.map +0 -1
- package/dist/stencil-library/p-Cgchl6bA.js +0 -2
- package/dist/stencil-library/p-Cgchl6bA.js.map +0 -1
- package/dist/stencil-library/p-WmcSqXD8.js +0 -2
- package/dist/stencil-library/p-WmcSqXD8.js.map +0 -1
- package/dist/stencil-library/p-ab0f2031.entry.js.map +0 -1
- package/dist/stencil-library/p-cAuhy_jT.js +0 -10
- package/dist/stencil-library/p-cAuhy_jT.js.map +0 -1
- package/dist/stencil-library/p-e7b94dbb.entry.js +0 -2
- package/dist/stencil-library/p-e7b94dbb.entry.js.map +0 -1
- package/dist/stencil-library/p-j-vOrhhh.js +0 -2
- package/dist/stencil-library/p-j-vOrhhh.js.map +0 -1
- package/dist/stencil-library/p-q8auDIJ2.js +0 -2
- package/dist/stencil-library/p-q8auDIJ2.js.map +0 -1
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js +0 -0
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"solar-system-form.entry.esm.js","mappings":"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","names":["generateElectricCarChargingHours","simulate"],"sources":["src/utils/api.ts","src/output.css?tag=solar-system-form","src/components/solar-system-form/solar-system-form.tsx"],"sourcesContent":["import { BuildingInsightsResponse } from \"harmonia-types\";\r\n\r\nexport async function fetchSolarData(\r\n latitude: number,\r\n longitude: number,\r\n apiKey: string,\r\n) {\r\n if (latitude === 0 || longitude === 0) {\r\n return null;\r\n }\r\n try {\r\n const args = {\r\n \"location.latitude\": latitude.toFixed(5),\r\n \"location.longitude\": longitude.toFixed(5),\r\n };\r\n const params = new URLSearchParams({\r\n ...args,\r\n key: apiKey,\r\n });\r\n const response = await fetch(\r\n `https://solar.googleapis.com/v1/buildingInsights:findClosest?${params}`,\r\n );\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const contentType = response.headers.get(\"content-type\");\r\n if (!contentType || !contentType.includes(\"application/json\")) {\r\n const text = await response.text();\r\n console.error(\"Unexpected content type:\", contentType, \"Response:\", text);\r\n return null;\r\n }\r\n\r\n const rawData: BuildingInsightsResponse = await response.json();\r\n return rawData;\r\n } catch (error) {\r\n console.error(\"Error fetching solar data:\", error);\r\n if (\r\n error instanceof TypeError &&\r\n error.message === \"Failed to fetch\"\r\n ) {\r\n throw new Error(\"Unable to connect to the solar data API.\");\r\n }\r\n throw error;\r\n }\r\n}\r\n\r\nexport interface LeadData {\r\n location: {\r\n name: string;\r\n latitude: number;\r\n longitude: number;\r\n };\r\n systemConfig: {\r\n maxNumberOfPanels: number;\r\n panelPeakPower: number;\r\n polygons: any[];\r\n solarSystems: any;\r\n electricityPrice: number;\r\n compensationRate: number;\r\n annualPriceIncrease: number;\r\n };\r\n client: {\r\n name: string;\r\n email: string;\r\n phone: string;\r\n consumption: number;\r\n consumptionProfile: string;\r\n hasBattery: boolean;\r\n battery: number;\r\n hasHeatPump: boolean;\r\n heatPumpM2: number;\r\n hasElectricCar: boolean;\r\n electricCarChargingTime: string;\r\n electricCarKmPerYear: number;\r\n };\r\n images: {\r\n roof: string;\r\n polygon: string;\r\n };\r\n results: {\r\n autonomy: number;\r\n costSavings: number;\r\n compensation20Years: number;\r\n savedCosts20Years: number;\r\n totalEnergyConsumption: number;\r\n };\r\n}\r\n\r\nexport async function sendLeadToNexvoro(\r\n leadData: LeadData,\r\n): Promise<{ success: boolean; message: string; leadId?: string }> {\r\n try {\r\n const extradata = {\r\n leadtype: \"A-lead\",\r\n phase: \"10 Anbahnung\",\r\n title: `${leadData.client.name}/solarExpert`,\r\n extradata: leadData,\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append(\"md\", \"81.87.84.81.84.\");\r\n formData.append(\"token\", \"estwtayazyrwtddwsstqatw\");\r\n formData.append(\"NewsletterID\", \"20404\");\r\n formData.append(\"type\", \"new\");\r\n formData.append(\"data\", \"lead\");\r\n formData.append(\"values\", JSON.stringify(extradata));\r\n\r\n // Build the URL\r\n const baseUrl = \"https://workspace.nexvoro.cloud/exchange/extevent\";\r\n const url = baseUrl;\r\n\r\n // Send the request with FormData to avoid CORS preflight\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n body: formData,\r\n // No custom headers to avoid preflight request\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n console.error(\r\n \"Error sending lead to Nexvoro:\",\r\n response.status,\r\n errorText,\r\n );\r\n throw new Error(\r\n `HTTP error! status: ${response.status}, body: ${errorText}`,\r\n );\r\n }\r\n\r\n const result = await response.text();\r\n console.log(\"result\", result);\r\n\r\n // Check if the response contains a lead ID (successful creation)\r\n if (result.includes(\"ERROR\")) {\r\n return {\r\n success: false,\r\n message: \"Lead not created\",\r\n leadId: result,\r\n };\r\n } else {\r\n return {\r\n success: true,\r\n message: \"Lead submitted successfully\",\r\n leadId: undefined,\r\n };\r\n }\r\n } catch (error) {\r\n console.error(\"Error sending lead to Nexvoro:\", error);\r\n return {\r\n success: false,\r\n message: error instanceof Error\r\n ? error.message\r\n : \"Unknown error occurred\",\r\n };\r\n }\r\n}\r\n","/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n","import { Component, h, Prop, State, Watch } from \"@stencil/core\";\nimport { DEFAULT_SOLAR_PANEL_TYPE } from \"../../config\";\nimport { getLanguageStrings } from \"../../utils/lang/general\";\nimport { Polygon } from \"harmonia-types\";\nimport { state } from \"../../store\";\nimport { SimulationConfig, SolarSystem } from \"harmonia-sim\";\nimport { generateElectricCarChargingHours, simulate } from \"harmonia-sim\";\nimport { HEAT_PUMP_CONSUMPTION } from \"../../constants\";\nimport { LeadData, sendLeadToNexvoro } from \"../../utils/api\";\n\n@Component({\n tag: \"solar-system-form\",\n styleUrl: \"../../output.css\",\n shadow: false,\n})\nexport class SolarSystemForm {\n @Prop()\n systemConfigs: { [id: string]: SolarSystem } = {};\n @Prop()\n polygons: Polygon[] = [];\n @Prop()\n roofCanvas: HTMLCanvasElement;\n @Prop()\n polygonCanvas: HTMLCanvasElement;\n\n @State()\n householdConsumption: number = 4500;\n @State()\n consumptionProfile: \"mostly_at_home\" | \"mostly_away\" = \"mostly_at_home\";\n @State()\n electricityPrice: number = 0.3;\n @State()\n compensationRate: number = 0.07;\n @State()\n annualPriceIncrease: number = 2;\n @State()\n autonomy: number = 0;\n @State()\n costSavings: number = 0;\n @State()\n numberOfPanels: number = 5;\n @State()\n panelPeakPower: number = 0.4; // kW per panel\n @State()\n name: string = \"\";\n @State()\n email: string = \"\";\n @State()\n phone: string = \"\";\n @State()\n nameError: string = \"\";\n @State()\n emailError: string = \"\";\n @State()\n phoneError: string = \"\";\n @State()\n electricCar: boolean = false;\n @State()\n electricCarChargingTime: \"day\" | \"night\" = \"day\";\n @State()\n heatPump: number = 0;\n @State()\n battery: number = 0;\n @State()\n batteryEnabled: boolean = false;\n\n @State()\n compensation20Years: number = 0;\n @State()\n savedCosts20Years: number = 0;\n @State()\n maxPanels: number = 5;\n @State()\n kmDrivenPerYear: number = 10000;\n @State()\n totalEnergyConsumption: number = 4500;\n @State()\n totalEnergyProduction: number = 0;\n @State()\n isSubmitting: boolean = false;\n @State()\n submitMessage: string = \"\";\n @State()\n submitSuccess: boolean = false;\n\n @Watch(\"systemConfigs\")\n updateSystemConfigs() {\n if (Object.keys(this.systemConfigs).length === 0) {\n this.numberOfPanels = 0;\n this.maxPanels = 0;\n return;\n }\n this.numberOfPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n this.maxPanels = Object.keys(this.systemConfigs).reduce(\n (acc, curr) => acc + this.systemConfigs[curr].numberOfPanels,\n 0,\n );\n\n this.panelPeakPower = Object.entries(this.systemConfigs)[0][1][0]\n ?.panel.kWattPeak ?? 0.44;\n\n this.recalculate();\n }\n\n private formatEuropeanNumber(num: number, decimals: number = 2): string {\n const fixed = num.toFixed(decimals);\n const [integerPart, decimalPart] = fixed.split(\".\");\n\n // Add dots as thousands separators\n const formattedInteger = integerPart.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n \".\",\n );\n\n // Join with comma as decimal separator\n return decimalPart\n ? `${formattedInteger},${decimalPart}`\n : formattedInteger;\n }\n\n private recalculate() {\n const currentSystemConfigs = {};\n let totalNumberOfPanels = 0;\n for (const [key, value] of Object.entries(this.systemConfigs)) {\n if (totalNumberOfPanels >= this.numberOfPanels) {\n break;\n }\n if (\n value.numberOfPanels + totalNumberOfPanels > this.numberOfPanels\n ) {\n currentSystemConfigs[key] = {\n ...value,\n numberOfPanels: this.numberOfPanels - totalNumberOfPanels,\n };\n totalNumberOfPanels = this.numberOfPanels;\n } else {\n currentSystemConfigs[key] = value;\n totalNumberOfPanels += value.numberOfPanels;\n }\n }\n\n const simulationConfig: SimulationConfig = {\n general: {\n simulationYears: 20,\n },\n householdConsumption: {\n consumptionProfile: this.consumptionProfile,\n winterConsumptionFactor: 1.4,\n summerConsumptionFactor: 0.6,\n averageConsumption: this.householdConsumption / 365,\n },\n electricityPrice: {\n purchase: this.electricityPrice,\n sell: this.compensationRate,\n increase: this.annualPriceIncrease / 100,\n },\n solarSystems: currentSystemConfigs,\n batteryKWh: this.battery,\n solarRadiation: {\n winterFactor: 0.2,\n summerFactor: 0.6,\n },\n heatPump: {\n m2: this.heatPump,\n consumptionPerM2: HEAT_PUMP_CONSUMPTION / 365,\n },\n electricCar: this.electricCar\n ? {\n averageKilometersPerDay: this.kmDrivenPerYear / 365,\n consumptionkWhPer100km: 20,\n batteryKWh: 80,\n chargingHours: this.electricCarChargingTime === \"day\"\n ? generateElectricCarChargingHours(6, 18)\n : generateElectricCarChargingHours(18, 6),\n }\n : undefined,\n };\n\n const result = simulate(simulationConfig);\n\n this.compensation20Years = result.compensationPerDay * 365 * 20;\n this.savedCosts20Years = result.byYearSavedCosts.reduce(\n (acc, curr) => acc + curr,\n 0,\n ) + this.compensation20Years;\n this.costSavings = result.byYearSavedCosts[0];\n this.autonomy = result.autonomy * 100;\n this.totalEnergyConsumption = result.totalEnergyConsumptionDay * 365;\n // Calculate total energy production based on compensation and rate\n this.totalEnergyProduction = result.totalEnergyProduction * 365;\n }\n\n componentWillLoad() {\n this.updateSystemConfigs();\n }\n\n private validateForm(): boolean {\n let isValid = true;\n const t = getLanguageStrings(state.settings.language);\n\n // Validate name\n if (!this.name.trim()) {\n this.nameError = t.solarSystemForm.nameError;\n isValid = false;\n } else {\n this.nameError = \"\";\n }\n\n // Validate email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!this.email.trim()) {\n this.emailError = t.solarSystemForm.emailError;\n isValid = false;\n } else if (!emailRegex.test(this.email)) {\n this.emailError = t.solarSystemForm.validEmailError;\n isValid = false;\n } else {\n this.emailError = \"\";\n }\n\n // Validate phone (optional)\n const phoneRegex = /^[\\+]?[1-9][\\d]{0,15}$/;\n if (\n this.phone.trim() &&\n !phoneRegex.test(this.phone.replace(/[\\s\\-\\(\\)]/g, \"\"))\n ) {\n this.phoneError = t.solarSystemForm.phoneError;\n isValid = false;\n } else {\n this.phoneError = \"\";\n }\n\n return isValid;\n }\n\n private async handleRequestOffer() {\n if (!this.validateForm()) {\n return;\n }\n\n this.isSubmitting = true;\n this.submitMessage = \"\";\n this.submitSuccess = false;\n\n const t = getLanguageStrings(state.settings.language);\n\n try {\n const leadData: LeadData = {\n location: {\n name: state.location,\n latitude: state.latitude,\n longitude: state.longitude,\n },\n systemConfig: {\n maxNumberOfPanels: this.maxPanels,\n panelPeakPower: this.panelPeakPower,\n polygons: this.polygons,\n solarSystems: this.systemConfigs,\n electricityPrice: this.electricityPrice,\n compensationRate: this.compensationRate,\n annualPriceIncrease: this.annualPriceIncrease,\n },\n client: {\n name: this.name,\n email: this.email,\n phone: this.phone,\n consumption: this.householdConsumption,\n consumptionProfile: this.consumptionProfile,\n hasBattery: this.batteryEnabled,\n battery: this.battery,\n hasHeatPump: this.heatPump > 0,\n heatPumpM2: this.heatPump,\n hasElectricCar: this.electricCar,\n electricCarChargingTime: this.electricCarChargingTime,\n electricCarKmPerYear: this.kmDrivenPerYear,\n },\n images: {\n roof: this.roofCanvas.toDataURL(),\n polygon: this.polygonCanvas.toDataURL(),\n },\n results: {\n autonomy: this.autonomy,\n costSavings: this.costSavings,\n compensation20Years: this.compensation20Years,\n savedCosts20Years: this.savedCosts20Years,\n totalEnergyConsumption: this.totalEnergyConsumption,\n },\n };\n console.log(\"leadData\", leadData);\n const result = await sendLeadToNexvoro(leadData);\n\n this.submitSuccess = result.success;\n\n if (result.success) {\n console.log(\"Lead successfully sent to Nexvoro\", result);\n this.submitMessage = t.solarSystemForm.leadSubmitted;\n // Optionally reset form or show success message\n } else {\n console.error(\n \"Failed to send lead to Nexvoro:\",\n result.message,\n );\n this.submitMessage = t.solarSystemForm.leadError;\n }\n } catch (error) {\n console.error(\"Error in handleRequestOffer:\", error);\n this.submitSuccess = false;\n this.submitMessage = error instanceof Error\n ? error.message\n : \"An unexpected error occurred\";\n } finally {\n this.isSubmitting = false;\n }\n }\n\n private isIOS(): boolean {\n return state.isIOS;\n }\n\n render() {\n const t = getLanguageStrings(state.settings.language);\n\n // Reusable style objects\n const borderStyle = { border: \"1px solid var(--color-border)\" };\n const errorBorderStyle = { border: \"1px solid var(--color-error)\" };\n\n return (\n <div\n class=\"flex flex-col justify-center items-center w-full h-full pt-4\" // style={{\n // display: (Object.keys(this.systemConfigs).length === 0)\n // ? \"none\"\n // : \"flex\",\n // }}\n id=\"solar-system-form\"\n >\n <h1 class=\"text-2xl font-bold text-secondary mb-4 w-full\">\n {t.solarSystemForm.title}\n </h1>\n\n <div class=\"w-full bg-primary rounded-4xl space-y-6\">\n {/* System Info Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.systemInformation}\n </h2>\n <div class=\"flex flex-col sm:flex-row gap-4\">\n {/* Number of Panels */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4 space-y-3\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.numberOfPanels}\n </label>\n {!this.isIOS()\n ? (\n <input\n type=\"number\"\n class=\"w-20 px-3 py-1 rounded-full bg-muted text-muted-foreground text-right\"\n value={this.numberOfPanels}\n readOnly\n />\n )\n : (\n <input\n type=\"number\"\n min=\"1\"\n max={this.maxPanels}\n class=\"w-20 px-3 py-1 rounded-full focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground text-center\"\n style={borderStyle}\n value={this.numberOfPanels}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n value >= 1 &&\n value <=\n this.maxPanels\n ) {\n this.numberOfPanels =\n value;\n this.recalculate();\n }\n }}\n />\n )}\n </div>\n {!this.isIOS() && (\n <input\n type=\"range\"\n min=\"1\"\n max={this.maxPanels}\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.numberOfPanels}\n onInput={(e) => {\n this.numberOfPanels = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(this.numberOfPanels)) {\n this.numberOfPanels = 0;\n }\n this.recalculate();\n }}\n />\n )}\n </div>\n\n {/* Panel Peak Power */}\n <div class=\"flex-1 bg-muted rounded-4xl p-4\">\n <div class=\"flex items-center justify-between\">\n <label class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.panelPeakPower}\n </label>\n <span class=\"text-text-muted\">\n {this.panelPeakPower.toFixed(2)} kW\n </span>\n </div>\n <div class=\"flex items-center justify-between mt-4\">\n <span class=\"text-sm font-medium text-text-muted\">\n {t.solarSystemForm.totalSystemPeakPower}\n </span>\n <span class=\"font-bold text-text-muted\">\n {(DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *\n this.numberOfPanels).toFixed(1)} kWp\n </span>\n </div>\n </div>\n </div>\n </div>\n {/* Household Consumption Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.householdConsumptionTitle}\n </h2>\n <div class=\"grid grid-rows-2 gap-0\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.annualConsumption}\n </label>\n <label class=\"block text-sm font-medium text-text-muted\">\n {t.solarSystemForm.consumptionProfileTitle}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <input\n type=\"number\"\n step=\"100\"\n min=\"0\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n value={this.householdConsumption}\n onInput={(e) => {\n this.householdConsumption = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground\"\n style={borderStyle}\n onChange={(e) => {\n this.consumptionProfile =\n (e.target as HTMLSelectElement)\n .value as\n | \"mostly_at_home\"\n | \"mostly_away\";\n this.recalculate();\n }}\n >\n <option\n value=\"mostly_at_home\"\n selected={this.consumptionProfile ===\n \"mostly_at_home\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAtHome}\n </option>\n <option\n value=\"mostly_away\"\n selected={this.consumptionProfile ===\n \"mostly_away\"}\n >\n {t.solarSystemForm.consumptionProfiles\n .mostlyAway}\n </option>\n </select>\n </div>\n </div>\n {\n /* <div class=\"mt-4 h-48\">\n <canvas ref={(el) => this.chartRef = el}></canvas>\n </div> */\n }\n </div>\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.additionalComponents.title}\n </h2>\n <div class=\"flex flex-col gap-4\">\n {/* Heat Pump Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"heatPump\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.heatPump > 0}\n onChange={(e) => {\n this.heatPump =\n (e.target as HTMLInputElement)\n .checked\n ? 100\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"heatPump\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .heatPump}\n </label>\n </div>\n {(this.heatPump > 0 && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.heatPump} m²\n </span>\n )}\n </div>\n {this.heatPump > 0 && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.heatPump}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 300\n ) {\n this.heatPump =\n value;\n this.recalculate();\n }\n }}\n />\n <span class=\"text-sm text-text-muted\">\n m²\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"10\"\n max=\"300\"\n step=\"10\"\n class=\"input-slider custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.heatPump}\n onInput={(e) => {\n this.heatPump =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n\n {/* Electric Car Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"electricCar\"\n class=\"w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.electricCar}\n onChange={(e) => {\n this.electricCar =\n (e.target as HTMLInputElement)\n .checked;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"electricCar\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .electricCar}\n </label>\n </div>\n </div>\n {this.electricCar && (\n <div class=\"flex flex-col gap-2\">\n <div class=\"grid grid-cols-2 gap-4\">\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .chargingTime}\n </label>\n <label class=\"text-sm text-text-muted\">\n {t.solarSystemForm\n .additionalComponents\n .kilometersPerYear}\n </label>\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <select\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n onChange={(e) => {\n this.electricCarChargingTime =\n (e.target as HTMLSelectElement)\n .value as\n | \"day\"\n | \"night\";\n this.recalculate();\n }}\n style={borderStyle}\n >\n <option\n value=\"day\"\n selected={this\n .electricCarChargingTime ===\n \"day\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeDay}\n </option>\n <option\n value=\"night\"\n selected={this\n .electricCarChargingTime ===\n \"night\"}\n >\n {t.solarSystemForm\n .additionalComponents\n .chargingTimeNight}\n </option>\n </select>\n <input\n type=\"number\"\n min=\"1000\"\n max=\"100000\"\n step=\"1000\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.kmDrivenPerYear}\n onInput={(e) => {\n this.kmDrivenPerYear =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (\n isNaN(\n this.kmDrivenPerYear,\n )\n ) {\n this.kmDrivenPerYear =\n 0;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n </div>\n </div>\n )}\n </div>\n\n {/* Battery Section */}\n <div class=\"flex flex-col bg-muted rounded-4xl p-4 gap-4\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n id=\"battery\"\n class=\"w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2\"\n checked={this.batteryEnabled}\n onChange={(e) => {\n this.batteryEnabled =\n (e.target as HTMLInputElement)\n .checked;\n this.battery =\n this.batteryEnabled\n ? 5\n : 0;\n this.recalculate();\n }}\n />\n <label\n htmlFor=\"battery\"\n class=\"text-text-muted\"\n >\n {t.solarSystemForm\n .additionalComponents\n .battery}\n </label>\n </div>\n {(this.batteryEnabled && !this.isIOS()) && (\n <span class=\"text-text-muted\">\n {this.battery} kWh\n </span>\n )}\n </div>\n {this.batteryEnabled && (\n <div class=\"flex flex-col gap-2\">\n {this.isIOS()\n ? (\n <div class=\"flex items-center gap-2\">\n <input\n type=\"number\"\n min=\"0\"\n max=\"20\"\n step=\"1\"\n class=\"flex-1 px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n value={this.battery}\n onInput={(e) => {\n let value =\n parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n if (isNaN(value)) {\n value = 0;\n }\n if (\n value >= 0 &&\n value <= 20\n ) {\n this.battery =\n value;\n } else {\n this.battery =\n 20;\n }\n this.recalculate();\n }}\n style={borderStyle}\n />\n <span class=\"text-sm text-text-muted\">\n kWh\n </span>\n </div>\n )\n : (\n <input\n type=\"range\"\n min=\"1\"\n max=\"20\"\n step=\"1\"\n class=\"input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted\"\n value={this.battery}\n onInput={(e) => {\n const value = parseInt(\n (e.target as HTMLInputElement)\n .value,\n );\n this.battery = value;\n this.batteryEnabled =\n value > 0;\n this.recalculate();\n }}\n />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Electricity Price and Compensation Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.electricityCostsTitle}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(100px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.electricityPrice}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.electricityPrice.toFixed(2)}\n onInput={(e) => {\n this.electricityPrice = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.compensationRate}\n </label>\n <input\n type=\"number\"\n step=\"0.01\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.compensationRate.toFixed(2)}\n onInput={(e) => {\n this.compensationRate = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.annualPriceIncrease}\n </label>\n <input\n type=\"number\"\n step=\"0.1\"\n class=\"w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted\"\n style={borderStyle}\n value={this.annualPriceIncrease.toFixed(1)}\n onInput={(e) => {\n this.annualPriceIncrease = parseFloat(\n (e.target as HTMLInputElement)\n .value,\n );\n this.recalculate();\n }}\n />\n </div>\n </div>\n </div>\n\n {/* Results Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.resultsTitle}\n </h2>\n <div class=\"bg-muted rounded-4xl p-4\">\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.autonomy}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.autonomy > 100\n ? \"100\"\n : this.formatEuropeanNumber(\n this.autonomy,\n 1,\n )}%\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyConsumption}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyConsumption,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.totalEnergyProduction}\n </span>\n <span class=\"text-xl font-bold text-secondary mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.totalEnergyProduction,\n 0,\n )} kWh/{t.solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.costSavings}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.costSavings,\n )} €/{t\n .solarSystemForm.year}\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm.compensation20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.compensation20Years,\n )} €\n </span>\n </div>\n <div class=\"flex flex-col sm:flex-row sm:items-center justify-between mt-4\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-text-muted\">\n {t.solarSystemForm\n .monetaryBenefit20Years}\n </span>\n </div>\n <span class=\"text-xl font-bold text-success mt-1 sm:mt-0\">\n {this.formatEuropeanNumber(\n this.savedCosts20Years,\n )} €\n </span>\n </div>\n </div>\n </div>\n\n {/* Contact Information Section */}\n <div\n class=\"space-y-4 p-4 rounded-4xl\"\n style={borderStyle}\n >\n <h2 class=\"text-lg font-semibold text-secondary\">\n {t.solarSystemForm.requestOffer}\n </h2>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns:\n \"repeat(auto-fit, minmax(1 00px, 1fr))\",\n gap: \"1rem\",\n }}\n >\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.name}\n </label>\n <input\n type=\"text\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.nameError\n ? errorBorderStyle\n : borderStyle}\n value={this.name}\n onInput={(e) => {\n this.name =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"Your name\"\n />\n {this.nameError && (\n <p class=\"text-error text-sm mt-1\">\n {this.nameError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.email}\n </label>\n <input\n type=\"email\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.emailError\n ? errorBorderStyle\n : borderStyle}\n value={this.email}\n onInput={(e) => {\n this.email =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"your.email@example.com\"\n />\n {this.emailError && (\n <p class=\"text-error text-sm mt-1\">\n {this.emailError}\n </p>\n )}\n </div>\n <div>\n <label class=\"block text-sm font-medium text-text-muted mb-1\">\n {t.solarSystemForm.phone}\n </label>\n <input\n type=\"tel\"\n class={`w-full px-4 py-2 rounded-4xl focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`}\n style={this.phoneError\n ? errorBorderStyle\n : borderStyle}\n value={this.phone}\n onInput={(e) => {\n this.phone =\n (e.target as HTMLInputElement)\n .value;\n this.validateForm();\n }}\n placeholder=\"+34 123 456 789\"\n />\n {this.phoneError && (\n <p class=\"text-error text-sm mt-1\">\n {this.phoneError}\n </p>\n )}\n </div>\n </div>\n <div class=\"flex flex-col items-center gap-4\">\n <button\n onClick={() => this.handleRequestOffer()}\n disabled={!this.name.trim() ||\n !this.email.trim() || !!this.nameError ||\n !!this.emailError || !!this.phoneError ||\n this.isSubmitting}\n class={`px-6 py-3 rounded-4xl transition-colors duration-200 flex items-center gap-2 ${\n this.isSubmitting\n ? \"bg-muted text-text-muted cursor-not-allowed\"\n : \"bg-secondary hover:bg-tertiary\"\n }`}\n style={{\n color: this.isSubmitting\n ? \"var(--color-text-muted)\"\n : \"#ffffff\",\n }}\n >\n {this.isSubmitting && (\n <div class=\"w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin\">\n </div>\n )}\n {this.isSubmitting\n ? t.solarSystemForm.sending\n : t.solarSystemForm.requestOfferButton}\n </button>\n\n {this.submitMessage && (\n <div\n class={`text-sm px-4 py-2 rounded-4xl ${\n this.submitSuccess\n ? \"bg-success/10 text-success border border-success/20\"\n : \"bg-error/10 text-error border border-error/20\"\n }`}\n >\n {this.submitMessage}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,2 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
|
+
import { B as BUILD, c as consoleDevInfo, H, w as win, N as NAMESPACE, p as promiseResolve, b as bootstrapLazy } from './index-ICfDNUMe.js';
|
|
4
|
+
export { s as setNonce } from './index-ICfDNUMe.js';
|
|
5
|
+
import { g as globalScripts } from './app-globals-CX8V3eiN.js';
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
Stencil Client Patch Browser v4.31.0 | MIT Licensed | https://stenciljs.com
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var patchBrowser = () => {
|
|
12
|
+
if (BUILD.isDev && !BUILD.isTesting) {
|
|
13
|
+
consoleDevInfo("Running in development mode.");
|
|
14
|
+
}
|
|
15
|
+
if (BUILD.cloneNodeFix) {
|
|
16
|
+
patchCloneNodeFix(H.prototype);
|
|
17
|
+
}
|
|
18
|
+
const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll("script")).find(
|
|
19
|
+
(s) => new RegExp(`/${NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) || s.getAttribute("data-stencil-namespace") === NAMESPACE
|
|
20
|
+
) : null;
|
|
21
|
+
const importMeta = import.meta.url;
|
|
22
|
+
const opts = BUILD.scriptDataOpts ? (scriptElm || {})["data-opts"] || {} : {};
|
|
23
|
+
if (importMeta !== "") {
|
|
24
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
25
|
+
}
|
|
26
|
+
return promiseResolve(opts);
|
|
27
|
+
};
|
|
28
|
+
var patchCloneNodeFix = (HTMLElementPrototype) => {
|
|
29
|
+
const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;
|
|
30
|
+
HTMLElementPrototype.cloneNode = function(deep) {
|
|
31
|
+
if (this.nodeName === "TEMPLATE") {
|
|
32
|
+
return nativeCloneNodeFn.call(this, deep);
|
|
33
|
+
}
|
|
34
|
+
const clonedNode = nativeCloneNodeFn.call(this, false);
|
|
35
|
+
const srcChildNodes = this.childNodes;
|
|
36
|
+
if (deep) {
|
|
37
|
+
for (let i = 0; i < srcChildNodes.length; i++) {
|
|
38
|
+
if (srcChildNodes[i].nodeType !== 2) {
|
|
39
|
+
clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return clonedNode;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
patchBrowser().then(async (options) => {
|
|
48
|
+
await globalScripts();
|
|
49
|
+
return bootstrapLazy([["map-selector",[[0,"map-selector",{"apiKey":[1,"api-key"],"language":[1],"isLoaded":[32],"autocomplete":[32],"map":[32],"marker":[32],"circle":[32],"radius":[32],"latitude":[32],"longitude":[32],"isSatelliteMode":[32],"showAddressError":[32]}]]],["tool-box",[[0,"tool-box",{"currentTool":[16,"current-tool"],"undoCallback":[16,"undo-callback"],"onToolSelect":[16,"on-tool-select"]}]]],["polygon-buttons",[[0,"polygon-buttons",{"calculateSolarPanels":[16,"calculate-solar-panels"],"markAsFlatRoof":[16,"mark-as-flat-roof"],"currentTool":[1,"current-tool"]}]]],["polygon-information",[[0,"polygon-information",{"currentPolygon":[16,"current-polygon"],"numberOfPanels":[2,"number-of-panels"],"handleAzimuthChange":[16,"handle-azimuth-change"],"handlePitchChange":[16,"handle-pitch-change"],"calculateSolarPanels":[16,"calculate-solar-panels"],"markAsFlatRoof":[16,"mark-as-flat-roof"],"currentTool":[1,"current-tool"]}]]],["settings-modal",[[0,"settings-modal",{"settings":[16],"tempSettings":[32]}]]],["toast-notification",[[0,"toast-notification",{"message":[1],"type":[1],"duration":[2],"isVisible":[32],"isExiting":[32]}]]],["house-icon",[[0,"house-icon",{"inline":[4],"size":[2]}]]],["move-icon",[[0,"move-icon",{"inline":[4],"size":[2]}]]],["settings-icon",[[0,"settings-icon",{"inline":[4],"size":[2]}]]],["search-icon",[[0,"search-icon",{"inline":[4],"size":[2]}]]],["solar-expert",[[0,"solar-expert",{"apiKey":[1,"api-key"],"language":[1],"colorScheme":[16,"color-scheme"],"latitude":[32],"longitude":[32],"isLoaded":[32],"autocomplete":[32],"place":[32],"showMapSelector":[32]},null,{"colorScheme":["colorSchemeChanged"]}]]],["loading-widget",[[0,"loading-widget"]]],["solar-system-form",[[0,"solar-system-form",{"systemConfigs":[16,"system-configs"],"polygons":[16],"roofCanvas":[16,"roof-canvas"],"polygonCanvas":[16,"polygon-canvas"],"householdConsumption":[32],"consumptionProfile":[32],"electricityPrice":[32],"compensationRate":[32],"annualPriceIncrease":[32],"autonomy":[32],"costSavings":[32],"numberOfPanels":[32],"panelPeakPower":[32],"name":[32],"email":[32],"phone":[32],"nameError":[32],"emailError":[32],"phoneError":[32],"electricCar":[32],"electricCarChargingTime":[32],"heatPump":[32],"battery":[32],"batteryEnabled":[32],"compensation20Years":[32],"savedCosts20Years":[32],"maxPanels":[32],"kmDrivenPerYear":[32],"totalEnergyConsumption":[32],"totalEnergyProduction":[32],"isSubmitting":[32],"submitMessage":[32],"submitSuccess":[32]},null,{"systemConfigs":["updateSystemConfigs"]}]]],["tutorial-component",[[0,"tutorial-component",{"onClose":[16,"on-close"],"onSkip":[16,"on-skip"],"showSkipButton":[4,"show-skip-button"],"title":[1],"description":[1],"videoSource":[1,"video-source"],"isLoading":[32],"dotCount":[32],"isVideoPlaying":[32]}]]],["eraser-icon",[[0,"eraser-icon",{"inline":[4],"size":[2]}]]],["marker-icon",[[0,"marker-icon",{"inline":[4],"size":[2]}]]],["octagon-minus-icon",[[0,"octagon-minus-icon",{"inline":[4],"size":[2]}]]],["undo-icon",[[0,"undo-icon",{"inline":[4],"size":[2]}]]],["icon-selector",[[0,"icon-selector",{"name":[1],"inline":[4],"size":[2]}]]],["map-draw",[[0,"map-draw",{"apiKey":[1,"api-key"],"config":[16],"solarPanel":[16,"solar-panel"],"enableSettings":[4,"enable-settings"],"showInstructions":[32],"showSettings":[32],"showTutorial":[32],"showMarkEdgeTutorial":[32],"showAdditionalToolsTutorial":[32],"additionalToolsTutorialShown":[32],"showObstacleTutorial":[32],"obstacleTutorialShown":[32],"firstPolygonClosed":[32],"zoom":[32],"loadingState":[32],"rgbTiff":[32],"currentTool":[32],"buildingInsights":[32],"pixelInMeters":[32],"interaction":[32],"currentPolygon":[32],"solarSystem":[32],"showToast":[32],"toastMessage":[32],"toastType":[32]},null,{"rgbTiff":["setupCanvasManager","drawMap"],"canvasElement":["drawMap"]}]]]], options);
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=stencil-library.esm.js.map
|
|
52
|
+
|
|
2
53
|
//# sourceMappingURL=stencil-library.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stencil-library.esm.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.31.0 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"stencil-library.esm.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.31.0 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AACzB,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACvC,IAAI,cAAc,CAAC,8BAA8B,CAAC;AAClD;AACA,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE;AAC1B,IAAI,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC;AACA,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;AACnH,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK;AAC1H,GAAG,GAAG,IAAI;AACV,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;AACD,IAAI,iBAAiB,GAAG,CAAC,oBAAoB,KAAK;AAClD,EAAE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS;AAC1D,EAAE,oBAAoB,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE;AAClD,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AACtC,MAAM,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C;AACA,IAAI,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;AACzC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7C,UAAU,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;AACA;AACA;AACA,IAAI,OAAO,UAAU;AACrB,GAAG;AACH,CAAC;;ACrCD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
if (typeof global === "undefined") { var global = globalThis || window || self; }
|
|
3
|
-
import {
|
|
3
|
+
import { e as getRenderingRef, f as forceUpdate } from './index-ICfDNUMe.js';
|
|
4
4
|
|
|
5
5
|
const en = {
|
|
6
6
|
settings: {
|
|
@@ -145,6 +145,7 @@ const en = {
|
|
|
145
145
|
title: "How to Mark Your Roof",
|
|
146
146
|
description: "Use the roof tool to mark the roof segment where you want to install solar panels. Click on the corners of your roof to create a polygon.",
|
|
147
147
|
understood: "Understood",
|
|
148
|
+
mobileInstruction: "Tap the video to play",
|
|
148
149
|
markEdge: {
|
|
149
150
|
title: "Mark the Lower Roof Edge",
|
|
150
151
|
description: "Now mark the lower edge of your roof to help calculate the optimal solar panel placement. Click on the points along the bottom edge of your roof.",
|
|
@@ -155,6 +156,12 @@ const en = {
|
|
|
155
156
|
description: "You can now add more roof segments using the roof tool. Use the obstruction tool to mark areas where you don't want solar panels (like skylights or chimneys). The move tool allows you to select any polygon and edit its points by dragging them.",
|
|
156
157
|
understood: "Understood",
|
|
157
158
|
},
|
|
159
|
+
obstacle: {
|
|
160
|
+
title: "Mark Obstructions",
|
|
161
|
+
description: "Now you can mark areas where you don't want solar panels, such as skylights, chimneys, or other roof features. Use the obstruction tool to draw polygons around these areas.",
|
|
162
|
+
understood: "Understood",
|
|
163
|
+
skip: "Skip Tutorial",
|
|
164
|
+
},
|
|
158
165
|
},
|
|
159
166
|
},
|
|
160
167
|
};
|
|
@@ -302,6 +309,7 @@ const de = {
|
|
|
302
309
|
title: "So markieren Sie Ihr Dach",
|
|
303
310
|
description: "Verwenden Sie das Dachwerkzeug, um das Dachsegment zu markieren, auf dem Sie Solarpaneele installieren möchten. Klicken Sie auf die Ecken Ihres Daches, um ein Polygon zu erstellen.",
|
|
304
311
|
understood: "Verstanden",
|
|
312
|
+
mobileInstruction: "Tippen Sie auf das Video zum Abspielen",
|
|
305
313
|
markEdge: {
|
|
306
314
|
title: "Untere Dachkante markieren",
|
|
307
315
|
description: "Falls Störobjekte wie Dachfenster und Schornsteine vorhanden sind, markieren Sie diese mit dem Hindernis Werkzeug. Danach markieren Sie die untere Kante Ihres Daches, um die optimale Platzierung der Solarpaneele zu berechnen. Klicken Sie auf die unteren Kante Ihres Daches.",
|
|
@@ -312,6 +320,12 @@ const de = {
|
|
|
312
320
|
description: "Sie können jetzt weitere Dachsegmente mit dem Dachwerkzeug hinzufügen. Verwenden Sie das Hinderniswerkzeug, um Bereiche zu markieren, in denen Sie keine Solarpaneele möchten (wie Dachfenster oder Schornsteine). Das Verschiebewerkzeug ermöglicht es Ihnen, ein beliebiges Polygon auszuwählen und seine Punkte durch Ziehen zu bearbeiten.",
|
|
313
321
|
understood: "Verstanden",
|
|
314
322
|
},
|
|
323
|
+
obstacle: {
|
|
324
|
+
title: "Hindernisse markieren",
|
|
325
|
+
description: "Jetzt können Sie Bereiche markieren, in denen Sie keine Solarpaneele möchten, wie Dachfenster, Schornsteine oder andere Dachmerkmale. Verwenden Sie das Hinderniswerkzeug, um Polygone um diese Bereiche zu zeichnen.",
|
|
326
|
+
understood: "Verstanden",
|
|
327
|
+
skip: "Tutorial überspringen",
|
|
328
|
+
},
|
|
315
329
|
},
|
|
316
330
|
},
|
|
317
331
|
};
|
|
@@ -459,6 +473,7 @@ const es = {
|
|
|
459
473
|
title: "Cómo marcar su tejado",
|
|
460
474
|
description: "Use la herramienta de tejado para marcar el segmento del tejado donde desea instalar paneles solares. Haga clic en las esquinas de su tejado para crear un polígono.",
|
|
461
475
|
understood: "Entendido",
|
|
476
|
+
mobileInstruction: "Toque el video para reproducir",
|
|
462
477
|
markEdge: {
|
|
463
478
|
title: "Marcar el borde inferior del tejado",
|
|
464
479
|
description: "Ahora marque el borde inferior de su tejado para ayudar a calcular la colocación óptima de los paneles solares. Haga clic en los puntos a lo largo del borde inferior de su tejado.",
|
|
@@ -469,6 +484,12 @@ const es = {
|
|
|
469
484
|
description: "Ahora puede añadir más segmentos de tejado usando la herramienta de tejado. Use la herramienta de obstrucción para marcar áreas donde no desea paneles solares (como claraboyas o chimeneas). La herramienta de movimiento le permite seleccionar cualquier polígono y editar sus puntos arrastrándolos.",
|
|
470
485
|
understood: "Entendido",
|
|
471
486
|
},
|
|
487
|
+
obstacle: {
|
|
488
|
+
title: "Marcar obstrucciones",
|
|
489
|
+
description: "Ahora puede marcar áreas donde no desea paneles solares, como claraboyas, chimeneas u otras características del tejado. Use la herramienta de obstrucción para dibujar polígonos alrededor de estas áreas.",
|
|
490
|
+
understood: "Entendido",
|
|
491
|
+
skip: "Saltar tutorial",
|
|
492
|
+
},
|
|
472
493
|
},
|
|
473
494
|
},
|
|
474
495
|
};
|
|
@@ -732,6 +753,6 @@ onChange("isIOS", (value) => {
|
|
|
732
753
|
});
|
|
733
754
|
|
|
734
755
|
export { getLanguageStrings as g, onChange as o, state as s };
|
|
735
|
-
//# sourceMappingURL=
|
|
756
|
+
//# sourceMappingURL=store-CcqrFuBK.js.map
|
|
736
757
|
|
|
737
|
-
//# sourceMappingURL=
|
|
758
|
+
//# sourceMappingURL=store-CcqrFuBK.js.map
|