@courtneyring/components-library 1.0.31 → 1.0.32

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 (79) hide show
  1. package/dist/AccordionItem-CDN4L4a7.js +40 -0
  2. package/dist/assets/AccordionItem.css +1 -1
  3. package/dist/assets/Background.css +1 -1
  4. package/dist/assets/Banner.css +1 -1
  5. package/dist/assets/Button.css +1 -1
  6. package/dist/assets/Container.css +1 -1
  7. package/dist/assets/Countdown.css +1 -1
  8. package/dist/assets/Fifty.css +1 -1
  9. package/dist/assets/FloatingWordsHero.css +1 -1
  10. package/dist/assets/Footer.css +1 -1
  11. package/dist/assets/GenericOverlay.css +1 -1
  12. package/dist/assets/IconDetail.css +1 -1
  13. package/dist/assets/ImageTextBlock.css +1 -1
  14. package/dist/assets/List.css +1 -1
  15. package/dist/assets/Map.css +1 -1
  16. package/dist/assets/MenuButton.css +1 -1
  17. package/dist/assets/Navbar.css +1 -1
  18. package/dist/assets/Note.css +1 -1
  19. package/dist/assets/OverlayHero.css +1 -1
  20. package/dist/assets/PageContainer.css +1 -1
  21. package/dist/assets/PinnedImage.css +1 -1
  22. package/dist/assets/PromoGroup.css +1 -1
  23. package/dist/assets/RSVPEmbed.css +1 -1
  24. package/dist/assets/Schedule.css +1 -1
  25. package/dist/assets/TextBlock.css +1 -1
  26. package/dist/components/Accordion/Accordion.js +21 -14
  27. package/dist/components/Accordion/AccordionItem.js +1 -1
  28. package/dist/components/Background/Background.js +6 -6
  29. package/dist/components/Banner/Banner.js +15 -15
  30. package/dist/components/Button/Button.js +29 -29
  31. package/dist/components/ButtonGroup/ButtonGroup.js +5 -4
  32. package/dist/components/Container/Container.js +13 -11
  33. package/dist/components/Countdown/Countdown.js +1 -1
  34. package/dist/components/Fifty/Fifty.js +24 -23
  35. package/dist/components/FloatingWordsHero/FloatingWordsHero.js +55 -25
  36. package/dist/components/Footer/Footer.js +6 -6
  37. package/dist/components/GenericOverlay/GenericOverlay.js +14 -14
  38. package/dist/components/IconDetail/IconDetail.js +3 -3
  39. package/dist/components/ImageTextBlock/ImageTextBlock.js +24 -23
  40. package/dist/components/List/List.js +12 -12
  41. package/dist/components/Map/Map.js +25 -23
  42. package/dist/components/MenuButton/MenuButton.js +21 -21
  43. package/dist/components/Navbar/Navbar.js +40 -40
  44. package/dist/components/Note/Note.js +14 -14
  45. package/dist/components/OverlayHero/OverlayHero.js +63 -21
  46. package/dist/components/PageContainer/PageContainer.js +6 -6
  47. package/dist/components/PinnedImage/PinnedImage.js +36 -36
  48. package/dist/components/PromoGroup/PromoGroup.js +46 -44
  49. package/dist/components/RSVPEmbed/RSVPEmbed.js +3 -3
  50. package/dist/components/Schedule/Schedule.js +12 -12
  51. package/dist/components/TextBlock/TextBlock.js +18 -18
  52. package/dist/components/Toolbar/Toolbar.js +16 -16
  53. package/dist/hooks/useImageReveal 4.js +55 -0
  54. package/dist/hooks/useImageReveal.js +55 -0
  55. package/dist/hooks/{useResize 2.js → useResize 4.js } +11 -7
  56. package/dist/hooks/useResize.js +11 -7
  57. package/dist/index 2.js +50 -0
  58. package/dist/index-BmTo-IS6 4.js +2018 -0
  59. package/dist/index-DyQs5aC7 4.js +388 -0
  60. package/dist/index-K0WrPJ_C 4.js +29 -0
  61. package/dist/index.modern-DPbS1w7M 4.js +1443 -0
  62. package/dist/presets/{animations 3.js → animations 4.js } +7 -2
  63. package/dist/presets/animations.js +7 -2
  64. package/package.json +3 -2
  65. package/src/styles/_fonts.scss +4 -7
  66. package/src/styles/_reveal.scss +93 -0
  67. package/src/styles/_sizes.scss +1 -0
  68. package/dist/AccordionItem-BlVXPxrh.js +0 -40
  69. /package/dist/hooks/{useActiveSection 2.js → useActiveSection 4.js} +0 -0
  70. /package/dist/hooks/{useFadeIn 2.js → useFadeIn 4.js} +0 -0
  71. /package/dist/hooks/{useNavColor 2.js → useNavColor 4.js} +0 -0
  72. /package/dist/hooks/{useRepeatable 2.js → useRepeatable 4.js} +0 -0
  73. /package/dist/hooks/{useResponsive 2.js → useResponsive 4.js} +0 -0
  74. /package/dist/hooks/{useReveal 2.js → useReveal 4.js} +0 -0
  75. /package/dist/hooks/{useStagger 2.js → useStagger 4.js} +0 -0
  76. /package/dist/{index-B2JRaoNz 2.js → index-B2JRaoNz 4.js} +0 -0
  77. /package/dist/utils/{breakpoints 3.js → breakpoints 4.js} +0 -0
  78. /package/dist/utils/{gsapSetup 3.js → gsapSetup 4.js} +0 -0
  79. /package/dist/utils/{parse 3.js → parse 4.js} +0 -0
@@ -0,0 +1,1443 @@
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
+ };