blue-chestnut-solar-expert 0.0.64 → 0.0.65

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 (125) hide show
  1. package/dist/cjs/eraser-icon_19.cjs.entry.js +1 -1
  2. package/dist/cjs/{lerc-CQf05pmr.js → lerc-CweSdQV9.js} +3 -3
  3. package/dist/cjs/{lerc-CQf05pmr.js.map → lerc-CweSdQV9.js.map} +1 -1
  4. package/dist/cjs/loading-widget.cjs.entry.js +1 -1
  5. package/dist/cjs/loading-widget.cjs.entry.js.map +1 -1
  6. package/dist/cjs/loading-widget.entry.cjs.js.map +1 -1
  7. package/dist/collection/components/map-draw/map-draw.js +8 -10
  8. package/dist/collection/components/map-draw/map-draw.js.map +1 -1
  9. package/dist/collection/components/solar-system-form/solar-system-form.js +37 -38
  10. package/dist/collection/components/solar-system-form/solar-system-form.js.map +1 -1
  11. package/dist/collection/output.css +0 -52
  12. package/dist/components/eraser-icon.js +1 -1
  13. package/dist/components/house-icon.js +1 -1
  14. package/dist/components/icon-selector.js +1 -1
  15. package/dist/components/loading-widget.js +1 -1
  16. package/dist/components/loading-widget.js.map +1 -1
  17. package/dist/components/map-draw.js +1 -1
  18. package/dist/components/map-selector.js +1 -1
  19. package/dist/components/marker-icon.js +1 -1
  20. package/dist/components/move-icon.js +1 -1
  21. package/dist/components/octagon-minus-icon.js +1 -1
  22. package/dist/components/p-BJLO76Yi.js +40 -0
  23. package/dist/components/p-BJLO76Yi.js.map +1 -0
  24. package/dist/components/p-BXoz2zXG.js +47 -0
  25. package/dist/components/p-BXoz2zXG.js.map +1 -0
  26. package/dist/components/p-C5QieOat.js +114 -0
  27. package/dist/components/p-C5QieOat.js.map +1 -0
  28. package/dist/components/{p-IzVa21Wl.js → p-CCG3fXg3.js} +44 -42
  29. package/dist/components/p-CCG3fXg3.js.map +1 -0
  30. package/dist/components/p-CE2V-avM.js +623 -0
  31. package/dist/components/p-CE2V-avM.js.map +1 -0
  32. package/dist/components/p-CL74Q4VR.js +40 -0
  33. package/dist/components/p-CL74Q4VR.js.map +1 -0
  34. package/dist/components/p-CN8xBdHM.js +76 -0
  35. package/dist/components/p-CN8xBdHM.js.map +1 -0
  36. package/dist/components/{p-De6Uhz0b.js → p-Cl7aThVr.js} +28 -30
  37. package/dist/components/p-Cl7aThVr.js.map +1 -0
  38. package/dist/components/p-D8w3bTPO.js +40 -0
  39. package/dist/components/p-D8w3bTPO.js.map +1 -0
  40. package/dist/components/p-DBwr8xSB.js +40 -0
  41. package/dist/components/p-DBwr8xSB.js.map +1 -0
  42. package/dist/components/p-DDmNiupX.js +121 -0
  43. package/dist/components/p-DDmNiupX.js.map +1 -0
  44. package/dist/components/{p-DoOT28vq.js → p-DRV0Pmhs.js} +3 -3
  45. package/dist/components/{p-DoOT28vq.js.map → p-DRV0Pmhs.js.map} +1 -1
  46. package/dist/components/p-DTXeHbuh.js +40 -0
  47. package/dist/components/p-DTXeHbuh.js.map +1 -0
  48. package/dist/components/p-FdEV2qPo.js +40 -0
  49. package/dist/components/p-FdEV2qPo.js.map +1 -0
  50. package/dist/components/p-Ooow0N-g.js +89 -0
  51. package/dist/components/p-Ooow0N-g.js.map +1 -0
  52. package/dist/components/p-P28NBglk.js +86 -0
  53. package/dist/components/p-P28NBglk.js.map +1 -0
  54. package/dist/components/p-QhOsRYRe.js +163 -0
  55. package/dist/components/p-QhOsRYRe.js.map +1 -0
  56. package/dist/components/p-Umz6nJIv.js +40 -0
  57. package/dist/components/p-Umz6nJIv.js.map +1 -0
  58. package/dist/components/p-waOPoUcA.js +40 -0
  59. package/dist/components/p-waOPoUcA.js.map +1 -0
  60. package/dist/components/polygon-buttons.js +1 -1
  61. package/dist/components/polygon-information.js +1 -1
  62. package/dist/components/search-icon.js +1 -1
  63. package/dist/components/settings-icon.js +1 -1
  64. package/dist/components/settings-modal.js +1 -1
  65. package/dist/components/solar-expert.js +19 -19
  66. package/dist/components/solar-expert.js.map +1 -1
  67. package/dist/components/solar-system-form.js +1 -1
  68. package/dist/components/toast-notification.js +1 -1
  69. package/dist/components/tool-box.js +1 -1
  70. package/dist/components/tutorial-component.js +1 -1
  71. package/dist/components/undo-icon.js +1 -1
  72. package/dist/esm/eraser-icon_19.entry.js +1 -1
  73. package/dist/esm/{lerc-j3yBkoBc.js → lerc-D7wRie33.js} +3 -3
  74. package/dist/esm/{lerc-j3yBkoBc.js.map → lerc-D7wRie33.js.map} +1 -1
  75. package/dist/esm/loading-widget.entry.js +1 -1
  76. package/dist/esm/loading-widget.entry.js.map +1 -1
  77. package/dist/stencil-library/loading-widget.entry.esm.js.map +1 -1
  78. package/dist/stencil-library/{p-d2fcb2d8.entry.js → p-05a58ef0.entry.js} +2 -2
  79. package/dist/stencil-library/{p-rVA7BFlW.js → p-CcRwkRDp.js} +4 -4
  80. package/dist/stencil-library/{p-rVA7BFlW.js.map → p-CcRwkRDp.js.map} +1 -1
  81. package/dist/stencil-library/p-D3ZsxpeN.js +2 -0
  82. package/dist/stencil-library/p-D3ZsxpeN.js.map +1 -0
  83. package/dist/stencil-library/p-ab0f2031.entry.js +2 -0
  84. package/dist/stencil-library/p-ab0f2031.entry.js.map +1 -0
  85. package/dist/stencil-library/stencil-library.esm.js +1 -1
  86. package/package.json +1 -1
  87. package/dist/components/p-1jcVNjsm.js +0 -47
  88. package/dist/components/p-1jcVNjsm.js.map +0 -1
  89. package/dist/components/p-4FooU4eR.js +0 -40
  90. package/dist/components/p-4FooU4eR.js.map +0 -1
  91. package/dist/components/p-6rmvkwsO.js +0 -163
  92. package/dist/components/p-6rmvkwsO.js.map +0 -1
  93. package/dist/components/p-BYULvwxQ.js +0 -40
  94. package/dist/components/p-BYULvwxQ.js.map +0 -1
  95. package/dist/components/p-BcBvva_X.js +0 -40
  96. package/dist/components/p-BcBvva_X.js.map +0 -1
  97. package/dist/components/p-But3uNm3.js +0 -76
  98. package/dist/components/p-But3uNm3.js.map +0 -1
  99. package/dist/components/p-COCnOrkb.js +0 -121
  100. package/dist/components/p-COCnOrkb.js.map +0 -1
  101. package/dist/components/p-COL7rExT.js +0 -86
  102. package/dist/components/p-COL7rExT.js.map +0 -1
  103. package/dist/components/p-CpGXfh7Q.js +0 -114
  104. package/dist/components/p-CpGXfh7Q.js.map +0 -1
  105. package/dist/components/p-Cu7ckMQp.js +0 -40
  106. package/dist/components/p-Cu7ckMQp.js.map +0 -1
  107. package/dist/components/p-CxwiRuTf.js +0 -623
  108. package/dist/components/p-CxwiRuTf.js.map +0 -1
  109. package/dist/components/p-DCMO4ssM.js +0 -40
  110. package/dist/components/p-DCMO4ssM.js.map +0 -1
  111. package/dist/components/p-DWrXodHT.js +0 -40
  112. package/dist/components/p-DWrXodHT.js.map +0 -1
  113. package/dist/components/p-De6Uhz0b.js.map +0 -1
  114. package/dist/components/p-IzVa21Wl.js.map +0 -1
  115. package/dist/components/p-JzJ_ZuEh.js +0 -89
  116. package/dist/components/p-JzJ_ZuEh.js.map +0 -1
  117. package/dist/components/p-kB7DMoo7.js +0 -40
  118. package/dist/components/p-kB7DMoo7.js.map +0 -1
  119. package/dist/components/p-rW0sFWOp.js +0 -40
  120. package/dist/components/p-rW0sFWOp.js.map +0 -1
  121. package/dist/stencil-library/p-741a746a.entry.js +0 -2
  122. package/dist/stencil-library/p-741a746a.entry.js.map +0 -1
  123. package/dist/stencil-library/p-c6J1w7ew.js +0 -2
  124. package/dist/stencil-library/p-c6J1w7ew.js.map +0 -1
  125. /package/dist/stencil-library/{p-d2fcb2d8.entry.js.map → p-05a58ef0.entry.js.map} +0 -0
@@ -1,623 +0,0 @@
1
-
2
- if (typeof global === "undefined") { var global = globalThis || window || self; }
3
- import { p as proxyCustomElement, H, h } from './index.js';
4
- import { s as state, g as getLanguageStrings } from './p-B_6Ue-UQ.js';
5
- import { d as defineCustomElement$1 } from './p-DWrXodHT.js';
6
-
7
- /******************************************************************************
8
- Copyright (c) Microsoft Corporation.
9
-
10
- Permission to use, copy, modify, and/or distribute this software for any
11
- purpose with or without fee is hereby granted.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
- PERFORMANCE OF THIS SOFTWARE.
20
- ***************************************************************************** */
21
- /* global Reflect, Promise, SuppressedError, Symbol */
22
-
23
-
24
- function __awaiter(thisArg, _arguments, P, generator) {
25
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26
- return new (P || (P = Promise))(function (resolve, reject) {
27
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
28
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
29
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
30
- step((generator = generator.apply(thisArg, [])).next());
31
- });
32
- }
33
-
34
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
35
- var e = new Error(message);
36
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
37
- };
38
-
39
- function getDefaultExportFromCjs (x) {
40
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
41
- }
42
-
43
- // do not edit .js files directly - edit src/index.jst
44
-
45
-
46
-
47
- var fastDeepEqual = function equal(a, b) {
48
- if (a === b) return true;
49
-
50
- if (a && b && typeof a == 'object' && typeof b == 'object') {
51
- if (a.constructor !== b.constructor) return false;
52
-
53
- var length, i, keys;
54
- if (Array.isArray(a)) {
55
- length = a.length;
56
- if (length != b.length) return false;
57
- for (i = length; i-- !== 0;)
58
- if (!equal(a[i], b[i])) return false;
59
- return true;
60
- }
61
-
62
-
63
-
64
- if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
65
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
66
- if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
67
-
68
- keys = Object.keys(a);
69
- length = keys.length;
70
- if (length !== Object.keys(b).length) return false;
71
-
72
- for (i = length; i-- !== 0;)
73
- if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
74
-
75
- for (i = length; i-- !== 0;) {
76
- var key = keys[i];
77
-
78
- if (!equal(a[key], b[key])) return false;
79
- }
80
-
81
- return true;
82
- }
83
-
84
- // true if both NaN, false otherwise
85
- return a!==a && b!==b;
86
- };
87
-
88
- var isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);
89
-
90
- /**
91
- * Copyright 2019 Google LLC. All Rights Reserved.
92
- *
93
- * Licensed under the Apache License, Version 2.0 (the "License");
94
- * you may not use this file except in compliance with the License.
95
- * You may obtain a copy of the License at.
96
- *
97
- * Http://www.apache.org/licenses/LICENSE-2.0.
98
- *
99
- * Unless required by applicable law or agreed to in writing, software
100
- * distributed under the License is distributed on an "AS IS" BASIS,
101
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
102
- * See the License for the specific language governing permissions and
103
- * limitations under the License.
104
- */
105
- const DEFAULT_ID = "__googleMapsScriptId";
106
- /**
107
- * The status of the [[Loader]].
108
- */
109
- var LoaderStatus;
110
- (function (LoaderStatus) {
111
- LoaderStatus[LoaderStatus["INITIALIZED"] = 0] = "INITIALIZED";
112
- LoaderStatus[LoaderStatus["LOADING"] = 1] = "LOADING";
113
- LoaderStatus[LoaderStatus["SUCCESS"] = 2] = "SUCCESS";
114
- LoaderStatus[LoaderStatus["FAILURE"] = 3] = "FAILURE";
115
- })(LoaderStatus || (LoaderStatus = {}));
116
- /**
117
- * [[Loader]] makes it easier to add Google Maps JavaScript API to your application
118
- * dynamically using
119
- * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
120
- * It works by dynamically creating and appending a script node to the the
121
- * document head and wrapping the callback function so as to return a promise.
122
- *
123
- * ```
124
- * const loader = new Loader({
125
- * apiKey: "",
126
- * version: "weekly",
127
- * libraries: ["places"]
128
- * });
129
- *
130
- * loader.load().then((google) => {
131
- * const map = new google.maps.Map(...)
132
- * })
133
- * ```
134
- */
135
- class Loader {
136
- /**
137
- * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set
138
- * using this library, instead the defaults are set by the Google Maps
139
- * JavaScript API server.
140
- *
141
- * ```
142
- * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});
143
- * ```
144
- */
145
- constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = "https://maps.googleapis.com/maps/api/js", version, }) {
146
- this.callbacks = [];
147
- this.done = false;
148
- this.loading = false;
149
- this.errors = [];
150
- this.apiKey = apiKey;
151
- this.authReferrerPolicy = authReferrerPolicy;
152
- this.channel = channel;
153
- this.client = client;
154
- this.id = id || DEFAULT_ID; // Do not allow empty string
155
- this.language = language;
156
- this.libraries = libraries;
157
- this.mapIds = mapIds;
158
- this.nonce = nonce;
159
- this.region = region;
160
- this.retries = retries;
161
- this.url = url;
162
- this.version = version;
163
- if (Loader.instance) {
164
- if (!isEqual(this.options, Loader.instance.options)) {
165
- throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);
166
- }
167
- return Loader.instance;
168
- }
169
- Loader.instance = this;
170
- }
171
- get options() {
172
- return {
173
- version: this.version,
174
- apiKey: this.apiKey,
175
- channel: this.channel,
176
- client: this.client,
177
- id: this.id,
178
- libraries: this.libraries,
179
- language: this.language,
180
- region: this.region,
181
- mapIds: this.mapIds,
182
- nonce: this.nonce,
183
- url: this.url,
184
- authReferrerPolicy: this.authReferrerPolicy,
185
- };
186
- }
187
- get status() {
188
- if (this.errors.length) {
189
- return LoaderStatus.FAILURE;
190
- }
191
- if (this.done) {
192
- return LoaderStatus.SUCCESS;
193
- }
194
- if (this.loading) {
195
- return LoaderStatus.LOADING;
196
- }
197
- return LoaderStatus.INITIALIZED;
198
- }
199
- get failed() {
200
- return this.done && !this.loading && this.errors.length >= this.retries + 1;
201
- }
202
- /**
203
- * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].
204
- *
205
- * @ignore
206
- * @deprecated
207
- */
208
- createUrl() {
209
- let url = this.url;
210
- url += `?callback=__googleMapsCallback&loading=async`;
211
- if (this.apiKey) {
212
- url += `&key=${this.apiKey}`;
213
- }
214
- if (this.channel) {
215
- url += `&channel=${this.channel}`;
216
- }
217
- if (this.client) {
218
- url += `&client=${this.client}`;
219
- }
220
- if (this.libraries.length > 0) {
221
- url += `&libraries=${this.libraries.join(",")}`;
222
- }
223
- if (this.language) {
224
- url += `&language=${this.language}`;
225
- }
226
- if (this.region) {
227
- url += `&region=${this.region}`;
228
- }
229
- if (this.version) {
230
- url += `&v=${this.version}`;
231
- }
232
- if (this.mapIds) {
233
- url += `&map_ids=${this.mapIds.join(",")}`;
234
- }
235
- if (this.authReferrerPolicy) {
236
- url += `&auth_referrer_policy=${this.authReferrerPolicy}`;
237
- }
238
- return url;
239
- }
240
- deleteScript() {
241
- const script = document.getElementById(this.id);
242
- if (script) {
243
- script.remove();
244
- }
245
- }
246
- /**
247
- * Load the Google Maps JavaScript API script and return a Promise.
248
- * @deprecated, use importLibrary() instead.
249
- */
250
- load() {
251
- return this.loadPromise();
252
- }
253
- /**
254
- * Load the Google Maps JavaScript API script and return a Promise.
255
- *
256
- * @ignore
257
- * @deprecated, use importLibrary() instead.
258
- */
259
- loadPromise() {
260
- return new Promise((resolve, reject) => {
261
- this.loadCallback((err) => {
262
- if (!err) {
263
- resolve(window.google);
264
- }
265
- else {
266
- reject(err.error);
267
- }
268
- });
269
- });
270
- }
271
- importLibrary(name) {
272
- this.execute();
273
- return google.maps.importLibrary(name);
274
- }
275
- /**
276
- * Load the Google Maps JavaScript API script with a callback.
277
- * @deprecated, use importLibrary() instead.
278
- */
279
- loadCallback(fn) {
280
- this.callbacks.push(fn);
281
- this.execute();
282
- }
283
- /**
284
- * Set the script on document.
285
- */
286
- setScript() {
287
- var _a, _b;
288
- if (document.getElementById(this.id)) {
289
- // TODO wrap onerror callback for cases where the script was loaded elsewhere
290
- this.callback();
291
- return;
292
- }
293
- const params = {
294
- key: this.apiKey,
295
- channel: this.channel,
296
- client: this.client,
297
- libraries: this.libraries.length && this.libraries,
298
- v: this.version,
299
- mapIds: this.mapIds,
300
- language: this.language,
301
- region: this.region,
302
- authReferrerPolicy: this.authReferrerPolicy,
303
- };
304
- // keep the URL minimal:
305
- Object.keys(params).forEach(
306
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
307
- (key) => !params[key] && delete params[key]);
308
- if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {
309
- // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import
310
- // which also sets the base url, the id, and the nonce
311
- /* eslint-disable */
312
- ((g) => {
313
- // @ts-ignore
314
- let h, a, k, p = "The Google Maps JavaScript API", c = "google", l = "importLibrary", q = "__ib__", m = document, b = window;
315
- // @ts-ignore
316
- b = b[c] || (b[c] = {});
317
- // @ts-ignore
318
- const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () =>
319
- // @ts-ignore
320
- h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {
321
- var _a;
322
- yield (a = m.createElement("script"));
323
- a.id = this.id;
324
- e.set("libraries", [...r] + "");
325
- // @ts-ignore
326
- for (k in g)
327
- e.set(k.replace(/[A-Z]/g, (t) => "_" + t[0].toLowerCase()), g[k]);
328
- e.set("callback", c + ".maps." + q);
329
- a.src = this.url + `?` + e;
330
- d[q] = f;
331
- a.onerror = () => (h = n(Error(p + " could not load.")));
332
- // @ts-ignore
333
- a.nonce = this.nonce || ((_a = m.querySelector("script[nonce]")) === null || _a === void 0 ? void 0 : _a.nonce) || "";
334
- m.head.append(a);
335
- })));
336
- // @ts-ignore
337
- d[l] ? console.warn(p + " only loads once. Ignoring:", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));
338
- })(params);
339
- /* eslint-enable */
340
- }
341
- // While most libraries populate the global namespace when loaded via bootstrap params,
342
- // this is not the case for "marker" when used with the inline bootstrap loader
343
- // (and maybe others in the future). So ensure there is an importLibrary for each:
344
- const libraryPromises = this.libraries.map((library) => this.importLibrary(library));
345
- // ensure at least one library, to kick off loading...
346
- if (!libraryPromises.length) {
347
- libraryPromises.push(this.importLibrary("core"));
348
- }
349
- Promise.all(libraryPromises).then(() => this.callback(), (error) => {
350
- const event = new ErrorEvent("error", { error }); // for backwards compat
351
- this.loadErrorCallback(event);
352
- });
353
- }
354
- /**
355
- * Reset the loader state.
356
- */
357
- reset() {
358
- this.deleteScript();
359
- this.done = false;
360
- this.loading = false;
361
- this.errors = [];
362
- this.onerrorEvent = null;
363
- }
364
- resetIfRetryingFailed() {
365
- if (this.failed) {
366
- this.reset();
367
- }
368
- }
369
- loadErrorCallback(e) {
370
- this.errors.push(e);
371
- if (this.errors.length <= this.retries) {
372
- const delay = this.errors.length * Math.pow(2, this.errors.length);
373
- console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);
374
- setTimeout(() => {
375
- this.deleteScript();
376
- this.setScript();
377
- }, delay);
378
- }
379
- else {
380
- this.onerrorEvent = e;
381
- this.callback();
382
- }
383
- }
384
- callback() {
385
- this.done = true;
386
- this.loading = false;
387
- this.callbacks.forEach((cb) => {
388
- cb(this.onerrorEvent);
389
- });
390
- this.callbacks = [];
391
- }
392
- execute() {
393
- this.resetIfRetryingFailed();
394
- if (this.loading) {
395
- // do nothing but wait
396
- return;
397
- }
398
- if (this.done) {
399
- this.callback();
400
- }
401
- else {
402
- // short circuit and warn if google.maps is already loaded
403
- if (window.google && window.google.maps && window.google.maps.version) {
404
- console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. " +
405
- "This may result in undesirable behavior as options and script parameters may not match.");
406
- this.callback();
407
- return;
408
- }
409
- this.loading = true;
410
- this.setScript();
411
- }
412
- }
413
- }
414
-
415
- const outputCss = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-lg: 0.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --color-primary: hsl(41 51% 90%);\n --color-primary-foreground: hsl(0 0% 0%);\n --color-secondary: hsl(28 100% 8%);\n --color-secondary-foreground: hsl(0 0% 100%);\n --color-tertiary: hsl(28 100% 29%);\n --color-tertiary-foreground: hsl(0 0% 100%);\n --color-muted: hsl(0 0% 100%);\n --color-muted-foreground: hsl(0 0% 0%);\n --color-error: hsl(0 100% 50%);\n --color-error-foreground: hsl(0 0% 100%);\n --color-surface: hsl(0 0% 88%);\n --color-surface-hover: hsl(0 0% 82%);\n --color-surface-active: hsl(0 0% 64%);\n --color-text-muted: hsl(0 0% 45%);\n --color-text-secondary: hsl(0 0% 55%);\n --color-text-placeholder: hsl(0 0% 73%);\n --color-border: hsl(0 0% 82%);\n --color-border-light: hsl(0 0% 93%);\n --color-success: hsl(142 76% 36%);\n --color-info: hsl(221 83% 53%);\n --color-hover: hsl(0 0% 88%);\n --color-hover-dark: hsl(28 100% 8%);\n --color-overlay: rgba(0, 0, 0, 0.24);\n --color-tooltip: hsl(0 0% 13%);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1 {\n left: calc(var(--spacing) * 1);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-3 {\n left: calc(var(--spacing) * 3);\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .m-auto {\n margin: auto;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .table {\n display: table;\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-48 {\n height: calc(var(--spacing) * 48);\n }\n .h-64 {\n height: calc(var(--spacing) * 64);\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-full {\n height: 100%;\n }\n .max-h-full {\n max-height: 100%;\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-full {\n width: 100%;\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .flex-1 {\n flex: 1;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-2 {\n --tw-translate-y: calc(var(--spacing) * 2);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .scale-95 {\n --tw-scale-x: 95%;\n --tw-scale-y: 95%;\n --tw-scale-z: 95%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .scale-100 {\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .resize {\n resize: both;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-4xl {\n border-radius: var(--radius-4xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-t-2 {\n border-top-style: var(--tw-border-style);\n border-top-width: 2px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-border {\n border-color: var(--color-border);\n }\n .border-current {\n border-color: currentcolor;\n }\n .border-error {\n border-color: var(--color-error);\n }\n .border-error\\/20 {\n border-color: color-mix(in srgb, hsl(0 100% 50%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-error) 20%, transparent);\n }\n }\n .border-info {\n border-color: var(--color-info);\n }\n .border-info\\/20 {\n border-color: color-mix(in srgb, hsl(221 83% 53%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-info) 20%, transparent);\n }\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-secondary {\n border-color: var(--color-secondary);\n }\n .border-success {\n border-color: var(--color-success);\n }\n .border-success\\/20 {\n border-color: color-mix(in srgb, hsl(142 76% 36%) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-success) 20%, transparent);\n }\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-error {\n background-color: var(--color-error);\n }\n .bg-error\\/10 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 10%, transparent);\n }\n }\n .bg-error\\/90 {\n background-color: color-mix(in srgb, hsl(0 100% 50%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-error) 90%, transparent);\n }\n }\n .bg-info {\n background-color: var(--color-info);\n }\n .bg-info\\/90 {\n background-color: color-mix(in srgb, hsl(221 83% 53%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-info) 90%, transparent);\n }\n }\n .bg-muted {\n background-color: var(--color-muted);\n }\n .bg-overlay {\n background-color: var(--color-overlay);\n }\n .bg-primary {\n background-color: var(--color-primary);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-secondary {\n background-color: var(--color-secondary);\n }\n .bg-success {\n background-color: var(--color-success);\n }\n .bg-success\\/10 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 10%, transparent);\n }\n }\n .bg-success\\/90 {\n background-color: color-mix(in srgb, hsl(142 76% 36%) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-success) 90%, transparent);\n }\n }\n .bg-surface {\n background-color: var(--color-surface);\n }\n .bg-tertiary {\n background-color: var(--color-tertiary);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .object-contain {\n object-fit: contain;\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-7 {\n padding-top: calc(var(--spacing) * 7);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-10 {\n padding-left: calc(var(--spacing) * 10);\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .text-error {\n color: var(--color-error);\n }\n .text-error-foreground {\n color: var(--color-error-foreground);\n }\n .text-muted {\n color: var(--color-muted);\n }\n .text-muted-foreground {\n color: var(--color-muted-foreground);\n }\n .text-primary-foreground {\n color: var(--color-primary-foreground);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary {\n color: var(--color-secondary);\n }\n .text-success {\n color: var(--color-success);\n }\n .text-text-muted {\n color: var(--color-text-muted);\n }\n .text-text-secondary {\n color: var(--color-text-secondary);\n }\n .text-white {\n color: var(--color-white);\n }\n .underline {\n text-decoration-line: underline;\n }\n .accent-tertiary {\n accent-color: var(--color-tertiary);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .hover\\:bg-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-hover);\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n .hover\\:bg-overlay {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-overlay);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 8%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-surface-hover {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-surface-hover);\n }\n }\n }\n .hover\\:bg-tertiary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-tertiary);\n }\n }\n }\n .hover\\:bg-tertiary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, hsl(28 100% 29%) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-tertiary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-text-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-text-secondary);\n }\n }\n }\n .focus\\:border-2 {\n &:focus {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n .focus\\:border-secondary {\n &:focus {\n border-color: var(--color-secondary);\n }\n }\n .focus\\:border-transparent {\n &:focus {\n border-color: transparent;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-secondary {\n &:focus {\n --tw-ring-color: var(--color-secondary);\n }\n }\n .focus\\:ring-tertiary {\n &:focus {\n --tw-ring-color: var(--color-tertiary);\n }\n }\n .focus\\:ring-offset-0 {\n &:focus {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .sm\\:mt-0 {\n @media (width >= 40rem) {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .sm\\:flex-3 {\n @media (width >= 40rem) {\n flex: 3;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:items-center {\n @media (width >= 40rem) {\n align-items: center;\n }\n }\n .sm\\:gap-4 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 4);\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:pl-2 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-full {\n &::-webkit-slider-runnable-track {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-black\\/25 {\n &::-webkit-slider-runnable-track {\n background-color: color-mix(in srgb, #000 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-\\[10px\\] {\n &::-webkit-slider-thumb {\n height: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-\\[10px\\] {\n &::-webkit-slider-thumb {\n width: 10px;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none {\n &::-webkit-slider-thumb {\n appearance: none;\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full {\n &::-webkit-slider-thumb {\n border-radius: calc(infinity * 1px);\n }\n }\n .\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-muted {\n &::-webkit-slider-thumb {\n background-color: var(--color-muted);\n }\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n";
416
-
417
- const MapSelector = /*@__PURE__*/ proxyCustomElement(class MapSelector extends H {
418
- constructor() {
419
- super();
420
- this.__registerHost();
421
- }
422
- get el() { return this; }
423
- apiKey = "";
424
- language = "en";
425
- isLoaded = false;
426
- autocomplete = null;
427
- map = null;
428
- marker = null;
429
- circle = null;
430
- radius = 20;
431
- latitude = null;
432
- longitude = null;
433
- isSatelliteMode = true;
434
- showAddressError = false;
435
- inputElement;
436
- mapElement;
437
- componentWillLoad() {
438
- // Set location to null initially
439
- state.location = null;
440
- this.loadGoogleMapsScript();
441
- }
442
- async loadGoogleMapsScript() {
443
- try {
444
- const loader = new Loader({
445
- apiKey: this.apiKey,
446
- libraries: ["places", "maps", "marker"],
447
- });
448
- const [places, maps, _] = await Promise.all([
449
- loader.importLibrary("places"),
450
- loader.importLibrary("maps"),
451
- loader.importLibrary("marker"),
452
- ]);
453
- this.isLoaded = true;
454
- this.initializeAutocomplete(places);
455
- this.initializeMap(maps);
456
- }
457
- catch (error) {
458
- console.error("Error loading Google Maps: ", error);
459
- }
460
- }
461
- initializeAutocomplete(places) {
462
- if (!this.inputElement || !this.isLoaded)
463
- return;
464
- this.autocomplete = new places.Autocomplete(this.inputElement);
465
- this.autocomplete.addListener("place_changed", () => {
466
- const place = this.autocomplete?.getPlace();
467
- if (place?.geometry?.location) {
468
- const lat = place.geometry.location.lat();
469
- const lng = place.geometry.location.lng();
470
- state.location = place.name;
471
- this.latitude = lat;
472
- this.longitude = lng;
473
- this.map?.setCenter({ lat, lng });
474
- this.map?.setZoom(40);
475
- }
476
- });
477
- }
478
- initializeMap(maps) {
479
- if (!this.mapElement || !this.isLoaded)
480
- return;
481
- this.map = new maps.Map(this.mapElement, {
482
- center: {
483
- lat: state.latitude || 49.398531832926025,
484
- lng: state.longitude || 8.671214102081551,
485
- },
486
- zoom: 15,
487
- mapTypeControl: false,
488
- streetViewControl: false,
489
- mapTypeId: "satellite",
490
- mapId: "map",
491
- tilt: 0,
492
- });
493
- // this.updateMapLocation(state.latitude, state.longitude);
494
- // Add click listener to map
495
- this.map.addListener("click", (e) => {
496
- if (e.latLng) {
497
- const lat = e.latLng.lat();
498
- const lng = e.latLng.lng();
499
- this.latitude = lat;
500
- this.longitude = lng;
501
- this.updateMapLocation(lat, lng);
502
- }
503
- });
504
- // Initialize marker and circle if we have coordinates
505
- if (state.latitude && state.longitude) {
506
- this.updateMapLocation(state.latitude, state.longitude);
507
- }
508
- }
509
- updateMapLocation(lat, lng) {
510
- if (!this.map)
511
- return;
512
- // Update or create circle
513
- if (this.circle) {
514
- this.circle.setCenter({ lat, lng });
515
- }
516
- else {
517
- const circle = new google.maps.Circle({
518
- strokeColor: "#ffffff",
519
- strokeOpacity: 0.8,
520
- strokeWeight: 2,
521
- fillColor: "rgba(255, 255, 255, 0.8)",
522
- fillOpacity: 0.35,
523
- map: this.map,
524
- center: { lat, lng },
525
- radius: this.radius,
526
- });
527
- this.circle = circle;
528
- }
529
- }
530
- handleRadiusChange(e) {
531
- const value = parseFloat(e.target.value);
532
- this.radius = value;
533
- if (this.circle) {
534
- this.circle.setRadius(value);
535
- }
536
- }
537
- handleAcceptPosition() {
538
- console.log("Accepting position ", this.latitude, this.longitude, this.radius);
539
- // Check if an address has been selected
540
- if (this.latitude === null || this.longitude === null) {
541
- this.showAddressError = true;
542
- // Hide the error after 3 seconds
543
- setTimeout(() => {
544
- this.showAddressError = false;
545
- }, 3000);
546
- return;
547
- }
548
- state.latitude = this.latitude;
549
- state.longitude = this.longitude;
550
- state.radiusMeters = this.radius;
551
- this.showAddressError = false;
552
- }
553
- handleToggleMapMode() {
554
- this.isSatelliteMode = !this.isSatelliteMode;
555
- if (this.map) {
556
- this.map.setMapTypeId(this.isSatelliteMode ? "satellite" : "roadmap");
557
- }
558
- }
559
- isIOS() {
560
- return state.isIOS;
561
- }
562
- render() {
563
- const t = getLanguageStrings(this.language);
564
- return (h("div", { key: 'f609afa9e2a2226b3be80de17a3b810f802b16a4', class: "map-selector flex flex-col gap-4 pb-4" }, h("div", { key: 'b0eec355ec27870b08a9c21f9129ee51e384d301', class: "relative" }, h("div", { key: 'baf26233c9d7c1526135f6bdef5fa2bbe8d449b8', class: "absolute left-3 top-0 h-full flex items-center pointer-events-none" }, h("search-icon", { key: '315a034e92ce894f189be3195686c054d61914dc' })), h("input", { key: '0ae0c9a8597532bd7f7a932fd513fa8cc2789a97', ref: (el) => this.inputElement = el, type: "text", placeholder: t.solarExpert.searchPlaceholder, class: "w-full pl-10 pr-4 py-2 border border-border rounded-4xl focus:ring-secondary bg-muted" })), h("div", { key: '3dbace40d04a11c7283fc19da070438f4120dae5', class: "w-full rounded-4xl p-4 bg-overlay" }, t.mapSelector.explanation), h("div", { key: 'c51a2ce5158c5553997db9d05818f71f6342ff8b', class: "flex items-center gap-4" }, h("label", { key: 'cbc40a3b6df04e8021ccc9da278f6663b9d370ab', class: "text-sm font-medium text-text-muted" }, t.mapSelector.radius), this.isIOS()
565
- ? (h("div", { class: "flex items-center gap-2" }, h("input", { type: "number", min: "5", max: "100", step: "5", 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.radius, onInput: (e) => {
566
- const value = parseInt(e.target
567
- .value);
568
- if (value >= 5 && value <= 100) {
569
- this.radius = value;
570
- if (this.circle) {
571
- this.circle.setRadius(value);
572
- }
573
- }
574
- }, style: {
575
- border: "1px solid var(--color-border)",
576
- } }), h("span", { class: "text-sm text-text-muted" }, "m")))
577
- : (h("input", { type: "range", min: "5", max: "100", value: this.radius, onInput: (e) => this.handleRadiusChange(e), 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" })), !this.isIOS() && (h("span", { key: '27afa73a7462deb1640bd348da6ddbc837108e80', class: "text-sm text-text-muted" }, this.radius, "m"))), h("button", { key: '6a57821539f57e3fc1be52b9885c1677c2d821b0', onClick: () => this.handleToggleMapMode(), class: "w-full py-2 px-4 bg-secondary text-muted rounded-4xl hover:bg-overlay transition-colors", style: {
578
- color: "#ffffff",
579
- } }, this.isSatelliteMode
580
- ? t.mapSelector.switchToStandard
581
- : t.mapSelector.switchToSatellite), h("div", { key: '33cf7a585ec2a3340ef6ee98468c0f0fde84bfb2', ref: (el) => this.mapElement = el, class: "w-full h-[400px] rounded-4xl border border-border" }), this.showAddressError && (h("div", { key: '62c0d763bd71014fd1cddb6ed554b6b5df461ac3', class: "w-full p-3 bg-red-100 border border-red-300 rounded-4xl text-red-700 text-sm" }, t.mapSelector.noAddressSelected)), h("button", { key: '15d857409bb93e66705353c093de07edf1113ad8', onClick: () => this.handleAcceptPosition(), class: "w-full py-2 px-4 bg-secondary text-muted rounded-4xl hover:bg-overlay transition-colors", style: {
582
- color: "#ffffff",
583
- } }, t.mapSelector.accept)));
584
- }
585
- static get style() { return outputCss; }
586
- }, [0, "map-selector", {
587
- "apiKey": [1, "api-key"],
588
- "language": [1],
589
- "isLoaded": [32],
590
- "autocomplete": [32],
591
- "map": [32],
592
- "marker": [32],
593
- "circle": [32],
594
- "radius": [32],
595
- "latitude": [32],
596
- "longitude": [32],
597
- "isSatelliteMode": [32],
598
- "showAddressError": [32]
599
- }]);
600
- function defineCustomElement() {
601
- if (typeof customElements === "undefined") {
602
- return;
603
- }
604
- const components = ["map-selector", "search-icon"];
605
- components.forEach(tagName => { switch (tagName) {
606
- case "map-selector":
607
- if (!customElements.get(tagName)) {
608
- customElements.define(tagName, MapSelector);
609
- }
610
- break;
611
- case "search-icon":
612
- if (!customElements.get(tagName)) {
613
- defineCustomElement$1();
614
- }
615
- break;
616
- } });
617
- }
618
- defineCustomElement();
619
-
620
- export { Loader as L, MapSelector as M, defineCustomElement as d };
621
- //# sourceMappingURL=p-CxwiRuTf.js.map
622
-
623
- //# sourceMappingURL=p-CxwiRuTf.js.map