@courtneyring/components-library 1.0.35 → 1.0.37

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 (57) hide show
  1. package/dist/assets/FloatingWordsHero.css +1 -1
  2. package/dist/assets/OverlayHero.css +1 -1
  3. package/dist/components/FloatingWordsHero/FloatingWordsHero.js +16 -16
  4. package/dist/components/OverlayHero/OverlayHero.js +27 -27
  5. package/package.json +1 -1
  6. package/dist/AccordionItem-DUGBw5pW 2.js +0 -40
  7. package/dist/ScrollTrigger-6HnikosL 3.js +0 -1086
  8. package/dist/animations/FadeIn 3.js +0 -34
  9. package/dist/assets/AccordionItem 4.css +0 -1
  10. package/dist/assets/Banner 3.css +0 -1
  11. package/dist/assets/BorderedBackground 4.css +0 -1
  12. package/dist/assets/Button 4.css +0 -1
  13. package/dist/assets/ButtonGroup 4.css +0 -1
  14. package/dist/assets/Container 4.css +0 -1
  15. package/dist/assets/Countdown 4.css +0 -1
  16. package/dist/assets/Fifty 4.css +0 -1
  17. package/dist/assets/FloatingWordsHero 4.css +0 -1
  18. package/dist/assets/Footer 4.css +0 -1
  19. package/dist/assets/GenericOverlay 4.css +0 -1
  20. package/dist/assets/GridGallery 4.css +0 -1
  21. package/dist/assets/HorizontalScrollImages 4.css +0 -1
  22. package/dist/assets/IconDetail 4.css +0 -1
  23. package/dist/assets/ImageTextBlock 4.css +0 -1
  24. package/dist/assets/Map 4.css +0 -1
  25. package/dist/assets/MenuButton 4.css +0 -1
  26. package/dist/assets/Navbar 4.css +0 -1
  27. package/dist/assets/Note 4.css +0 -1
  28. package/dist/assets/Overlay 4.css +0 -1
  29. package/dist/assets/OverlayHero 4.css +0 -1
  30. package/dist/assets/PageContainer 4.css +0 -1
  31. package/dist/assets/ParallaxImageGrid 4.css +0 -1
  32. package/dist/assets/PinnedImage 4.css +0 -1
  33. package/dist/assets/PromoGroup 4.css +0 -1
  34. package/dist/assets/RSVPEmbed 4.css +0 -1
  35. package/dist/assets/Schedule 4.css +0 -1
  36. package/dist/assets/TextBlock 4.css +0 -1
  37. package/dist/assets/Timeline 3.css +0 -1
  38. package/dist/assets/Toolbar 3.css +0 -1
  39. package/dist/hooks/useActiveSection 4.js +0 -27
  40. package/dist/hooks/useFadeIn 4.js +0 -52
  41. package/dist/hooks/useImageReveal 4.js +0 -55
  42. package/dist/hooks/useNavColor 4.js +0 -15
  43. package/dist/hooks/useRepeatable 4.js +0 -32
  44. package/dist/hooks/useResize 4.js +0 -23
  45. package/dist/hooks/useResponsive 4.js +0 -15
  46. package/dist/hooks/useReveal 4.js +0 -38
  47. package/dist/hooks/useStagger 4.js +0 -43
  48. package/dist/index 4.js +0 -50
  49. package/dist/index-B2JRaoNz 4.js +0 -48
  50. package/dist/index-BmTo-IS6 4.js +0 -2018
  51. package/dist/index-DyQs5aC7 4.js +0 -388
  52. package/dist/index-K0WrPJ_C 4.js +0 -29
  53. package/dist/index.modern-DPbS1w7M 4.js +0 -1443
  54. package/dist/presets/animations 4.js +0 -24
  55. package/dist/utils/breakpoints 4.js +0 -8
  56. package/dist/utils/gsapSetup 4.js +0 -8
  57. package/dist/utils/parse 4.js +0 -12
@@ -1,1443 +0,0 @@
1
- import * as Me from "react";
2
- import A, { forwardRef as B, useMemo as T, useImperativeHandle as F, useState as k, Children as Be, useEffect as C, useContext as H, createContext as je, useCallback as ce, useLayoutEffect as J, useRef as x, useReducer as Ae } from "react";
3
- import { r as De } from "./index-DyQs5aC7.js";
4
- import { g as Fe } from "./index-B2JRaoNz.js";
5
- var te, he;
6
- function ze() {
7
- return he || (he = 1, te = function e(n, t) {
8
- if (n === t) return !0;
9
- if (n && t && typeof n == "object" && typeof t == "object") {
10
- if (n.constructor !== t.constructor) return !1;
11
- var o, r, a;
12
- if (Array.isArray(n)) {
13
- if (o = n.length, o != t.length) return !1;
14
- for (r = o; r-- !== 0; )
15
- if (!e(n[r], t[r])) return !1;
16
- return !0;
17
- }
18
- if (n.constructor === RegExp) return n.source === t.source && n.flags === t.flags;
19
- if (n.valueOf !== Object.prototype.valueOf) return n.valueOf() === t.valueOf();
20
- if (n.toString !== Object.prototype.toString) return n.toString() === t.toString();
21
- if (a = Object.keys(n), o = a.length, o !== Object.keys(t).length) return !1;
22
- for (r = o; r-- !== 0; )
23
- if (!Object.prototype.hasOwnProperty.call(t, a[r])) return !1;
24
- for (r = o; r-- !== 0; ) {
25
- var i = a[r];
26
- if (!e(n[i], t[i])) return !1;
27
- }
28
- return !0;
29
- }
30
- return n !== n && t !== t;
31
- }), te;
32
- }
33
- var Ue = ze();
34
- const q = /* @__PURE__ */ Fe(Ue), Ge = "1.8.3";
35
- function R(e, n) {
36
- var t = {};
37
- for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && n.indexOf(o) < 0 && (t[o] = e[o]);
38
- if (e != null && typeof Object.getOwnPropertySymbols == "function")
39
- for (var r = 0, o = Object.getOwnPropertySymbols(e); r < o.length; r++)
40
- n.indexOf(o[r]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[r]) && (t[o[r]] = e[o[r]]);
41
- return t;
42
- }
43
- function ve(e, n, t, o) {
44
- function r(a) {
45
- return a instanceof t ? a : new t(function(i) {
46
- i(a);
47
- });
48
- }
49
- return new (t || (t = Promise))(function(a, i) {
50
- function c(s) {
51
- try {
52
- d(o.next(s));
53
- } catch (h) {
54
- i(h);
55
- }
56
- }
57
- function p(s) {
58
- try {
59
- d(o.throw(s));
60
- } catch (h) {
61
- i(h);
62
- }
63
- }
64
- function d(s) {
65
- s.done ? a(s.value) : r(s.value).then(c, p);
66
- }
67
- d((o = o.apply(e, [])).next());
68
- });
69
- }
70
- function He(e, n) {
71
- e.src = n;
72
- }
73
- const Je = (e) => {
74
- var n, t, o, r = "The Google Maps JavaScript API", a = "google", i = "importLibrary", c = "__ib__", p = document, d = window, s = d[a] || (d[a] = {}), h = s.maps || (s.maps = {}), m = /* @__PURE__ */ new Set(), u = new URLSearchParams(), f = () => n || (n = new Promise(async (y, l) => {
75
- await (t = p.createElement("script")), u.set("libraries", [...m] + "");
76
- for (o in e)
77
- u.set(o.replace(/[A-Z]/g, (g) => "_" + g[0].toLowerCase()), e[o]);
78
- u.set("callback", a + ".maps." + c), He(t, "https://maps.googleapis.com/maps/api/js?" + u), h[c] = y, t.onerror = () => n = l(Error(r + " could not load.")), t.nonce = p.querySelector("script[nonce]")?.nonce || "", p.head.append(t);
79
- }));
80
- h[i] ? console.warn(r + " only loads once. Ignoring:", e) : h[i] = (y, ...l) => m.add(y) && f().then(() => h[i](y, ...l));
81
- }, Ve = (e) => `The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(e)}) will be ignored.`, $e = (e) => `The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(e)}) will be ignored.`, qe = "No options were set before calling importLibrary. Make sure to configure the loader using setOptions().", Ze = "There already is a script loading the Google Maps JavaScript API, and no google.maps.importLibrary function is defined. @googlemaps/js-api-loader will proceed to bootstrap the API with the specified options, but the existing script might cause problems using the API. Make sure to remove the script loading the API.", Pe = process.env.NODE_ENV !== "production", ue = Pe ? (e) => {
82
- console.warn(`[@googlemaps/js-api-loader] ${e}`);
83
- } : () => {
84
- }, We = Pe ? (e) => {
85
- console.info(`[@googlemaps/js-api-loader] ${e}`);
86
- } : () => {
87
- }, Ke = process.env.NODE_ENV !== "production";
88
- let re = !1;
89
- function Ye(e) {
90
- if (re) {
91
- ue(Ve(e));
92
- return;
93
- }
94
- Qe(e), re = !0;
95
- }
96
- async function Xe(e) {
97
- if (re || ue(qe), !window?.google?.maps?.importLibrary)
98
- throw new Error("google.maps.importLibrary is not installed.");
99
- return await google.maps.importLibrary(e);
100
- }
101
- function Qe(e) {
102
- const n = !!window.google?.maps?.importLibrary;
103
- n ? We($e(e)) : Ke && document.querySelector('script[src*="maps.googleapis.com/maps/api/js"]') && ue(Ze), n || Je(e);
104
- }
105
- const N = {
106
- NOT_LOADED: "NOT_LOADED",
107
- LOADING: "LOADING",
108
- LOADED: "LOADED",
109
- FAILED: "FAILED",
110
- AUTH_FAILURE: "AUTH_FAILURE"
111
- }, en = "GMP_visgl_rgmlibrary_v1_default", nn = [
112
- `gmp_visgl_reactgooglemaps_v${Ge}`
113
- ], V = A.createContext(null);
114
- let j = N.NOT_LOADED, Y;
115
- const ae = /* @__PURE__ */ new Set();
116
- function X(e) {
117
- e !== j && (j = e, ae.forEach((n) => n(j)));
118
- }
119
- function tn() {
120
- const [e, n] = k({});
121
- return { mapInstances: e, addMapInstance: (a, i = "default") => {
122
- n((c) => Object.assign(Object.assign({}, c), { [i]: a }));
123
- }, removeMapInstance: (a = "default") => {
124
- n((i) => {
125
- var c = a;
126
- i[c];
127
- var p = R(i, [typeof c == "symbol" ? c : c + ""]);
128
- return p;
129
- });
130
- }, clearMapInstances: () => {
131
- n({});
132
- } };
133
- }
134
- function on() {
135
- const [e, n] = k({});
136
- return {
137
- map3dInstances: e,
138
- addMap3DInstance: (a, i = "default") => {
139
- n((c) => Object.assign(Object.assign({}, c), { [i]: a }));
140
- },
141
- removeMap3DInstance: (a = "default") => {
142
- n((i) => {
143
- var c = a;
144
- i[c];
145
- var p = R(i, [typeof c == "symbol" ? c : c + ""]);
146
- return p;
147
- });
148
- },
149
- clearMap3DInstances: () => {
150
- n({});
151
- }
152
- };
153
- }
154
- function rn(e) {
155
- const { onLoad: n, onError: t, apiKey: o, version: r, libraries: a = [], region: i, language: c, authReferrerPolicy: p, channel: d, solutionChannel: s, fetchAppCheckToken: h } = e, [m, u] = k(j), [f, y] = Ae((b, E) => b[E.name] ? b : Object.assign(Object.assign({}, b), { [E.name]: E.value }), {}), l = T(() => {
156
- const b = {
157
- apiKey: o,
158
- version: r,
159
- libraries: a.join(","),
160
- region: i,
161
- language: c,
162
- authReferrerPolicy: p,
163
- channel: d,
164
- solutionChannel: s
165
- };
166
- return JSON.stringify(b);
167
- }, [
168
- o,
169
- r,
170
- a,
171
- i,
172
- c,
173
- p,
174
- d,
175
- s
176
- ]), g = ce((b) => ve(this, void 0, void 0, function* () {
177
- if (f[b])
178
- return f[b];
179
- const E = yield Xe(b);
180
- return y({ name: b, value: E }), E;
181
- }), [f]);
182
- return C(() => (ae.add(u), u(j), () => {
183
- ae.delete(u);
184
- }), []), C(
185
- () => {
186
- ve(this, void 0, void 0, function* () {
187
- var b, E;
188
- try {
189
- Y && Y !== l && console.warn("The Google Maps JavaScript API has already been loaded with different parameters. The new parameters will be ignored. If you need to use different parameters, please refresh the page.");
190
- const M = ["core", "maps", ...a];
191
- if (!((E = (b = window.google) === null || b === void 0 ? void 0 : b.maps) === null || E === void 0) && E.importLibrary) {
192
- Y || X(N.LOADED), yield Promise.all(M.map((v) => g(v))), n && n();
193
- return;
194
- }
195
- if (j === N.LOADING || j === N.LOADED) {
196
- j === N.LOADED && n && n();
197
- return;
198
- }
199
- Y = l, X(N.LOADING);
200
- const D = Object.fromEntries(Object.entries({
201
- key: o,
202
- v: r,
203
- libraries: a,
204
- region: i,
205
- language: c,
206
- authReferrerPolicy: p
207
- }).filter(([, v]) => v !== void 0));
208
- d !== void 0 && d >= 0 && d <= 999 && (D.channel = String(d)), s === void 0 ? D.solutionChannel = en : s !== "" && (D.solutionChannel = s), Ye(D), yield Promise.all(M.map((v) => g(v))), X(N.LOADED), n && n();
209
- } catch (M) {
210
- X(N.FAILED), t ? t(M) : console.error("The Google Maps JavaScript API failed to load.", M);
211
- }
212
- });
213
- },
214
- // eslint-disable-next-line react-hooks/exhaustive-deps
215
- [l, n, t, g, a]
216
- ), C(() => {
217
- if (m !== N.LOADED)
218
- return;
219
- const b = google.maps.Settings.getInstance();
220
- h ? b.fetchAppCheckToken = h : b.fetchAppCheckToken && (b.fetchAppCheckToken = null);
221
- }, [m, h]), {
222
- status: m,
223
- loadedLibraries: f,
224
- importLibrary: g
225
- };
226
- }
227
- function an(e) {
228
- return T(() => e.disableUsageAttribution ? null : nn, [e.disableUsageAttribution]);
229
- }
230
- const _t = (e) => {
231
- const { children: n } = e, t = R(e, ["children"]), { mapInstances: o, addMapInstance: r, removeMapInstance: a, clearMapInstances: i } = tn(), { map3dInstances: c, addMap3DInstance: p, removeMap3DInstance: d, clearMap3DInstances: s } = on(), { status: h, loadedLibraries: m, importLibrary: u } = rn(t), f = an(t), y = T(() => ({
232
- mapInstances: o,
233
- addMapInstance: r,
234
- removeMapInstance: a,
235
- clearMapInstances: i,
236
- map3dInstances: c,
237
- addMap3DInstance: p,
238
- removeMap3DInstance: d,
239
- clearMap3DInstances: s,
240
- status: h,
241
- loadedLibraries: m,
242
- importLibrary: u,
243
- internalUsageAttributionIds: f
244
- }), [
245
- o,
246
- r,
247
- a,
248
- i,
249
- c,
250
- p,
251
- d,
252
- s,
253
- h,
254
- m,
255
- u,
256
- f
257
- ]);
258
- return A.createElement(V.Provider, { value: y }, n);
259
- };
260
- function sn(e, n) {
261
- for (const t of dn) {
262
- const o = n[t], r = Le[t];
263
- C(() => {
264
- if (!e || !o)
265
- return;
266
- const a = google.maps.event.addListener(e, r, (i) => {
267
- o(ln(r, e, i));
268
- });
269
- return () => a.remove();
270
- }, [e, r, o]);
271
- }
272
- }
273
- function ln(e, n, t) {
274
- var o;
275
- const r = {
276
- type: e,
277
- map: n,
278
- detail: {},
279
- stoppable: !1,
280
- stop: () => {
281
- }
282
- };
283
- if (cn.includes(e)) {
284
- const a = r, i = n.getCenter(), c = n.getZoom(), p = n.getHeading() || 0, d = n.getTilt() || 0, s = n.getBounds();
285
- return (!i || !s || !Number.isFinite(c)) && console.warn("[createEvent] at least one of the values from the map returned undefined. This is not expected to happen. Please report an issue at https://github.com/visgl/react-google-maps/issues/new"), a.detail = {
286
- center: i?.toJSON() || { lat: 0, lng: 0 },
287
- zoom: c || 0,
288
- heading: p,
289
- tilt: d,
290
- bounds: s?.toJSON() || {
291
- north: 90,
292
- east: 180,
293
- south: -90,
294
- west: -180
295
- }
296
- }, a;
297
- } else if (un.includes(e)) {
298
- if (!t)
299
- throw new Error("[createEvent] mouse events must provide a srcEvent");
300
- const a = r;
301
- return a.domEvent = t.domEvent, a.stoppable = !0, a.stop = () => t.stop(), a.detail = {
302
- latLng: ((o = t.latLng) === null || o === void 0 ? void 0 : o.toJSON()) || null,
303
- placeId: t.placeId
304
- }, a;
305
- }
306
- return r;
307
- }
308
- const Le = {
309
- onBoundsChanged: "bounds_changed",
310
- onCenterChanged: "center_changed",
311
- onClick: "click",
312
- onContextmenu: "contextmenu",
313
- onDblclick: "dblclick",
314
- onDrag: "drag",
315
- onDragend: "dragend",
316
- onDragstart: "dragstart",
317
- onHeadingChanged: "heading_changed",
318
- onIdle: "idle",
319
- onIsFractionalZoomEnabledChanged: "isfractionalzoomenabled_changed",
320
- onMapCapabilitiesChanged: "mapcapabilities_changed",
321
- onMapTypeIdChanged: "maptypeid_changed",
322
- onMousemove: "mousemove",
323
- onMouseout: "mouseout",
324
- onMouseover: "mouseover",
325
- onProjectionChanged: "projection_changed",
326
- onRenderingTypeChanged: "renderingtype_changed",
327
- onTilesLoaded: "tilesloaded",
328
- onTiltChanged: "tilt_changed",
329
- onZoomChanged: "zoom_changed",
330
- // note: onCameraChanged is an alias for the bounds_changed event,
331
- // since that is going to be fired in every situation where the camera is
332
- // updated.
333
- onCameraChanged: "bounds_changed"
334
- }, cn = [
335
- "bounds_changed",
336
- "center_changed",
337
- "heading_changed",
338
- "tilt_changed",
339
- "zoom_changed"
340
- ], un = [
341
- "click",
342
- "contextmenu",
343
- "dblclick",
344
- "mousemove",
345
- "mouseout",
346
- "mouseover"
347
- ], dn = Object.keys(Le);
348
- function Z(e, n) {
349
- const t = x(e);
350
- return n(e, t.current) || (t.current = e), t.current;
351
- }
352
- function gn(e, n, t) {
353
- C(e, [Z(n, t)]);
354
- }
355
- function _e(e, n) {
356
- gn(e, n, q);
357
- }
358
- const fn = /* @__PURE__ */ new Set([
359
- "backgroundColor",
360
- "clickableIcons",
361
- "controlSize",
362
- "disableDefaultUI",
363
- "disableDoubleClickZoom",
364
- "draggable",
365
- "draggableCursor",
366
- "draggingCursor",
367
- "fullscreenControl",
368
- "fullscreenControlOptions",
369
- "gestureHandling",
370
- "headingInteractionEnabled",
371
- "isFractionalZoomEnabled",
372
- "keyboardShortcuts",
373
- "mapTypeControl",
374
- "mapTypeControlOptions",
375
- "mapTypeId",
376
- "maxZoom",
377
- "minZoom",
378
- "noClear",
379
- "panControl",
380
- "panControlOptions",
381
- "restriction",
382
- "rotateControl",
383
- "rotateControlOptions",
384
- "scaleControl",
385
- "scaleControlOptions",
386
- "scrollwheel",
387
- "streetView",
388
- "streetViewControl",
389
- "streetViewControlOptions",
390
- "styles",
391
- "tiltInteractionEnabled",
392
- "zoomControl",
393
- "zoomControlOptions"
394
- ]);
395
- function mn(e, n) {
396
- const t = {}, o = Object.keys(n);
397
- for (const r of o)
398
- fn.has(r) && (t[r] = n[r]);
399
- _e(() => {
400
- e && e.setOptions(t);
401
- }, [t]);
402
- }
403
- function Ie() {
404
- var e;
405
- return ((e = H(V)) === null || e === void 0 ? void 0 : e.status) || N.NOT_LOADED;
406
- }
407
- function pn(e, n) {
408
- const { viewport: t, viewState: o } = n, r = !!t;
409
- return J(() => {
410
- if (!e || !o)
411
- return;
412
- const { latitude: a, longitude: i, bearing: c, pitch: p, zoom: d } = o;
413
- e.moveCamera({
414
- center: { lat: a, lng: i },
415
- heading: c,
416
- tilt: p,
417
- zoom: d + 1
418
- });
419
- }, [e, o]), r;
420
- }
421
- function hn(e) {
422
- return !e || typeof e != "object" || !("lat" in e && "lng" in e) ? !1 : Number.isFinite(e.lat) && Number.isFinite(e.lng);
423
- }
424
- function Se(e, n) {
425
- if (!e || !n)
426
- return !1;
427
- const t = ee(e), o = ee(n);
428
- return !(t.lat !== o.lat || t.lng !== o.lng);
429
- }
430
- function ee(e) {
431
- return hn(e) ? e : e.toJSON();
432
- }
433
- function ye(e) {
434
- if ("north" in e && "south" in e && "east" in e && "west" in e)
435
- return e;
436
- const n = e.getNorthEast().toJSON(), t = e.getSouthWest().toJSON();
437
- return {
438
- north: n.lat,
439
- east: n.lng,
440
- south: t.lat,
441
- west: t.lng
442
- };
443
- }
444
- function vn(e, n) {
445
- if (!e || !n)
446
- return !1;
447
- const t = ye(e), o = ye(n);
448
- return t.north === o.north && t.south === o.south && t.east === o.east && t.west === o.west;
449
- }
450
- function ke(e, n) {
451
- if (!e || !n)
452
- return e === n;
453
- const t = "getArray" in n ? n.getArray() : n;
454
- if (e.length !== t.length)
455
- return !1;
456
- for (let o = 0; o < e.length; o++)
457
- if (!Se(e[o], t[o]))
458
- return !1;
459
- return !0;
460
- }
461
- function yn(e, n) {
462
- if (!e || !n)
463
- return e === n;
464
- const t = "getArray" in n ? n.getArray().map((o) => o.getArray()) : n;
465
- if (e.length !== t.length)
466
- return !1;
467
- for (let o = 0; o < e.length; o++)
468
- if (!ke(e[o], t[o]))
469
- return !1;
470
- return !0;
471
- }
472
- function bn(e, n, t) {
473
- const o = t.center ? ee(t.center) : null;
474
- let r = null, a = null;
475
- o && Number.isFinite(o.lat) && Number.isFinite(o.lng) && (r = o.lat, a = o.lng);
476
- const i = Number.isFinite(t.zoom) ? t.zoom : null, c = Number.isFinite(t.heading) ? t.heading : null, p = Number.isFinite(t.tilt) ? t.tilt : null;
477
- J(() => {
478
- if (!e)
479
- return;
480
- const d = {};
481
- let s = !1;
482
- r !== null && a !== null && (n.current.center.lat !== r || n.current.center.lng !== a) && (d.center = { lat: r, lng: a }, s = !0), i !== null && n.current.zoom !== i && (d.zoom = i, s = !0), c !== null && n.current.heading !== c && (d.heading = c, s = !0), p !== null && n.current.tilt !== p && (d.tilt = p, s = !0), s && e.moveCamera(d);
483
- });
484
- }
485
- const En = () => {
486
- const e = {
487
- position: "absolute",
488
- top: 0,
489
- left: 0,
490
- bottom: 0,
491
- right: 0,
492
- zIndex: 999,
493
- display: "flex",
494
- flexFlow: "column nowrap",
495
- textAlign: "center",
496
- justifyContent: "center",
497
- fontSize: ".8rem",
498
- color: "rgba(0,0,0,0.6)",
499
- background: "#dddddd",
500
- padding: "1rem 1.5rem"
501
- };
502
- return A.createElement(
503
- "div",
504
- { style: e },
505
- A.createElement("h2", null, "Error: AuthFailure"),
506
- A.createElement(
507
- "p",
508
- null,
509
- "A problem with your API key prevents the map from rendering correctly. Please make sure the value of the ",
510
- A.createElement("code", null, "APIProvider.apiKey"),
511
- " prop is correct. Check the error-message in the console for further details."
512
- )
513
- );
514
- };
515
- function ie() {
516
- const [e, n] = k(null), t = ce((o) => n(o), [n]);
517
- return [e, t];
518
- }
519
- function we() {
520
- return Ie() === N.LOADED;
521
- }
522
- function Ne() {
523
- const [, e] = Ae((n) => n + 1, 0);
524
- return e;
525
- }
526
- function Cn(e, n) {
527
- const t = e.getCenter(), o = e.getZoom(), r = e.getHeading() || 0, a = e.getTilt() || 0, i = e.getBounds();
528
- (!t || !i || !Number.isFinite(o)) && console.warn("[useTrackedCameraState] at least one of the values from the map returned undefined. This is not expected to happen. Please report an issue at https://github.com/visgl/react-google-maps/issues/new"), Object.assign(n.current, {
529
- center: t?.toJSON() || { lat: 0, lng: 0 },
530
- zoom: o || 0,
531
- heading: r,
532
- tilt: a
533
- });
534
- }
535
- function On(e) {
536
- const n = Ne(), t = x({
537
- center: { lat: 0, lng: 0 },
538
- heading: 0,
539
- tilt: 0,
540
- zoom: 0
541
- });
542
- return C(() => {
543
- if (!e)
544
- return;
545
- const o = google.maps.event.addListener(e, "bounds_changed", () => {
546
- Cn(e, t), n();
547
- });
548
- return () => o.remove();
549
- }, [e, n]), t;
550
- }
551
- class Q {
552
- static has(n) {
553
- return this.entries[n] && this.entries[n].length > 0;
554
- }
555
- static pop(n) {
556
- return this.entries[n] && this.entries[n].pop() || null;
557
- }
558
- static push(n, t) {
559
- this.entries[n] || (this.entries[n] = []), this.entries[n].push(t);
560
- }
561
- }
562
- Q.entries = {};
563
- function Mn(e, n) {
564
- const t = we(), [o, r] = k(null), [a, i] = ie(), c = On(o), { id: p, defaultBounds: d, defaultCenter: s, defaultZoom: h, defaultHeading: m, defaultTilt: u, reuseMaps: f, renderingType: y, colorScheme: l } = e, g = R(e, ["id", "defaultBounds", "defaultCenter", "defaultZoom", "defaultHeading", "defaultTilt", "reuseMaps", "renderingType", "colorScheme"]), b = e.zoom !== void 0 || e.defaultZoom !== void 0, E = e.center !== void 0 || e.defaultCenter !== void 0;
565
- !d && (!b || !E) && console.warn("<Map> component is missing configuration. You have to provide zoom and center (via the `zoom`/`defaultZoom` and `center`/`defaultCenter` props) or specify the region to show using `defaultBounds`. See https://visgl.github.io/react-google-maps/docs/api-reference/components/map#required"), !g.center && s && (g.center = s), !g.zoom && Number.isFinite(h) && (g.zoom = h), !g.heading && Number.isFinite(m) && (g.heading = m), !g.tilt && Number.isFinite(u) && (g.tilt = u);
566
- const M = g.internalUsageAttributionIds;
567
- M == null ? g.internalUsageAttributionIds = n.internalUsageAttributionIds : g.internalUsageAttributionIds = [
568
- ...n.internalUsageAttributionIds || [],
569
- ...M
570
- ];
571
- for (const v of Object.keys(g))
572
- g[v] === void 0 && delete g[v];
573
- const D = x(void 0);
574
- return C(
575
- () => {
576
- if (!a || !t)
577
- return;
578
- const { addMapInstance: v, removeMapInstance: O } = n, { mapId: L } = e, I = `${L || "default"}:${y || "default"}:${l || "LIGHT"}`;
579
- let P, w;
580
- if (f && Q.has(I) ? (w = Q.pop(I), P = w.getDiv(), a.appendChild(P), w.setOptions(g), setTimeout(() => w.moveCamera({}), 0)) : (P = document.createElement("div"), P.style.height = "100%", a.appendChild(P), w = new google.maps.Map(P, Object.assign(Object.assign(Object.assign({}, g), y ? { renderingType: y } : {}), l ? { colorScheme: l } : {}))), r(w), v(w, p), d) {
581
- const { padding: W } = d, K = R(d, ["padding"]);
582
- w.fitBounds(K, W);
583
- } else (!b || !E) && w.fitBounds({ east: 180, west: -180, south: -90, north: 90 });
584
- if (D.current) {
585
- const { mapId: W, cameraState: K } = D.current;
586
- W !== L && w.moveCamera(K);
587
- }
588
- return () => {
589
- D.current = {
590
- mapId: L,
591
- // eslint-disable-next-line react-hooks/exhaustive-deps
592
- cameraState: c.current
593
- }, P.remove(), f ? Q.push(I, w) : google.maps.event.clearInstanceListeners(w), r(null), O(p);
594
- };
595
- },
596
- // some dependencies are ignored in the list below:
597
- // - defaultBounds and the default* camera props will only be used once, and
598
- // changes should be ignored
599
- // - mapOptions has special hooks that take care of updating the options
600
- // eslint-disable-next-line react-hooks/exhaustive-deps
601
- [
602
- a,
603
- t,
604
- p,
605
- // these props can't be changed after initialization and require a new
606
- // instance to be created
607
- e.mapId,
608
- e.renderingType,
609
- e.colorScheme
610
- ]
611
- ), [o, i, c];
612
- }
613
- const Te = A.createContext(null), An = (e) => {
614
- const { children: n, id: t, className: o, style: r } = e, a = H(V), i = Ie();
615
- if (!a)
616
- throw new Error("<Map> can only be used inside an <ApiProvider> component.");
617
- const [c, p, d] = Mn(e, a);
618
- bn(c, d, e), sn(c, e), mn(c, e);
619
- const s = pn(c, e), h = !!e.controlled;
620
- C(() => {
621
- if (c)
622
- return s && c.setOptions({ disableDefaultUI: !0 }), (s || h) && c.setOptions({
623
- gestureHandling: "none",
624
- keyboardShortcuts: !1
625
- }), () => {
626
- c.setOptions({
627
- gestureHandling: e.gestureHandling,
628
- keyboardShortcuts: e.keyboardShortcuts
629
- });
630
- };
631
- }, [
632
- c,
633
- s,
634
- h,
635
- e.gestureHandling,
636
- e.keyboardShortcuts
637
- ]);
638
- const m = e.center ? ee(e.center) : null;
639
- let u = null, f = null;
640
- m && Number.isFinite(m.lat) && Number.isFinite(m.lng) && (u = m.lat, f = m.lng);
641
- const y = T(() => {
642
- var b, E, M;
643
- return {
644
- center: { lat: u ?? 0, lng: f ?? 0 },
645
- zoom: (b = e.zoom) !== null && b !== void 0 ? b : 0,
646
- heading: (E = e.heading) !== null && E !== void 0 ? E : 0,
647
- tilt: (M = e.tilt) !== null && M !== void 0 ? M : 0
648
- };
649
- }, [u, f, e.zoom, e.heading, e.tilt]);
650
- J(() => {
651
- if (!c || !h)
652
- return;
653
- c.moveCamera(y);
654
- const b = c.addListener("bounds_changed", () => {
655
- c.moveCamera(y);
656
- });
657
- return () => b.remove();
658
- }, [c, h, y]);
659
- const l = T(() => Object.assign({
660
- width: "100%",
661
- height: "100%",
662
- position: "relative",
663
- // when using deckgl, the map should be sent to the back
664
- zIndex: s ? -1 : 0
665
- }, r), [r, s]), g = T(() => ({ map: c }), [c]);
666
- return i === N.AUTH_FAILURE ? A.createElement(
667
- "div",
668
- { style: Object.assign({ position: "relative" }, o ? {} : l), className: o },
669
- A.createElement(En, null)
670
- ) : A.createElement("div", Object.assign({ ref: p, "data-testid": "map", style: o ? void 0 : l, className: o }, t ? { id: t } : {}), c ? A.createElement(Te.Provider, { value: g }, n) : null);
671
- };
672
- An.deckGLViewProps = !0;
673
- const be = /* @__PURE__ */ new Set();
674
- function Dn(...e) {
675
- const n = JSON.stringify(e);
676
- be.has(n) || (be.add(n), console.error(...e));
677
- }
678
- const $ = (e = null) => {
679
- const n = H(V), { map: t } = H(Te) || {};
680
- if (n === null)
681
- return Dn("useMap(): failed to retrieve APIProviderContext. Make sure that the <APIProvider> component exists and that the component you are calling `useMap()` from is a sibling of the <APIProvider>."), null;
682
- const { mapInstances: o } = n;
683
- return e !== null ? o[e] || null : t || o.default || null;
684
- };
685
- function ne(e) {
686
- const n = we(), t = H(V);
687
- return C(() => {
688
- !n || !t || t.importLibrary(e);
689
- }, [n, t, e]), t?.loadedLibraries[e] || null;
690
- }
691
- var oe;
692
- const { useLayoutEffect: Pn, useRef: Ln } = Me, _n = (oe = Me.useInsertionEffect) !== null && oe !== void 0 ? oe : Pn;
693
- function In() {
694
- throw new Error("useEffectEvent: invalid call during rendering.");
695
- }
696
- function Sn(e) {
697
- const n = Ln(In);
698
- return _n(() => {
699
- n.current = e;
700
- }, [e]), ((...t) => n.current(...t));
701
- }
702
- const Re = Sn, kn = () => {
703
- };
704
- function _(e, n, t) {
705
- const o = Re(t ?? kn), r = !!t;
706
- C(() => {
707
- if (!e || !n || !r)
708
- return;
709
- const a = google.maps.event.addListener(e, n, o);
710
- return () => a.remove();
711
- }, [e, n, r]);
712
- }
713
- function S(e, n, t) {
714
- C(() => {
715
- e && (e[n] = t);
716
- }, [e, n, t]);
717
- }
718
- const wn = () => {
719
- };
720
- function se(e, n, t) {
721
- const o = Re(t ?? wn), r = !!t;
722
- C(() => {
723
- if (!e || !n || !r)
724
- return;
725
- const a = o;
726
- return e.addEventListener(n, a), () => e.removeEventListener(n, a);
727
- }, [e, n, r]);
728
- }
729
- class Nn {
730
- constructor() {
731
- this.renderedStyles = /* @__PURE__ */ new Set(), this.styleElement = null;
732
- }
733
- getStyleElement() {
734
- return this.styleElement || (this.styleElement = document.createElement("style"), this.styleElement.setAttribute("data-rgm-anchor-styles", ""), document.head.appendChild(this.styleElement)), this.styleElement;
735
- }
736
- addAdvancedMarkerPointerEventsOverwrite() {
737
- if (this.renderedStyles.has("marker-pointer-events"))
738
- return;
739
- const n = this.getStyleElement();
740
- n.textContent += `
741
- gmp-advanced-marker[data-origin='rgm'] {
742
- pointer-events: none !important;
743
- }
744
- `, this.renderedStyles.add("marker-pointer-events");
745
- }
746
- cleanup() {
747
- this.styleElement && (this.styleElement.remove(), this.styleElement = null, this.renderedStyles.clear());
748
- }
749
- }
750
- const Tn = new Nn();
751
- function Rn(e, n) {
752
- var t;
753
- if (!(!((t = google == null ? void 0 : google.maps) === null || t === void 0) && t.version))
754
- return;
755
- const o = google.maps.version.split("."), r = parseInt(o[0], 10), a = parseInt(o[1], 10);
756
- return r > e || r === e && a >= n;
757
- }
758
- const xn = A.createContext(null), Bn = {
759
- BOTTOM: ["50%", "100%"]
760
- }, jn = B((e, n) => {
761
- const { children: t, style: o, className: r, anchorPoint: a } = e, [i, c] = zn(e), p = T(() => i ? { marker: i } : null, [i]);
762
- return F(n, () => i, [i]), c ? A.createElement(xn.Provider, { value: p }, De.createPortal(A.createElement(Fn, { anchorPoint: a, styles: o, className: r }, t), c)) : null;
763
- });
764
- jn.displayName = "AdvancedMarker";
765
- function le(e) {
766
- return e.nodeType === Node.ELEMENT_NODE;
767
- }
768
- const Fn = ({ children: e, styles: n, className: t }) => A.createElement("div", { className: t, style: n }, e);
769
- function zn(e) {
770
- const [n, t] = k(null), [o, r] = k(null), a = $(), i = ne("marker"), { children: c, onClick: p, className: d, onMouseEnter: s, onMouseLeave: h, onDrag: m, onDragStart: u, onDragEnd: f, collisionBehavior: y, clickable: l, draggable: g, position: b, title: E, zIndex: M, anchorPoint: D, anchorLeft: v, anchorTop: O } = e, L = Be.count(c);
771
- return C(() => {
772
- if (!a || !i)
773
- return;
774
- const I = new i.AdvancedMarkerElement();
775
- I.map = a, t(I);
776
- let P = null;
777
- return L > 0 && (P = document.createElement("div"), I.content = P, r(P)), () => {
778
- I.map = null, P?.remove(), t(null), r(null);
779
- };
780
- }, [a, i, L]), C(() => {
781
- !n?.content || !le(n.content) || L > 0 || (n.content.className = d ?? "");
782
- }, [n, d, L]), Un(n, D, v, O, L > 0), S(n, "position", b), S(n, "title", E ?? ""), S(n, "zIndex", M), S(n, "collisionBehavior", y), C(() => {
783
- n && (g !== void 0 ? n.gmpDraggable = g : m || u || f ? n.gmpDraggable = !0 : n.gmpDraggable = !1);
784
- }, [n, g, m, f, u]), C(() => {
785
- if (!n)
786
- return;
787
- const I = l !== void 0 ? l : !!p || !!s || !!h;
788
- n.gmpClickable = I, I && n?.content && le(n.content) && (n.content.style.pointerEvents = "all", p && (n.content.style.cursor = "pointer"));
789
- }, [n, l, p, s, h]), _(n, "click", p), _(n, "drag", m), _(n, "dragstart", u), _(n, "dragend", f), se(n?.element, "mouseenter", s), se(n?.element, "mouseleave", h), [n, o];
790
- }
791
- function Un(e, n, t, o, r) {
792
- C(() => {
793
- if (!e || !r)
794
- return;
795
- const a = Rn(3, 62), i = e.content;
796
- if (!(!i || !le(i))) {
797
- if (t !== void 0 || o !== void 0) {
798
- a || console.warn(`AdvancedMarker: The anchorLeft and anchorTop props are only supported in Google Maps API version 3.62 and above. The current version is ${google.maps.version}.`), e.anchorLeft = t, e.anchorTop = o, n !== void 0 && console.warn("AdvancedMarker: the anchorPoint prop is ignored when anchorLeft and/or anchorTop are set.");
799
- return;
800
- }
801
- if (n !== void 0) {
802
- const [c, p] = n ?? Bn.BOTTOM, d = `calc(-1 * ${c})`, s = `calc(-1 * ${p})`;
803
- a ? (e.anchorLeft = d, e.anchorTop = s, i.style.transform = "") : (i.style.transform = `translate(50%, 100%) translate(${d}, ${s})`, e.dataset.origin = "rgm", Tn.addAdvancedMarkerPointerEventsOverwrite());
804
- }
805
- }
806
- }, [e, n, t, o, r]);
807
- }
808
- function Gn(e) {
809
- var n, t, o;
810
- const { onClick: r, onDrag: a, onDragStart: i, onDragEnd: c, onMouseOver: p, onMouseOut: d, onRadiusChanged: s, onCenterChanged: h, center: m, defaultCenter: u, radius: f, defaultRadius: y } = e, l = R(e, ["onClick", "onDrag", "onDragStart", "onDragEnd", "onMouseOver", "onMouseOut", "onRadiusChanged", "onCenterChanged", "center", "defaultCenter", "radius", "defaultRadius"]), [g, b] = k(null), E = $(), M = Z(Object.assign(Object.assign({}, l), { clickable: (n = l.clickable) !== null && n !== void 0 ? n : !!r, draggable: (t = l.draggable) !== null && t !== void 0 ? t : !!(a || i || c || h), editable: (o = l.editable) !== null && o !== void 0 ? o : !!s }), q);
811
- return C(() => {
812
- if (!E) {
813
- E === void 0 && console.error("<Circle> has to be inside a Map component.");
814
- return;
815
- }
816
- const D = new google.maps.Circle(Object.assign(Object.assign({}, M), { center: m ?? u, radius: f ?? y }));
817
- return D.setMap(E), b(D), () => {
818
- D.setMap(null), b(null);
819
- };
820
- }, [E]), _(g, "click", r), _(g, "drag", a), _(g, "dragstart", i), _(g, "dragend", c), _(g, "mouseover", p), _(g, "mouseout", d), _(g, "radius_changed", s ? () => {
821
- const D = g?.getRadius();
822
- D !== void 0 && s(D);
823
- } : null), _(g, "center_changed", h ? () => {
824
- h(g?.getCenter());
825
- } : null), C(() => {
826
- g && g.setOptions(M);
827
- }, [g, M]), C(() => {
828
- !g || !m || Se(m, g.getCenter()) || g.setCenter(m);
829
- }, [g, m]), C(() => {
830
- !g || f === void 0 || f !== g.getRadius() && g.setRadius(f);
831
- }, [g, f]), g;
832
- }
833
- const Hn = B((e, n) => {
834
- const t = Gn(e);
835
- return F(n, () => t, [t]), A.createElement(A.Fragment, null);
836
- });
837
- Hn.displayName = "Circle";
838
- function Jn(e, n, t) {
839
- if (n != null && typeof n != "object")
840
- throw new Error("The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.");
841
- const o = e.style;
842
- if (t == null) {
843
- if (n == null)
844
- return;
845
- for (const r in n)
846
- n.hasOwnProperty(r) && Ee(o, r, n[r]);
847
- return;
848
- }
849
- for (const r in t)
850
- t.hasOwnProperty(r) && (n == null || !n.hasOwnProperty(r)) && (r.indexOf("--") === 0 ? o.setProperty(r, "") : r === "float" ? o.cssFloat = "" : o[r] = "");
851
- if (n != null)
852
- for (const r in n) {
853
- const a = n[r];
854
- n.hasOwnProperty(r) && t[r] !== a && Ee(o, r, a);
855
- }
856
- }
857
- function Ee(e, n, t) {
858
- const o = n.indexOf("--") === 0;
859
- t == null || typeof t == "boolean" || t === "" ? o ? e.setProperty(n, "") : n === "float" ? e.cssFloat = "" : e[n] = "" : o ? e.setProperty(n, t) : typeof t == "number" && t !== 0 && !$n(n) ? e[n] = t + "px" : n === "float" ? e.cssFloat = t : e[n] = ("" + t).trim();
860
- }
861
- const Vn = /* @__PURE__ */ new Set([
862
- "animationIterationCount",
863
- "aspectRatio",
864
- "borderImageOutset",
865
- "borderImageSlice",
866
- "borderImageWidth",
867
- "boxFlex",
868
- "boxFlexGroup",
869
- "boxOrdinalGroup",
870
- "columnCount",
871
- "columns",
872
- "flex",
873
- "flexGrow",
874
- "flexPositive",
875
- "flexShrink",
876
- "flexNegative",
877
- "flexOrder",
878
- "gridArea",
879
- "gridRow",
880
- "gridRowEnd",
881
- "gridRowSpan",
882
- "gridRowStart",
883
- "gridColumn",
884
- "gridColumnEnd",
885
- "gridColumnSpan",
886
- "gridColumnStart",
887
- "fontWeight",
888
- "lineClamp",
889
- "lineHeight",
890
- "opacity",
891
- "order",
892
- "orphans",
893
- "scale",
894
- "tabSize",
895
- "widows",
896
- "zIndex",
897
- "zoom",
898
- "fillOpacity",
899
- // SVG-related properties
900
- "floodOpacity",
901
- "stopOpacity",
902
- "strokeDasharray",
903
- "strokeDashoffset",
904
- "strokeMiterlimit",
905
- "strokeOpacity",
906
- "strokeWidth"
907
- ]);
908
- function $n(e) {
909
- return Vn.has(e);
910
- }
911
- function Ce(e) {
912
- const n = e.getPaths(), t = [];
913
- for (let o = 0; o < n.getLength(); o++)
914
- t.push(n.getAt(o).getArray());
915
- return t;
916
- }
917
- function qn(e) {
918
- var n, t, o;
919
- const { onClick: r, onDrag: a, onDragStart: i, onDragEnd: c, onMouseOver: p, onMouseOut: d, onPathsChanged: s, polygon: h, encodedPaths: m, paths: u, defaultPaths: f } = e, y = R(e, ["onClick", "onDrag", "onDragStart", "onDragEnd", "onMouseOver", "onMouseOut", "onPathsChanged", "polygon", "encodedPaths", "paths", "defaultPaths"]), [l, g] = k(null), b = $(), E = ne("geometry"), M = x(!1), D = Z(Object.assign(Object.assign({}, y), { clickable: (n = y.clickable) !== null && n !== void 0 ? n : !!r, draggable: (t = y.draggable) !== null && t !== void 0 ? t : !!(a || i || c || s), editable: (o = y.editable) !== null && o !== void 0 ? o : !!s }), q);
920
- return C(() => {
921
- if (!b) {
922
- b === void 0 && console.error("<Polygon> has to be inside a Map component.");
923
- return;
924
- }
925
- let v;
926
- if (h) {
927
- v = h;
928
- const O = u ?? f;
929
- O && Array.isArray(O) && v.setPaths(O), v.setOptions(D);
930
- } else {
931
- const O = u ?? f, L = Object.assign({}, D);
932
- O && Array.isArray(O) && (L.paths = O), v = new google.maps.Polygon(L);
933
- }
934
- return v.setMap(b), g(v), () => {
935
- v.setMap(null), g(null);
936
- };
937
- }, [b, h]), _(l, "click", r), _(l, "drag", a), _(l, "dragstart", i), _(l, "mouseover", p), _(l, "mouseout", d), _(l, "dragend", (v) => {
938
- c?.(v), s && l && !M.current && s(Ce(l));
939
- }), C(() => {
940
- if (!l || !s)
941
- return;
942
- const v = [], O = l.getPaths();
943
- if (typeof O.getLength != "function" || typeof O.getAt != "function")
944
- return;
945
- const L = () => {
946
- M.current || s(Ce(l));
947
- }, I = (P) => {
948
- v.push(google.maps.event.addListener(P, "insert_at", L)), v.push(google.maps.event.addListener(P, "remove_at", L)), v.push(google.maps.event.addListener(P, "set_at", L));
949
- };
950
- for (let P = 0; P < O.getLength(); P++)
951
- I(O.getAt(P));
952
- return v.push(google.maps.event.addListener(O, "insert_at", (P) => {
953
- I(O.getAt(P)), L();
954
- })), v.push(google.maps.event.addListener(O, "set_at", (P) => {
955
- I(O.getAt(P)), L();
956
- })), v.push(google.maps.event.addListener(O, "remove_at", L)), () => {
957
- v.forEach((P) => P.remove());
958
- };
959
- }, [
960
- l,
961
- s,
962
- u,
963
- m,
964
- D.editable,
965
- D.draggable
966
- ]), C(() => {
967
- l && l.setOptions(D);
968
- }, [l, D]), C(() => {
969
- if (!l || !u || !Array.isArray(u))
970
- return;
971
- const v = u[0], O = Array.isArray(v) ? u : [u], L = l.getPaths();
972
- yn(O, L) || (M.current = !0, l.setPaths(u), M.current = !1);
973
- }, [l, u]), C(() => {
974
- if (!l || !m || !E)
975
- return;
976
- M.current = !0;
977
- const v = m.map((O) => E.encoding.decodePath(O));
978
- l.setPaths(v), M.current = !1;
979
- }, [l, m, E]), l;
980
- }
981
- const Zn = B((e, n) => {
982
- const t = qn(e);
983
- return F(n, () => t, [t]), A.createElement(A.Fragment, null);
984
- });
985
- Zn.displayName = "Polygon";
986
- function Wn(e) {
987
- var n, t, o;
988
- const { onClick: r, onDrag: a, onDragStart: i, onDragEnd: c, onMouseOver: p, onMouseOut: d, onPathChanged: s, polyline: h, encodedPath: m, path: u, defaultPath: f } = e, y = R(e, ["onClick", "onDrag", "onDragStart", "onDragEnd", "onMouseOver", "onMouseOut", "onPathChanged", "polyline", "encodedPath", "path", "defaultPath"]), [l, g] = k(null), b = $(), E = ne("geometry"), M = x(!1), D = Z(Object.assign(Object.assign({}, y), { clickable: (n = y.clickable) !== null && n !== void 0 ? n : !!r, draggable: (t = y.draggable) !== null && t !== void 0 ? t : !!(a || i || c || s), editable: (o = y.editable) !== null && o !== void 0 ? o : !!s }), q);
989
- return C(() => {
990
- if (!b) {
991
- b === void 0 && console.error("<Polyline> has to be inside a Map component.");
992
- return;
993
- }
994
- let v;
995
- if (h) {
996
- v = h;
997
- const O = u ?? f;
998
- O && Array.isArray(O) && v.setPath(O), v.setOptions(D);
999
- } else {
1000
- const O = u ?? f, L = Object.assign({}, D);
1001
- O && Array.isArray(O) && (L.path = O), v = new google.maps.Polyline(L);
1002
- }
1003
- return v.setMap(b), g(v), () => {
1004
- v.setMap(null), g(null);
1005
- };
1006
- }, [b, h]), _(l, "click", r), _(l, "drag", a), _(l, "dragstart", i), _(l, "mouseover", p), _(l, "mouseout", d), _(l, "dragend", (v) => {
1007
- c?.(v), s && l && !M.current && s(l.getPath().getArray());
1008
- }), C(() => {
1009
- if (!l || !s)
1010
- return;
1011
- const v = l.getPath();
1012
- if (!v)
1013
- return;
1014
- const O = () => {
1015
- M.current || s(v.getArray());
1016
- }, L = [
1017
- google.maps.event.addListener(v, "insert_at", O),
1018
- google.maps.event.addListener(v, "remove_at", O),
1019
- google.maps.event.addListener(v, "set_at", O)
1020
- ];
1021
- return () => {
1022
- L.forEach((I) => I.remove());
1023
- };
1024
- }, [
1025
- l,
1026
- s,
1027
- u,
1028
- m,
1029
- D.editable,
1030
- D.draggable
1031
- ]), C(() => {
1032
- l && l.setOptions(D);
1033
- }, [l, D]), C(() => {
1034
- if (!l || !u)
1035
- return;
1036
- const v = l.getPath();
1037
- ke(u, v) || (M.current = !0, l.setPath(u), M.current = !1);
1038
- }, [l, u]), C(() => {
1039
- if (!l || !m || !E)
1040
- return;
1041
- M.current = !0;
1042
- const v = E.encoding.decodePath(m);
1043
- l.setPath(v), M.current = !1;
1044
- }, [l, m, E]), l;
1045
- }
1046
- const Kn = B((e, n) => {
1047
- const t = Wn(e);
1048
- return F(n, () => t, [t]), A.createElement(A.Fragment, null);
1049
- });
1050
- Kn.displayName = "Polyline";
1051
- const Yn = {
1052
- center: { lat: 0, lng: 0, altitude: 0 },
1053
- range: 0,
1054
- heading: 0,
1055
- tilt: 0,
1056
- roll: 0
1057
- }, Xn = ["center", "range", "heading", "tilt", "roll"];
1058
- function Qn(e, n, t) {
1059
- const o = e[t];
1060
- if (o != null)
1061
- if (t === "center") {
1062
- const r = o;
1063
- n.current.center = r.toJSON ? r.toJSON() : r;
1064
- } else
1065
- n.current[t] = o;
1066
- }
1067
- function et(e) {
1068
- const n = Ne(), t = x(Object.assign({}, Yn));
1069
- return C(() => {
1070
- if (!e)
1071
- return;
1072
- const o = [];
1073
- for (const r of Xn) {
1074
- const a = `gmp-${r}change`, i = () => {
1075
- Qn(e, t, r), n();
1076
- };
1077
- e.addEventListener(a, i), o.push(() => e.removeEventListener(a, i));
1078
- }
1079
- return () => {
1080
- for (const r of o)
1081
- r();
1082
- };
1083
- }, [e, n]), t;
1084
- }
1085
- function nt(e) {
1086
- const n = ne("maps3d"), [t, o] = k(!1), [, r] = ie(), [a, i] = ie(), c = et(a);
1087
- return C(() => {
1088
- customElements.whenDefined("gmp-map-3d").then(() => {
1089
- o(!0);
1090
- });
1091
- }, []), C(
1092
- () => {
1093
- if (!a)
1094
- return;
1095
- const {
1096
- center: d,
1097
- heading: s,
1098
- tilt: h,
1099
- range: m,
1100
- roll: u,
1101
- defaultCenter: f,
1102
- defaultHeading: y,
1103
- defaultTilt: l,
1104
- defaultRange: g,
1105
- defaultRoll: b,
1106
- // Non-element props to exclude
1107
- id: E,
1108
- style: M,
1109
- className: D,
1110
- children: v,
1111
- onCenterChanged: O,
1112
- onHeadingChanged: L,
1113
- onTiltChanged: I,
1114
- onRangeChanged: P,
1115
- onRollChanged: w,
1116
- onCameraChanged: W,
1117
- onClick: K,
1118
- onSteadyChange: Et,
1119
- onAnimationEnd: Ct,
1120
- onError: Ot,
1121
- mode: Mt,
1122
- gestureHandling: At
1123
- } = e, xe = R(e, ["center", "heading", "tilt", "range", "roll", "defaultCenter", "defaultHeading", "defaultTilt", "defaultRange", "defaultRoll", "id", "style", "className", "children", "onCenterChanged", "onHeadingChanged", "onTiltChanged", "onRangeChanged", "onRollChanged", "onCameraChanged", "onClick", "onSteadyChange", "onAnimationEnd", "onError", "mode", "gestureHandling"]), de = d ?? f, ge = s ?? y, fe = h ?? l, me = m ?? g, pe = u ?? b, U = Object.assign({}, xe);
1124
- de && (U.center = de), ge !== void 0 && (U.heading = ge), fe !== void 0 && (U.tilt = fe), me !== void 0 && (U.range = me), pe !== void 0 && (U.roll = pe), Object.assign(a, U);
1125
- },
1126
- // this effect should only run when the map3d element first becomes
1127
- // available, so we skip re-running it when other props change.
1128
- // eslint-disable-next-line react-hooks/exhaustive-deps
1129
- [a]
1130
- ), [a, r, i, c, !!n && t];
1131
- }
1132
- function tt(e) {
1133
- return e ? "toJSON" in e && typeof e.toJSON == "function" ? e.toJSON() : e : null;
1134
- }
1135
- function ot(e, n, t) {
1136
- var o, r, a, i, c, p, d;
1137
- const s = tt(t.center), h = (o = s?.lat) !== null && o !== void 0 ? o : null, m = (r = s?.lng) !== null && r !== void 0 ? r : null, u = (a = s?.altitude) !== null && a !== void 0 ? a : null, f = (i = t.range) !== null && i !== void 0 ? i : null, y = (c = t.heading) !== null && c !== void 0 ? c : null, l = (p = t.tilt) !== null && p !== void 0 ? p : null, g = (d = t.roll) !== null && d !== void 0 ? d : null;
1138
- J(() => {
1139
- var b;
1140
- if (!e)
1141
- return;
1142
- const E = n.current;
1143
- h !== null && m !== null && (E.center.lat !== h || E.center.lng !== m || u !== null && E.center.altitude !== u) && (e.center = {
1144
- lat: h,
1145
- lng: m,
1146
- altitude: (b = u ?? E.center.altitude) !== null && b !== void 0 ? b : 0
1147
- }), f !== null && E.range !== f && (e.range = f), y !== null && E.heading !== y && (e.heading = y), l !== null && E.tilt !== l && (e.tilt = l), g !== null && E.roll !== g && (e.roll = g);
1148
- });
1149
- }
1150
- const Oe = [
1151
- "gmp-centerchange",
1152
- "gmp-headingchange",
1153
- "gmp-tiltchange",
1154
- "gmp-rangechange",
1155
- "gmp-rollchange"
1156
- ];
1157
- function G(e, n) {
1158
- const t = e.center;
1159
- let o;
1160
- return t && "toJSON" in t && typeof t.toJSON == "function" ? o = t.toJSON() : t ? o = t : o = { lat: 0, lng: 0, altitude: 0 }, {
1161
- type: n,
1162
- map3d: e,
1163
- detail: {
1164
- center: o,
1165
- range: e.range || 0,
1166
- heading: e.heading || 0,
1167
- tilt: e.tilt || 0,
1168
- roll: e.roll || 0
1169
- }
1170
- };
1171
- }
1172
- function rt(e, n) {
1173
- const t = n;
1174
- return {
1175
- type: "gmp-click",
1176
- map3d: e,
1177
- detail: {
1178
- position: n.position || null,
1179
- placeId: t.placeId
1180
- }
1181
- };
1182
- }
1183
- function at(e, n) {
1184
- return {
1185
- type: "gmp-steadychange",
1186
- map3d: e,
1187
- detail: {
1188
- isSteady: n.isSteady
1189
- }
1190
- };
1191
- }
1192
- function it(e, n) {
1193
- const { onCenterChanged: t, onHeadingChanged: o, onTiltChanged: r, onRangeChanged: a, onRollChanged: i, onCameraChanged: c, onClick: p, onSteadyChange: d, onAnimationEnd: s, onError: h } = n;
1194
- z(e, "gmp-centerchange", t, G), z(e, "gmp-headingchange", o, G), z(e, "gmp-tiltchange", r, G), z(e, "gmp-rangechange", a, G), z(e, "gmp-rollchange", i, G), C(() => {
1195
- if (!e || !c)
1196
- return;
1197
- const m = () => {
1198
- c(G(e, "camerachange"));
1199
- };
1200
- for (const u of Oe)
1201
- e.addEventListener(u, m);
1202
- return () => {
1203
- for (const u of Oe)
1204
- e.removeEventListener(u, m);
1205
- };
1206
- }, [e, c]), C(() => {
1207
- if (!e || !p)
1208
- return;
1209
- const m = (u) => {
1210
- p(rt(e, u));
1211
- };
1212
- return e.addEventListener("gmp-click", m), () => e.removeEventListener("gmp-click", m);
1213
- }, [e, p]), C(() => {
1214
- if (!e || !d)
1215
- return;
1216
- const m = (u) => {
1217
- d(at(e, u));
1218
- };
1219
- return e.addEventListener("gmp-steadychange", m), () => e.removeEventListener("gmp-steadychange", m);
1220
- }, [e, d]), z(e, "gmp-animationend", s, (m, u) => ({
1221
- type: u,
1222
- map3d: m
1223
- })), z(e, "gmp-error", h, (m, u) => ({
1224
- type: u,
1225
- map3d: m
1226
- }));
1227
- }
1228
- function z(e, n, t, o) {
1229
- C(() => {
1230
- if (!e || !t)
1231
- return;
1232
- const r = () => {
1233
- t(o(e, n));
1234
- };
1235
- return e.addEventListener(n, r), () => e.removeEventListener(n, r);
1236
- }, [e, n, t, o]);
1237
- }
1238
- const st = /* @__PURE__ */ new Set([
1239
- "bounds",
1240
- "defaultUIHidden",
1241
- "gestureHandling",
1242
- "internalUsageAttributionIds",
1243
- "maxAltitude",
1244
- "maxHeading",
1245
- "maxTilt",
1246
- "minAltitude",
1247
- "minHeading",
1248
- "minTilt",
1249
- "mode"
1250
- ]);
1251
- function lt(e, n) {
1252
- const t = T(() => {
1253
- const o = {}, r = Object.keys(n);
1254
- for (const a of r) {
1255
- if (!st.has(a))
1256
- continue;
1257
- const i = n[a];
1258
- i !== void 0 && (o[a] = i);
1259
- }
1260
- return o;
1261
- }, [n]);
1262
- _e(() => {
1263
- e && Object.assign(e, t);
1264
- }, [e, t]);
1265
- }
1266
- const ct = A.createContext(null), ut = {
1267
- width: "100%",
1268
- height: "100%",
1269
- position: "relative"
1270
- }, dt = B((e, n) => {
1271
- const { children: t, id: o, className: r, style: a } = e, i = H(V);
1272
- if (!i)
1273
- throw new Error("<Map3D> can only be used inside an <APIProvider> component.");
1274
- const { addMap3DInstance: c, removeMap3DInstance: p } = i, [d, s, h, m, u] = nt(e);
1275
- ot(d, m, e), it(d, e), lt(d, e), C(() => {
1276
- if (!d)
1277
- return;
1278
- const l = o ?? "default";
1279
- return c(d, l), () => {
1280
- p(l);
1281
- };
1282
- }, [d, o]), F(n, () => ({
1283
- map3d: d,
1284
- flyCameraAround: (l) => {
1285
- d?.flyCameraAround(l);
1286
- },
1287
- flyCameraTo: (l) => {
1288
- d?.flyCameraTo(l);
1289
- },
1290
- stopCameraAnimation: () => {
1291
- d?.stopCameraAnimation();
1292
- }
1293
- }), [d]);
1294
- const f = T(() => Object.assign(Object.assign({}, ut), a), [a]), y = T(() => ({ map3d: d }), [d]);
1295
- return u ? A.createElement(
1296
- "div",
1297
- Object.assign({ ref: s, "data-testid": "map-3d", style: r ? void 0 : f, className: r }, o ? { id: o } : {}),
1298
- A.createElement("gmp-map-3d", { ref: h, style: { width: "100%", height: "100%" } }, d && A.createElement(ct.Provider, { value: y }, t))
1299
- ) : A.createElement("div", Object.assign({ ref: s, "data-testid": "map-3d", style: r ? void 0 : f, className: r }, o ? { id: o } : {}));
1300
- });
1301
- dt.displayName = "Map3D";
1302
- const gt = je(null), ft = B(function(n, t) {
1303
- const { children: o, onClick: r, position: a, altitudeMode: i, collisionBehavior: c, drawsWhenOccluded: p, extruded: d, label: s, sizePreserved: h, zIndex: m, title: u } = n, f = !!r, [y, l] = k(null), [g, b] = k(!1), E = T(() => {
1304
- const v = document.createElement("div");
1305
- return v.style.display = "none", document.body.appendChild(v), v;
1306
- }, []);
1307
- C(() => () => E.remove(), [E]);
1308
- const M = ce((v) => {
1309
- l(v), typeof t == "function" ? t(v) : t && (t.current = v);
1310
- }, [t]);
1311
- se(y, "gmp-click", r), J(() => {
1312
- if (g || !y || !E)
1313
- return;
1314
- for (; y.firstChild; )
1315
- y.removeChild(y.firstChild);
1316
- const v = Array.from(E.childNodes);
1317
- for (const O of v) {
1318
- if (O.nodeType !== Node.ELEMENT_NODE)
1319
- continue;
1320
- const L = O, I = L.tagName.toLowerCase();
1321
- if (I === "img" || I === "svg") {
1322
- const P = document.createElement("template");
1323
- P.content.appendChild(L.cloneNode(!0)), y.appendChild(P);
1324
- } else
1325
- y.appendChild(L.cloneNode(!0));
1326
- }
1327
- }, [y, E, o, g]);
1328
- const D = T(() => ({ marker: y, setContentHandledExternally: b }), [y]);
1329
- return S(y, "position", a), S(y, "altitudeMode", i), S(y, "collisionBehavior", c), S(y, "drawsWhenOccluded", p), S(y, "extruded", d), S(y, "label", s), S(y, "sizePreserved", h), S(y, "zIndex", m), S(y, "title", u ?? ""), A.createElement(
1330
- gt.Provider,
1331
- { value: D },
1332
- f ? A.createElement("gmp-marker-3d-interactive", { ref: M }) : A.createElement("gmp-marker-3d", { ref: M }),
1333
- De.createPortal(o, E)
1334
- );
1335
- });
1336
- ft.displayName = "Marker3D";
1337
- const mt = B(function(n, t) {
1338
- var o;
1339
- const { children: r, headerContent: a, style: i, className: c, open: p = !0, position: d, anchor: s, anchorId: h, altitudeMode: m, lightDismissDisabled: u, autoPanDisabled: f, onClose: y } = n, [l, g] = k(null), b = x(null);
1340
- F(t, () => l, [l]), pt(l, p, y), S(l, "open", p ?? !1), S(l, "altitudeMode", m), S(l, "lightDismissDisabled", u), S(l, "autoPanDisabled", f);
1341
- const E = (o = s ?? h) !== null && o !== void 0 ? o : d;
1342
- return S(l, "positionAnchor", E), J(() => {
1343
- l && (Jn(l, i || null, b.current), b.current = i || null);
1344
- }, [l, i]), A.createElement(
1345
- "gmp-popover",
1346
- { ref: g, className: c },
1347
- a && A.createElement("div", { slot: "header" }, a),
1348
- r
1349
- );
1350
- });
1351
- mt.displayName = "Popover";
1352
- function pt(e, n, t) {
1353
- const o = x(void 0), r = x(n);
1354
- C(() => {
1355
- r.current = n;
1356
- }, [n]), C(() => {
1357
- if (!e || !t)
1358
- return;
1359
- const a = new MutationObserver((i) => {
1360
- for (const c of i)
1361
- if (c.type === "attributes" && c.attributeName === "open") {
1362
- const p = e.hasAttribute("open");
1363
- o.current === !0 && !p && r.current !== !1 && t(), o.current = p;
1364
- }
1365
- });
1366
- return a.observe(e, {
1367
- attributes: !0,
1368
- attributeFilter: ["open"]
1369
- }), o.current = e.hasAttribute("open"), () => {
1370
- a.disconnect();
1371
- };
1372
- }, [e, t]);
1373
- }
1374
- function ht(e) {
1375
- const [n, t] = k(null), o = $(), { onClick: r, onDrag: a, onDragStart: i, onDragEnd: c, onMouseOver: p, onMouseOut: d } = e, s = R(e, ["onClick", "onDrag", "onDragStart", "onDragEnd", "onMouseOver", "onMouseOut"]), { position: h, draggable: m } = s;
1376
- return C(() => {
1377
- if (!o) {
1378
- o === void 0 && console.error("<Marker> has to be inside a Map component.");
1379
- return;
1380
- }
1381
- const u = new google.maps.Marker(s);
1382
- return u.setMap(o), t(u), () => {
1383
- u.setMap(null), t(null);
1384
- };
1385
- }, [o]), C(() => {
1386
- if (!n)
1387
- return;
1388
- const u = n, f = google.maps.event;
1389
- return r && f.addListener(u, "click", r), a && f.addListener(u, "drag", a), i && f.addListener(u, "dragstart", i), c && f.addListener(u, "dragend", c), p && f.addListener(u, "mouseover", p), d && f.addListener(u, "mouseout", d), n.setDraggable(!!m), () => {
1390
- f.clearInstanceListeners(u);
1391
- };
1392
- }, [
1393
- n,
1394
- m,
1395
- r,
1396
- a,
1397
- i,
1398
- c,
1399
- p,
1400
- d
1401
- ]), C(() => {
1402
- n && s && n.setOptions(s);
1403
- }, [n, s]), C(() => {
1404
- m || !h || !n || n.setPosition(h);
1405
- }, [m, h, n]), n;
1406
- }
1407
- const vt = B((e, n) => {
1408
- const t = ht(e);
1409
- return F(n, () => t, [t]), A.createElement(A.Fragment, null);
1410
- });
1411
- vt.displayName = "Marker";
1412
- function yt(e) {
1413
- var n, t, o;
1414
- const { onClick: r, onDrag: a, onDragStart: i, onDragEnd: c, onMouseOver: p, onMouseOut: d, onBoundsChanged: s, bounds: h, defaultBounds: m } = e, u = R(e, ["onClick", "onDrag", "onDragStart", "onDragEnd", "onMouseOver", "onMouseOut", "onBoundsChanged", "bounds", "defaultBounds"]), [f, y] = k(null), l = $(), g = Z(Object.assign(Object.assign({}, u), { clickable: (n = u.clickable) !== null && n !== void 0 ? n : !!r, draggable: (t = u.draggable) !== null && t !== void 0 ? t : !!(a || i || c || s), editable: (o = u.editable) !== null && o !== void 0 ? o : !!s }), q);
1415
- return C(() => {
1416
- if (!l) {
1417
- l === void 0 && console.error("<Rectangle> has to be inside a Map component.");
1418
- return;
1419
- }
1420
- const b = new google.maps.Rectangle(Object.assign(Object.assign({}, g), { bounds: h ?? m }));
1421
- return b.setMap(l), y(b), () => {
1422
- b.setMap(null), y(null);
1423
- };
1424
- }, [l]), _(f, "click", r), _(f, "drag", a), _(f, "dragstart", i), _(f, "dragend", c), _(f, "mouseover", p), _(f, "mouseout", d), _(f, "bounds_changed", s ? () => {
1425
- s(f?.getBounds());
1426
- } : null), C(() => {
1427
- f && f.setOptions(g);
1428
- }, [f, g]), C(() => {
1429
- !f || !h || vn(h, f.getBounds()) || f.setBounds(h);
1430
- }, [f, h]), f;
1431
- }
1432
- const bt = B((e, n) => {
1433
- const t = yt(e);
1434
- return F(n, () => t, [
1435
- t
1436
- ]), A.createElement(A.Fragment, null);
1437
- });
1438
- bt.displayName = "Rectangle";
1439
- export {
1440
- _t as A,
1441
- An as M,
1442
- jn as a
1443
- };