@leaflink/stash 42.5.0 → 42.5.1

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 (223) hide show
  1. package/README.md +24 -3
  2. package/dist/ActionsDropdown.js +15 -20
  3. package/dist/ActionsDropdown.js.map +1 -1
  4. package/dist/AddressSelect.js +34 -45
  5. package/dist/AddressSelect.js.map +1 -1
  6. package/dist/Alert.js +11 -13
  7. package/dist/Alert.js.map +1 -1
  8. package/dist/AppNavigationItem.js +4 -6
  9. package/dist/AppNavigationItem.js.map +1 -1
  10. package/dist/AppTopbar.js +13 -15
  11. package/dist/AppTopbar.js.map +1 -1
  12. package/dist/ButtonGroup.js +12 -14
  13. package/dist/ButtonGroup.js.map +1 -1
  14. package/dist/CardMedia.js +9 -11
  15. package/dist/CardMedia.js.map +1 -1
  16. package/dist/Carousel.js +41 -44
  17. package/dist/Carousel.js.map +1 -1
  18. package/dist/Checkbox.js +9 -11
  19. package/dist/Checkbox.js.map +1 -1
  20. package/dist/ChevronToggle.js +2 -4
  21. package/dist/ChevronToggle.js.map +1 -1
  22. package/dist/Chip.js +4 -6
  23. package/dist/Chip.js.map +1 -1
  24. package/dist/ContextSwitcher.js +12 -17
  25. package/dist/ContextSwitcher.js.map +1 -1
  26. package/dist/Copy.js +19 -24
  27. package/dist/Copy.js.map +1 -1
  28. package/dist/CurrencyInput.js +8 -13
  29. package/dist/CurrencyInput.js.map +1 -1
  30. package/dist/DataView.js +48 -59
  31. package/dist/DataView.js.map +1 -1
  32. package/dist/DataViewFilters.js +87 -97
  33. package/dist/DataViewFilters.js.map +1 -1
  34. package/dist/DataViewSortButton.js +14 -18
  35. package/dist/DataViewSortButton.js.map +1 -1
  36. package/dist/DataViewToolbar.js +12 -14
  37. package/dist/DataViewToolbar.js.map +1 -1
  38. package/dist/DatePicker.js +8 -18
  39. package/dist/DatePicker.js.map +1 -1
  40. package/dist/Dialog.js +6 -9
  41. package/dist/Dialog.js.map +1 -1
  42. package/dist/Dropdown.js +15 -20
  43. package/dist/Dropdown.js.map +1 -1
  44. package/dist/EmptyState.js +10 -13
  45. package/dist/EmptyState.js.map +1 -1
  46. package/dist/Field.js +3 -6
  47. package/dist/Field.js.map +1 -1
  48. package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js → Field.vue_vue_type_script_setup_true_lang-475832fe.js} +2 -2
  49. package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js.map → Field.vue_vue_type_script_setup_true_lang-475832fe.js.map} +1 -1
  50. package/dist/FileUpload.js +27 -30
  51. package/dist/FileUpload.js.map +1 -1
  52. package/dist/FilterChip.js +10 -13
  53. package/dist/FilterChip.js.map +1 -1
  54. package/dist/FilterDrawerItem.js +5 -8
  55. package/dist/FilterDrawerItem.js.map +1 -1
  56. package/dist/FilterDropdown.js +73 -88
  57. package/dist/FilterDropdown.js.map +1 -1
  58. package/dist/FilterSelect.js +15 -18
  59. package/dist/FilterSelect.js.map +1 -1
  60. package/dist/Filters.js +67 -78
  61. package/dist/Filters.js.map +1 -1
  62. package/dist/HttpError.js +4 -7
  63. package/dist/HttpError.js.map +1 -1
  64. package/dist/Icon.js +236 -14
  65. package/dist/Icon.js.map +1 -1
  66. package/dist/Icon.vue.d.ts +2 -2
  67. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js +11 -0
  68. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js.map +1 -0
  69. package/dist/IconLabel.js +4 -6
  70. package/dist/IconLabel.js.map +1 -1
  71. package/dist/Illustration.js +6 -8
  72. package/dist/Illustration.js.map +1 -1
  73. package/dist/Image.js +39 -49
  74. package/dist/Image.js.map +1 -1
  75. package/dist/InlineEdit.js +10 -12
  76. package/dist/InlineEdit.js.map +1 -1
  77. package/dist/Input.js +50 -55
  78. package/dist/Input.js.map +1 -1
  79. package/dist/InputOptions.js +20 -29
  80. package/dist/InputOptions.js.map +1 -1
  81. package/dist/Label.js +1 -4
  82. package/dist/Label.js.map +1 -1
  83. package/dist/LicenseChip.js +7 -9
  84. package/dist/LicenseChip.js.map +1 -1
  85. package/dist/ListItem.js +11 -13
  86. package/dist/ListItem.js.map +1 -1
  87. package/dist/ListView.js +47 -58
  88. package/dist/ListView.js.map +1 -1
  89. package/dist/Metric.js +6 -8
  90. package/dist/Metric.js.map +1 -1
  91. package/dist/Modal.js +16 -19
  92. package/dist/Modal.js.map +1 -1
  93. package/dist/Modals.js +16 -26
  94. package/dist/Modals.js.map +1 -1
  95. package/dist/ModalsPlugin.js +12 -22
  96. package/dist/ModalsPlugin.js.map +1 -1
  97. package/dist/ObfuscateText.js +7 -9
  98. package/dist/ObfuscateText.js.map +1 -1
  99. package/dist/PageNavigation.js +25 -29
  100. package/dist/PageNavigation.js.map +1 -1
  101. package/dist/Paginate.js +29 -31
  102. package/dist/Paginate.js.map +1 -1
  103. package/dist/QuickAction.js +13 -15
  104. package/dist/QuickAction.js.map +1 -1
  105. package/dist/RadioGroup.js +86 -89
  106. package/dist/RadioGroup.js.map +1 -1
  107. package/dist/SearchBar.js +18 -20
  108. package/dist/SearchBar.js.map +1 -1
  109. package/dist/Select.js +13 -23
  110. package/dist/Select.js.map +1 -1
  111. package/dist/SelectStatus.js +26 -36
  112. package/dist/SelectStatus.js.map +1 -1
  113. package/dist/Step.js +19 -21
  114. package/dist/Step.js.map +1 -1
  115. package/dist/Switch.js +8 -10
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.js +25 -30
  118. package/dist/Tab.js.map +1 -1
  119. package/dist/Table.js +19 -21
  120. package/dist/Table.js.map +1 -1
  121. package/dist/TableCell.js +21 -22
  122. package/dist/TableCell.js.map +1 -1
  123. package/dist/TableHeaderCell.js +4 -4
  124. package/dist/TableHeaderRow.js +7 -9
  125. package/dist/TableHeaderRow.js.map +1 -1
  126. package/dist/TableRow.js +22 -24
  127. package/dist/TableRow.js.map +1 -1
  128. package/dist/Tabs.js +11 -16
  129. package/dist/Tabs.js.map +1 -1
  130. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js} +3 -3
  131. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js.map → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js.map} +1 -1
  132. package/dist/Textarea.js +10 -13
  133. package/dist/Textarea.js.map +1 -1
  134. package/dist/Toast.js +8 -10
  135. package/dist/Toast.js.map +1 -1
  136. package/dist/Toasts.js +14 -25
  137. package/dist/Toasts.js.map +1 -1
  138. package/dist/ToastsPlugin.js +14 -25
  139. package/dist/ToastsPlugin.js.map +1 -1
  140. package/dist/components.css +1 -1
  141. package/dist/index.js +53 -62
  142. package/dist/index.js.map +1 -1
  143. package/dist/locale.js +12 -15
  144. package/dist/locale.js.map +1 -1
  145. package/dist/{searchFuzzy-13c124f8.js → searchFuzzy-74a7de1c.js} +2 -2
  146. package/dist/{searchFuzzy-13c124f8.js.map → searchFuzzy-74a7de1c.js.map} +1 -1
  147. package/dist/storage.js +6 -11
  148. package/dist/storage.js.map +1 -1
  149. package/dist/tooltip.js +21 -26
  150. package/dist/tooltip.js.map +1 -1
  151. package/dist/useGoogleMaps.js +91 -226
  152. package/dist/useGoogleMaps.js.map +1 -1
  153. package/dist/useModals.js +21 -31
  154. package/dist/useModals.js.map +1 -1
  155. package/dist/useSearch.js +17 -22
  156. package/dist/useSearch.js.map +1 -1
  157. package/dist/useToasts.js +25 -36
  158. package/dist/useToasts.js.map +1 -1
  159. package/dist/useValidation.js +79 -108
  160. package/dist/useValidation.js.map +1 -1
  161. package/dist/utils/calculateElementOverflow.js +9 -14
  162. package/dist/utils/calculateElementOverflow.js.map +1 -1
  163. package/dist/utils/createQueryString.js +9 -15
  164. package/dist/utils/createQueryString.js.map +1 -1
  165. package/dist/utils/helpers.js +46 -59
  166. package/dist/utils/helpers.js.map +1 -1
  167. package/dist/utils/i18n.js +17 -20
  168. package/dist/utils/i18n.js.map +1 -1
  169. package/dist/utils/searchFuzzy.js +7 -12
  170. package/dist/utils/searchFuzzy.js.map +1 -1
  171. package/dist/utils/storage.js +10 -15
  172. package/dist/utils/storage.js.map +1 -1
  173. package/dist/viewable.js +26 -34
  174. package/dist/viewable.js.map +1 -1
  175. package/package.json +2 -4
  176. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js +0 -243
  177. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js.map +0 -1
  178. package/dist/_MapCache-65811284.js +0 -188
  179. package/dist/_MapCache-65811284.js.map +0 -1
  180. package/dist/_Uint8Array-06e4d083.js +0 -66
  181. package/dist/_Uint8Array-06e4d083.js.map +0 -1
  182. package/dist/_baseAssignValue-dd1499b4.js +0 -22
  183. package/dist/_baseAssignValue-dd1499b4.js.map +0 -1
  184. package/dist/_baseIsEqual-d594c87f.js +0 -171
  185. package/dist/_baseIsEqual-d594c87f.js.map +0 -1
  186. package/dist/_createCompounder-ae01a723.js +0 -245
  187. package/dist/_createCompounder-ae01a723.js.map +0 -1
  188. package/dist/_getAllKeys-5e735d41.js +0 -44
  189. package/dist/_getAllKeys-5e735d41.js.map +0 -1
  190. package/dist/_getPrototype-3e6fccd6.js +0 -7
  191. package/dist/_getPrototype-3e6fccd6.js.map +0 -1
  192. package/dist/_getTag-4db47fa6.js +0 -47
  193. package/dist/_getTag-4db47fa6.js.map +0 -1
  194. package/dist/_initCloneObject-161353b9.js +0 -88
  195. package/dist/_initCloneObject-161353b9.js.map +0 -1
  196. package/dist/_overArg-6d920d99.js +0 -9
  197. package/dist/_overArg-6d920d99.js.map +0 -1
  198. package/dist/capitalize-667d9f60.js +0 -42
  199. package/dist/capitalize-667d9f60.js.map +0 -1
  200. package/dist/cloneDeep-5bc375b0.js +0 -146
  201. package/dist/cloneDeep-5bc375b0.js.map +0 -1
  202. package/dist/debounce-6aca1ca9.js +0 -86
  203. package/dist/debounce-6aca1ca9.js.map +0 -1
  204. package/dist/get-27d90892.js +0 -66
  205. package/dist/get-27d90892.js.map +0 -1
  206. package/dist/identity-452d03fd.js +0 -20
  207. package/dist/identity-452d03fd.js.map +0 -1
  208. package/dist/isArrayLike-09233e52.js +0 -61
  209. package/dist/isArrayLike-09233e52.js.map +0 -1
  210. package/dist/isEmpty-2fbad344.js +0 -23
  211. package/dist/isEmpty-2fbad344.js.map +0 -1
  212. package/dist/isEqual-fca467fb.js +0 -8
  213. package/dist/isEqual-fca467fb.js.map +0 -1
  214. package/dist/isObjectLike-54341556.js +0 -39
  215. package/dist/isObjectLike-54341556.js.map +0 -1
  216. package/dist/isPlainObject-55c7f916.js +0 -16
  217. package/dist/isPlainObject-55c7f916.js.map +0 -1
  218. package/dist/merge-b14fad9d.js +0 -124
  219. package/dist/merge-b14fad9d.js.map +0 -1
  220. package/dist/toString-7d5bf363.js +0 -29
  221. package/dist/toString-7d5bf363.js.map +0 -1
  222. package/dist/uniqueId-847efe53.js +0 -10
  223. package/dist/uniqueId-847efe53.js.map +0 -1
@@ -1,16 +1,5 @@
1
- import { b as D } from "./_baseAssignValue-dd1499b4.js";
2
- import { b as G, i as F } from "./identity-452d03fd.js";
3
- import { k as S } from "./_getAllKeys-5e735d41.js";
4
- import { i as x, f as U, c as K } from "./isArrayLike-09233e52.js";
5
- import { S as N, i as R } from "./_Uint8Array-06e4d083.js";
6
- import { b as O } from "./_baseIsEqual-d594c87f.js";
7
- import { i as T } from "./_MapCache-65811284.js";
8
- import { c as q, t as E, i as k, g as B, b as Z } from "./get-27d90892.js";
9
- import { a as I } from "./isObjectLike-54341556.js";
10
- import { onMounted as J } from "vue";
11
- import "./_getTag-4db47fa6.js";
12
- import "./_overArg-6d920d99.js";
13
- import "./toString-7d5bf363.js";
1
+ import k from "lodash-es/keyBy";
2
+ import { onMounted as A } from "vue";
14
3
  /*! *****************************************************************************
15
4
  Copyright (c) Microsoft Corporation.
16
5
 
@@ -25,45 +14,45 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
25
14
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
26
15
  PERFORMANCE OF THIS SOFTWARE.
27
16
  ***************************************************************************** */
28
- function H(r, e, i, t) {
29
- function s(n) {
30
- return n instanceof i ? n : new i(function(o) {
31
- o(n);
17
+ function O(h, e, i, r) {
18
+ function s(t) {
19
+ return t instanceof i ? t : new i(function(o) {
20
+ o(t);
32
21
  });
33
22
  }
34
- return new (i || (i = Promise))(function(n, o) {
35
- function a(f) {
23
+ return new (i || (i = Promise))(function(t, o) {
24
+ function a(c) {
36
25
  try {
37
- h(t.next(f));
38
- } catch (u) {
39
- o(u);
26
+ l(r.next(c));
27
+ } catch (d) {
28
+ o(d);
40
29
  }
41
30
  }
42
- function l(f) {
31
+ function n(c) {
43
32
  try {
44
- h(t.throw(f));
45
- } catch (u) {
46
- o(u);
33
+ l(r.throw(c));
34
+ } catch (d) {
35
+ o(d);
47
36
  }
48
37
  }
49
- function h(f) {
50
- f.done ? n(f.value) : s(f.value).then(a, l);
38
+ function l(c) {
39
+ c.done ? t(c.value) : s(c.value).then(a, n);
51
40
  }
52
- h((t = t.apply(r, e || [])).next());
41
+ l((r = r.apply(h, e || [])).next());
53
42
  });
54
43
  }
55
- var Q = function r(e, i) {
44
+ var $ = function h(e, i) {
56
45
  if (e === i)
57
46
  return !0;
58
47
  if (e && i && typeof e == "object" && typeof i == "object") {
59
48
  if (e.constructor !== i.constructor)
60
49
  return !1;
61
- var t, s, n;
50
+ var r, s, t;
62
51
  if (Array.isArray(e)) {
63
- if (t = e.length, t != i.length)
52
+ if (r = e.length, r != i.length)
64
53
  return !1;
65
- for (s = t; s-- !== 0; )
66
- if (!r(e[s], i[s]))
54
+ for (s = r; s-- !== 0; )
55
+ if (!h(e[s], i[s]))
67
56
  return !1;
68
57
  return !0;
69
58
  }
@@ -73,24 +62,24 @@ var Q = function r(e, i) {
73
62
  return e.valueOf() === i.valueOf();
74
63
  if (e.toString !== Object.prototype.toString)
75
64
  return e.toString() === i.toString();
76
- if (n = Object.keys(e), t = n.length, t !== Object.keys(i).length)
65
+ if (t = Object.keys(e), r = t.length, r !== Object.keys(i).length)
77
66
  return !1;
78
- for (s = t; s-- !== 0; )
79
- if (!Object.prototype.hasOwnProperty.call(i, n[s]))
67
+ for (s = r; s-- !== 0; )
68
+ if (!Object.prototype.hasOwnProperty.call(i, t[s]))
80
69
  return !1;
81
- for (s = t; s-- !== 0; ) {
82
- var o = n[s];
83
- if (!r(e[o], i[o]))
70
+ for (s = r; s-- !== 0; ) {
71
+ var o = t[s];
72
+ if (!h(e[o], i[o]))
84
73
  return !1;
85
74
  }
86
75
  return !0;
87
76
  }
88
77
  return e !== e && i !== i;
89
78
  };
90
- const P = "__googleMapsScriptId";
79
+ const E = "__googleMapsScriptId";
91
80
  var y;
92
- (function(r) {
93
- r[r.INITIALIZED = 0] = "INITIALIZED", r[r.LOADING = 1] = "LOADING", r[r.SUCCESS = 2] = "SUCCESS", r[r.FAILURE = 3] = "FAILURE";
81
+ (function(h) {
82
+ h[h.INITIALIZED = 0] = "INITIALIZED", h[h.LOADING = 1] = "LOADING", h[h.SUCCESS = 2] = "SUCCESS", h[h.FAILURE = 3] = "FAILURE";
94
83
  })(y || (y = {}));
95
84
  class m {
96
85
  /**
@@ -102,9 +91,9 @@ class m {
102
91
  * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});
103
92
  * ```
104
93
  */
105
- constructor({ apiKey: e, authReferrerPolicy: i, channel: t, client: s, id: n = P, language: o, libraries: a = [], mapIds: l, nonce: h, region: f, retries: u = 3, url: c = "https://maps.googleapis.com/maps/api/js", version: g }) {
106
- if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = i, this.channel = t, this.client = s, this.id = n || P, this.language = o, this.libraries = a, this.mapIds = l, this.nonce = h, this.region = f, this.retries = u, this.url = c, this.version = g, m.instance) {
107
- if (!Q(this.options, m.instance.options))
94
+ constructor({ apiKey: e, authReferrerPolicy: i, channel: r, client: s, id: t = E, language: o, libraries: a = [], mapIds: n, nonce: l, region: c, retries: d = 3, url: g = "https://maps.googleapis.com/maps/api/js", version: u }) {
95
+ if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = i, this.channel = r, this.client = s, this.id = t || E, this.language = o, this.libraries = a, this.mapIds = n, this.nonce = l, this.region = c, this.retries = d, this.url = g, this.version = u, m.instance) {
96
+ if (!$(this.options, m.instance.options))
108
97
  throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(m.instance.options)}`);
109
98
  return m.instance;
110
99
  }
@@ -161,8 +150,8 @@ class m {
161
150
  */
162
151
  loadPromise() {
163
152
  return new Promise((e, i) => {
164
- this.loadCallback((t) => {
165
- t ? i(t.error) : e(window.google);
153
+ this.loadCallback((r) => {
154
+ r ? i(r.error) : e(window.google);
166
155
  });
167
156
  });
168
157
  }
@@ -185,7 +174,7 @@ class m {
185
174
  this.callback();
186
175
  return;
187
176
  }
188
- const t = {
177
+ const r = {
189
178
  key: this.apiKey,
190
179
  channel: this.channel,
191
180
  client: this.client,
@@ -196,27 +185,27 @@ class m {
196
185
  region: this.region,
197
186
  authReferrerPolicy: this.authReferrerPolicy
198
187
  };
199
- Object.keys(t).forEach(
188
+ Object.keys(r).forEach(
200
189
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
201
- (n) => !t[n] && delete t[n]
202
- ), !((i = (e = window == null ? void 0 : window.google) === null || e === void 0 ? void 0 : e.maps) === null || i === void 0) && i.importLibrary || ((n) => {
203
- let o, a, l, h = "The Google Maps JavaScript API", f = "google", u = "importLibrary", c = "__ib__", g = document, d = window;
204
- d = d[f] || (d[f] = {});
205
- const p = d.maps || (d.maps = {}), A = /* @__PURE__ */ new Set(), v = new URLSearchParams(), $ = () => (
190
+ (t) => !r[t] && delete r[t]
191
+ ), !((i = (e = window == null ? void 0 : window.google) === null || e === void 0 ? void 0 : e.maps) === null || i === void 0) && i.importLibrary || ((t) => {
192
+ let o, a, n, l = "The Google Maps JavaScript API", c = "google", d = "importLibrary", g = "__ib__", u = document, f = window;
193
+ f = f[c] || (f[c] = {});
194
+ const p = f.maps || (f.maps = {}), I = /* @__PURE__ */ new Set(), v = new URLSearchParams(), S = () => (
206
195
  // @ts-ignore
207
- o || (o = new Promise((w, _) => H(this, void 0, void 0, function* () {
208
- var b;
209
- yield a = g.createElement("script"), a.id = this.id, v.set("libraries", [...A] + "");
210
- for (l in n)
211
- v.set(l.replace(/[A-Z]/g, (L) => "_" + L[0].toLowerCase()), n[l]);
212
- v.set("callback", f + ".maps." + c), a.src = this.url + "?" + v, p[c] = w, a.onerror = () => o = _(Error(h + " could not load.")), a.nonce = this.nonce || ((b = g.querySelector("script[nonce]")) === null || b === void 0 ? void 0 : b.nonce) || "", g.head.append(a);
196
+ o || (o = new Promise((w, b) => O(this, void 0, void 0, function* () {
197
+ var _;
198
+ yield a = u.createElement("script"), a.id = this.id, v.set("libraries", [...I] + "");
199
+ for (n in t)
200
+ v.set(n.replace(/[A-Z]/g, (P) => "_" + P[0].toLowerCase()), t[n]);
201
+ v.set("callback", c + ".maps." + g), a.src = this.url + "?" + v, p[g] = w, a.onerror = () => o = b(Error(l + " could not load.")), a.nonce = this.nonce || ((_ = u.querySelector("script[nonce]")) === null || _ === void 0 ? void 0 : _.nonce) || "", u.head.append(a);
213
202
  })))
214
203
  );
215
- p[u] ? console.warn(h + " only loads once. Ignoring:", n) : p[u] = (w, ..._) => A.add(w) && $().then(() => p[u](w, ..._));
216
- })(t);
217
- const s = this.libraries.map((n) => this.importLibrary(n));
218
- s.length || s.push(this.importLibrary("core")), Promise.all(s).then(() => this.callback(), (n) => {
219
- const o = new ErrorEvent("error", { error: n });
204
+ p[d] ? console.warn(l + " only loads once. Ignoring:", t) : p[d] = (w, ...b) => I.add(w) && S().then(() => p[d](w, ...b));
205
+ })(r);
206
+ const s = this.libraries.map((t) => this.importLibrary(t));
207
+ s.length || s.push(this.importLibrary("core")), Promise.all(s).then(() => this.callback(), (t) => {
208
+ const o = new ErrorEvent("error", { error: t });
220
209
  this.loadErrorCallback(o);
221
210
  });
222
211
  }
@@ -255,204 +244,80 @@ class m {
255
244
  }
256
245
  }
257
246
  }
258
- function W(r, e, i, t) {
259
- for (var s = -1, n = r == null ? 0 : r.length; ++s < n; ) {
260
- var o = r[s];
261
- e(t, o, i(o), r);
262
- }
263
- return t;
264
- }
265
- function X(r, e) {
266
- return r && G(r, e, S);
267
- }
268
- function Y(r, e) {
269
- return function(i, t) {
270
- if (i == null)
271
- return i;
272
- if (!x(i))
273
- return r(i, t);
274
- for (var s = i.length, n = e ? s : -1, o = Object(i); (e ? n-- : ++n < s) && t(o[n], n, o) !== !1; )
275
- ;
276
- return i;
277
- };
278
- }
279
- var z = Y(X);
280
- const V = z;
281
- function j(r, e, i, t) {
282
- return V(r, function(s, n, o) {
283
- e(t, s, i(s), o);
284
- }), t;
285
- }
286
- var ee = 1, re = 2;
287
- function ie(r, e, i, t) {
288
- var s = i.length, n = s, o = !t;
289
- if (r == null)
290
- return !n;
291
- for (r = Object(r); s--; ) {
292
- var a = i[s];
293
- if (o && a[2] ? a[1] !== r[a[0]] : !(a[0] in r))
294
- return !1;
295
- }
296
- for (; ++s < n; ) {
297
- a = i[s];
298
- var l = a[0], h = r[l], f = a[1];
299
- if (o && a[2]) {
300
- if (h === void 0 && !(l in r))
301
- return !1;
302
- } else {
303
- var u = new N();
304
- if (t)
305
- var c = t(h, f, l, r, e, u);
306
- if (!(c === void 0 ? O(f, h, ee | re, t, u) : c))
307
- return !1;
308
- }
309
- }
310
- return !0;
311
- }
312
- function C(r) {
313
- return r === r && !T(r);
314
- }
315
- function te(r) {
316
- for (var e = S(r), i = e.length; i--; ) {
317
- var t = e[i], s = r[t];
318
- e[i] = [t, s, C(s)];
319
- }
320
- return e;
321
- }
322
- function M(r, e) {
323
- return function(i) {
324
- return i == null ? !1 : i[r] === e && (e !== void 0 || r in Object(i));
325
- };
326
- }
327
- function ne(r) {
328
- var e = te(r);
329
- return e.length == 1 && e[0][2] ? M(e[0][0], e[0][1]) : function(i) {
330
- return i === r || ie(i, r, e);
331
- };
332
- }
333
- function se(r, e) {
334
- return r != null && e in Object(r);
335
- }
336
- function oe(r, e, i) {
337
- e = q(e, r);
338
- for (var t = -1, s = e.length, n = !1; ++t < s; ) {
339
- var o = E(e[t]);
340
- if (!(n = r != null && i(r, o)))
341
- break;
342
- r = r[o];
343
- }
344
- return n || ++t != s ? n : (s = r == null ? 0 : r.length, !!s && U(s) && R(o, s) && (I(r) || K(r)));
345
- }
346
- function ae(r, e) {
347
- return r != null && oe(r, e, se);
348
- }
349
- var le = 1, he = 2;
350
- function fe(r, e) {
351
- return k(r) && C(e) ? M(E(r), e) : function(i) {
352
- var t = B(i, r);
353
- return t === void 0 && t === e ? ae(i, r) : O(e, t, le | he);
354
- };
355
- }
356
- function ue(r) {
357
- return function(e) {
358
- return e == null ? void 0 : e[r];
359
- };
360
- }
361
- function ce(r) {
362
- return function(e) {
363
- return Z(e, r);
364
- };
365
- }
366
- function ge(r) {
367
- return k(r) ? ue(E(r)) : ce(r);
368
- }
369
- function de(r) {
370
- return typeof r == "function" ? r : r == null ? F : typeof r == "object" ? I(r) ? fe(r[0], r[1]) : ne(r) : ge(r);
371
- }
372
- function pe(r, e) {
373
- return function(i, t) {
374
- var s = I(i) ? W : j, n = e ? e() : {};
375
- return s(i, r, de(t), n);
376
- };
377
- }
378
- var me = pe(function(r, e, i) {
379
- D(r, i, e);
380
- });
381
- const ye = me;
382
- function ve(r) {
383
- var i, t, s, n, o, a, l, h, f, u, c;
384
- const e = ye(r, "types[0]");
247
+ function C(h) {
248
+ var i, r, s, t, o, a, n, l, c, d, g;
249
+ const e = k(h, "types[0]");
385
250
  return {
386
- street_address: [(i = e.street_number) == null ? void 0 : i.long_name, (t = e.route) == null ? void 0 : t.short_name].filter(Boolean).join(" ") || void 0,
387
- extended_address: ((s = e.premise) == null ? void 0 : s.long_name) || ((n = e.subpremise) == null ? void 0 : n.long_name),
251
+ street_address: [(i = e.street_number) == null ? void 0 : i.long_name, (r = e.route) == null ? void 0 : r.short_name].filter(Boolean).join(" ") || void 0,
252
+ extended_address: ((s = e.premise) == null ? void 0 : s.long_name) || ((t = e.subpremise) == null ? void 0 : t.long_name),
388
253
  state: (o = e.administrative_area_level_1) == null ? void 0 : o.short_name,
389
254
  postal_code: (a = e.postal_code) == null ? void 0 : a.long_name,
390
- city: ((l = e.locality) == null ? void 0 : l.long_name) || ((h = e == null ? void 0 : e.administrative_area_level_2) == null ? void 0 : h.long_name) || ((f = e == null ? void 0 : e.sublocality_level_1) == null ? void 0 : f.long_name) || ((u = e == null ? void 0 : e.sublocality) == null ? void 0 : u.long_name),
391
- country: (c = e.country) == null ? void 0 : c.short_name
255
+ city: ((n = e.locality) == null ? void 0 : n.long_name) || ((l = e == null ? void 0 : e.administrative_area_level_2) == null ? void 0 : l.long_name) || ((c = e == null ? void 0 : e.sublocality_level_1) == null ? void 0 : c.long_name) || ((d = e == null ? void 0 : e.sublocality) == null ? void 0 : d.long_name),
256
+ country: (g = e.country) == null ? void 0 : g.short_name
392
257
  };
393
258
  }
394
- function Le(r) {
259
+ function G(h) {
395
260
  let e = null, i = null;
396
- function t(n) {
261
+ function r(t) {
397
262
  return new Promise((o, a) => {
398
263
  if (!e) {
399
264
  a({ isGoogleMapsError: !1, message: "Autocomplete service not initialized" });
400
265
  return;
401
266
  }
402
- e.getPlacePredictions({ input: n }, (l, h) => {
403
- if (h !== google.maps.places.PlacesServiceStatus.OK) {
267
+ e.getPlacePredictions({ input: t }, (n, l) => {
268
+ if (l !== google.maps.places.PlacesServiceStatus.OK) {
404
269
  a({
405
270
  isGoogleMapsError: !0,
406
- message: `Failed to get query predictions with status ${h}`,
407
- status: h
408
- }), a(h);
271
+ message: `Failed to get query predictions with status ${l}`,
272
+ status: l
273
+ }), a(l);
409
274
  return;
410
275
  }
411
- const f = (l || []).map(({ place_id: u, description: c }) => ({
412
- id: u,
413
- name: c
276
+ const c = (n || []).map(({ place_id: d, description: g }) => ({
277
+ id: d,
278
+ name: g
414
279
  }));
415
- o(f);
280
+ o(c);
416
281
  });
417
282
  });
418
283
  }
419
- function s(n) {
284
+ function s(t) {
420
285
  return new Promise((o, a) => {
421
286
  if (!i) {
422
287
  a({ isGoogleMapsError: !1, message: "Places service not initialized" });
423
288
  return;
424
289
  }
425
- i.getDetails({ placeId: n, fields: ["address_components", "geometry"] }, (l, h) => {
426
- var c, g, d, p;
427
- if (h !== google.maps.places.PlacesServiceStatus.OK) {
290
+ i.getDetails({ placeId: t, fields: ["address_components", "geometry"] }, (n, l) => {
291
+ var g, u, f, p;
292
+ if (l !== google.maps.places.PlacesServiceStatus.OK) {
428
293
  a({
429
294
  isGoogleMapsError: !0,
430
- message: `Failed to get place details with status ${h}`,
431
- status: h
295
+ message: `Failed to get place details with status ${l}`,
296
+ status: l
432
297
  });
433
298
  return;
434
299
  }
435
- const u = {
436
- ...ve((l == null ? void 0 : l.address_components) || []),
437
- lat: (g = (c = l == null ? void 0 : l.geometry) == null ? void 0 : c.location) == null ? void 0 : g.lat(),
438
- long: (p = (d = l == null ? void 0 : l.geometry) == null ? void 0 : d.location) == null ? void 0 : p.lng(),
439
- place_id: n
300
+ const d = {
301
+ ...C((n == null ? void 0 : n.address_components) || []),
302
+ lat: (u = (g = n == null ? void 0 : n.geometry) == null ? void 0 : g.location) == null ? void 0 : u.lat(),
303
+ long: (p = (f = n == null ? void 0 : n.geometry) == null ? void 0 : f.location) == null ? void 0 : p.lng(),
304
+ place_id: t
440
305
  };
441
- o(u);
306
+ o(d);
442
307
  });
443
308
  });
444
309
  }
445
- return J(() => {
310
+ return A(() => {
446
311
  new m({
447
- apiKey: r,
312
+ apiKey: h,
448
313
  version: "weekly",
449
314
  libraries: ["places"]
450
- }).importLibrary("places").then((n) => {
451
- e = new n.AutocompleteService(), i = new n.PlacesService(document.createElement("div"));
315
+ }).importLibrary("places").then((t) => {
316
+ e = new t.AutocompleteService(), i = new t.PlacesService(document.createElement("div"));
452
317
  });
453
- }), { getPlaceDetails: s, getPlacePredictions: t };
318
+ }), { getPlaceDetails: s, getPlacePredictions: r };
454
319
  }
455
320
  export {
456
- Le as default
321
+ G as default
457
322
  };
458
323
  //# sourceMappingURL=useGoogleMaps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGoogleMaps.js","sources":["../node_modules/@googlemaps/js-api-loader/dist/index.esm.js","../node_modules/lodash-es/_arrayAggregator.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseAggregator.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_createAggregator.js","../node_modules/lodash-es/keyBy.js","../src/composables/useGoogleMaps/useGoogleMaps.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `&region=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n","import { Loader } from '@googlemaps/js-api-loader';\nimport keyBy from 'lodash-es/keyBy';\nimport { onMounted } from 'vue';\n\nimport type { Address, AddressOption } from '../../../types/address';\n\n/**\n * Parses an array of address components from the Google Maps API into an Address object\n * @see https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingAddressTypes\n * @param addressComponents An array of address components from the Google Maps API\n * @returns An Address object\n */\nfunction parseAddressComponents(\n addressComponents: Array<google.maps.GeocoderAddressComponent>,\n): Omit<Address, 'lat' | 'long' | 'placeId'> {\n const components = keyBy(addressComponents, 'types[0]');\n\n return {\n street_address:\n [components['street_number']?.['long_name'], components['route']?.['short_name']].filter(Boolean).join(' ') ||\n undefined,\n extended_address: components['premise']?.['long_name'] || components['subpremise']?.['long_name'],\n state: components['administrative_area_level_1']?.['short_name'],\n postal_code: components['postal_code']?.['long_name'],\n city:\n components['locality']?.['long_name'] ||\n components?.['administrative_area_level_2']?.['long_name'] ||\n components?.['sublocality_level_1']?.['long_name'] ||\n components?.['sublocality']?.['long_name'],\n country: components['country']?.['short_name'],\n };\n}\n\nexport default function useGoogleMaps(apiKey: string) {\n let autocompleteService: google.maps.places.AutocompleteService | null = null;\n let placesService: google.maps.places.PlacesService | null = null;\n\n function getPlacePredictions(query: string): Promise<Array<AddressOption>> {\n return new Promise((resolve, reject) => {\n if (!autocompleteService) {\n reject({ isGoogleMapsError: false, message: 'Autocomplete service not initialized' });\n return;\n }\n\n autocompleteService.getPlacePredictions({ input: query }, (predictions, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) {\n reject({\n isGoogleMapsError: true,\n message: `Failed to get query predictions with status ${status}`,\n status,\n });\n reject(status);\n return;\n }\n\n const options = (predictions || []).map(({ place_id, description }) => ({\n id: place_id,\n name: description,\n }));\n\n resolve(options);\n });\n });\n }\n\n function getPlaceDetails(placeId: string): Promise<Address> {\n return new Promise((resolve, reject) => {\n if (!placesService) {\n reject({ isGoogleMapsError: false, message: 'Places service not initialized' });\n return;\n }\n\n placesService.getDetails({ placeId, fields: ['address_components', 'geometry'] }, (placeResult, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) {\n reject({\n isGoogleMapsError: true,\n message: `Failed to get place details with status ${status}`,\n status,\n });\n return;\n }\n\n const partialAddress = parseAddressComponents(placeResult?.address_components || []);\n\n const address: Address = {\n ...partialAddress,\n lat: placeResult?.geometry?.location?.lat(),\n long: placeResult?.geometry?.location?.lng(),\n place_id: placeId,\n };\n\n resolve(address);\n });\n });\n }\n\n onMounted(() => {\n new Loader({\n apiKey,\n version: 'weekly',\n libraries: ['places'],\n })\n .importLibrary('places')\n .then((placesLib) => {\n autocompleteService = new placesLib.AutocompleteService();\n placesService = new placesLib.PlacesService(document.createElement('div'));\n });\n });\n\n return { getPlaceDetails, getPlacePredictions };\n}\n\nexport type { Address, AddressOption };\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","fastDeepEqual","equal","a","b","length","i","keys","key","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","id","language","libraries","mapIds","nonce","region","retries","url","version","script","err","name","fn","_a","_b","params","g","h","k","p","c","l","q","m","d","r","u","f","n","t","libraryPromises","library","error","event","delay","cb","arrayAggregator","array","setter","iteratee","accumulator","index","baseForOwn","object","baseFor","createBaseEach","eachFunc","fromRight","collection","isArrayLike","iterable","baseEach","baseEach$1","baseAggregator","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseIsMatch","source","matchData","customizer","noCustomizer","data","objValue","srcValue","stack","Stack","baseIsEqual","isStrictComparable","isObject","getMatchData","matchesStrictComparable","baseMatches","baseHasIn","hasPath","path","hasFunc","castPath","toKey","isLength","isIndex","isArray","isArguments","hasIn","baseMatchesProperty","isKey","get","baseProperty","basePropertyDeep","baseGet","property","baseIteratee","identity","createAggregator","initializer","func","keyBy","baseAssignValue","keyBy$1","parseAddressComponents","addressComponents","components","_c","_d","_e","_f","_g","_h","_i","_j","_k","useGoogleMaps","autocompleteService","placesService","getPlacePredictions","query","predictions","status","options","place_id","description","getPlaceDetails","placeId","placeResult","address","onMounted","placesLib"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]}
1
+ {"version":3,"file":"useGoogleMaps.js","sources":["../node_modules/@googlemaps/js-api-loader/dist/index.esm.js","../src/composables/useGoogleMaps/useGoogleMaps.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `&region=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","import { Loader } from '@googlemaps/js-api-loader';\nimport keyBy from 'lodash-es/keyBy';\nimport { onMounted } from 'vue';\n\nimport type { Address, AddressOption } from '../../../types/address';\n\n/**\n * Parses an array of address components from the Google Maps API into an Address object\n * @see https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingAddressTypes\n * @param addressComponents An array of address components from the Google Maps API\n * @returns An Address object\n */\nfunction parseAddressComponents(\n addressComponents: Array<google.maps.GeocoderAddressComponent>,\n): Omit<Address, 'lat' | 'long' | 'placeId'> {\n const components = keyBy(addressComponents, 'types[0]');\n\n return {\n street_address:\n [components['street_number']?.['long_name'], components['route']?.['short_name']].filter(Boolean).join(' ') ||\n undefined,\n extended_address: components['premise']?.['long_name'] || components['subpremise']?.['long_name'],\n state: components['administrative_area_level_1']?.['short_name'],\n postal_code: components['postal_code']?.['long_name'],\n city:\n components['locality']?.['long_name'] ||\n components?.['administrative_area_level_2']?.['long_name'] ||\n components?.['sublocality_level_1']?.['long_name'] ||\n components?.['sublocality']?.['long_name'],\n country: components['country']?.['short_name'],\n };\n}\n\nexport default function useGoogleMaps(apiKey: string) {\n let autocompleteService: google.maps.places.AutocompleteService | null = null;\n let placesService: google.maps.places.PlacesService | null = null;\n\n function getPlacePredictions(query: string): Promise<Array<AddressOption>> {\n return new Promise((resolve, reject) => {\n if (!autocompleteService) {\n reject({ isGoogleMapsError: false, message: 'Autocomplete service not initialized' });\n return;\n }\n\n autocompleteService.getPlacePredictions({ input: query }, (predictions, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) {\n reject({\n isGoogleMapsError: true,\n message: `Failed to get query predictions with status ${status}`,\n status,\n });\n reject(status);\n return;\n }\n\n const options = (predictions || []).map(({ place_id, description }) => ({\n id: place_id,\n name: description,\n }));\n\n resolve(options);\n });\n });\n }\n\n function getPlaceDetails(placeId: string): Promise<Address> {\n return new Promise((resolve, reject) => {\n if (!placesService) {\n reject({ isGoogleMapsError: false, message: 'Places service not initialized' });\n return;\n }\n\n placesService.getDetails({ placeId, fields: ['address_components', 'geometry'] }, (placeResult, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) {\n reject({\n isGoogleMapsError: true,\n message: `Failed to get place details with status ${status}`,\n status,\n });\n return;\n }\n\n const partialAddress = parseAddressComponents(placeResult?.address_components || []);\n\n const address: Address = {\n ...partialAddress,\n lat: placeResult?.geometry?.location?.lat(),\n long: placeResult?.geometry?.location?.lng(),\n place_id: placeId,\n };\n\n resolve(address);\n });\n });\n }\n\n onMounted(() => {\n new Loader({\n apiKey,\n version: 'weekly',\n libraries: ['places'],\n })\n .importLibrary('places')\n .then((placesLib) => {\n autocompleteService = new placesLib.AutocompleteService();\n placesService = new placesLib.PlacesService(document.createElement('div'));\n });\n });\n\n return { getPlaceDetails, getPlacePredictions };\n}\n\nexport type { Address, AddressOption };\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","fastDeepEqual","equal","a","b","length","i","keys","key","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","id","language","libraries","mapIds","nonce","region","retries","url","version","script","err","name","fn","_a","_b","params","g","h","k","p","l","q","m","d","r","u","f","n","t","libraryPromises","library","error","event","delay","cb","parseAddressComponents","addressComponents","components","keyBy","_c","_d","_e","_f","_g","_h","_i","_j","_k","useGoogleMaps","autocompleteService","placesService","getPlacePredictions","query","predictions","status","options","place_id","description","getPlaceDetails","placeId","placeResult","address","onMounted","placesLib"],"mappings":"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","x_google_ignoreList":[0]}