blue-chestnut-solar-expert 0.0.25 → 0.0.27
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/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
- package/dist/cjs/eraser-icon_16.cjs.entry.js +47 -47
- package/dist/cjs/eraser-icon_16.cjs.entry.js.map +1 -1
- package/dist/cjs/loading-widget.cjs.entry.js +1 -1
- package/dist/cjs/solar-calculator.cjs.entry.js +1 -1
- package/dist/collection/components/map-draw/map-draw.js +6 -6
- package/dist/collection/components/map-draw/map-draw.js.map +1 -1
- package/dist/collection/components/settings/settings.js +8 -8
- package/dist/collection/components/settings/settings.js.map +1 -1
- package/dist/collection/components/solar-calculator/solar-calculator.js +1 -1
- package/dist/collection/components/solar-expert/solar-expert.js +1 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +31 -31
- package/dist/collection/components/widgets/loading-widget.js +1 -1
- package/dist/collection/store.js +1 -1
- package/dist/collection/store.js.map +1 -1
- package/dist/components/loading-widget.js +1 -1
- package/dist/components/map-draw.js +1 -1
- package/dist/components/map-selector.js +1 -1
- package/dist/components/{p-BLXc1FjC.js → p-BFcukOp8.js} +3 -3
- package/dist/components/{p-BLXc1FjC.js.map → p-BFcukOp8.js.map} +1 -1
- package/dist/components/{p-BLraILof.js → p-BraaSfVN.js} +34 -34
- package/dist/components/{p-BLraILof.js.map → p-BraaSfVN.js.map} +1 -1
- package/dist/components/{p-SerH3z5y.js → p-C6-nmq3h.js} +3 -3
- package/dist/components/{p-SerH3z5y.js.map → p-C6-nmq3h.js.map} +1 -1
- package/dist/components/{p-B1ywivYa.js → p-CUOVbcj0.js} +3 -3
- package/dist/components/{p-B1ywivYa.js.map → p-CUOVbcj0.js.map} +1 -1
- package/dist/components/{p-CQNcW74f.js → p-Cfxk__-m.js} +14 -14
- package/dist/components/p-Cfxk__-m.js.map +1 -0
- package/dist/components/{p-DMkbzkL_.js → p-D3zeTcOR.js} +3 -3
- package/dist/components/{p-DMkbzkL_.js.map → p-D3zeTcOR.js.map} +1 -1
- package/dist/components/{p-BcV6HHN8.js → p-DXg4w3Tg.js} +3 -3
- package/dist/components/{p-BcV6HHN8.js.map → p-DXg4w3Tg.js.map} +1 -1
- package/dist/components/{p-DgWwkE8N.js → p-aI3c1NCj.js} +11 -11
- package/dist/components/p-aI3c1NCj.js.map +1 -0
- package/dist/components/polygon-buttons.js +1 -1
- package/dist/components/polygon-information.js +1 -1
- package/dist/components/settings-modal.js +1 -1
- package/dist/components/solar-calculator.js +1 -1
- package/dist/components/solar-expert.js +9 -9
- package/dist/components/solar-system-form.js +1 -1
- package/dist/components/tool-box.js +1 -1
- 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
- package/dist/esm/eraser-icon_16.entry.js +47 -47
- package/dist/esm/eraser-icon_16.entry.js.map +1 -1
- package/dist/esm/loading-widget.entry.js +1 -1
- package/dist/esm/solar-calculator.entry.js +1 -1
- 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
- package/dist/stencil-library/{p-91bf731c.entry.js → p-74e0c2f0.entry.js} +2 -2
- package/dist/stencil-library/{p-f85ca33a.entry.js → p-7e0b62d2.entry.js} +2 -2
- package/dist/stencil-library/p-e423f7bb.entry.js +2 -0
- package/dist/stencil-library/p-e423f7bb.entry.js.map +1 -0
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/package.json +1 -1
- package/dist/components/p-CQNcW74f.js.map +0 -1
- package/dist/components/p-DgWwkE8N.js.map +0 -1
- package/dist/stencil-library/p-c96335dc.entry.js +0 -2
- package/dist/stencil-library/p-c96335dc.entry.js.map +0 -1
- /package/dist/stencil-library/{p-91bf731c.entry.js.map → p-74e0c2f0.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-f85ca33a.entry.js.map → p-7e0b62d2.entry.js.map} +0 -0
|
@@ -137,13 +137,13 @@ export class SolarSystemForm {
|
|
|
137
137
|
}
|
|
138
138
|
render() {
|
|
139
139
|
const t = getLanguageStrings(state.settings.language);
|
|
140
|
-
return (h("div", { key: '
|
|
140
|
+
return (h("div", { key: 'c266b37975e7bf255dbc88401985fb323de3e5af', class: "flex flex-col justify-center items-center w-full h-full pt-4" // style={{
|
|
141
141
|
,
|
|
142
142
|
// display: (Object.keys(this.systemConfigs).length === 0)
|
|
143
143
|
// ? "none"
|
|
144
144
|
// : "flex",
|
|
145
145
|
// }}
|
|
146
|
-
id: "solar-system-form" }, h("h1", { key: '
|
|
146
|
+
id: "solar-system-form" }, h("h1", { key: 'eb64a6e9ccd98324dbba37fb30995f40166aa44a', class: "text-2xl font-bold text-secondary mb-4 w-full" }, t.solarSystemForm.title), h("div", { key: '4c956a91adc59f28507d872af5c75e8a7ee342ea', class: "w-full bg-primary rounded-4xl p-6 space-y-6" }, h("div", { key: '6a7dfac9eb9de4d36056cf69828437e872c5ae06', class: "space-y-4" }, h("h2", { key: 'ae94acd1ff6f75b4be71a466d6daac185151fdd5', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.systemInformation), h("div", { key: '63282daecf08a8f6f048f51c0e89df011f93b705', class: "grid grid-rows-3 gap-0" }, h("div", { key: '00bd6d2e2324d7f465f2092d2544728903c96309', class: "grid grid-cols-2 gap-4" }, h("label", { key: '2973927880c85ccebba34a69491431bf55affb4b', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.numberOfPanels), h("label", { key: 'e3d1d5033b7b94e8a0aaaf240a84d6de638b066f', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.panelPeakPower)), h("div", { key: 'ed0360bc6c983a7218fdd24d8ed5bd1d05fc3f08', class: "grid grid-cols-2 gap-4" }, !this.isIOS()
|
|
147
147
|
? (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 }))
|
|
148
148
|
: (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) => {
|
|
149
149
|
const value = parseInt(e.target
|
|
@@ -154,36 +154,36 @@ export class SolarSystemForm {
|
|
|
154
154
|
this.numberOfPanels = value;
|
|
155
155
|
this.recalculate();
|
|
156
156
|
}
|
|
157
|
-
} })), h("input", { key: '
|
|
158
|
-
(h("input", { key: '
|
|
157
|
+
} })), h("input", { key: 'e4b83e44a89fd022dc85ae28a43de632d485fd86', 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: '17a5059aa55948d8e3b8fa6e88894b9defdb19aa', class: "grid grid-cols-2 gap-4" }, h("div", { key: '8b8489e71990fb17b1b30c77cb191108f8ad4a91', class: "w-full pt-2" }, !this.isIOS() &&
|
|
158
|
+
(h("input", { key: '2311eeae2c0a226f884ddd015c6e6e31b9be8ec0', 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) => {
|
|
159
159
|
this.numberOfPanels =
|
|
160
160
|
parseInt(e.target
|
|
161
161
|
.value);
|
|
162
162
|
this.recalculate();
|
|
163
|
-
} }))))), h("div", { key: '
|
|
164
|
-
this.numberOfPanels).toFixed(1), " kW")))), h("div", { key: '
|
|
163
|
+
} }))))), h("div", { key: '5a6dc4dd908db73bebbeeabd8e0f08e2327072fa', class: "bg-muted rounded-4xl p-4" }, h("div", { key: 'b6e0408604bb166b67af91cb469c20f5a06713ee', class: "flex items-center justify-between" }, h("span", { key: '731f9a26c9b0de6265e046769fe4a2fa219cd925', class: "text-text-muted" }, t.solarSystemForm.totalSystemPeakPower), h("span", { key: '12791928a92ae0b8b41703aa5cd1d24f4d256373', class: "text-xl font-bold text-secondary" }, (DEFAULT_SOLAR_PANEL_TYPE.kWattPeak *
|
|
164
|
+
this.numberOfPanels).toFixed(1), " kW")))), h("div", { key: '3b5e85b8eda1732b645523e018c025cac38e1019', class: "space-y-4" }, h("h2", { key: '021d9756e32e625680cb6c521c274e6d577d12ed', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.householdConsumptionTitle), h("div", { key: 'e898da7ec25cc7b31b1fa24afe82ff3297f20fc2', class: "grid grid-rows-2 gap-0" }, h("div", { key: '4e6630e7eb0947e406ef31f9242d4ca5a82d1631', class: "grid grid-cols-2 gap-4" }, h("label", { key: 'ed7edfe56c37a789aba9679be5331855cb1b04f3', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.annualConsumption), h("label", { key: '499701b6c105716091dd63b044c31797980d3b3b', class: "block text-sm font-medium text-text-muted" }, t.solarSystemForm.consumptionProfileTitle)), h("div", { key: 'ccde867b428477e6e9845456a95ade8f39918074', class: "grid grid-cols-2 gap-4" }, h("input", { key: 'c1af1361ac0325e969b401ebbd8812e58ca4ba6c', 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) => {
|
|
165
165
|
this.householdConsumption = parseInt(e.target
|
|
166
166
|
.value);
|
|
167
167
|
this.recalculate();
|
|
168
|
-
} }), h("select", { key: '
|
|
168
|
+
} }), h("select", { key: '372215364ba07e0e6df4018cffcdb790eca4ceb4', 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) => {
|
|
169
169
|
this.consumptionProfile =
|
|
170
170
|
e.target
|
|
171
171
|
.value;
|
|
172
172
|
this.recalculate();
|
|
173
|
-
} }, h("option", { key: '
|
|
173
|
+
} }, h("option", { key: '4cc1eecbdf84d54d44768d3a82518cfd74765797', value: "mostly_at_home", selected: this.consumptionProfile ===
|
|
174
174
|
"mostly_at_home" }, t.solarSystemForm.consumptionProfiles
|
|
175
|
-
.mostlyAtHome), h("option", { key: '
|
|
175
|
+
.mostlyAtHome), h("option", { key: '656f1a6e13fd3eedcf85aeca81c21638422e6d7a', value: "mostly_away", selected: this.consumptionProfile ===
|
|
176
176
|
"mostly_away" }, t.solarSystemForm.consumptionProfiles
|
|
177
|
-
.mostlyAway))))), h("div", { key: '
|
|
177
|
+
.mostlyAway))))), h("div", { key: 'c9e2c127c0feef2da67a3ddfc23a5ccdcd9bacd3', class: "space-y-4" }, h("h2", { key: '541ae5616e61cc295be764a9e9be6e7967b8f7b3', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.additionalComponents.title), h("div", { key: 'f876d755481dc2a79f9d66aafc635e155c9994c4', class: "flex flex-col gap-4" }, h("div", { key: '4cde8645d3a9a7de29d2d48b09f48cb5c6d54544', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '13fe6b1709259cf5398b3e164ec5f17bb305df85', class: "flex items-center justify-between" }, h("div", { key: '3fc52ece3121a78371716deebdb42de5a96d3d7c', class: "flex items-center gap-2" }, h("input", { key: 'be951a3f01e56a3a792385182e2781cb9b2c5c20', type: "checkbox", id: "heatPump", class: "w-4 h-4 accent-tertiary border-gray-300 rounded-full focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.heatPump > 0, onChange: (e) => {
|
|
178
178
|
this.heatPump =
|
|
179
179
|
e.target
|
|
180
180
|
.checked
|
|
181
181
|
? 100
|
|
182
182
|
: 0;
|
|
183
183
|
this.recalculate();
|
|
184
|
-
} }), h("label", { key: '
|
|
184
|
+
} }), h("label", { key: 'dcb090e3b79249c53ea1e5eef916319f34d142d9', htmlFor: "heatPump", class: "text-text-muted" }, t.solarSystemForm
|
|
185
185
|
.additionalComponents
|
|
186
|
-
.heatPump)), (this.heatPump > 0 && !this.isIOS()) && (h("span", { key: '
|
|
186
|
+
.heatPump)), (this.heatPump > 0 && !this.isIOS()) && (h("span", { key: '545a89ac915ab23b99ef36e3b052809a821b942c', class: "text-text-muted" }, this.heatPump, " m\u00B2"))), this.heatPump > 0 && (h("div", { key: '8f072444efd39baf177bf2d4c92d1212c7f8ed07', class: "flex flex-col gap-2" }, this.isIOS()
|
|
187
187
|
? (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-gray-300 focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.heatPump, onInput: (e) => {
|
|
188
188
|
const value = parseInt(e.target
|
|
189
189
|
.value);
|
|
@@ -199,37 +199,37 @@ export class SolarSystemForm {
|
|
|
199
199
|
parseInt(e.target
|
|
200
200
|
.value);
|
|
201
201
|
this.recalculate();
|
|
202
|
-
} }))))), h("div", { key: '
|
|
202
|
+
} }))))), h("div", { key: '4cf36bd4a5cc18ccdcd6a42d4f2eed96960f59bd', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '2c035e723f9e704348d6630ec7deb055c26b16b7', class: "flex items-center justify-between" }, h("div", { key: '43fbb50a3231f1db687d646f1c10b9f20dfce1b5', class: "flex items-center gap-2" }, h("input", { key: 'c8879905d13d21abd9a72ce52f5cee85bbf8ad32', type: "checkbox", id: "electricCar", class: "w-4 h-4 accent-tertiary border-gray-300 rounded focus:ring-tertiary focus:ring-offset-0 focus:ring-2", checked: this.electricCar, onChange: (e) => {
|
|
203
203
|
this.electricCar =
|
|
204
204
|
e.target
|
|
205
205
|
.checked;
|
|
206
206
|
this.recalculate();
|
|
207
|
-
} }), h("label", { key: '
|
|
207
|
+
} }), h("label", { key: '103a6971dbf81390d7f4ce6a139add57213cbaf3', htmlFor: "electricCar", class: "text-text-muted" }, t.solarSystemForm
|
|
208
208
|
.additionalComponents
|
|
209
|
-
.electricCar))), this.electricCar && (h("div", { key: '
|
|
209
|
+
.electricCar))), this.electricCar && (h("div", { key: 'c6d68b9846f938a75dafd1c6f2c778cfb552b6a4', class: "flex flex-col gap-2" }, h("div", { key: '200e40b6ab96359ce21a4bca2dc249e07cb46c6c', class: "grid grid-cols-2 gap-4" }, h("label", { key: 'fcee6acdf4ee6b30fe5e80283b24376ffbf21c70', class: "text-sm text-text-muted" }, t.solarSystemForm
|
|
210
210
|
.additionalComponents
|
|
211
|
-
.chargingTime), h("label", { key: '
|
|
211
|
+
.chargingTime), h("label", { key: 'a9560d93c66951f17831b73fadcfe8e18e8d6570', class: "text-sm text-text-muted" }, t.solarSystemForm
|
|
212
212
|
.additionalComponents
|
|
213
|
-
.kilometersPerYear)), h("div", { key: '
|
|
213
|
+
.kilometersPerYear)), h("div", { key: '7ac5bd24cae9ad0d969c89c7a3437b5d54469660', class: "grid grid-cols-2 gap-4" }, h("select", { key: '78db408ebe0da37860c61d7762490557d5238a8f', class: "w-full px-4 py-2 rounded-4xl border border-gray-300 focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", onChange: (e) => {
|
|
214
214
|
this.electricCarChargingTime =
|
|
215
215
|
e.target
|
|
216
216
|
.value;
|
|
217
217
|
this.recalculate();
|
|
218
|
-
} }, h("option", { key: '
|
|
218
|
+
} }, h("option", { key: 'e8787e9303dc915108e531c446840d53143752fa', value: "day", selected: this
|
|
219
219
|
.electricCarChargingTime ===
|
|
220
220
|
"day" }, t.solarSystemForm
|
|
221
221
|
.additionalComponents
|
|
222
|
-
.chargingTimeDay), h("option", { key: '
|
|
222
|
+
.chargingTimeDay), h("option", { key: 'a22bd36788ff24e84d2f829dff4d46f8923508a1', value: "night", selected: this
|
|
223
223
|
.electricCarChargingTime ===
|
|
224
224
|
"night" }, t.solarSystemForm
|
|
225
225
|
.additionalComponents
|
|
226
|
-
.chargingTimeNight)), h("input", { key: '
|
|
226
|
+
.chargingTimeNight)), h("input", { key: 'f921baaeb0c0ac93ef1823ae4bf9be8a26e7f7bd', type: "number", min: "1000", max: "50000", step: "1000", class: "w-full px-4 py-2 rounded-4xl border border-gray-300 focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.kmDrivenPerYear, onInput: (e) => {
|
|
227
227
|
this.kmDrivenPerYear =
|
|
228
228
|
parseInt(e.target
|
|
229
229
|
.value);
|
|
230
230
|
this.recalculate();
|
|
231
|
-
} }))))), h("div", { key: '
|
|
232
|
-
.battery), !this.isIOS() && (h("span", { key: '
|
|
231
|
+
} }))))), h("div", { key: 'f314fa96da875bb965555980a6a549e10d0febcf', class: "flex flex-col bg-muted rounded-4xl p-4 gap-4" }, h("div", { key: '014d1db4054d04f69ca2d7f082bdc666a609c35a', class: "flex items-center justify-between" }, h("label", { key: '607cb6469d3b1402f203edae2dfa6c82f72b7a94', class: "text-text-muted" }, t.solarSystemForm.additionalComponents
|
|
232
|
+
.battery), !this.isIOS() && (h("span", { key: '9855cafb4477837bd9f323f7a6677dd84df3a6b5', class: "text-text-muted" }, this.battery, " kWh"))), h("div", { key: '94b211394b1c5cc9fd7ffffef19c693b9025aedc', class: "flex flex-col gap-2" }, this.isIOS()
|
|
233
233
|
? (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-gray-300 focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted", value: this.battery, onInput: (e) => {
|
|
234
234
|
const value = parseInt(e.target
|
|
235
235
|
.value);
|
|
@@ -244,37 +244,37 @@ export class SolarSystemForm {
|
|
|
244
244
|
this.battery = parseInt(e.target
|
|
245
245
|
.value);
|
|
246
246
|
this.recalculate();
|
|
247
|
-
} })))))), h("div", { key: '
|
|
247
|
+
} })))))), h("div", { key: 'c7d07eccb54933ace27c9e41cf8ddd58930a4465', class: "space-y-4" }, h("h2", { key: 'c94dc4fdfa85bfb1f31cb7e171a411662953a115', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.electricityCostsTitle), h("div", { key: 'd4ee193e9e5f6edf717ba7be01d537713b5c73db', class: "grid grid-rows-2 gap-0" }, h("div", { key: '9796df3a0343be18edef1051bca476cb5e33b453', class: "grid grid-cols-3 gap-4" }, h("label", { key: '590e83e2cf26790e7953bf1032ed2b465d062d3e', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.electricityPrice), h("label", { key: '95f9083a601664270b7db8304c63ea4aec04befa', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.compensationRate), h("label", { key: '8c877b503497664824396f5b42002d6948c9147d', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.annualPriceIncrease)), h("div", { key: '3e6de787e050b3163dd5a389888d7c7670ee73d5', class: "grid grid-cols-3 gap-4 text-primary-foreground" }, h("input", { key: '25eaae2931376e0462a8460838c7f2d542ef5bd2', 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) => {
|
|
248
248
|
this.electricityPrice = parseFloat(e.target
|
|
249
249
|
.value);
|
|
250
250
|
this.recalculate();
|
|
251
|
-
} }), h("input", { key: '
|
|
251
|
+
} }), h("input", { key: 'f985aa31a3706d80c3e14d0c39b32e42beb5c9f0', 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) => {
|
|
252
252
|
this.compensationRate = parseFloat(e.target
|
|
253
253
|
.value);
|
|
254
254
|
this.recalculate();
|
|
255
|
-
} }), h("input", { key: '
|
|
255
|
+
} }), h("input", { key: '5157173670cff3cd0a686451fee634c77fb078c3', 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) => {
|
|
256
256
|
this.annualPriceIncrease = parseFloat(e.target
|
|
257
257
|
.value);
|
|
258
258
|
this.recalculate();
|
|
259
|
-
} })))), h("div", { key: '
|
|
259
|
+
} })))), h("div", { key: '740017ec001efdfadeb7794dd98073eca06bec3b', class: "space-y-4 p-4 border border-border rounded-4xl" }, h("h2", { key: '02d4d012a72a66c3dd8c5d6a7ee37d8a66056b99', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.resultsTitle), h("div", { key: 'bd988fcbc121f7e1a1f0a463cbef4e73b5f75c2f', class: "bg-muted rounded-4xl p-4" }, h("div", { key: 'f841cffe6501a94344336b93cd7186d4008f5e89', class: "flex items-center justify-between" }, h("span", { key: 'c09946aa81953c0ac70eca1bf030738fd611bfd3', class: "text-text-muted" }, t.solarSystemForm.autonomy), h("span", { key: 'cc262b2389708bfcbc7eacaa070207f5c522b37a', class: "text-xl font-bold text-secondary" }, this.autonomy > 100
|
|
260
260
|
? "100"
|
|
261
|
-
: this.autonomy.toFixed(1), "%")), h("div", { key: '
|
|
262
|
-
.savingsDisclaimer))), h("span", { key: '
|
|
263
|
-
.solarSystemForm.year)), h("div", { key: '
|
|
261
|
+
: this.autonomy.toFixed(1), "%")), h("div", { key: '718395d0247ff533071db12c0dc261635376b8d0', class: "flex items-center justify-between mt-4" }, h("div", { key: '253836f022a4c414374c5b2b4e895d837a7f0a6b', class: "flex items-center gap-2" }, h("span", { key: '141499e8232fd43eaffbd6a78ae78498fc976843', class: "text-text-muted" }, t.solarSystemForm.costSavings), h("div", { key: '260f33e5713a9757bd64802180c45df42a76bde8', class: "relative group" }, h("svg", { key: '7db31a136fbfb27b717ac8ef4ff92dacd7909fb9', 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: '05ccaebf30b38726dba62441612733b20ec85017', "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: 'd035d58ef981d0afe4f92289ec08df99e5b07857', 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
|
|
262
|
+
.savingsDisclaimer))), h("span", { key: 'da7271d121f86c06802e3c0aa6753e3e106a0f9f', class: "text-xl font-bold text-success" }, this.costSavings.toFixed(2), "\u20AC/", t
|
|
263
|
+
.solarSystemForm.year)), h("div", { key: '7fd8001082ff5dad0138bc0e46f2c8ab5fc1a0ab', class: "flex items-center justify-between mt-4" }, h("div", { key: '51220d6235353c5c05d9cbd7294131169ce7ef37', class: "flex items-center gap-2" }, h("span", { key: 'b3c5734b677f225bf480e6c972aaf604bf25219d', class: "text-text-muted" }, "Einspeiseverg\u00FCtung 25 Jahre")), h("span", { key: '5a0f048eee0a05c815defd9f8c32079420402888', class: "text-xl font-bold text-success" }, this.compensation25Years.toFixed(2), "\u20AC")), h("div", { key: 'c404e485ec2caeccfa8534df34f502c53a3af13f', class: "flex items-center justify-between mt-4" }, h("div", { key: '207734d415a4e7cf7fa625a367af5de3afa9c274', class: "flex items-center gap-2" }, h("span", { key: '36ef827265e123a067b01314d7f2baff4c61a9ca', class: "text-text-muted" }, "Geldwerter Vorteil 25 Jahre")), h("span", { key: 'a597e862fc9b7369ac32df3e4d60302d0bce002e', class: "text-xl font-bold text-success" }, this.savedCosts25Years.toFixed(2), "\u20AC")))), h("div", { key: 'b1bee3a34cd1c3400cc847f9205dcd1319d1f11c', class: "space-y-4 pt-4" }, h("h2", { key: 'c21cc337a7c1ae79eee4b9741f935a256de38282', class: "text-lg font-semibold text-secondary" }, t.solarSystemForm.requestOffer), h("div", { key: '409727185c4cf9fd8e2750eca6a7102aa05800e6', class: "grid gap-4" }, h("div", { key: 'dd7fbc2db7923d9463213c5dff246d7915a402c8', class: "grid grid-cols-2 gap-4" }, h("label", { key: '8fc947bac4b28d3f9e6e13354dc9913009e0cbe2', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.name), h("label", { key: '2dabab65ad0b613ec6a7d386ce5cdac2ae046be3', class: "block text-sm font-medium text-text-muted mb-1" }, t.solarSystemForm.email)), h("div", { key: '36951f97477f0b144c24b990771d36e5cb09d8d2', class: "grid grid-cols-2 gap-4" }, h("div", { key: '72315b1180ab4cb666a9b4de8f65cce5509eff97' }, h("input", { key: '8119083991200cfb8c153c68a11875304505f2c4', type: "text", class: `w-full px-4 py-2 rounded-4xl border ${this.nameError
|
|
264
264
|
? "border-error"
|
|
265
265
|
: "border-border"} focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, value: this.name, onInput: (e) => {
|
|
266
266
|
this.name =
|
|
267
267
|
e.target
|
|
268
268
|
.value;
|
|
269
269
|
this.validateForm();
|
|
270
|
-
}, placeholder: "Your name" }), this.nameError && (h("p", { key: '
|
|
270
|
+
}, placeholder: "Your name" }), this.nameError && (h("p", { key: 'd25e121b0197f4734ad98b3f264806638716660d', class: "text-error text-sm mt-1" }, this.nameError))), h("div", { key: 'f592e406c92e64a4c1c47ecae1143a28c05bc0af' }, h("input", { key: '0a6b6c922b3f1816b1bdb82f2ef7f23d04bbf906', type: "email", class: `w-full px-4 py-2 rounded-4xl border ${this.emailError
|
|
271
271
|
? "border-error"
|
|
272
272
|
: "border-border"} focus:ring-2 focus:ring-tertiary focus:border-transparent bg-muted text-muted-foreground`, value: this.email, onInput: (e) => {
|
|
273
273
|
this.email =
|
|
274
274
|
e.target
|
|
275
275
|
.value;
|
|
276
276
|
this.validateForm();
|
|
277
|
-
}, placeholder: "your.email@example.com" }), this.emailError && (h("p", { key: '
|
|
277
|
+
}, placeholder: "your.email@example.com" }), this.emailError && (h("p", { key: '9f7464e3d4c5d8cf095683cf0f6f2b2e98197244', class: "text-error text-sm mt-1" }, this.emailError))))), h("div", { key: '59f781969d56679e5fa94af6384aa2238514148d', class: "flex justify-center" }, h("button", { key: 'bc5fdcb4dff4b3e1ce79928735716e2b1c2a394d', onClick: () => this.handleRequestOffer(), disabled: !this.name.trim() ||
|
|
278
278
|
!this.email.trim() || !!this.nameError ||
|
|
279
279
|
!!this.emailError, class: "px-4 py-2 bg-secondary rounded-4xl hover:bg-tertiary transition-colors duration-200 text-muted" }, t.solarSystemForm.requestOfferButton))))));
|
|
280
280
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
export class LoadingWidget {
|
|
3
3
|
render() {
|
|
4
|
-
return (h("div", { key: '
|
|
4
|
+
return (h("div", { key: '53e8e35b4de7d6d272ca070f67a5fe266fa787f4', class: "absolute flex items-center justify-center bg-muted bg-opacity-75 z-20 pt-7 rounded-4xl" }, h("div", { key: '906b14debcd98b44be5547035b41d94cf8dc052f', class: "animate-spin rounded-full h-16 w-16 border-t-2 border-b-2 border-secondary" })));
|
|
5
5
|
}
|
|
6
6
|
static get is() { return "loading-widget"; }
|
|
7
7
|
static get originalStyleUrls() {
|
package/dist/collection/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB7C,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAQ;IACzC,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,GAAG;QAChB,qBAAqB,EAAE,EAAE;KAC5B;IACD,eAAe,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB7C,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAQ;IACzC,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,GAAG;QAChB,qBAAqB,EAAE,EAAE;KAC5B;IACD,eAAe,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;IAC5B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;IAC/B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;IAClC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC","sourcesContent":["import { createStore } from \"@stencil/store\";\r\nimport { Language } from \"./components\";\r\n\r\nexport interface Settings {\r\n language: Language;\r\n rowSpacing: number;\r\n columnSpacing: number;\r\n borderInset: number;\r\n heatPumpM2Consumption: number;\r\n}\r\n\r\nexport interface State {\r\n latitude: number | null;\r\n longitude: number | null;\r\n radiusMeters: number;\r\n settings: Settings;\r\n settingsVersion: number;\r\n isMobile: boolean;\r\n isIOS: boolean;\r\n}\r\n\r\nconst {state, onChange} = createStore<State>({\r\n latitude: null,\r\n longitude: null,\r\n radiusMeters: 15,\r\n settings: {\r\n language: \"en\",\r\n rowSpacing: 1,\r\n columnSpacing: 1,\r\n borderInset: 0.1,\r\n heatPumpM2Consumption: 85,\r\n },\r\n settingsVersion: 1,\r\n isMobile: false,\r\n isIOS: true,\r\n});\r\n\r\nonChange(\"latitude\", (value) => {\r\n state.latitude = value;\r\n});\r\n\r\nonChange(\"longitude\", (value) => {\r\n state.longitude = value;\r\n});\r\n\r\nonChange(\"radiusMeters\", (value) => {\r\n state.radiusMeters = value;\r\n});\r\n\r\nonChange(\"settings\", (value) => {\r\n state.settings = value;\r\n});\r\n\r\nonChange(\"settingsVersion\", (value) => {\r\n state.settingsVersion = value;\r\n});\r\n\r\nonChange(\"isMobile\", (value) => {\r\n state.isMobile = value;\r\n});\r\n\r\nonChange(\"isIOS\", (value) => {\r\n state.isIOS = value;\r\n});\r\n\r\nexport {state, onChange};\r\n"]}
|
|
@@ -8,7 +8,7 @@ const LoadingWidget$1 = /*@__PURE__*/ proxyCustomElement(class LoadingWidget ext
|
|
|
8
8
|
this.__registerHost();
|
|
9
9
|
}
|
|
10
10
|
render() {
|
|
11
|
-
return (h("div", { key: '
|
|
11
|
+
return (h("div", { key: '53e8e35b4de7d6d272ca070f67a5fe266fa787f4', class: "absolute flex items-center justify-center bg-muted bg-opacity-75 z-20 pt-7 rounded-4xl" }, h("div", { key: '906b14debcd98b44be5547035b41d94cf8dc052f', class: "animate-spin rounded-full h-16 w-16 border-t-2 border-b-2 border-secondary" })));
|
|
12
12
|
}
|
|
13
13
|
static get style() { return outputCss; }
|
|
14
14
|
}, [0, "loading-widget"]);
|
|
@@ -578,7 +578,7 @@ const { state, onChange } = createStore({
|
|
|
578
578
|
},
|
|
579
579
|
settingsVersion: 1,
|
|
580
580
|
isMobile: false,
|
|
581
|
-
isIOS:
|
|
581
|
+
isIOS: true,
|
|
582
582
|
});
|
|
583
583
|
onChange("latitude", (value) => {
|
|
584
584
|
state.latitude = value;
|
|
@@ -603,6 +603,6 @@ onChange("isIOS", (value) => {
|
|
|
603
603
|
});
|
|
604
604
|
|
|
605
605
|
export { getLanguageStrings as g, onChange as o, state as s };
|
|
606
|
-
//# sourceMappingURL=p-
|
|
606
|
+
//# sourceMappingURL=p-BFcukOp8.js.map
|
|
607
607
|
|
|
608
|
-
//# sourceMappingURL=p-
|
|
608
|
+
//# sourceMappingURL=p-BFcukOp8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-BLXc1FjC.js","mappings":";;AAEO,MAAM,EAAE,GAAoB;AAC/B,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,WAAW,EAAE,cAAc;AAC9B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,WAAW,EAAE,gGAAgG;AAC7G,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,eAAe;AAC/B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,iBAAiB,EAAE;AACtB,KAAA;AACD,IAAA,eAAe,EAAE;AACb,QAAA,KAAK,EAAE,4BAA4B;AACnC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,cAAc,EAAE,wBAAwB;AACxC,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,oBAAoB,EAAE,8BAA8B;AACpD,QAAA,gBAAgB,EAAE,2BAA2B;AAC7C,QAAA,gBAAgB,EAAE,2BAA2B;AAC7C,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,yBAAyB,EAAE,mCAAmC;AAC9D,QAAA,uBAAuB,EAAE,qBAAqB;AAC9C,QAAA,qBAAqB,EAAE,mBAAmB;AAC1C,QAAA,qBAAqB,EAAE,mBAAmB;AAC1C,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,iBAAiB,EAAE,8EAA8E;AACjG,QAAA,iBAAiB,EAAE,0BAA0B;AAC7C,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,UAAU,EAAE,oCAAoC;AAChD,QAAA,mBAAmB,EAAE;AACjB,YAAA,YAAY,EAAE,gBAAgB;AAC9B,YAAA,UAAU,EAAE,aAAa;AAC5B,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,kBAAkB,EAAE,qBAAqB;AACzC,YAAA,mBAAmB,EAAE,sBAAsB;AAC3C,YAAA,SAAS,EAAE,aAAa;AAC3B,SAAA;AACD,QAAA,eAAe,EAAE,oCAAoC;AACrD,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,kBAAkB,EAAE,eAAe;AACnC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,oBAAoB,EAAE;AAClB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,eAAe,EAAE,qBAAqB;AACtC,YAAA,iBAAiB,EAAE,uBAAuB;AAC1C,YAAA,iBAAiB,EAAE,qBAAqB;AAC3C,SAAA;AACD,QAAA,mBAAmB,EAAE,2BAA2B;AAChD,QAAA,kBAAkB,EAAE,iBAAiB;AACxC,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,YAAY,EAAE;AACV,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,8KAA8K;AACpL,gBAAA,WAAW,EAAE,sIAAsI;AACnJ,gBAAA,MAAM,EAAE,gDAAgD;AACxD,gBAAA,IAAI,EAAE,wEAAwE;AAC9E,gBAAA,GAAG,EAAE,wEAAwE;AAChF;AACJ,SAAA;AACD,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,iBAAiB,EAAE,0BAA0B;AAC7C,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,oBAAoB,EAAE,wBAAwB;AAC9C,QAAA,YAAY,EAAE,sBAAsB;AACpC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE;AACH,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,WAAW,EAAE,+BAA+B;AAC5C,gBAAA,SAAS,EAAE,MAAM;AACpB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,WAAW,EAAE,sCAAsC;AACnD,gBAAA,SAAS,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,WAAW,EAAE,6BAA6B;AAC1C,gBAAA,SAAS,EAAE,QAAQ;AAClB,aAAA;AACL,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,SAAS,EAAE,MAAM;AACpB,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,WAAW,EAAE,sBAAsB;AACnC,gBAAA,SAAS,EAAE,MAAM;AACpB;AACJ,SAAA;AACJ;CACJ;;AClHM,MAAM,EAAE,GAAoB;AAC/B,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,WAAW,EAAE,aAAa;AAC7B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,WAAW,EAAE,sHAAsH;AACnI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,WAAW,EAAE,yBAAyB;AACzC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,iBAAiB,EAAE;AACtB,KAAA;AACD,IAAA,eAAe,EAAE;AACb,QAAA,KAAK,EAAE,2BAA2B;AAClC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,oBAAoB,EAAE,oBAAoB;AAC1C,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,gBAAgB,EAAE,4BAA4B;AAC9C,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,yBAAyB,EAAE,oBAAoB;AAC/C,QAAA,uBAAuB,EAAE,iBAAiB;AAC1C,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,qBAAqB,EAAE,oBAAoB;AAC3C,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,iBAAiB,EAAE,6FAA6F;AAChH,QAAA,iBAAiB,EAAE,4BAA4B;AAC/C,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,iCAAiC;AAC5C,QAAA,UAAU,EAAE,iDAAiD;AAC7D,QAAA,mBAAmB,EAAE;AACjB,YAAA,YAAY,EAAE,wBAAwB;AACtC,YAAA,UAAU,EAAE,cAAc;AAC7B,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,mBAAmB,EAAE,WAAW;AAChC,YAAA,SAAS,EAAE,kBAAkB;AAChC,SAAA;AACD,QAAA,eAAe,EAAE,iDAAiD;AAClE,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,kBAAkB,EAAE,mBAAmB;AACvC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,oBAAoB,EAAE;AAClB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,YAAY,EAAE,sBAAsB;AACpC,YAAA,eAAe,EAAE,qBAAqB;AACtC,YAAA,iBAAiB,EAAE,uBAAuB;AAC1C,YAAA,iBAAiB,EAAE,oBAAoB;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE,gCAAgC;AACrD,QAAA,kBAAkB,EAAE,yBAAyB;AAChD,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,YAAY,EAAE;AACV,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,uNAAuN;AAC7N,gBAAA,WAAW,EAAE,wJAAwJ;AACrK,gBAAA,MAAM,EAAE,qDAAqD;AAC7D,gBAAA,IAAI,EAAE,uFAAuF;AAC7F,gBAAA,GAAG,EAAE,kFAAkF;AAC1F;AACJ,SAAA;AACD,QAAA,YAAY,EAAE,4BAA4B;AAC1C,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,iBAAiB,EAAE,+BAA+B;AAClD,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,oBAAoB,EAAE,+BAA+B;AACrD,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE;AACH,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,WAAW,EAAE,oCAAoC;AACjD,gBAAA,SAAS,EAAE,MAAM;AACpB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,WAAW,EAAE,yCAAyC;AACtD,gBAAA,SAAS,EAAE,WAAW;AACzB,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,WAAW,EAAE,qCAAqC;AAClD,gBAAA,SAAS,EAAE,SAAS;AACvB,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,WAAW,EAAE,kDAAkD;AAC/D,gBAAA,SAAS,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,WAAW,EAAE,kCAAkC;AAC/C,gBAAA,SAAS,EAAE,YAAY;AAC1B;AACJ,SAAA;AACJ;CACJ;;AClHM,MAAM,EAAE,GAAoB;AAC/B,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,WAAW,EAAE,qBAAqB;AACrC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,WAAW,EAAE,kGAAkG;AAC/G,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,WAAW,EAAE,wBAAwB;AACxC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,iBAAiB,EAAE;AACtB,KAAA;AACD,IAAA,eAAe,EAAE;AACb,QAAA,KAAK,EAAE,iCAAiC;AACxC,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,cAAc,EAAE,2BAA2B;AAC3C,QAAA,cAAc,EAAE,8BAA8B;AAC9C,QAAA,oBAAoB,EAAE,sCAAsC;AAC5D,QAAA,gBAAgB,EAAE,mCAAmC;AACrD,QAAA,gBAAgB,EAAE,8BAA8B;AAChD,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,yBAAyB,EAAE,oBAAoB;AAC/C,QAAA,uBAAuB,EAAE,mBAAmB;AAC5C,QAAA,qBAAqB,EAAE,2BAA2B;AAClD,QAAA,qBAAqB,EAAE,sBAAsB;AAC7C,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,iBAAiB,EAAE,gFAAgF;AACnG,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,8BAA8B;AACzC,QAAA,UAAU,EAAE,+DAA+D;AAC3E,QAAA,mBAAmB,EAAE;AACjB,YAAA,YAAY,EAAE,wBAAwB;AACtC,YAAA,UAAU,EAAE,QAAQ;AACvB,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,kBAAkB,EAAE,mBAAmB;AACvC,YAAA,mBAAmB,EAAE,SAAS;AAC9B,YAAA,SAAS,EAAE,cAAc;AAC5B,SAAA;AACD,QAAA,eAAe,EAAE,+DAA+D;AAChF,QAAA,YAAY,EAAE,sBAAsB;AACpC,QAAA,kBAAkB,EAAE,kBAAkB;AACtC,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,oBAAoB,EAAE;AAClB,YAAA,KAAK,EAAE,yBAAyB;AAChC,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,eAAe,EAAE,qBAAqB;AACtC,YAAA,iBAAiB,EAAE,uBAAuB;AAC1C,YAAA,iBAAiB,EAAE,oBAAoB;AAC1C,SAAA;AACD,QAAA,mBAAmB,EAAE,8BAA8B;AACnD,QAAA,kBAAkB,EAAE,mBAAmB;AAC1C,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,YAAY,EAAE;AACV,YAAA,IAAI,EAAE,uBAAuB;AAC7B,YAAA,IAAI,EAAE,uBAAuB;AAC7B,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,mLAAmL;AACzL,gBAAA,WAAW,EAAE,wIAAwI;AACrJ,gBAAA,MAAM,EAAE,8DAA8D;AACtE,gBAAA,IAAI,EAAE,yFAAyF;AAC/F,gBAAA,GAAG,EAAE,8EAA8E;AACtF;AACJ,SAAA;AACD,QAAA,YAAY,EAAE,kCAAkC;AAChD,QAAA,iBAAiB,EAAE,mCAAmC;AACtD,QAAA,iBAAiB,EAAE,qCAAqC;AACxD,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,oBAAoB,EAAE,0BAA0B;AAChD,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,KAAK,EAAE;AACH,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,WAAW,EAAE,+BAA+B;AAC5C,gBAAA,SAAS,EAAE,QAAQ;AACtB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,WAAW,EAAE,oCAAoC;AACjD,gBAAA,SAAS,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,WAAW,EAAE,kCAAkC;AAC/C,gBAAA,SAAS,EAAE,UAAU;AACxB,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,WAAW,EAAE,4CAA4C;AACzD,gBAAA,SAAS,EAAE,OAAO;AACrB,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,SAAS,EAAE,UAAU;AACxB;AACJ,SAAA;AACJ;CACJ;;AC/GD,MAAM,eAAe,GAAsC;AACvD,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;CACT;AAGK,SAAU,kBAAkB,CAAC,IAAc,EAAA;AAC7C,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;AACzC,IAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,QAAA,OAAO,WAAW;;AAEtB,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;;AAGzC,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9D,IAAA,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW,EAAA;AACvC,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE;gBAChD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;AAChC,iBAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBAClC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;;;;AAKrC,IAAA,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC;AACrC,IAAA,OAAO,aAAa;AACxB;;AChCA,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,KAAK;AAC9C,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AAClC;AACA,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,CAAC;AACD,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK;AAC7B,IAAI,IAAI,SAAS;AACjB,IAAI,OAAO,CAAC,GAAG,IAAI,KAAK;AACxB,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,YAAY,CAAC,SAAS,CAAC;AACnC;AACA,QAAQ,SAAS,GAAG,UAAU,CAAC,MAAM;AACrC,YAAY,SAAS,GAAG,CAAC;AACzB,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;AACvB,SAAS,EAAE,EAAE,CAAC;AACd,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,YAAY,KAAK,EAAE,aAAa,IAAI,YAAY,CAAC,IAAI,YAAY,CAAC,WAAW;AAClG,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,GAAG,KAAK;AAC1C,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;AAChC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtD;AACA,CAAC,EAAE,KAAK,CAAC;AACT,MAAM,mBAAmB,GAAG,MAAM;AAClC,IAAI,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;AAC/C;AACA;AACA,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE;AAClC,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,MAAM,YAAY,CAAC,KAAK,EAAE;AAC3C,QAAQ,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC3B,YAAY,MAAM,GAAG,GAAG,eAAe,EAAE;AACzC,YAAY,IAAI,GAAG,EAAE;AACrB,gBAAgB,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC;AACxD;AACA,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC3B,YAAY,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACvD,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACxE;AACA,YAAY,eAAe,CAAC,YAAY,CAAC;AACzC,SAAS;AACT,QAAQ,KAAK,EAAE,MAAM;AACrB,YAAY,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACrE,YAAY,eAAe,CAAC,YAAY,CAAC;AACzC,SAAS;AACT,KAAK;AACL,CAAC;;AAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACjE,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;AAChF,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC9D,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,GAAG,EAAE,EAAE;AACf,QAAQ,GAAG,EAAE,EAAE;AACf,QAAQ,KAAK,EAAE,EAAE;AACjB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB;AACA;AACA,QAAQ,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AACpE,QAAQ,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC5C,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,MAAM;AAC1B;AACA;AACA,QAAQ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9C,QAAQ,KAAK,EAAE;AACf,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK;AAC9B,QAAQ,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClD,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,KAAK;AACrC,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,QAAQ,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;AACrD,YAAY,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AACvC,YAAY,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvE;AACA,KAAK;AACL,IAAI,MAAM,KAAK,IAAI,OAAO,KAAK,KAAK;AACpC,UAAU;AACV,UAAU,IAAI,KAAK,CAAC,cAAc,EAAE;AACpC,YAAY,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC7B,gBAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC;AACpC,aAAa;AACb,YAAY,OAAO,CAAC,CAAC,EAAE;AACvB,gBAAgB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChD,aAAa;AACb,YAAY,wBAAwB,GAAG;AACvC,gBAAgB,OAAO;AACvB,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,YAAY,EAAE,IAAI;AACtC,iBAAiB;AACjB,aAAa;AACb,YAAY,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC7B,gBAAgB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3C,aAAa;AACb,YAAY,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;AACpC,gBAAgB,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AACpC,gBAAgB,OAAO,IAAI;AAC3B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,IAAI,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,KAAK;AACxC,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,QAAQ,OAAO,MAAM;AACrB,YAAY,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK;AACvC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK;AACnD,YAAY,IAAI,GAAG,KAAK,QAAQ,EAAE;AAClC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;AAC5B;AACA,SAAS,CAAC;AACV;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7E,QAAQ,OAAO,MAAM;AACrB,YAAY,KAAK,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,aAAa,KAAK;AACtC,QAAQ,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,YAAY,KAAK;AACtE,YAAY,IAAI,YAAY,CAAC,GAAG,EAAE;AAClC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AACxD;AACA,YAAY,IAAI,YAAY,CAAC,GAAG,EAAE;AAClC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;AACxD;AACA,YAAY,IAAI,YAAY,CAAC,KAAK,EAAE;AACpC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D;AACA,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;AACtC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AAChE;AACA,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,EAAE,CAAC;AACd,QAAQ,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;AACvD,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK;AACjC,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,QAAQ,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK;AACb,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,EAAE;AACV,QAAQ,QAAQ;AAChB,QAAQ,GAAG;AACX,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,KAAK;AACL,CAAC;AACD,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AACzC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;AACpB,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,QAAQ,KAAK,CAAC,MAAM,EAAE;AACtB;AACA,CAAC;;AAED,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,YAAY,KAAK;AACpD,IAAI,MAAM,GAAG,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC;AAC/D,IAAI,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;AAClC,IAAI,OAAO,GAAG;AACd,CAAC;;ACzKD,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAQ;AACzC,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,WAAW,EAAE,GAAG;AAChB,QAAA,qBAAqB,EAAE,EAAE;AAC5B,KAAA;AACD,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,KAAK,EAAE,KAAK;AACf,CAAA;AAED,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,KAAI;AAC3B,IAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;AAC1B,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,KAAI;AAC5B,IAAA,KAAK,CAAC,SAAS,GAAG,KAAK;AAC3B,CAAC,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,KAAI;AAC/B,IAAA,KAAK,CAAC,YAAY,GAAG,KAAK;AAC9B,CAAC,CAAC;AAEF,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,KAAI;AAC3B,IAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;AAC1B,CAAC,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,KAAI;AAClC,IAAA,KAAK,CAAC,eAAe,GAAG,KAAK;AACjC,CAAC,CAAC;AAEF,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,KAAI;AAC3B,IAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;AAC1B,CAAC,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AACxB,IAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACvB,CAAC,CAAC;;;;","names":[],"sources":["src/utils/lang/english.ts","src/utils/lang/german.ts","src/utils/lang/spanish.ts","src/utils/lang/general.ts","../../node_modules/@stencil/store/dist/index.js","src/store.ts"],"sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const en: LanguageStrings = {\r\n settings: {\r\n language: \"Language\",\r\n rowSpacing: \"Row Spacing\",\r\n columnSpacing: \"Column Spacing\",\r\n borderInset: \"Border Inset\",\r\n },\r\n mapSelector: {\r\n explanation: \"Select your house on the map and adjust the radius of the circle to fully encompase your roof.\",\r\n radius: \"Radius (meters)\",\r\n accept: \"Accept\",\r\n chooseOnMap: \"Choose on Map\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Search for your address\"\r\n },\r\n solarSystemForm: {\r\n title: \"Solar System Configuration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Number of Solar Panels\",\r\n panelPeakPower: \"Panel Peak Power (kW)\",\r\n totalSystemPeakPower: \"Total System Peak Power (kW)\",\r\n electricityPrice: \"Electricity Price (€/kWh)\",\r\n compensationRate: \"Compensation Rate (€/kWh)\",\r\n autonomy: \"Autonomy\",\r\n costSavings: \"Cost Savings (€/year)\",\r\n householdConsumptionTitle: \"Household Electricity Consumption\",\r\n consumptionProfileTitle: \"Consumption Profile\",\r\n electricityCostsTitle: \"Electricity Costs\",\r\n compensationRateTitle: \"Compensation Rate\",\r\n resultsTitle: \"Results\",\r\n savingsDisclaimer: \"Disclaimer: The savings are based on the average electricity price in Spain.\",\r\n annualConsumption: \"Annual Consumption (kWh)\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n nameError: \"Please enter your name\",\r\n emailError: \"Please enter a valid email address\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Mostly at home\",\r\n mostlyAway: \"Mostly away\",\r\n },\r\n chart: {\r\n consumption: \"Consumption\",\r\n production: \"Production\",\r\n consumptionProfile: \"Consumption Profile\",\r\n relativeConsumption: \"Relative Consumption\",\r\n hourOfDay: \"Hour of Day\",\r\n },\r\n validEmailError: \"Please enter a valid email address\",\r\n requestOffer: \"Request Offer\",\r\n requestOfferButton: \"Request Offer\",\r\n year: \"year\",\r\n additionalComponents: {\r\n title: \"Additional Components\",\r\n heatPump: \"Heat Pump\",\r\n electricCar: \"Electric Car\",\r\n battery: \"Battery\",\r\n chargingTime: \"Charging Time\",\r\n chargingTimeDay: \"Day (06:00 - 18:00)\",\r\n chargingTimeNight: \"Night (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometers per Year\",\r\n },\r\n annualPriceIncrease: \"Annual Price Increase (%)\",\r\n costSavings25Years: \"25-Year Savings\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Show Instructions\",\r\n hide: \"Hide Instructions\",\r\n parts: {\r\n roof: \"After you have searched and selected your address. Highlight the part of your roof that you want to add solar panels to. Mark each surface with a polygon with the roof tool\",\r\n obstruction: \". If you have skylights or other obstructions where you don't want to add solar panels, mark those as well with the obstruction tool\",\r\n delete: \". You can delete polygons with the delete tool\",\r\n move: \". If you want to change the corners of a polygon, select the move tool\",\r\n end: \", select the polygon you want to change and drag and drop the corners.\",\r\n }\r\n },\r\n noPolygonSelected: \"No polygon selected\",\r\n noAddressSelected: \"Please select an address\",\r\n information: \"Information\",\r\n calculateSolarPanels: \"Calculate Solar Panels\",\r\n markRoofEdge: \"Mark lower roof edge\",\r\n panels: \"Panels\",\r\n area: \"Area\",\r\n azimuth: \"Azimuth\",\r\n pitch: \"Pitch\",\r\n tools: {\r\n roof: {\r\n name: \"Roof\",\r\n explanation: \"Draw the roof of the building\",\r\n ariaLabel: \"Roof\",\r\n },\r\n obstruction: {\r\n name: \"Obstruction\",\r\n explanation: \"Draw the obstruction of the building\",\r\n ariaLabel: \"Obstruction\",\r\n },\r\n delete: {\r\n name: \"Delete\",\r\n explanation: \"Delete the selected polygon\",\r\n ariaLabel: \"Delete\",\r\n },\r\n move: {\r\n name: \"Move\",\r\n explanation: \"Move the selected polygon\",\r\n ariaLabel: \"Move\",\r\n },\r\n undo: {\r\n name: \"Undo\",\r\n explanation: \"Undo the last action\",\r\n ariaLabel: \"Undo\",\r\n }\r\n },\r\n }\r\n}","import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const de: LanguageStrings = {\r\n settings: {\r\n language: \"Sprache\",\r\n rowSpacing: \"Zeilenabstand\",\r\n columnSpacing: \"Spaltenabstand\",\r\n borderInset: \"Randabstand\",\r\n },\r\n mapSelector: {\r\n explanation: \"Wählen Sie Ihre Adresse auf der Karte und passen Sie den Radius des Kreises an, um Ihr Dach vollständig zu erfassen.\",\r\n radius: \"Radius (Meter)\",\r\n accept: \"Akzeptieren\",\r\n chooseOnMap: \"Auf der Karte auswählen\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Ihre Adresse\"\r\n },\r\n solarSystemForm: {\r\n title: \"Solarsystem Konfiguration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Anzahl der Solarpanel\",\r\n panelPeakPower: \"Panelleistung (kW)\",\r\n totalSystemPeakPower: \"Anlagengröße (kWp)\",\r\n electricityPrice: \"Strompreis (€/kWh)\",\r\n compensationRate: \"Einspeisevergütung (€/kWh)\",\r\n autonomy: \"Autarkie\",\r\n costSavings: \"Einsparungen (€/Jahr)\",\r\n householdConsumptionTitle: \"Haushaltsverbrauch\",\r\n consumptionProfileTitle: \"Verbrauchprofil\",\r\n electricityCostsTitle: \"Stromkosten\",\r\n compensationRateTitle: \"Einspeisevergütung\",\r\n resultsTitle: \"Ergebnisse\",\r\n savingsDisclaimer: \"Disclaimer: Die Einsparungen basieren auf dem durchschnittlichen Strompreis in Deutschland.\",\r\n annualConsumption: \"Jährlicher Verbrauch (kWh)\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n nameError: \"Bitte geben Sie Ihren Namen ein\",\r\n emailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Hauptsächlich zu Hause\",\r\n mostlyAway: \"Erwerbstätig\",\r\n },\r\n chart: {\r\n consumption: \"Verbrauch\",\r\n production: \"Produktion\",\r\n consumptionProfile: \"Verbrauchprofil\",\r\n relativeConsumption: \"Verbrauch\",\r\n hourOfDay: \"Stunde des Tages\",\r\n },\r\n validEmailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n requestOffer: \"Angebot anfordern\",\r\n requestOfferButton: \"Angebot anfordern\",\r\n year: \"Jahr\",\r\n additionalComponents: {\r\n title: \"Zusätzliches\",\r\n heatPump: \"Wärmepumpe\",\r\n electricCar: \"Elektroauto\",\r\n battery: \"Batterie\",\r\n chargingTime: \"Zeitpunkt der Ladung\",\r\n chargingTimeDay: \"Tag (06:00 - 18:00)\",\r\n chargingTimeNight: \"Nacht (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometer pro Jahr\",\r\n },\r\n annualPriceIncrease: \"Jährliche Preissteigerung (%)\t\",\r\n costSavings25Years: \"25-Jährige Einsparungen\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Anleitung anzeigen\",\r\n hide: \"Anleitung ausblenden\",\r\n parts: {\r\n roof: \"Nachdem Sie Ihre Adresse gesucht und ausgewählt haben. Markieren Sie die Teile Ihres Daches, auf denen Sie Solarpanelleisten hinzufügen möchten. Markieren Sie jede Oberfläche mit einem Polygon mit dem Dachwerkzeug\",\r\n obstruction: \". Wenn Sie Dachfenster oder andere Hindernisse haben, auf denen Sie keine Solarpanele hinzufügen können, markieren Sie diese mit dem Hinderniswerkzeug\",\r\n delete: \". Sie können Polygone mit dem Löschwerkzeug löschen\",\r\n move: \". Wenn Sie die Ecken eines Polygons ändern möchten, wählen Sie das Verschiebewerkzeug\",\r\n end: \", wählen Sie das Polygon, das Sie ändern möchten, und verschieben Sie die Ecken.\",\r\n }\r\n },\r\n markRoofEdge: \"untere Dachkante markieren\",\r\n noPolygonSelected: \"Kein Polygon ausgewählt\",\r\n noAddressSelected: \"Bitte wählen Sie eine Adresse\",\r\n information: \"Information\",\r\n calculateSolarPanels: \"Berechnen Sie die Solarpanele\",\r\n panels: \"Panele\",\r\n area: \"Fläche\",\r\n azimuth: \"Ausrichtung\",\r\n pitch: \"Neigung\",\r\n tools: {\r\n roof: {\r\n name: \"Dach\",\r\n explanation: \"Zeichnen Sie das Dach des Gebäudes\",\r\n ariaLabel: \"Dach\",\r\n },\r\n obstruction: {\r\n name: \"Hindernis\",\r\n explanation: \"Zeichnen Sie das Hindernis des Gebäudes\",\r\n ariaLabel: \"Hindernis\",\r\n },\r\n delete: {\r\n name: \"Löschen\",\r\n explanation: \"Löschen Sie das ausgewählte Polygon\",\r\n ariaLabel: \"Löschen\",\r\n },\r\n move: {\r\n name: \"Verschieben\",\r\n explanation: \"Verschieben Sie Punkte des ausgewählten Polygons\",\r\n ariaLabel: \"Verschieben\",\r\n },\r\n undo: {\r\n name: \"Rückgängig\",\r\n explanation: \"Sie die letzte Aktion rückgängig\",\r\n ariaLabel: \"Rückgängig\",\r\n }\r\n },\r\n }\r\n}","import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const es: LanguageStrings = {\r\n settings: {\r\n language: \"Idioma\",\r\n rowSpacing: \"Espaciado de filas\",\r\n columnSpacing: \"Espaciado de columnas\",\r\n borderInset: \"Espaciado de bordes\",\r\n },\r\n mapSelector: {\r\n explanation: \"Selecciona tu casa en el mapa y ajusta el radio del círculo para cubrir completamente tu tejado.\",\r\n radius: \"Radio (metros)\",\r\n accept: \"Aceptar\",\r\n chooseOnMap: \"Seleccionar en el mapa\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Buscar tu dirección\"\r\n },\r\n solarSystemForm: {\r\n title: \"Configuración del sistema solar\",\r\n systemInformation: \"Información del sistema\",\r\n numberOfPanels: \"Número de paneles solares\",\r\n panelPeakPower: \"Potencia pico del panel (kW)\",\r\n totalSystemPeakPower: \"Potencia pico total del sistema (kW)\",\r\n electricityPrice: \"Precio de la electricidad (€/kWh)\",\r\n compensationRate: \"Tasa de compensación (€/kWh)\",\r\n autonomy: \"Autonomía\",\r\n costSavings: \"Ahorro (€/año)\",\r\n householdConsumptionTitle: \"Consumo de la casa\",\r\n consumptionProfileTitle: \"Perfil de consumo\",\r\n electricityCostsTitle: \"Costes de la electricidad\",\r\n compensationRateTitle: \"Tasa de compensación\",\r\n resultsTitle: \"Resultados\",\r\n savingsDisclaimer: \"Nota: Los ahorros se basan en el precio promedio de la electricidad en España.\",\r\n annualConsumption: \"Consumo anual (kWh)\",\r\n name: \"Nombre\",\r\n email: \"Email\",\r\n nameError: \"Por favor, ingrese su nombre\",\r\n emailError: \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Principalmente en casa\",\r\n mostlyAway: \"Empleo\",\r\n },\r\n chart: {\r\n consumption: \"Consumo\",\r\n production: \"Producción\",\r\n consumptionProfile: \"Perfil de consumo\",\r\n relativeConsumption: \"Consumo\",\r\n hourOfDay: \"Hora del día\",\r\n },\r\n validEmailError: \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n requestOffer: \"Solicitar una oferta\",\r\n requestOfferButton: \"Solicitar oferta\",\r\n year: \"Año\",\r\n additionalComponents: {\r\n title: \"Componentes adicionales\",\r\n heatPump: \"Caldera\",\r\n electricCar: \"Coche eléctrico\",\r\n battery: \"Batería\",\r\n chargingTime: \"Hora de carga\",\r\n chargingTimeDay: \"Día (06:00 - 18:00)\",\r\n chargingTimeNight: \"Noche (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilómetros por año\",\r\n },\r\n annualPriceIncrease: \"Aumento anual del precio (%)\",\r\n costSavings25Years: \"Ahorro en 25 años\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Mostrar instrucciones\",\r\n hide: \"Ocultar instrucciones\",\r\n parts: {\r\n roof: \"Después de buscar y seleccionar su dirección, resalte la parte del tejado donde desea añadir paneles solares. Marque cada superficie con un polígono con la herramienta de tejado\",\r\n obstruction: \". Si tiene claraboyas u otras obstrucciones donde no desea añadir paneles solares, márquelas también con la herramienta de obstrucción\",\r\n delete: \". Puede eliminar polígonos con la herramienta de eliminación\",\r\n move: \". Si desea cambiar las esquinas de un polígono, seleccione la herramienta de movimiento\",\r\n end: \", seleccione el polígono que desea modificar y arrastre y suelte los bordes.\",\r\n }\r\n },\r\n markRoofEdge: \"Marcar borde inferior del tejado\",\r\n noPolygonSelected: \"No se ha seleccionado un polígono\",\r\n noAddressSelected: \"Por favor, seleccione una dirección\",\r\n information: \"Información\",\r\n calculateSolarPanels: \"Calcular paneles solares\",\r\n panels: \"Paneles\",\r\n area: \"Área\",\r\n azimuth: \"Azimut\",\r\n pitch: \"Inclinación\",\r\n tools: {\r\n roof: {\r\n name: \"Tejado\",\r\n explanation: \"Dibuje el tejado del edificio\",\r\n ariaLabel: \"Tejado\",\r\n },\r\n obstruction: {\r\n name: \"Obstrucción\",\r\n explanation: \"Dibuje la obstrucción del edificio\",\r\n ariaLabel: \"Obstrucción\",\r\n },\r\n delete: {\r\n name: \"Eliminar\",\r\n explanation: \"Elimine el polígono seleccionado\",\r\n ariaLabel: \"Eliminar\",\r\n },\r\n move: {\r\n name: \"Mover\",\r\n explanation: \"Mueva los puntos del polígono seleccionado\",\r\n ariaLabel: \"Mover\",\r\n },\r\n undo: {\r\n name: \"Deshacer\",\r\n explanation: \"Deshaga la última acción\",\r\n ariaLabel: \"Deshacer\",\r\n }\r\n },\r\n }\r\n}","import { Language, LanguageStrings } from \"../../types/lang\";\r\nimport { en } from \"./english\";\r\nimport { de } from \"./german\";\r\nimport { es } from \"./spanish\";\r\n\r\nconst languageStrings: Record<Language, LanguageStrings> = {\r\n en: en,\r\n es: es,\r\n de: de,\r\n}\r\n\r\n\r\nexport function getLanguageStrings(lang: Language): LanguageStrings {\r\n const defaultLang = languageStrings[\"en\"];\r\n if (lang === \"en\") {\r\n return defaultLang;\r\n }\r\n const langStrings = languageStrings[lang];\r\n \r\n // Deep merge the default language strings with the selected language strings\r\n const mergedStrings = JSON.parse(JSON.stringify(defaultLang)); // Deep clone default\r\n \r\n function deepMerge(target: any, source: any) {\r\n for (const key in source) {\r\n if (source[key] instanceof Object && key in target) {\r\n deepMerge(target[key], source[key]);\r\n } else if (source[key] !== undefined) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n \r\n deepMerge(mergedStrings, langStrings);\r\n return mergedStrings;\r\n}\r\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from \"@stencil/store\";\r\nimport { Language } from \"./components\";\r\n\r\nexport interface Settings {\r\n language: Language;\r\n rowSpacing: number;\r\n columnSpacing: number;\r\n borderInset: number;\r\n heatPumpM2Consumption: number;\r\n}\r\n\r\nexport interface State {\r\n latitude: number | null;\r\n longitude: number | null;\r\n radiusMeters: number;\r\n settings: Settings;\r\n settingsVersion: number;\r\n isMobile: boolean;\r\n isIOS: boolean;\r\n}\r\n\r\nconst {state, onChange} = createStore<State>({\r\n latitude: null,\r\n longitude: null,\r\n radiusMeters: 15,\r\n settings: {\r\n language: \"en\",\r\n rowSpacing: 1,\r\n columnSpacing: 1,\r\n borderInset: 0.1,\r\n heatPumpM2Consumption: 85,\r\n },\r\n settingsVersion: 1,\r\n isMobile: false,\r\n isIOS: false,\r\n});\r\n\r\nonChange(\"latitude\", (value) => {\r\n state.latitude = value;\r\n});\r\n\r\nonChange(\"longitude\", (value) => {\r\n state.longitude = value;\r\n});\r\n\r\nonChange(\"radiusMeters\", (value) => {\r\n state.radiusMeters = value;\r\n});\r\n\r\nonChange(\"settings\", (value) => {\r\n state.settings = value;\r\n});\r\n\r\nonChange(\"settingsVersion\", (value) => {\r\n state.settingsVersion = value;\r\n});\r\n\r\nonChange(\"isMobile\", (value) => {\r\n state.isMobile = value;\r\n});\r\n\r\nonChange(\"isIOS\", (value) => {\r\n state.isIOS = value;\r\n});\r\n\r\nexport {state, onChange};\r\n"],"version":3}
|
|
1
|
+
{"file":"p-BFcukOp8.js","mappings":"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","names":[],"sources":["src/utils/lang/english.ts","src/utils/lang/german.ts","src/utils/lang/spanish.ts","src/utils/lang/general.ts","../../node_modules/@stencil/store/dist/index.js","src/store.ts"],"sourcesContent":["import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const en: LanguageStrings = {\r\n settings: {\r\n language: \"Language\",\r\n rowSpacing: \"Row Spacing\",\r\n columnSpacing: \"Column Spacing\",\r\n borderInset: \"Border Inset\",\r\n },\r\n mapSelector: {\r\n explanation: \"Select your house on the map and adjust the radius of the circle to fully encompase your roof.\",\r\n radius: \"Radius (meters)\",\r\n accept: \"Accept\",\r\n chooseOnMap: \"Choose on Map\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Search for your address\"\r\n },\r\n solarSystemForm: {\r\n title: \"Solar System Configuration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Number of Solar Panels\",\r\n panelPeakPower: \"Panel Peak Power (kW)\",\r\n totalSystemPeakPower: \"Total System Peak Power (kW)\",\r\n electricityPrice: \"Electricity Price (€/kWh)\",\r\n compensationRate: \"Compensation Rate (€/kWh)\",\r\n autonomy: \"Autonomy\",\r\n costSavings: \"Cost Savings (€/year)\",\r\n householdConsumptionTitle: \"Household Electricity Consumption\",\r\n consumptionProfileTitle: \"Consumption Profile\",\r\n electricityCostsTitle: \"Electricity Costs\",\r\n compensationRateTitle: \"Compensation Rate\",\r\n resultsTitle: \"Results\",\r\n savingsDisclaimer: \"Disclaimer: The savings are based on the average electricity price in Spain.\",\r\n annualConsumption: \"Annual Consumption (kWh)\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n nameError: \"Please enter your name\",\r\n emailError: \"Please enter a valid email address\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Mostly at home\",\r\n mostlyAway: \"Mostly away\",\r\n },\r\n chart: {\r\n consumption: \"Consumption\",\r\n production: \"Production\",\r\n consumptionProfile: \"Consumption Profile\",\r\n relativeConsumption: \"Relative Consumption\",\r\n hourOfDay: \"Hour of Day\",\r\n },\r\n validEmailError: \"Please enter a valid email address\",\r\n requestOffer: \"Request Offer\",\r\n requestOfferButton: \"Request Offer\",\r\n year: \"year\",\r\n additionalComponents: {\r\n title: \"Additional Components\",\r\n heatPump: \"Heat Pump\",\r\n electricCar: \"Electric Car\",\r\n battery: \"Battery\",\r\n chargingTime: \"Charging Time\",\r\n chargingTimeDay: \"Day (06:00 - 18:00)\",\r\n chargingTimeNight: \"Night (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometers per Year\",\r\n },\r\n annualPriceIncrease: \"Annual Price Increase (%)\",\r\n costSavings25Years: \"25-Year Savings\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Show Instructions\",\r\n hide: \"Hide Instructions\",\r\n parts: {\r\n roof: \"After you have searched and selected your address. Highlight the part of your roof that you want to add solar panels to. Mark each surface with a polygon with the roof tool\",\r\n obstruction: \". If you have skylights or other obstructions where you don't want to add solar panels, mark those as well with the obstruction tool\",\r\n delete: \". You can delete polygons with the delete tool\",\r\n move: \". If you want to change the corners of a polygon, select the move tool\",\r\n end: \", select the polygon you want to change and drag and drop the corners.\",\r\n }\r\n },\r\n noPolygonSelected: \"No polygon selected\",\r\n noAddressSelected: \"Please select an address\",\r\n information: \"Information\",\r\n calculateSolarPanels: \"Calculate Solar Panels\",\r\n markRoofEdge: \"Mark lower roof edge\",\r\n panels: \"Panels\",\r\n area: \"Area\",\r\n azimuth: \"Azimuth\",\r\n pitch: \"Pitch\",\r\n tools: {\r\n roof: {\r\n name: \"Roof\",\r\n explanation: \"Draw the roof of the building\",\r\n ariaLabel: \"Roof\",\r\n },\r\n obstruction: {\r\n name: \"Obstruction\",\r\n explanation: \"Draw the obstruction of the building\",\r\n ariaLabel: \"Obstruction\",\r\n },\r\n delete: {\r\n name: \"Delete\",\r\n explanation: \"Delete the selected polygon\",\r\n ariaLabel: \"Delete\",\r\n },\r\n move: {\r\n name: \"Move\",\r\n explanation: \"Move the selected polygon\",\r\n ariaLabel: \"Move\",\r\n },\r\n undo: {\r\n name: \"Undo\",\r\n explanation: \"Undo the last action\",\r\n ariaLabel: \"Undo\",\r\n }\r\n },\r\n }\r\n}","import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const de: LanguageStrings = {\r\n settings: {\r\n language: \"Sprache\",\r\n rowSpacing: \"Zeilenabstand\",\r\n columnSpacing: \"Spaltenabstand\",\r\n borderInset: \"Randabstand\",\r\n },\r\n mapSelector: {\r\n explanation: \"Wählen Sie Ihre Adresse auf der Karte und passen Sie den Radius des Kreises an, um Ihr Dach vollständig zu erfassen.\",\r\n radius: \"Radius (Meter)\",\r\n accept: \"Akzeptieren\",\r\n chooseOnMap: \"Auf der Karte auswählen\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Ihre Adresse\"\r\n },\r\n solarSystemForm: {\r\n title: \"Solarsystem Konfiguration\",\r\n systemInformation: \"System Information\",\r\n numberOfPanels: \"Anzahl der Solarpanel\",\r\n panelPeakPower: \"Panelleistung (kW)\",\r\n totalSystemPeakPower: \"Anlagengröße (kWp)\",\r\n electricityPrice: \"Strompreis (€/kWh)\",\r\n compensationRate: \"Einspeisevergütung (€/kWh)\",\r\n autonomy: \"Autarkie\",\r\n costSavings: \"Einsparungen (€/Jahr)\",\r\n householdConsumptionTitle: \"Haushaltsverbrauch\",\r\n consumptionProfileTitle: \"Verbrauchprofil\",\r\n electricityCostsTitle: \"Stromkosten\",\r\n compensationRateTitle: \"Einspeisevergütung\",\r\n resultsTitle: \"Ergebnisse\",\r\n savingsDisclaimer: \"Disclaimer: Die Einsparungen basieren auf dem durchschnittlichen Strompreis in Deutschland.\",\r\n annualConsumption: \"Jährlicher Verbrauch (kWh)\",\r\n name: \"Name\",\r\n email: \"Email\",\r\n nameError: \"Bitte geben Sie Ihren Namen ein\",\r\n emailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Hauptsächlich zu Hause\",\r\n mostlyAway: \"Erwerbstätig\",\r\n },\r\n chart: {\r\n consumption: \"Verbrauch\",\r\n production: \"Produktion\",\r\n consumptionProfile: \"Verbrauchprofil\",\r\n relativeConsumption: \"Verbrauch\",\r\n hourOfDay: \"Stunde des Tages\",\r\n },\r\n validEmailError: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\r\n requestOffer: \"Angebot anfordern\",\r\n requestOfferButton: \"Angebot anfordern\",\r\n year: \"Jahr\",\r\n additionalComponents: {\r\n title: \"Zusätzliches\",\r\n heatPump: \"Wärmepumpe\",\r\n electricCar: \"Elektroauto\",\r\n battery: \"Batterie\",\r\n chargingTime: \"Zeitpunkt der Ladung\",\r\n chargingTimeDay: \"Tag (06:00 - 18:00)\",\r\n chargingTimeNight: \"Nacht (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilometer pro Jahr\",\r\n },\r\n annualPriceIncrease: \"Jährliche Preissteigerung (%)\t\",\r\n costSavings25Years: \"25-Jährige Einsparungen\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Anleitung anzeigen\",\r\n hide: \"Anleitung ausblenden\",\r\n parts: {\r\n roof: \"Nachdem Sie Ihre Adresse gesucht und ausgewählt haben. Markieren Sie die Teile Ihres Daches, auf denen Sie Solarpanelleisten hinzufügen möchten. Markieren Sie jede Oberfläche mit einem Polygon mit dem Dachwerkzeug\",\r\n obstruction: \". Wenn Sie Dachfenster oder andere Hindernisse haben, auf denen Sie keine Solarpanele hinzufügen können, markieren Sie diese mit dem Hinderniswerkzeug\",\r\n delete: \". Sie können Polygone mit dem Löschwerkzeug löschen\",\r\n move: \". Wenn Sie die Ecken eines Polygons ändern möchten, wählen Sie das Verschiebewerkzeug\",\r\n end: \", wählen Sie das Polygon, das Sie ändern möchten, und verschieben Sie die Ecken.\",\r\n }\r\n },\r\n markRoofEdge: \"untere Dachkante markieren\",\r\n noPolygonSelected: \"Kein Polygon ausgewählt\",\r\n noAddressSelected: \"Bitte wählen Sie eine Adresse\",\r\n information: \"Information\",\r\n calculateSolarPanels: \"Berechnen Sie die Solarpanele\",\r\n panels: \"Panele\",\r\n area: \"Fläche\",\r\n azimuth: \"Ausrichtung\",\r\n pitch: \"Neigung\",\r\n tools: {\r\n roof: {\r\n name: \"Dach\",\r\n explanation: \"Zeichnen Sie das Dach des Gebäudes\",\r\n ariaLabel: \"Dach\",\r\n },\r\n obstruction: {\r\n name: \"Hindernis\",\r\n explanation: \"Zeichnen Sie das Hindernis des Gebäudes\",\r\n ariaLabel: \"Hindernis\",\r\n },\r\n delete: {\r\n name: \"Löschen\",\r\n explanation: \"Löschen Sie das ausgewählte Polygon\",\r\n ariaLabel: \"Löschen\",\r\n },\r\n move: {\r\n name: \"Verschieben\",\r\n explanation: \"Verschieben Sie Punkte des ausgewählten Polygons\",\r\n ariaLabel: \"Verschieben\",\r\n },\r\n undo: {\r\n name: \"Rückgängig\",\r\n explanation: \"Sie die letzte Aktion rückgängig\",\r\n ariaLabel: \"Rückgängig\",\r\n }\r\n },\r\n }\r\n}","import { LanguageStrings } from \"../../types/lang\";\r\n\r\nexport const es: LanguageStrings = {\r\n settings: {\r\n language: \"Idioma\",\r\n rowSpacing: \"Espaciado de filas\",\r\n columnSpacing: \"Espaciado de columnas\",\r\n borderInset: \"Espaciado de bordes\",\r\n },\r\n mapSelector: {\r\n explanation: \"Selecciona tu casa en el mapa y ajusta el radio del círculo para cubrir completamente tu tejado.\",\r\n radius: \"Radio (metros)\",\r\n accept: \"Aceptar\",\r\n chooseOnMap: \"Seleccionar en el mapa\",\r\n },\r\n solarExpert: {\r\n searchPlaceholder: \"Buscar tu dirección\"\r\n },\r\n solarSystemForm: {\r\n title: \"Configuración del sistema solar\",\r\n systemInformation: \"Información del sistema\",\r\n numberOfPanels: \"Número de paneles solares\",\r\n panelPeakPower: \"Potencia pico del panel (kW)\",\r\n totalSystemPeakPower: \"Potencia pico total del sistema (kW)\",\r\n electricityPrice: \"Precio de la electricidad (€/kWh)\",\r\n compensationRate: \"Tasa de compensación (€/kWh)\",\r\n autonomy: \"Autonomía\",\r\n costSavings: \"Ahorro (€/año)\",\r\n householdConsumptionTitle: \"Consumo de la casa\",\r\n consumptionProfileTitle: \"Perfil de consumo\",\r\n electricityCostsTitle: \"Costes de la electricidad\",\r\n compensationRateTitle: \"Tasa de compensación\",\r\n resultsTitle: \"Resultados\",\r\n savingsDisclaimer: \"Nota: Los ahorros se basan en el precio promedio de la electricidad en España.\",\r\n annualConsumption: \"Consumo anual (kWh)\",\r\n name: \"Nombre\",\r\n email: \"Email\",\r\n nameError: \"Por favor, ingrese su nombre\",\r\n emailError: \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n consumptionProfiles: {\r\n mostlyAtHome: \"Principalmente en casa\",\r\n mostlyAway: \"Empleo\",\r\n },\r\n chart: {\r\n consumption: \"Consumo\",\r\n production: \"Producción\",\r\n consumptionProfile: \"Perfil de consumo\",\r\n relativeConsumption: \"Consumo\",\r\n hourOfDay: \"Hora del día\",\r\n },\r\n validEmailError: \"Por favor, ingrese una dirección de correo electrónico válida\",\r\n requestOffer: \"Solicitar una oferta\",\r\n requestOfferButton: \"Solicitar oferta\",\r\n year: \"Año\",\r\n additionalComponents: {\r\n title: \"Componentes adicionales\",\r\n heatPump: \"Caldera\",\r\n electricCar: \"Coche eléctrico\",\r\n battery: \"Batería\",\r\n chargingTime: \"Hora de carga\",\r\n chargingTimeDay: \"Día (06:00 - 18:00)\",\r\n chargingTimeNight: \"Noche (18:00 - 06:00)\",\r\n kilometersPerYear: \"Kilómetros por año\",\r\n },\r\n annualPriceIncrease: \"Aumento anual del precio (%)\",\r\n costSavings25Years: \"Ahorro en 25 años\",\r\n },\r\n mapDraw: {\r\n instructions: {\r\n show: \"Mostrar instrucciones\",\r\n hide: \"Ocultar instrucciones\",\r\n parts: {\r\n roof: \"Después de buscar y seleccionar su dirección, resalte la parte del tejado donde desea añadir paneles solares. Marque cada superficie con un polígono con la herramienta de tejado\",\r\n obstruction: \". Si tiene claraboyas u otras obstrucciones donde no desea añadir paneles solares, márquelas también con la herramienta de obstrucción\",\r\n delete: \". Puede eliminar polígonos con la herramienta de eliminación\",\r\n move: \". Si desea cambiar las esquinas de un polígono, seleccione la herramienta de movimiento\",\r\n end: \", seleccione el polígono que desea modificar y arrastre y suelte los bordes.\",\r\n }\r\n },\r\n markRoofEdge: \"Marcar borde inferior del tejado\",\r\n noPolygonSelected: \"No se ha seleccionado un polígono\",\r\n noAddressSelected: \"Por favor, seleccione una dirección\",\r\n information: \"Información\",\r\n calculateSolarPanels: \"Calcular paneles solares\",\r\n panels: \"Paneles\",\r\n area: \"Área\",\r\n azimuth: \"Azimut\",\r\n pitch: \"Inclinación\",\r\n tools: {\r\n roof: {\r\n name: \"Tejado\",\r\n explanation: \"Dibuje el tejado del edificio\",\r\n ariaLabel: \"Tejado\",\r\n },\r\n obstruction: {\r\n name: \"Obstrucción\",\r\n explanation: \"Dibuje la obstrucción del edificio\",\r\n ariaLabel: \"Obstrucción\",\r\n },\r\n delete: {\r\n name: \"Eliminar\",\r\n explanation: \"Elimine el polígono seleccionado\",\r\n ariaLabel: \"Eliminar\",\r\n },\r\n move: {\r\n name: \"Mover\",\r\n explanation: \"Mueva los puntos del polígono seleccionado\",\r\n ariaLabel: \"Mover\",\r\n },\r\n undo: {\r\n name: \"Deshacer\",\r\n explanation: \"Deshaga la última acción\",\r\n ariaLabel: \"Deshacer\",\r\n }\r\n },\r\n }\r\n}","import { Language, LanguageStrings } from \"../../types/lang\";\r\nimport { en } from \"./english\";\r\nimport { de } from \"./german\";\r\nimport { es } from \"./spanish\";\r\n\r\nconst languageStrings: Record<Language, LanguageStrings> = {\r\n en: en,\r\n es: es,\r\n de: de,\r\n}\r\n\r\n\r\nexport function getLanguageStrings(lang: Language): LanguageStrings {\r\n const defaultLang = languageStrings[\"en\"];\r\n if (lang === \"en\") {\r\n return defaultLang;\r\n }\r\n const langStrings = languageStrings[lang];\r\n \r\n // Deep merge the default language strings with the selected language strings\r\n const mergedStrings = JSON.parse(JSON.stringify(defaultLang)); // Deep clone default\r\n \r\n function deepMerge(target: any, source: any) {\r\n for (const key in source) {\r\n if (source[key] instanceof Object && key in target) {\r\n deepMerge(target[key], source[key]);\r\n } else if (source[key] !== undefined) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n \r\n deepMerge(mergedStrings, langStrings);\r\n return mergedStrings;\r\n}\r\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from \"@stencil/store\";\r\nimport { Language } from \"./components\";\r\n\r\nexport interface Settings {\r\n language: Language;\r\n rowSpacing: number;\r\n columnSpacing: number;\r\n borderInset: number;\r\n heatPumpM2Consumption: number;\r\n}\r\n\r\nexport interface State {\r\n latitude: number | null;\r\n longitude: number | null;\r\n radiusMeters: number;\r\n settings: Settings;\r\n settingsVersion: number;\r\n isMobile: boolean;\r\n isIOS: boolean;\r\n}\r\n\r\nconst {state, onChange} = createStore<State>({\r\n latitude: null,\r\n longitude: null,\r\n radiusMeters: 15,\r\n settings: {\r\n language: \"en\",\r\n rowSpacing: 1,\r\n columnSpacing: 1,\r\n borderInset: 0.1,\r\n heatPumpM2Consumption: 85,\r\n },\r\n settingsVersion: 1,\r\n isMobile: false,\r\n isIOS: true,\r\n});\r\n\r\nonChange(\"latitude\", (value) => {\r\n state.latitude = value;\r\n});\r\n\r\nonChange(\"longitude\", (value) => {\r\n state.longitude = value;\r\n});\r\n\r\nonChange(\"radiusMeters\", (value) => {\r\n state.radiusMeters = value;\r\n});\r\n\r\nonChange(\"settings\", (value) => {\r\n state.settings = value;\r\n});\r\n\r\nonChange(\"settingsVersion\", (value) => {\r\n state.settingsVersion = value;\r\n});\r\n\r\nonChange(\"isMobile\", (value) => {\r\n state.isMobile = value;\r\n});\r\n\r\nonChange(\"isIOS\", (value) => {\r\n state.isIOS = value;\r\n});\r\n\r\nexport {state, onChange};\r\n"],"version":3}
|