blue-chestnut-solar-expert 0.0.34 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/cjs/eraser-icon.house-icon.icon-selector.map-draw.map-selector.move-icon.octagon-minus-icon.polygon-buttons.polygon-information.search-icon.settings-icon.settings-modal.solar-expert.solar-system-form.tool-box.undo-icon.entry.cjs.js.map +1 -1
  2. package/dist/cjs/eraser-icon_16.cjs.entry.js +78 -42
  3. package/dist/cjs/eraser-icon_16.cjs.entry.js.map +1 -1
  4. package/dist/cjs/loading-widget.cjs.entry.js +1 -1
  5. package/dist/collection/components/map-draw/tool-box.js +7 -3
  6. package/dist/collection/components/map-draw/tool-box.js.map +1 -1
  7. package/dist/collection/components/solar-expert/solar-expert.js +2 -2
  8. package/dist/collection/components/solar-expert/solar-expert.js.map +1 -1
  9. package/dist/collection/components/solar-system-form/solar-system-form.js +58 -33
  10. package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -1
  11. package/dist/collection/components/widgets/loading-widget.js +1 -1
  12. package/dist/collection/constants.js +1 -1
  13. package/dist/collection/constants.js.map +1 -1
  14. package/dist/collection/types/lang.js.map +1 -1
  15. package/dist/collection/utils/lang/english.js +1 -0
  16. package/dist/collection/utils/lang/english.js.map +1 -1
  17. package/dist/collection/utils/lang/german.js +1 -0
  18. package/dist/collection/utils/lang/german.js.map +1 -1
  19. package/dist/collection/utils/lang/spanish.js +1 -0
  20. package/dist/collection/utils/lang/spanish.js.map +1 -1
  21. package/dist/collection/utils/simulation/simulation.js +8 -3
  22. package/dist/collection/utils/simulation/simulation.js.map +1 -1
  23. package/dist/collection/utils/simulation/types.js.map +1 -1
  24. package/dist/components/loading-widget.js +1 -1
  25. package/dist/components/map-draw.js +1 -1
  26. package/dist/components/map-selector.js +1 -1
  27. package/dist/components/{p-DbJfa2yQ.js → p-2Um_yzGy.js} +3 -3
  28. package/dist/components/{p-DbJfa2yQ.js.map → p-2Um_yzGy.js.map} +1 -1
  29. package/dist/components/{p-BGxYjXB5.js → p-3JEPWoBM.js} +3 -3
  30. package/dist/components/{p-BGxYjXB5.js.map → p-3JEPWoBM.js.map} +1 -1
  31. package/dist/components/{p-BcV6HHN8.js → p-BU8VgrD9.js} +3 -3
  32. package/dist/components/{p-BcV6HHN8.js.map → p-BU8VgrD9.js.map} +1 -1
  33. package/dist/components/{p-CrzEBN9H.js → p-C8ujytCa.js} +69 -40
  34. package/dist/components/p-C8ujytCa.js.map +1 -0
  35. package/dist/components/{p-B1ywivYa.js → p-CUDvRPwB.js} +3 -3
  36. package/dist/components/{p-B1ywivYa.js.map → p-CUDvRPwB.js.map} +1 -1
  37. package/dist/components/{p-DMkbzkL_.js → p-DJT7IBlC.js} +10 -6
  38. package/dist/components/p-DJT7IBlC.js.map +1 -0
  39. package/dist/components/{p-BLXc1FjC.js → p-DmmMPG7q.js} +5 -2
  40. package/dist/components/p-DmmMPG7q.js.map +1 -0
  41. package/dist/components/{p-ClYOM_0b.js → p-wv9-rUOt.js} +8 -8
  42. package/dist/components/{p-ClYOM_0b.js.map → p-wv9-rUOt.js.map} +1 -1
  43. package/dist/components/polygon-buttons.js +1 -1
  44. package/dist/components/polygon-information.js +1 -1
  45. package/dist/components/settings-modal.js +1 -1
  46. package/dist/components/solar-expert.js +10 -10
  47. package/dist/components/solar-expert.js.map +1 -1
  48. package/dist/components/solar-system-form.js +1 -1
  49. package/dist/components/tool-box.js +1 -1
  50. package/dist/esm/eraser-icon.house-icon.icon-selector.map-draw.map-selector.move-icon.octagon-minus-icon.polygon-buttons.polygon-information.search-icon.settings-icon.settings-modal.solar-expert.solar-system-form.tool-box.undo-icon.entry.js.map +1 -1
  51. package/dist/esm/eraser-icon_16.entry.js +78 -42
  52. package/dist/esm/eraser-icon_16.entry.js.map +1 -1
  53. package/dist/esm/loading-widget.entry.js +1 -1
  54. package/dist/stencil-library/eraser-icon.house-icon.icon-selector.map-draw.map-selector.move-icon.octagon-minus-icon.polygon-buttons.polygon-information.search-icon.settings-icon.settings-modal.solar-expert.solar-system-form.tool-box.undo-icon.entry.esm.js.map +1 -1
  55. package/dist/stencil-library/{p-1e4e5fe9.entry.js → p-b1771344.entry.js} +2 -2
  56. package/dist/stencil-library/p-e92dbc2a.entry.js +2 -0
  57. package/dist/stencil-library/p-e92dbc2a.entry.js.map +1 -0
  58. package/dist/stencil-library/stencil-library.esm.js +1 -1
  59. package/dist/types/components/solar-system-form/solar-system-form.d.ts +1 -0
  60. package/dist/types/constants.d.ts +1 -1
  61. package/dist/types/types/lang.d.ts +1 -0
  62. package/dist/types/utils/simulation/types.d.ts +1 -0
  63. package/package.json +1 -1
  64. package/dist/components/p-BLXc1FjC.js.map +0 -1
  65. package/dist/components/p-CrzEBN9H.js.map +0 -1
  66. package/dist/components/p-DMkbzkL_.js.map +0 -1
  67. package/dist/stencil-library/p-958f0a27.entry.js +0 -2
  68. package/dist/stencil-library/p-958f0a27.entry.js.map +0 -1
  69. /package/dist/stencil-library/{p-1e4e5fe9.entry.js.map → p-b1771344.entry.js.map} +0 -0
@@ -207,7 +207,7 @@ const ROW_SPACING = 1;
207
207
  const COLUMN_SPACING = 1;
208
208
  const BORDER_INSET = 0;
209
209
  const DEFAULT_SUNNINESS = 600;
210
- const HEAT_PUMP_CONSUMPTION = 0.05; // kWh per m² per day
210
+ const HEAT_PUMP_CONSUMPTION = 0.02; // kWh per m² per day
211
211
  const CONSUMPTION_PROFILES = {
212
212
  mostly_at_home: [
213
213
  0.1,
@@ -1080,6 +1080,7 @@ const en = {
1080
1080
  electricityPrice: "Electricity Price (€/kWh)",
1081
1081
  compensationRate: "Compensation Rate (€/kWh)",
1082
1082
  autonomy: "Autonomy",
1083
+ totalEnergyConsumption: "Total Energy Consumption",
1083
1084
  costSavings: "Cost Savings (€/year)",
1084
1085
  householdConsumptionTitle: "Household Electricity Consumption",
1085
1086
  consumptionProfileTitle: "Consumption Profile",
@@ -1196,6 +1197,7 @@ const de = {
1196
1197
  electricityPrice: "Strompreis (€/kWh)",
1197
1198
  compensationRate: "Einspeisevergütung (€/kWh)",
1198
1199
  autonomy: "Autarkie",
1200
+ totalEnergyConsumption: "Gesamtenergieverbrauch",
1199
1201
  costSavings: "Einsparungen (€/Jahr)",
1200
1202
  householdConsumptionTitle: "Haushaltsverbrauch",
1201
1203
  consumptionProfileTitle: "Verbrauchprofil",
@@ -1312,6 +1314,7 @@ const es = {
1312
1314
  electricityPrice: "Precio de la electricidad (€/kWh)",
1313
1315
  compensationRate: "Tasa de compensación (€/kWh)",
1314
1316
  autonomy: "Autonomía",
1317
+ totalEnergyConsumption: "Consumo Total de Energía",
1315
1318
  costSavings: "Ahorro (€/año)",
1316
1319
  householdConsumptionTitle: "Consumo de la casa",
1317
1320
  consumptionProfileTitle: "Perfil de consumo",
@@ -2777,7 +2780,7 @@ const SolarExpert = class {
2777
2780
  state.settings.language = this.language;
2778
2781
  const isIPhone = navigator.userAgent.indexOf("iPhone") != -1;
2779
2782
  const isMac = navigator.userAgent.indexOf("Mac OS") != -1;
2780
- state.isIOS = isIPhone || isMac || true;
2783
+ state.isIOS = isIPhone || isMac;
2781
2784
  if (!this.colorScheme) {
2782
2785
  applyThemeToElement(this.el, DEFAULT_COLOR_SCHEME);
2783
2786
  applyThemeGlobally(DEFAULT_COLOR_SCHEME);
@@ -2841,7 +2844,7 @@ const SolarExpert = class {
2841
2844
  }
2842
2845
  render() {
2843
2846
  const t = getLanguageStrings(this.language);
2844
- return (h("div", { key: '6f3298763249aab402504092b95325223d1fd19e', class: "flex flex-col w-full h-full p-3 m-auto", id: "solar-calculator" }, this.showMapSelector
2847
+ return (h("div", { key: 'f9bac9f41ec94a5dd11f85477fc8f739faa7f909', class: "flex flex-col w-full h-full p-3 m-auto", id: "solar-calculator" }, this.showMapSelector
2845
2848
  ? (h("map-selector", { "api-key": this.apiKey, language: this.language }))
2846
2849
  : (h(h.Fragment, null, h("div", { class: "pb-3 flex flex-row gap-4 items-stretch w-full" }, h("div", { class: "relative flex-3" }, h("div", { class: "absolute left-3 top-0 h-full flex items-center text-muted-foreground pointer-events-none" }, h("search-icon", null)), h("input", { ref: (el) => this.inputElement = el, type: "text", placeholder: t.solarExpert
2847
2850
  .searchPlaceholder, class: "w-full pl-10 pr-4 py-2 border border-border rounded-4xl focus:ring-secondary bg-muted text-muted-foreground h-full" })), h("button", { onClick: () => this.handleChooseOnMap(), class: "flex-1 pl-4 pr-4 py-2 border border-border bg-muted rounded-4xl focus:ring-secondary hover:bg-secondary hover:text-muted" }, t.mapSelector.chooseOnMap)), h("map-draw", { apiKey: this.apiKey })))));
@@ -2911,8 +2914,13 @@ function simulateDay(production, consumption, dailyConsumption, battery) {
2911
2914
  const energyDifference = production[hour] - consumption[hour];
2912
2915
  if (energyDifference > 0) {
2913
2916
  energyUsageOfProduction += consumption[hour];
2914
- if (batteryCharge < battery) {
2915
- batteryCharge = Math.min(batteryCharge + energyDifference, battery);
2917
+ if (batteryCharge < battery && batteryCharge + energyDifference <= battery) {
2918
+ batteryCharge = batteryCharge + energyDifference;
2919
+ }
2920
+ else if (batteryCharge < battery) {
2921
+ const batteryDifference = battery - batteryCharge;
2922
+ batteryCharge = battery;
2923
+ soldEnergy += energyDifference - batteryDifference;
2916
2924
  }
2917
2925
  else {
2918
2926
  soldEnergy += energyDifference;
@@ -2926,7 +2934,6 @@ function simulateDay(production, consumption, dailyConsumption, battery) {
2926
2934
  }
2927
2935
  else {
2928
2936
  energyUsageOfProduction += production[hour] + batteryCharge;
2929
- soldEnergy -= energyDifference + batteryCharge;
2930
2937
  batteryCharge = 0;
2931
2938
  }
2932
2939
  }
@@ -2987,6 +2994,7 @@ function simulate(config) {
2987
2994
  autonomy: (summerDay.autonomy + winterDay.autonomy) / 2,
2988
2995
  compensationPerDay: soldEnergy * config.electricityPrice.sell,
2989
2996
  byYearSavedCosts: savedCostsByYear,
2997
+ totalEnergyConsumptionDay: (summerConsumptionWholeDay + winterConsumptionWholeDay) / 2,
2990
2998
  };
2991
2999
  }
2992
3000
 
@@ -3033,6 +3041,16 @@ const SolarSystemForm = class {
3033
3041
  .kWattPeak;
3034
3042
  this.recalculate();
3035
3043
  }
3044
+ formatEuropeanNumber(num, decimals = 2) {
3045
+ const fixed = num.toFixed(decimals);
3046
+ const [integerPart, decimalPart] = fixed.split(".");
3047
+ // Add dots as thousands separators
3048
+ const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
3049
+ // Join with comma as decimal separator
3050
+ return decimalPart
3051
+ ? `${formattedInteger},${decimalPart}`
3052
+ : formattedInteger;
3053
+ }
3036
3054
  recalculate() {
3037
3055
  const simulationConfig = {
3038
3056
  general: {
@@ -3129,13 +3147,13 @@ const SolarSystemForm = class {
3129
3147
  }
3130
3148
  render() {
3131
3149
  const t = getLanguageStrings(state.settings.language);
3132
- return (h("div", { key: 'c58777c83db7eb4dd40579f5545a063b7b6fb524', class: "flex flex-col justify-center items-center w-full h-full pt-4" // style={{
3150
+ return (h("div", { key: '1ae88d30fbe89d5117b06b72258eb614b5e9371d', class: "flex flex-col justify-center items-center w-full h-full pt-4" // style={{
3133
3151
  ,
3134
3152
  // display: (Object.keys(this.systemConfigs).length === 0)
3135
3153
  // ? "none"
3136
3154
  // : "flex",
3137
3155
  // }}
3138
- id: "solar-system-form" }, h("h1", { key: '8f6d8d53a5d39ab0a6397d9e0da03fe711752389', class: "text-2xl font-bold text-secondary mb-4 w-full" }, t.solarSystemForm.title), h("div", { key: 'cfdb4d001314ca2b6588666bdd733274e29475cf', class: "w-full bg-primary rounded-4xl p-6 space-y-6" }, h("div", { key: '0967063f18004832e3da8b4a96f0dedf4a31abad', class: "space-y-4" }, h("h2", { key: 'f4fe8c88c26999faa5a643192d04db865625df1f', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.systemInformation), h("div", { key: 'fa0cdc6da656c99373eec1d736c40d78173ae987', class: "grid grid-rows-3 gap-0" }, h("div", { key: 'a28899e64ec8bd1ad71ebeb6d53dbd7f3b8ebe3c', class: "grid grid-cols-2 gap-4" }, h("label", { key: '2cbaa3a57a884b87c8f1afd87f294bf7423797ab', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.numberOfPanels), h("label", { key: '1e7e9c015e9dbfa4ac9e4bf46c37bfd4ef4fc744', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.panelPeakPower)), h("div", { key: 'cb71e3ac0bdeaa26c6531d7713c92b570bf5916d', class: "grid grid-cols-2 gap-4" }, !this.isIOS()
3156
+ id: "solar-system-form" }, h("h1", { key: '6be2af903cc9eab0aaade44ba5ced159debb7865', class: "text-2xl font-bold text-secondary mb-4 w-full" }, t.solarSystemForm.title), h("div", { key: 'd22714961f748004062408498d98935760fd0ba5', class: "w-full bg-primary rounded-4xl p-6 space-y-6" }, h("div", { key: '2379aa7eff17d0e5e702d5d4374fc17a7fb94ffd', class: "space-y-4" }, h("h2", { key: 'f73f73ccc7b3152b318d9e2c09cf85920a13b236', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.systemInformation), h("div", { key: '8fda12c5d7eec29418ad796112dc64f50e73eead', class: "grid grid-rows-3 gap-0" }, h("div", { key: 'd6a4a9b312299b9f9959a5844bf5b9334b998fec', class: "grid grid-cols-2 gap-4" }, h("label", { key: 'a2a7db81b5bb8e21763464ff4cff3e30bef74fc3', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.numberOfPanels), h("label", { key: 'fc9b18fcd0e8b8f4e878c40e30a22ea397294c5c', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.panelPeakPower)), h("div", { key: 'edf38f4430c8a70bd2b1f39a027657ed59ffeb18', class: "grid grid-cols-2 gap-4" }, !this.isIOS()
3139
3157
  ? (h("input", { type: "number", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.numberOfPanels, readOnly: true }))
3140
3158
  : (h("input", { type: "number", min: "1", max: this.maxPanels, class: "flex-1 px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.numberOfPanels, onInput: (e) => {
3141
3159
  const value = parseInt(e.target
@@ -3146,36 +3164,36 @@ const SolarSystemForm = class {
3146
3164
  this.numberOfPanels = value;
3147
3165
  this.recalculate();
3148
3166
  }
3149
- } })), h("input", { key: 'e4c9dd7bb99d64990d521ac467361b3097e2cf00', type: "number", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.panelPeakPower, readonly: true })), h("div", { key: 'e18942de97c84f26f7f4d2b7c3a1327ad3a18e7f', class: "grid grid-cols-2 gap-4" }, h("div", { key: '381937a1302d2e3ff41f4bc9535f9724ee530f7a', class: "w-full pt-2" }, !this.isIOS() &&
3150
- (h("input", { key: '921c140a10f9aed0af04a7d27d4fd8ad8d5d0b6c', type: "range", min: "1", max: this.maxPanels, step: "1", class: "input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted", value: this.numberOfPanels, onInput: (e) => {
3167
+ } })), h("input", { key: '312408e6c6bbb9badf4b699606ad017e200c6e26', type: "number", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.panelPeakPower, readonly: true })), h("div", { key: 'b02e4d8355f23b0a703056797ba570aea6623ebf', class: "grid grid-cols-2 gap-4" }, h("div", { key: '00ab5e96539ce96f65dc6b612741ca87a89a527c', class: "w-full pt-2" }, !this.isIOS() &&
3168
+ (h("input", { key: '5b892d1da7810fb107f17939469329478ff6af32', type: "range", min: "1", max: this.maxPanels, step: "1", class: "input-slider w-full custom-range appearance-none rounded-full bg-transparent [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-black/25 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:h-[10px] [&::-webkit-slider-thumb]:w-[10px] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-muted", value: this.numberOfPanels, onInput: (e) => {
3151
3169
  this.numberOfPanels =
3152
3170
  parseInt(e.target
3153
3171
  .value);
3154
3172
  this.recalculate();
3155
- } }))))), h("div", { key: '37503437e56fc85df237186080608fd81a4dc6b4', class: "bg-muted rounded-4xl p-4" }, h("div", { key: 'fcb8814774c956c2708f904e5acdcb3e92db2ed7', class: "flex items-center justify-between" }, h("span", { key: '5a6c97b4d17f8911d7712ad834a6d26191525606', class: "text-text-muted" }, t.solarSystemForm.totalSystemPeakPower), h("span", { key: '2d3cadc2f9f25ec8d007e4b05cfc6adae41ce7ab', class: "text-xl font-bold text-secondary" }, (DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *
3156
- this.numberOfPanels).toFixed(1), " kW")))), h("div", { key: '12925efb74638a148c07070056c8c9a8a482fe8f', class: "space-y-4" }, h("h2", { key: 'ba00a7cb660abc5d1eed941f2204b66f296b4652', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.householdConsumptionTitle), h("div", { key: 'd499fed07d0d96b195139711d7aced657ea9c836', class: "grid grid-rows-2 gap-0" }, h("div", { key: 'd3b4ccf0494101d1a8eb192d1d09812c5c3cef80', class: "grid grid-cols-2 gap-4" }, h("label", { key: '2332ef94293d829a67e63f189bd2bc725f4818a2', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.annualConsumption), h("label", { key: '6da6d21bf7fbe57c87b83f6ac20dec3c9a6fc736', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.consumptionProfileTitle)), h("div", { key: 'd56fefc25176cddb7218296e4cc85e32e9c7421e', class: "grid grid-cols-2 gap-4" }, h("input", { key: 'abe623fed5354ec916b388e7d31ad05dd9ca6108', type: "number", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.householdConsumption, onInput: (e) => {
3173
+ } }))))), h("div", { key: '38eba0ef58b127f95e6bafcf0604e6b515db9341', class: "bg-muted rounded-4xl p-4" }, h("div", { key: '00d5d43ce80bedafe103ef31835fada196761cfa', class: "flex items-center justify-between" }, h("span", { key: '9c2500184852f0b7b4de75b1caf0a70d3c86fb7b', class: "text-text-muted" }, t.solarSystemForm.totalSystemPeakPower), h("span", { key: 'de96fd48027d7a95bb628b0455a042fee4033dad', class: "text-xl font-bold text-secondary" }, (DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *
3174
+ this.numberOfPanels).toFixed(1), " kW")))), h("div", { key: 'e03cc455e8a3f74b33e07b25d6ad03ec02aa573c', class: "space-y-4" }, h("h2", { key: 'c76da7ecabe9c84dfb6648aa752241a3400f696c', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.householdConsumptionTitle), h("div", { key: '574a3c0b62f1e1972ae79047dc6cc2f298a4479e', class: "grid grid-rows-2 gap-0" }, h("div", { key: 'd29dda751ad3ec80253c2247db21f0d831e5ecbd', class: "grid grid-cols-2 gap-4" }, h("label", { key: '637a2bf8d0b779a9819742d1083a98f72cbdff92', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.annualConsumption), h("label", { key: '3756f091f2f85dafe6301d82789a6c69251fd2f8', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.consumptionProfileTitle)), h("div", { key: '91822e7ef92a9297abcfe4ee0900377a26919542', class: "grid grid-cols-2 gap-4" }, h("input", { key: 'd6efc3b9d5482e8d4c4a1e212f11d4e1663781eb', type: "number", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", value: this.householdConsumption, onInput: (e) => {
3157
3175
  this.householdConsumption = parseInt(e.target
3158
3176
  .value);
3159
3177
  this.recalculate();
3160
- } }), h("select", { key: 'c6a8812404e8fb8827588fd08bf3b70e43512c23', class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", onChange: (e) => {
3178
+ } }), h("select", { key: 'd206161ce9c8b56f6b71ff23d688d76aa87ed10e', class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground", onChange: (e) => {
3161
3179
  this.consumptionProfile =
3162
3180
  e.target
3163
3181
  .value;
3164
3182
  this.recalculate();
3165
- } }, h("option", { key: '53237c3fb0b685a91414a98323a1ba16deca335a', value: "mostly_at_home", selected: this.consumptionProfile ===
3183
+ } }, h("option", { key: '3277b1fa3f7adb6761f61e120b82c0cc0afdffc2', value: "mostly_at_home", selected: this.consumptionProfile ===
3166
3184
  "mostly_at_home" }, t.solarSystemForm.consumptionProfiles
3167
- .mostlyAtHome), h("option", { key: 'a713af601a9a122e83a7610df91dc87046c32684', value: "mostly_away", selected: this.consumptionProfile ===
3185
+ .mostlyAtHome), h("option", { key: 'ba986968b4e63e53bbefba4551cb3d13d2631b86', value: "mostly_away", selected: this.consumptionProfile ===
3168
3186
  "mostly_away" }, t.solarSystemForm.consumptionProfiles
3169
- .mostlyAway))))), h("div", { key: 'e22302c5432e13704827226a9348eb5135fbd168', class: "space-y-4" }, h("h2", { key: '22ff557a03b832de10382cbd9e2934f1e40f48c1', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.additionalComponents.title), h("div", { key: '8dc84f2bee4d59e5a9024b252a990a6d86729bfa', class: "flex flex-col gap-4" }, h("div", { key: 'dfa92f5717a77e1f1d2bb6549ae38ce02aaccb7c', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '70a5a4390c42cd96d5ea7238842bc9a30e387d24', class: "flex items-center justify-between" }, h("div", { key: 'c6454e366f5086e6ca7964b2d41561a4f422ed1a', class: "flex items-center gap-2" }, h("input", { key: '2e1d3ebd2908ded2959392bee1a08c268e34d612', type: "checkbox", id: "heatPump", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.heatPump > 0, onChange: (e) => {
3187
+ .mostlyAway))))), h("div", { key: 'b1df61d9586befe53d46457fd2d0836a5b5bc697', class: "space-y-4" }, h("h2", { key: 'd24180e9bbc0d4f625154ad8bff99e23a0cb1a62', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.additionalComponents.title), h("div", { key: 'b559b111e2005d63db36e500deae0733a473aa8d', class: "flex flex-col gap-4" }, h("div", { key: '139ff7f1d6624ca6fd31a155c36729be21e1f8b0', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '3db4013aaa29485966b13231e35d34f300abfc1b', class: "flex items-center justify-between" }, h("div", { key: '2fbd022c9d21c798308d713392224a7161a18799', class: "flex items-center gap-2" }, h("input", { key: '379f28e54b9cb06be1e6581cee9bfe280de5c15b', type: "checkbox", id: "heatPump", class: "w-4 h-4 accent-tertiary border-border rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.heatPump > 0, onChange: (e) => {
3170
3188
  this.heatPump =
3171
3189
  e.target
3172
3190
  .checked
3173
3191
  ? 100
3174
3192
  : 0;
3175
3193
  this.recalculate();
3176
- } }), h("label", { key: '11a45cadaf1bc2c8661da788eca3c7d0e2560e13', htmlFor: "heatPump", class: "text-text-muted" }, t.solarSystemForm
3194
+ } }), h("label", { key: 'a4ae005639f2703c4c3ba336404fa0e19822f5d3', htmlFor: "heatPump", class: "text-text-muted" }, t.solarSystemForm
3177
3195
  .additionalComponents
3178
- .heatPump)), (this.heatPump > 0 && !this.isIOS()) && (h("span", { key: '1f8bd12df9d5e0357afd755c83d1cf592b6b5384', class: "text-text-muted" }, this.heatPump, " m\u00B2"))), this.heatPump > 0 && (h("div", { key: '1fdd01ffe44f75daf94e5c9b716519d1636f6e3a', class: "flex flex-col gap-2" }, this.isIOS()
3196
+ .heatPump)), (this.heatPump > 0 && !this.isIOS()) && (h("span", { key: '54d4a2e5fe6cd0cbccc8d87f0199a6e241ff9b72', class: "text-text-muted" }, this.heatPump, " m\u00B2"))), this.heatPump > 0 && (h("div", { key: 'be90b9492b1ae91b49564e646f46b7f80c766ad4', class: "flex flex-col gap-2" }, this.isIOS()
3179
3197
  ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "10", max: "300", step: "10", class: "flex-1 px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", style: {
3180
3198
  border: "1px solid var(--color-border)",
3181
3199
  }, value: this.heatPump, onInput: (e) => {
@@ -3193,41 +3211,41 @@ const SolarSystemForm = class {
3193
3211
  parseInt(e.target
3194
3212
  .value);
3195
3213
  this.recalculate();
3196
- } }))))), h("div", { key: '94b4d3e5d6bea8994012b3500160780796338202', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '880a456c5d9916a467be761ffb6d48a0ac702095', class: "flex items-center justify-between" }, h("div", { key: '7ee0b35d4b616af184dd94ec11e2e5cba538aacd', class: "flex items-center gap-2" }, h("input", { key: 'cebabbd261270049b52c3e471e8a02588c41af5f', type: "checkbox", id: "electricCar", class: "w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.electricCar, onChange: (e) => {
3214
+ } }))))), h("div", { key: '5a15fbb22033d5bf3aa17412318e5caba273409f', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '14c992b960da894105afe998908091f71d8e9556', class: "flex items-center justify-between" }, h("div", { key: 'c620cfc146bfe4dfb963c8f4fe9f7da6b8fb03b7', class: "flex items-center gap-2" }, h("input", { key: 'ca46124ad41d16279663a58ec486ccd5869601ef', type: "checkbox", id: "electricCar", class: "w-4 h-4 accent-tertiary border-border rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.electricCar, onChange: (e) => {
3197
3215
  this.electricCar =
3198
3216
  e.target
3199
3217
  .checked;
3200
3218
  this.recalculate();
3201
- } }), h("label", { key: 'a922eeb0abc8731c0410c308a3ea55d93961dfaf', htmlFor: "electricCar", class: "text-text-muted" }, t.solarSystemForm
3219
+ } }), h("label", { key: 'dd5f3537a4f0b436b4b84e20726ecd95694df4a4', htmlFor: "electricCar", class: "text-text-muted" }, t.solarSystemForm
3202
3220
  .additionalComponents
3203
- .electricCar))), this.electricCar && (h("div", { key: '0c78c7f3176a0f6ab9c41c9876cf1a035877c798', class: "flex flex-col gap-2" }, h("div", { key: '722f0f8c09f037d75c7721c0bd7141da781f3c0c', class: "grid grid-cols-2 gap-4" }, h("label", { key: '258ee50ded063df8322520e2fdc7c7891b673c66', class: "text-sm text-text-muted" }, t.solarSystemForm
3221
+ .electricCar))), this.electricCar && (h("div", { key: '3d8faac9b29457cabaef3e82fd490d7669c2ed79', class: "flex flex-col gap-2" }, h("div", { key: 'fd885be1fd003f9724398f97ea459144738cbc90', class: "grid grid-cols-2 gap-4" }, h("label", { key: 'bcfd46f61643c0d5c4a9c93e990ff6be4937efc2', class: "text-sm text-text-muted" }, t.solarSystemForm
3204
3222
  .additionalComponents
3205
- .chargingTime), h("label", { key: '7ae9cfa77cd8ced89d1598ef09fcc4772133695e', class: "text-sm text-text-muted" }, t.solarSystemForm
3223
+ .chargingTime), h("label", { key: 'acd1b8541b5d814e81949d06d2d1d56cc872fbd3', class: "text-sm text-text-muted" }, t.solarSystemForm
3206
3224
  .additionalComponents
3207
- .kilometersPerYear)), h("div", { key: '1f9244bd861b20278eec8cbca21cf611a7b923f6', class: "grid grid-cols-2 gap-4" }, h("select", { key: '39022b4df361b6efb4f57057b27dc5419cc533be', class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", onChange: (e) => {
3225
+ .kilometersPerYear)), h("div", { key: '1a9772ff5b6b4f3285afea70d9d5953bd3501d02', class: "grid grid-cols-2 gap-4" }, h("select", { key: 'd45e7979f476bd3afe2ef3a62107240b053f9bbb', class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", onChange: (e) => {
3208
3226
  this.electricCarChargingTime =
3209
3227
  e.target
3210
3228
  .value;
3211
3229
  this.recalculate();
3212
3230
  }, style: {
3213
3231
  border: "1px solid var(--color-border)",
3214
- } }, h("option", { key: '3ac38d888755fe1ff1bbcdee4ac2ecbfbd51b8a6', value: "day", selected: this
3232
+ } }, h("option", { key: 'c23713921e55368b7f4013503c1aa422dea05fd0', value: "day", selected: this
3215
3233
  .electricCarChargingTime ===
3216
3234
  "day" }, t.solarSystemForm
3217
3235
  .additionalComponents
3218
- .chargingTimeDay), h("option", { key: 'a6a8cca9b5f127aa4331cc412ea56da2ddfa480e', value: "night", selected: this
3236
+ .chargingTimeDay), h("option", { key: '67f440a8ba935e56098aae561f7f338dab01b219', value: "night", selected: this
3219
3237
  .electricCarChargingTime ===
3220
3238
  "night" }, t.solarSystemForm
3221
3239
  .additionalComponents
3222
- .chargingTimeNight)), h("input", { key: 'd44e83a3e68f29ffbcc8c21132c3c357f4025eba', type: "number", min: "1000", max: "50000", step: "1000", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.kmDrivenPerYear, onInput: (e) => {
3240
+ .chargingTimeNight)), h("input", { key: '5d819884df9ba63f940a88bfd0d9d36fc988e56e', type: "number", min: "1000", max: "50000", step: "1000", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.kmDrivenPerYear, onInput: (e) => {
3223
3241
  this.kmDrivenPerYear =
3224
3242
  parseInt(e.target
3225
3243
  .value);
3226
3244
  this.recalculate();
3227
3245
  }, style: {
3228
3246
  border: "1px solid var(--color-border)",
3229
- } }))))), h("div", { key: '78887c816adeaeecd3503953e6079678ea5ffa8a', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '0f4e2b348c0e7e7789c7a2badfbddfbb668e4842', class: "flex items-center justify-between" }, h("label", { key: '5eaa71f1ae5a7c08bdbd3ee1b8ea18767738b9f0', class: "text-text-muted" }, t.solarSystemForm.additionalComponents
3230
- .battery), !this.isIOS() && (h("span", { key: 'f627ed9f5b6004bedfc99fed880701783e1f6b8c', class: "text-text-muted" }, this.battery, " kWh"))), h("div", { key: 'ae29676644ea5884897912332204f8df2edcc913', class: "flex flex-col gap-2" }, this.isIOS()
3247
+ } }))))), h("div", { key: '0a5d7fbfc2abc407c28d189b60a06df9eff66b1a', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '6996b502573c22718ebf8668382700e8b1a52e9b', class: "flex items-center justify-between" }, h("label", { key: '6b1bc5859ad5dd7c40726f5e04a41b5470afa20e', class: "text-text-muted" }, t.solarSystemForm.additionalComponents
3248
+ .battery), !this.isIOS() && (h("span", { key: 'b9a2629a617c204f9064b447b13e978e2df0e71b', class: "text-text-muted" }, this.battery, " kWh"))), h("div", { key: '75726ee7956ee611de845ea2349713e3a156c4f2', class: "flex flex-col gap-2" }, this.isIOS()
3231
3249
  ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "0", max: "20", step: "1", class: "flex-1 px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.battery, onInput: (e) => {
3232
3250
  const value = parseInt(e.target
3233
3251
  .value);
@@ -3244,41 +3262,55 @@ const SolarSystemForm = class {
3244
3262
  this.battery = parseInt(e.target
3245
3263
  .value);
3246
3264
  this.recalculate();
3247
- } })))))), h("div", { key: '3ff4f76e3998594832541e7c29b62fd066eb6b93', class: "space-y-4" }, h("h2", { key: '0d699ce4651eafa967464bd2d514e33e7d7594f5', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.electricityCostsTitle), h("div", { key: '2fbf7001ef764bbdfcebb68aee462b9015740e42', class: "grid grid-rows-2 gap-0" }, h("div", { key: '822c1a7ebde43a0e82d8e85a738f7c6d71d59312', class: "grid grid-cols-3 gap-4" }, h("label", { key: '7037f5005c69ca0fc06706190b2a14b0e65d0bab', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.electricityPrice), h("label", { key: 'c57af75b004add729b4ddddc118534b2fdb783bf', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.compensationRate), h("label", { key: 'd28f0391fc0e52f6a6bbe454302afd54493be80b', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.annualPriceIncrease)), h("div", { key: '237e6d85d909b1b08d00cdc3ce3c340513c9ffd8', class: "grid grid-cols-3 gap-4 text-primary-foreground" }, h("input", { key: '59ac48fca752b9fb654342ec2bde43599a8451b4', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.electricityPrice.toFixed(2), onInput: (e) => {
3265
+ } })))))), h("div", { key: 'ead8323aa774b23dc250685fb1e790b239070166', class: "space-y-4" }, h("h2", { key: '1eba342b1d3b4dfd7bd1173fa7381825d3070bd2', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.electricityCostsTitle), h("div", { key: '14baaadcb93e5ee4076a5565156ca48620801dac', class: "grid grid-rows-2 gap-0" }, h("div", { key: '6355241c7a8b27e1c0eb39b5b678286c7e039e64', class: "grid grid-cols-3 gap-4" }, h("label", { key: '2617defe06150d2e67e9470950ae3073af947a92', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.electricityPrice), h("label", { key: '188ce676aa0c1e528a11718068080a68257bf99e', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.compensationRate), h("label", { key: '850a4ef204bb9487ec6385e17bb0c06a063dd53c', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.annualPriceIncrease)), h("div", { key: '4f6ff1e0a3147984cd000946017619c838016f12', class: "grid grid-cols-3 gap-4 text-primary-foreground" }, h("input", { key: 'bb173e355fb17bc3c760342c16b1d28a2293c9d1', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.electricityPrice.toFixed(2), onInput: (e) => {
3248
3266
  this.electricityPrice = parseFloat(e.target
3249
3267
  .value);
3250
3268
  this.recalculate();
3251
- } }), h("input", { key: '3644ceacd7733d2f74ffc5891522d4dd1ab67851', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.compensationRate.toFixed(2), onInput: (e) => {
3269
+ } }), h("input", { key: 'f75ea4cfad61746c716a985ec3edf8dd93700dea', type: "number", step: "0.01", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.compensationRate.toFixed(2), onInput: (e) => {
3252
3270
  this.compensationRate = parseFloat(e.target
3253
3271
  .value);
3254
3272
  this.recalculate();
3255
- } }), h("input", { key: '8e453b5b7665c51a5bb8160132bbcc8da5bf5159', type: "number", step: "0.1", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.annualPriceIncrease.toFixed(1), onInput: (e) => {
3273
+ } }), h("input", { key: '34ad225b5da90c29d595680369a683236b018b4f', type: "number", step: "0.1", class: "w-full px-4 py-2 rounded-4xl border border-border focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.annualPriceIncrease.toFixed(1), onInput: (e) => {
3256
3274
  this.annualPriceIncrease = parseFloat(e.target
3257
3275
  .value);
3258
3276
  this.recalculate();
3259
- } })))), h("div", { key: '4282852c39dde81bdf5b54ad8ea4e0a8aefaaf18', class: "space-y-4 p-4 border border-border rounded-4xl", style: {
3277
+ } })))), h("div", { key: 'be3c737cf611997409562b6328f0becfce6eee56', class: "space-y-4 p-4 border border-border rounded-4xl", style: {
3260
3278
  border: "1px solid var(--color-border)",
3261
- } }, h("h2", { key: '7fcfd93db114602d3c1250c0b9ad5c106e2118d0', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.resultsTitle), h("div", { key: 'aa0da43f3ef2daf8f9b3bb83e15493300dd3d795', class: "bg-muted rounded-4xl p-4" }, h("div", { key: '82b9f95d27582a7e6fabc92b5f8c4f94a7760773', class: "flex items-center justify-between" }, h("span", { key: 'ac3a20954389eafb4222de55a9c380c6e6911822', class: "text-text-muted" }, t.solarSystemForm.autonomy), h("span", { key: '42573f1d642adc6e7d81c2205d64659fd5690ec6', class: "text-xl font-bold text-secondary" }, this.autonomy > 100
3279
+ } }, h("h2", { key: 'd85e0b1968326cbfa47ba2447cd625b5e801933b', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.resultsTitle), h("div", { key: '44e90f2bf38d401df3fba4047bf6015c01c00e73', class: "bg-muted rounded-4xl p-4" }, h("div", { key: '10f2c095e5970d55e197d3e2d5121e1b12c82ac8', class: "flex items-center justify-between" }, h("span", { key: '6671e18dc641d84640d35395ad9d3ed4ee35fcd4', class: "text-text-muted" }, t.solarSystemForm.autonomy), h("span", { key: '89c304d23420e6daa3d046640df30d8a0af1eb46', class: "text-xl font-bold text-secondary" }, this.autonomy > 100
3262
3280
  ? "100"
3263
- : this.autonomy.toFixed(1), "%")), h("div", { key: '7b7ca03f694682ada5f3156e065ffbebfe8a162e', class: "flex items-center justify-between mt-4" }, h("div", { key: '39f1d25e85ab1f3ff1ab9f06874cb1e3178f1707', class: "flex items-center gap-2" }, h("span", { key: '0c62c76a68fa8532240fe28333c1ce592ddc6787', class: "text-text-muted" }, t.solarSystemForm.costSavings), h("div", { key: 'fc6baa108a6fc38d70562d147488085c17b3376b', class: "relative group" }, h("svg", { key: 'd6806679a14d75f3e9ef72bd3ac352855f8b30ae', xmlns: "http://www.w3.org/2000/svg", class: "h-5 w-5 text-gray-400 cursor-help", viewBox: "0 0 20 20", fill: "currentColor" }, h("path", { key: '9033bbf13fa59641816338bca9ea3c2272b5dcc0', "fill-rule": "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z", "clip-rule": "evenodd" })), h("div", { key: '1fad5e3281d00c91bdb0a112e98279d5107ed76c', class: "absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-2 bg-gray-800 text-muted text-sm rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none" }, t.solarSystemForm
3264
- .savingsDisclaimer))), h("span", { key: 'a99bd5d3f22f39fbfce522e6e8b9fa65d1fc1785', class: "text-xl font-bold text-success" }, this.costSavings.toFixed(2), "\u20AC/", t
3265
- .solarSystemForm.year)), h("div", { key: '8aeb935408cfa36788a5396dd8a0719e93216721', class: "flex items-center justify-between mt-4" }, h("div", { key: 'aa778aabdfe02aeea72ef37a0087cfb03adbef3d', class: "flex items-center gap-2" }, h("span", { key: '4bc1dd985b07e229c3293db4c4f3be74bd885cec', class: "text-text-muted" }, "Einspeiseverg\u00FCtung 25 Jahre")), h("span", { key: '4eb548881579db3bdffcf5c0bcd0630c19b6961e', class: "text-xl font-bold text-success" }, this.compensation25Years.toFixed(2), "\u20AC")), h("div", { key: '00d848e65e0a13d7278ca1cef2a8a6c0810cef08', class: "flex items-center justify-between mt-4" }, h("div", { key: 'e33274627fa4a5d71b35bbc030212810cd1ecc15', class: "flex items-center gap-2" }, h("span", { key: '45fb735ec260bbea7ad6101f7aacac4e7a1f3313', class: "text-text-muted" }, "Geldwerter Vorteil 25 Jahre")), h("span", { key: '2d7bc5f25a4491e00a1985c9bf255abdaef729dd', class: "text-xl font-bold text-success" }, this.savedCosts25Years.toFixed(2), "\u20AC")))), h("div", { key: '603eafb9e819e4a2da8f919c2de5a7e7ed7b6ac9', class: "space-y-4 pt-4" }, h("h2", { key: '50de58cd408c63518a3a1aeebc2168e603f8f537', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.requestOffer), h("div", { key: 'cc85f1661fba68643d3f043ff51b1c2070e5d32a', class: "grid gap-4" }, h("div", { key: '54040b2ac5cb46fc2bbdabdfb78f1d25fa521b2d', class: "grid grid-cols-2 gap-4" }, h("label", { key: '9404270bfbd58d022fafff6646ff1dbf68352617', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.name), h("label", { key: 'ee3bb80e18b29446630d10f49e94d3ce8e8e3f46', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.email)), h("div", { key: '298da00d7046b6437b175f3eb8859281392d75dd', class: "grid grid-cols-2 gap-4" }, h("div", { key: '31b01646d5370285c8dc0d5470643cd679f1eaee' }, h("input", { key: '27764cb15c5150f8ddd5c50b7559fe807014d021', type: "text", class: `w-full px-4 py-2 rounded-4xl border ${this.nameError
3281
+ : this.formatEuropeanNumber(this.autonomy, 1), "%")), h("div", { key: '3629db34720f0053aaca70a6ee61ffb2a0c1b446', class: "flex items-center justify-between mt-4" }, h("span", { key: '91d347389c7e63b0d639d1bbc03f970cef92dc2b', class: "text-text-muted" }, t.solarSystemForm.totalEnergyConsumption), h("span", { key: 'd31714768be7b21f3470ee1e90dff8f4c6484b79', class: "text-xl font-bold text-secondary" }, (() => {
3282
+ let total = this.householdConsumption;
3283
+ // Add electric car consumption: km/year * 17kWh/100km
3284
+ if (this.electricCar) {
3285
+ total +=
3286
+ (this.kmDrivenPerYear * 17) /
3287
+ 100;
3288
+ }
3289
+ // Add heat pump consumption: m2 * 60kWh/m2/year (typical estimate)
3290
+ if (this.heatPump > 0) {
3291
+ total += this.heatPump *
3292
+ HEAT_PUMP_CONSUMPTION * 365;
3293
+ }
3294
+ return this.formatEuropeanNumber(total, 0);
3295
+ })(), " kWh/", t.solarSystemForm.year)), h("div", { key: 'ff25e0aa4e9e0d240da27798344cecd87a50a980', class: "flex items-center justify-between mt-4" }, h("div", { key: '1bb0704dcbe48cee6059e9434d70a8bc41942664', class: "flex items-center gap-2" }, h("span", { key: 'cdccfd451a6e8658c2a0fe94d7cee4f091883aa8', class: "text-text-muted" }, t.solarSystemForm.costSavings), h("div", { key: '0f1126a6e4c08447c8fc58632efdb15a910d14a2', class: "relative group" }, h("svg", { key: '001578216fc70a81618354955c8566334ddd8537', xmlns: "http://www.w3.org/2000/svg", class: "h-5 w-5 text-gray-400 cursor-help", viewBox: "0 0 20 20", fill: "currentColor" }, h("path", { key: '23fa0cf5f2cd0cdfc8de271194e7ca88a0daed0b', "fill-rule": "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z", "clip-rule": "evenodd" })), h("div", { key: 'a1aa7e03d52fe658462e32df3e533c502827f7a7', class: "absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-2 bg-gray-800 text-muted text-sm rounded-lg opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none" }, t.solarSystemForm
3296
+ .savingsDisclaimer))), h("span", { key: '56375d976935a662e6d2511cad3d5834c120df3f', class: "text-xl font-bold text-success" }, this.formatEuropeanNumber(this.costSavings), "\u20AC/", t
3297
+ .solarSystemForm.year)), h("div", { key: 'cd828e6c6926daab2233cedf4305e2fdb97be676', class: "flex items-center justify-between mt-4" }, h("div", { key: '0795d59077e5b0c797f057e031831cee8534c3c9', class: "flex items-center gap-2" }, h("span", { key: '6f48091f7555b8a325ad09738ac0cdb31e865154', class: "text-text-muted" }, "Einspeiseverg\u00FCtung 25 Jahre")), h("span", { key: 'f7791292253c6806157551d30170e4688ed3458a', class: "text-xl font-bold text-success" }, this.formatEuropeanNumber(this.compensation25Years), "\u20AC")), h("div", { key: '27c89b500a48af7f669ebaa0b489d94b976686e2', class: "flex items-center justify-between mt-4" }, h("div", { key: '21626f89fe1fd478b6ebf8dc28d98e9078e184ce', class: "flex items-center gap-2" }, h("span", { key: '157a25f00e437addc545785cb2238a61f23778cd', class: "text-text-muted" }, "Geldwerter Vorteil 25 Jahre")), h("span", { key: '450ca4a9726b877821b18efdb0f78993d43783be', class: "text-xl font-bold text-success" }, this.formatEuropeanNumber(this.savedCosts25Years), "\u20AC")))), h("div", { key: '27f91849d3fd0fa188dfb3303c5088fbb31477f6', class: "space-y-4 pt-4" }, h("h2", { key: '1fb4615d9f7fc7499796ff4bfc1f94de06347230', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.requestOffer), h("div", { key: 'b0fc51a1e23c8e6d888f52cb6c348ef87e0c021d', class: "grid gap-4" }, h("div", { key: 'dbc8276df0f39e6206cafad9ee78198bba4231a2', class: "grid grid-cols-2 gap-4" }, h("label", { key: '17f832a75bf26e206baf332a852e9918287ceddd', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.name), h("label", { key: 'c5f51ed3415cee24796980972003cb9d3d67377f', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.email)), h("div", { key: 'aca926ba4957bc3f49c078ee26c187b2fa2e09c5', class: "grid grid-cols-2 gap-4" }, h("div", { key: 'bf67470f202a91c87794b9f524be7d6f8798a9d6' }, h("input", { key: 'e0ef0652f15c0b8131be5c08ab7e676053723403', type: "text", class: `w-full px-4 py-2 rounded-4xl border ${this.nameError
3266
3298
  ? "border-error"
3267
3299
  : "border-border"} focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, value: this.name, onInput: (e) => {
3268
3300
  this.name =
3269
3301
  e.target
3270
3302
  .value;
3271
3303
  this.validateForm();
3272
- }, placeholder: "Your name" }), this.nameError && (h("p", { key: 'fa62eac9fc7f58f4b0505dc8398ae7447524ac4f', class: "text-error text-sm mt-1" }, this.nameError))), h("div", { key: '936b2091fc5f889f7c98f3bbe9c783ebfcf97030' }, h("input", { key: 'd7f4bf93bee30c5dc47c14143c527be562ccdbfd', type: "email", class: `w-full px-4 py-2 rounded-4xl border ${this.emailError
3304
+ }, placeholder: "Your name" }), this.nameError && (h("p", { key: '4f4b48a763a00e0c3b01a7fb0114f34b233c0fd3', class: "text-error text-sm mt-1" }, this.nameError))), h("div", { key: 'c8ab7002857c3826009860ab2ebf9d87c1bde1b7' }, h("input", { key: 'd8b3df2653a9e8391f3322498757393342f2a86d', type: "email", class: `w-full px-4 py-2 rounded-4xl border ${this.emailError
3273
3305
  ? "border-error"
3274
3306
  : "border-border"} focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, value: this.email, onInput: (e) => {
3275
3307
  this.email =
3276
3308
  e.target
3277
3309
  .value;
3278
3310
  this.validateForm();
3279
- }, placeholder: "your.email@example.com" }), this.emailError && (h("p", { key: '32c8ca2e1de772c5c2072f52827393e0aad287f2', class: "text-error text-sm mt-1" }, this.emailError))))), h("div", { key: '5ac2456b1e783e86d21405db8b34ee22ad5e88f3', class: "flex justify-center" }, h("button", { key: 'f4b4e6d7490e01a29e4065747fe64dec7ca06f37', onClick: () => this.handleRequestOffer(), disabled: !this.name.trim() ||
3311
+ }, placeholder: "your.email@example.com" }), this.emailError && (h("p", { key: '8f1b0cfb3251e70294e5f67c461013ea935c11dc', class: "text-error text-sm mt-1" }, this.emailError))))), h("div", { key: 'eb74ae3147ff1d072050658b17016f6d03a29f35', class: "flex justify-center" }, h("button", { key: '448e329bde1237be4e2fbd12dd98ad36a9a558e3', onClick: () => this.handleRequestOffer(), disabled: !this.name.trim() ||
3280
3312
  !this.email.trim() || !!this.nameError ||
3281
- !!this.emailError, class: "px-4 py-2 bg-secondary rounded-4xl hover:bg-tertiary transition-colors duration-200 text-muted" }, t.solarSystemForm.requestOfferButton))))));
3313
+ !!this.emailError, class: "px-4 py-2 bg-secondary rounded-4xl hover:bg-tertiary transition-colors duration-200", style: { color: "var(--color-muted)" } }, t.solarSystemForm.requestOfferButton))))));
3282
3314
  }
3283
3315
  static get watchers() { return {
3284
3316
  "systemConfigs": ["updateSystemConfigs"]
@@ -3301,9 +3333,13 @@ const ToolBox = class {
3301
3333
  return (h("div", { key: '6a249c8eddd0bf541a98f77d09bcc9e297e8ec63', class: "flex lg:gap-4 rounded-4xl bg-primary p-4 flex-wrap justify-center w-full text-xs" }, tools.map((tool) => {
3302
3334
  const toolStrings = t.mapDraw.tools[tool.name];
3303
3335
  return (h("button", { class: `px-4 py-2 rounded-4xl transition-colors duration-200 ${this.currentTool.name === tool.name
3304
- ? "bg-secondary hover:bg-secondary/80 text-secondary-foreground"
3305
- : "bg-primary hover:bg-muted text-primary-foreground"}`, "aria-label": toolStrings.ariaLabel, title: toolStrings.explanation, onClick: () => this.onToolSelect(tool) }, h("div", { class: "flex items-center gap-1 flex-col" }, h("icon-selector", { name: tool.icon }), h("span", null, toolStrings.name))));
3306
- }), h("button", { key: 'bc2dc6f90419ca7a8ff0ede18b82c2ad51b94280', class: `px-4 py-2 rounded-4xl transition-colors duration-200 bg-primary hover:bg-muted text-primary-foreground`, "aria-label": undoToolStrings.ariaLabel, title: undoToolStrings.explanation, onClick: () => this.undoCallback() }, h("div", { key: '1112ed1599e5ef3c007dd9122cca62b42137852c', class: "flex items-center gap-1 flex-col" }, h("undo-icon", { key: '3b7425e904e07e8c17fb538eef2bfedb74837ab3' }), h("span", { key: 'b5df30aa88a8d323ff9855ebcdc3a54226092a46' }, undoToolStrings.name)))));
3336
+ ? "bg-secondary hover:bg-secondary/80"
3337
+ : "bg-primary hover:bg-muted"}`, style: {
3338
+ color: this.currentTool.name === tool.name
3339
+ ? "var(--color-secondary-foreground)"
3340
+ : "var(--color-primary-foreground)",
3341
+ }, "aria-label": toolStrings.ariaLabel, title: toolStrings.explanation, onClick: () => this.onToolSelect(tool) }, h("div", { class: "flex items-center gap-1 flex-col" }, h("icon-selector", { name: tool.icon }), h("span", null, toolStrings.name))));
3342
+ }), h("button", { key: 'b9eefc37d84ce8cf1fc3ea27fd0135d477a30eb2', class: `px-4 py-2 rounded-4xl transition-colors duration-200 bg-primary hover:bg-muted text-primary-foreground`, "aria-label": undoToolStrings.ariaLabel, title: undoToolStrings.explanation, onClick: () => this.undoCallback() }, h("div", { key: '06388aa01a0a70de8ffb202717e4d63df6c9cd1b', class: "flex items-center gap-1 flex-col" }, h("undo-icon", { key: 'ba5614562d52b0b06be3a9f557ed3dcb103eeeaa' }), h("span", { key: '39aeaf8cd4c4cabd39bec5051ef0eb53459e7846' }, undoToolStrings.name)))));
3307
3343
  }
3308
3344
  };
3309
3345
  ToolBox.style = outputCss$1;