@mapsindoors/map-template 1.93.2 → 1.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{GoogleMapsMap-982405ad.mjs → GoogleMapsMap-BqYRaFgc.mjs} +51 -62
- package/dist/MapboxMap-CUYrfLHY.mjs +34732 -0
- package/dist/_commonjsHelpers-ba3f0406.js +21 -0
- package/dist/combo-box-item.entry.js +15 -0
- package/dist/icon-b8d01d6f.js +24 -0
- package/dist/index-7e9696f3.js +1678 -0
- package/dist/index.js +1 -0
- package/dist/loader.js +18 -0
- package/dist/mapsindoors-react.es.js +3 -5
- package/dist/mapsindoors-react.umd.js +197 -582
- package/dist/mapsindoors-webcomponent.es.js +58512 -75790
- package/dist/mi-card_2.entry.js +28 -0
- package/dist/mi-chip.entry.js +22 -0
- package/dist/mi-column.entry.js +28 -0
- package/dist/mi-combo-box.entry.js +416 -0
- package/dist/mi-components.js +18 -0
- package/dist/mi-data-table.entry.js +302 -0
- package/dist/mi-distance_2.entry.js +67 -0
- package/dist/mi-dropdown-item.entry.js +15 -0
- package/dist/mi-dropdown.entry.js +610 -0
- package/dist/mi-floor-selector.entry.js +202 -0
- package/dist/mi-keyboard.entry.js +238 -0
- package/dist/mi-list-item-category.entry.js +48 -0
- package/dist/mi-list-item-location.entry.js +171 -0
- package/dist/mi-list.entry.js +56 -0
- package/dist/mi-location-booking.entry.js +5193 -0
- package/dist/mi-location-info.entry.js +63 -0
- package/dist/mi-map-googlemaps.entry.js +750 -0
- package/dist/mi-map-mapbox.entry.js +467 -0
- package/dist/mi-metric-card.entry.js +48 -0
- package/dist/mi-my-position.entry.js +986 -0
- package/dist/mi-notification.entry.js +127 -0
- package/dist/mi-route-instructions-heading.entry.js +73 -0
- package/dist/mi-route-instructions-maneuver-legacy.entry.js +82 -0
- package/dist/mi-route-instructions-maneuver.entry.js +82 -0
- package/dist/mi-route-instructions-step-legacy.entry.js +308 -0
- package/dist/mi-route-instructions-step.entry.js +321 -0
- package/dist/mi-route-instructions.entry.js +157 -0
- package/dist/mi-scroll-buttons.entry.js +112 -0
- package/dist/mi-search.entry.js +376 -0
- package/dist/mi-share-sms.entry.js +80 -0
- package/dist/mi-step-switcher.entry.js +31 -0
- package/dist/mi-tab-panel.entry.js +25 -0
- package/dist/mi-tab.entry.js +12 -0
- package/dist/mi-tabs.entry.js +47 -0
- package/dist/mi-time.entry.js +57 -0
- package/dist/mi-variables-9a6c8d4d.js +6 -0
- package/dist/polyfills/core-js.js +11 -0
- package/dist/polyfills/css-shim.js +1 -0
- package/dist/polyfills/dom.js +79 -0
- package/dist/polyfills/es5-html-element.js +1 -0
- package/dist/polyfills/index.js +34 -0
- package/dist/polyfills/system.js +6 -0
- package/dist/{reactcomponent-7fbbd9b2.mjs → reactcomponent-DTepe7hB.mjs} +14121 -14626
- package/dist/route-travel-mode.enum-7f4ce9c7.js +9 -0
- package/dist/sort-order.enum-64ce8998.js +552 -0
- package/dist/unit-system.enum-eaefb53e.js +7 -0
- package/dist/utils-ae714467.js +61 -0
- package/package.json +10 -6
- package/dist/MapboxMap-06ef82a3.mjs +0 -37815
- package/dist/_commonjsHelpers-ba3f0406-b96e6d6a.mjs +0 -22
- package/dist/combo-box-item.entry-d35f3d51.mjs +0 -15
- package/dist/icon-b8d01d6f-ddfa2c17.mjs +0 -25
- package/dist/mapsindoors-webcomponent.umd.js +0 -3245
- package/dist/mi-card_2.entry-fc772c35.mjs +0 -26
- package/dist/mi-chip.entry-81c742a1.mjs +0 -19
- package/dist/mi-column.entry-3a083282.mjs +0 -21
- package/dist/mi-combo-box.entry-cae6401a.mjs +0 -263
- package/dist/mi-data-table.entry-d4c3f445.mjs +0 -224
- package/dist/mi-distance_2.entry-a33ed69a.mjs +0 -339
- package/dist/mi-dropdown-item.entry-974d1e4f.mjs +0 -15
- package/dist/mi-dropdown.entry-5317db65.mjs +0 -349
- package/dist/mi-floor-selector.entry-185fbd8b.mjs +0 -115
- package/dist/mi-keyboard.entry-eaf4b9ef.mjs +0 -3103
- package/dist/mi-list-item-category.entry-9c95008c.mjs +0 -39
- package/dist/mi-list-item-location.entry-8b41e8f0.mjs +0 -137
- package/dist/mi-list.entry-1218d29d.mjs +0 -42
- package/dist/mi-location-booking.entry-270aaf5a.mjs +0 -4866
- package/dist/mi-location-info.entry-e4f7fd04.mjs +0 -32
- package/dist/mi-map-googlemaps.entry-81fa28d2.mjs +0 -467
- package/dist/mi-map-mapbox.entry-31821da3.mjs +0 -301
- package/dist/mi-metric-card.entry-40407f04.mjs +0 -29
- package/dist/mi-my-position.entry-bc48fe6e.mjs +0 -703
- package/dist/mi-notification.entry-9a2bc53b.mjs +0 -84
- package/dist/mi-route-instructions-heading.entry-e5b1ff04.mjs +0 -75
- package/dist/mi-route-instructions-maneuver-legacy.entry-2c3d73ab.mjs +0 -76
- package/dist/mi-route-instructions-maneuver.entry-c6f01024.mjs +0 -76
- package/dist/mi-route-instructions-step-legacy.entry-80bcf097.mjs +0 -202
- package/dist/mi-route-instructions-step.entry-db802e13.mjs +0 -231
- package/dist/mi-route-instructions.entry-62416e29.mjs +0 -143
- package/dist/mi-scroll-buttons.entry-92b62b21.mjs +0 -83
- package/dist/mi-search.entry-87f1e64a.mjs +0 -251
- package/dist/mi-share-sms.entry-b6725edb.mjs +0 -56
- package/dist/mi-step-switcher.entry-f8f6c040.mjs +0 -27
- package/dist/mi-tab-panel.entry-a89213c2.mjs +0 -22
- package/dist/mi-tab.entry-a2fb3f8c.mjs +0 -14
- package/dist/mi-tabs.entry-cd638ea7.mjs +0 -37
- package/dist/mi-time.entry-0b02870d.mjs +0 -46
- package/dist/mi-variables-9a6c8d4d-e06eec88.mjs +0 -8
- package/dist/route-travel-mode.enum-7f4ce9c7-a9c95a83.mjs +0 -8
- package/dist/sort-order.enum-64ce8998-b75ac596.mjs +0 -318
- package/dist/unit-system.enum-eaefb53e-0f424da4.mjs +0 -8
- package/dist/utils-ae714467-b07fc3be.mjs +0 -37
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { r as t } from "./reactcomponent-7fbbd9b2.mjs";
|
|
2
|
-
import "react";
|
|
3
|
-
import "react-dom";
|
|
4
|
-
const i = ":host{display:block;color:#1f2937;font-weight:400;padding-bottom:0.25rem}", e = class {
|
|
5
|
-
constructor(o) {
|
|
6
|
-
t(this, o), this.location = void 0, this.level = "Level", this.showExternalId = !0, this.showFloor = !0;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Get locations info as a string.
|
|
10
|
-
*
|
|
11
|
-
* @returns {string}
|
|
12
|
-
*/
|
|
13
|
-
getInfoString() {
|
|
14
|
-
const o = [];
|
|
15
|
-
return this.location.properties.externalId && this.showExternalId && o.push(this.location.properties.externalId), this.location.properties.floorName && this.showFloor && o.push(`${this.level} ${this.location.properties.floorName}`), this.location.properties.building && (this.location.properties.venue ? this.location.properties.venue.toLowerCase() !== this.location.properties.building.toLowerCase() && o.push(this.location.properties.building) : o.push(this.location.properties.building)), this.location.properties.venue && o.push(this.location.properties.venue), this.location.properties.subtitle && o.push(this.location.properties.subtitle), o.join(" · ");
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Renders location list-info.
|
|
19
|
-
*
|
|
20
|
-
* @description Render location list-info.
|
|
21
|
-
* @returns {JSX.Element}
|
|
22
|
-
*/
|
|
23
|
-
render() {
|
|
24
|
-
var o;
|
|
25
|
-
return !((o = this.location) === null || o === void 0) && o.properties ? this.getInfoString() : null;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
e.style = i;
|
|
29
|
-
export {
|
|
30
|
-
e as mi_location_info
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=mi-location-info.entry-e4f7fd04.mjs.map
|
|
@@ -1,467 +0,0 @@
|
|
|
1
|
-
import { r as w, c as k, h as O } from "./reactcomponent-7fbbd9b2.mjs";
|
|
2
|
-
import { m as M } from "./mi-variables-9a6c8d4d-e06eec88.mjs";
|
|
3
|
-
import "react";
|
|
4
|
-
import "react-dom";
|
|
5
|
-
function L(o, e, t, i) {
|
|
6
|
-
function n(s) {
|
|
7
|
-
return s instanceof t ? s : new t(function(r) {
|
|
8
|
-
r(s);
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
return new (t || (t = Promise))(function(s, r) {
|
|
12
|
-
function l(a) {
|
|
13
|
-
try {
|
|
14
|
-
c(i.next(a));
|
|
15
|
-
} catch (h) {
|
|
16
|
-
r(h);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function p(a) {
|
|
20
|
-
try {
|
|
21
|
-
c(i.throw(a));
|
|
22
|
-
} catch (h) {
|
|
23
|
-
r(h);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function c(a) {
|
|
27
|
-
a.done ? s(a.value) : n(a.value).then(l, p);
|
|
28
|
-
}
|
|
29
|
-
c((i = i.apply(o, e || [])).next());
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function Q(o) {
|
|
33
|
-
return o && o.__esModule && Object.prototype.hasOwnProperty.call(o, "default") ? o.default : o;
|
|
34
|
-
}
|
|
35
|
-
var B = function o(e, t) {
|
|
36
|
-
if (e === t)
|
|
37
|
-
return !0;
|
|
38
|
-
if (e && t && typeof e == "object" && typeof t == "object") {
|
|
39
|
-
if (e.constructor !== t.constructor)
|
|
40
|
-
return !1;
|
|
41
|
-
var i, n, s;
|
|
42
|
-
if (Array.isArray(e)) {
|
|
43
|
-
if (i = e.length, i != t.length)
|
|
44
|
-
return !1;
|
|
45
|
-
for (n = i; n-- !== 0; )
|
|
46
|
-
if (!o(e[n], t[n]))
|
|
47
|
-
return !1;
|
|
48
|
-
return !0;
|
|
49
|
-
}
|
|
50
|
-
if (e.constructor === RegExp)
|
|
51
|
-
return e.source === t.source && e.flags === t.flags;
|
|
52
|
-
if (e.valueOf !== Object.prototype.valueOf)
|
|
53
|
-
return e.valueOf() === t.valueOf();
|
|
54
|
-
if (e.toString !== Object.prototype.toString)
|
|
55
|
-
return e.toString() === t.toString();
|
|
56
|
-
if (s = Object.keys(e), i = s.length, i !== Object.keys(t).length)
|
|
57
|
-
return !1;
|
|
58
|
-
for (n = i; n-- !== 0; )
|
|
59
|
-
if (!Object.prototype.hasOwnProperty.call(t, s[n]))
|
|
60
|
-
return !1;
|
|
61
|
-
for (n = i; n-- !== 0; ) {
|
|
62
|
-
var r = s[n];
|
|
63
|
-
if (!o(e[r], t[r]))
|
|
64
|
-
return !1;
|
|
65
|
-
}
|
|
66
|
-
return !0;
|
|
67
|
-
}
|
|
68
|
-
return e !== e && t !== t;
|
|
69
|
-
}, x = /* @__PURE__ */ Q(B);
|
|
70
|
-
const S = "__googleMapsScriptId";
|
|
71
|
-
var g;
|
|
72
|
-
(function(o) {
|
|
73
|
-
o[o.INITIALIZED = 0] = "INITIALIZED", o[o.LOADING = 1] = "LOADING", o[o.SUCCESS = 2] = "SUCCESS", o[o.FAILURE = 3] = "FAILURE";
|
|
74
|
-
})(g || (g = {}));
|
|
75
|
-
class d {
|
|
76
|
-
/**
|
|
77
|
-
* Creates an instance of Loader using [[LoaderOptions]]. No defaults are set
|
|
78
|
-
* using this library, instead the defaults are set by the Google Maps
|
|
79
|
-
* JavaScript API server.
|
|
80
|
-
*
|
|
81
|
-
* ```
|
|
82
|
-
* const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
constructor({ apiKey: e, authReferrerPolicy: t, channel: i, client: n, id: s = S, language: r, libraries: l = [], mapIds: p, nonce: c, region: a, retries: h = 3, url: m = "https://maps.googleapis.com/maps/api/js", version: A }) {
|
|
86
|
-
if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = t, this.channel = i, this.client = n, this.id = s || S, this.language = r, this.libraries = l, this.mapIds = p, this.nonce = c, this.region = a, this.retries = h, this.url = m, this.version = A, d.instance) {
|
|
87
|
-
if (!x(this.options, d.instance.options))
|
|
88
|
-
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(d.instance.options)}`);
|
|
89
|
-
return d.instance;
|
|
90
|
-
}
|
|
91
|
-
d.instance = this;
|
|
92
|
-
}
|
|
93
|
-
get options() {
|
|
94
|
-
return {
|
|
95
|
-
version: this.version,
|
|
96
|
-
apiKey: this.apiKey,
|
|
97
|
-
channel: this.channel,
|
|
98
|
-
client: this.client,
|
|
99
|
-
id: this.id,
|
|
100
|
-
libraries: this.libraries,
|
|
101
|
-
language: this.language,
|
|
102
|
-
region: this.region,
|
|
103
|
-
mapIds: this.mapIds,
|
|
104
|
-
nonce: this.nonce,
|
|
105
|
-
url: this.url,
|
|
106
|
-
authReferrerPolicy: this.authReferrerPolicy
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
get status() {
|
|
110
|
-
return this.errors.length ? g.FAILURE : this.done ? g.SUCCESS : this.loading ? g.LOADING : g.INITIALIZED;
|
|
111
|
-
}
|
|
112
|
-
get failed() {
|
|
113
|
-
return this.done && !this.loading && this.errors.length >= this.retries + 1;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].
|
|
117
|
-
*
|
|
118
|
-
* @ignore
|
|
119
|
-
* @deprecated
|
|
120
|
-
*/
|
|
121
|
-
createUrl() {
|
|
122
|
-
let e = this.url;
|
|
123
|
-
return e += "?callback=__googleMapsCallback&loading=async", this.apiKey && (e += `&key=${this.apiKey}`), this.channel && (e += `&channel=${this.channel}`), this.client && (e += `&client=${this.client}`), this.libraries.length > 0 && (e += `&libraries=${this.libraries.join(",")}`), this.language && (e += `&language=${this.language}`), this.region && (e += `®ion=${this.region}`), this.version && (e += `&v=${this.version}`), this.mapIds && (e += `&map_ids=${this.mapIds.join(",")}`), this.authReferrerPolicy && (e += `&auth_referrer_policy=${this.authReferrerPolicy}`), e;
|
|
124
|
-
}
|
|
125
|
-
deleteScript() {
|
|
126
|
-
const e = document.getElementById(this.id);
|
|
127
|
-
e && e.remove();
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Load the Google Maps JavaScript API script and return a Promise.
|
|
131
|
-
* @deprecated, use importLibrary() instead.
|
|
132
|
-
*/
|
|
133
|
-
load() {
|
|
134
|
-
return this.loadPromise();
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Load the Google Maps JavaScript API script and return a Promise.
|
|
138
|
-
*
|
|
139
|
-
* @ignore
|
|
140
|
-
* @deprecated, use importLibrary() instead.
|
|
141
|
-
*/
|
|
142
|
-
loadPromise() {
|
|
143
|
-
return new Promise((e, t) => {
|
|
144
|
-
this.loadCallback((i) => {
|
|
145
|
-
i ? t(i.error) : e(window.google);
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
importLibrary(e) {
|
|
150
|
-
return this.execute(), google.maps.importLibrary(e);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Load the Google Maps JavaScript API script with a callback.
|
|
154
|
-
* @deprecated, use importLibrary() instead.
|
|
155
|
-
*/
|
|
156
|
-
loadCallback(e) {
|
|
157
|
-
this.callbacks.push(e), this.execute();
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Set the script on document.
|
|
161
|
-
*/
|
|
162
|
-
setScript() {
|
|
163
|
-
var e, t;
|
|
164
|
-
if (document.getElementById(this.id)) {
|
|
165
|
-
this.callback();
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
const i = {
|
|
169
|
-
key: this.apiKey,
|
|
170
|
-
channel: this.channel,
|
|
171
|
-
client: this.client,
|
|
172
|
-
libraries: this.libraries.length && this.libraries,
|
|
173
|
-
v: this.version,
|
|
174
|
-
mapIds: this.mapIds,
|
|
175
|
-
language: this.language,
|
|
176
|
-
region: this.region,
|
|
177
|
-
authReferrerPolicy: this.authReferrerPolicy
|
|
178
|
-
};
|
|
179
|
-
Object.keys(i).forEach(
|
|
180
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
|
-
(s) => !i[s] && delete i[s]
|
|
182
|
-
), !((t = (e = window == null ? void 0 : window.google) === null || e === void 0 ? void 0 : e.maps) === null || t === void 0) && t.importLibrary || ((s) => {
|
|
183
|
-
let r, l, p, c = "The Google Maps JavaScript API", a = "google", h = "importLibrary", m = "__ib__", A = document, u = window;
|
|
184
|
-
u = u[a] || (u[a] = {});
|
|
185
|
-
const f = u.maps || (u.maps = {}), y = /* @__PURE__ */ new Set(), I = new URLSearchParams(), v = () => (
|
|
186
|
-
// @ts-ignore
|
|
187
|
-
r || (r = new Promise((C, E) => L(this, void 0, void 0, function* () {
|
|
188
|
-
var b;
|
|
189
|
-
yield l = A.createElement("script"), l.id = this.id, I.set("libraries", [...y] + "");
|
|
190
|
-
for (p in s)
|
|
191
|
-
I.set(p.replace(/[A-Z]/g, (R) => "_" + R[0].toLowerCase()), s[p]);
|
|
192
|
-
I.set("callback", a + ".maps." + m), l.src = this.url + "?" + I, f[m] = C, l.onerror = () => r = E(Error(c + " could not load.")), l.nonce = this.nonce || ((b = A.querySelector("script[nonce]")) === null || b === void 0 ? void 0 : b.nonce) || "", A.head.append(l);
|
|
193
|
-
})))
|
|
194
|
-
);
|
|
195
|
-
f[h] ? console.warn(c + " only loads once. Ignoring:", s) : f[h] = (C, ...E) => y.add(C) && v().then(() => f[h](C, ...E));
|
|
196
|
-
})(i);
|
|
197
|
-
const n = this.libraries.map((s) => this.importLibrary(s));
|
|
198
|
-
n.length || n.push(this.importLibrary("core")), Promise.all(n).then(() => this.callback(), (s) => {
|
|
199
|
-
const r = new ErrorEvent("error", { error: s });
|
|
200
|
-
this.loadErrorCallback(r);
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Reset the loader state.
|
|
205
|
-
*/
|
|
206
|
-
reset() {
|
|
207
|
-
this.deleteScript(), this.done = !1, this.loading = !1, this.errors = [], this.onerrorEvent = null;
|
|
208
|
-
}
|
|
209
|
-
resetIfRetryingFailed() {
|
|
210
|
-
this.failed && this.reset();
|
|
211
|
-
}
|
|
212
|
-
loadErrorCallback(e) {
|
|
213
|
-
if (this.errors.push(e), this.errors.length <= this.retries) {
|
|
214
|
-
const t = this.errors.length * Math.pow(2, this.errors.length);
|
|
215
|
-
console.error(`Failed to load Google Maps script, retrying in ${t} ms.`), setTimeout(() => {
|
|
216
|
-
this.deleteScript(), this.setScript();
|
|
217
|
-
}, t);
|
|
218
|
-
} else
|
|
219
|
-
this.onerrorEvent = e, this.callback();
|
|
220
|
-
}
|
|
221
|
-
callback() {
|
|
222
|
-
this.done = !0, this.loading = !1, this.callbacks.forEach((e) => {
|
|
223
|
-
e(this.onerrorEvent);
|
|
224
|
-
}), this.callbacks = [];
|
|
225
|
-
}
|
|
226
|
-
execute() {
|
|
227
|
-
if (this.resetIfRetryingFailed(), !this.loading)
|
|
228
|
-
if (this.done)
|
|
229
|
-
this.callback();
|
|
230
|
-
else {
|
|
231
|
-
if (window.google && window.google.maps && window.google.maps.version) {
|
|
232
|
-
console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. This may result in undesirable behavior as options and script parameters may not match."), this.callback();
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
this.loading = !0, this.setScript();
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
const K = ':host{display:block}:host>div{height:100%}.mapsindoors.floor-selector{margin:10px;position:absolute;border-radius:2px;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.3);width:40px;font-family:Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:18px}.mapsindoors.floor-selector a{position:relative;display:block;float:none;margin-top:-1px;text-align:center;cursor:pointer;border-radius:2px;background:#fff;z-index:0;height:40px;line-height:40px}.mapsindoors.floor-selector a:hover{background:#ddd;border-color:#999;z-index:2}.mapsindoors.floor-selector a.active{background:#ddd;border-color:#00b1ff;z-index:2}.mapsindoors.floor-selector a:not(:first-child):not(:last-child){border-radius:0}.mapsindoors.floor-selector a:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mapsindoors.floor-selector a:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:2px;border-top-left-radius:0}.mapsindoors.position-control{margin:10px;position:absolute}.mapsindoors.position-control__button{border:none;margin:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;width:40px;height:40px;background-color:transparent;background-size:cover;outline:none;box-shadow:0px 4px 4px rgba(0, 0, 0, 0.16), 0px 2px 2px rgba(0, 0, 0, 0.18), 0px 1px 1px rgba(0, 0, 0, 0.2);border-radius:50%}.mapsindoors.position-control__button--unknown{background-image:url(data:image/png;base64,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)}.mapsindoors.position-control__button--requesting{background-image:url(data:image/png;base64,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)}.mapsindoors.position-control__button--known{background-image:url(data:image/png;base64,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)}.mapsindoors.position-control__button--centered{background-image:url(data:image/png;base64,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)}', F = class {
|
|
240
|
-
constructor(o) {
|
|
241
|
-
w(this, o), this.mapsIndoorsReady = k(this, "mapsIndoorsReady", 7), this.directionsRendererInstance = null, this.gmApiKey = "", this.miApiKey = "", this.gmOptions = {
|
|
242
|
-
zoom: 17,
|
|
243
|
-
maxZoom: 21,
|
|
244
|
-
center: { lat: 0, lng: 0 },
|
|
245
|
-
mapTypeControl: !1,
|
|
246
|
-
streetViewControl: !1
|
|
247
|
-
}, this.disableExternalLinks = !1, this.floorSelectorControlPosition = void 0, this.floorIndex = void 0, this.myPositionControlPosition = void 0, this.polygonHighlightOptions = {
|
|
248
|
-
strokeColor: "#EF6CCE",
|
|
249
|
-
strokeOpacity: 1,
|
|
250
|
-
strokeWeight: 2,
|
|
251
|
-
fillColor: "#EF6CCE",
|
|
252
|
-
fillOpacity: 0.2
|
|
253
|
-
}, this.language = "en", this.polylineOptions = {
|
|
254
|
-
color: "#3071d9",
|
|
255
|
-
opacity: 1,
|
|
256
|
-
weight: 4
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
apiKeyChange(o) {
|
|
260
|
-
mapsindoors.MapsIndoors.setMapsIndoorsApiKey(o);
|
|
261
|
-
}
|
|
262
|
-
gmOptionsChange(o) {
|
|
263
|
-
this.googleMapsInstance.setOptions(o);
|
|
264
|
-
}
|
|
265
|
-
setExternalLinkBehavior(o) {
|
|
266
|
-
o === !0 ? this.mapElement.addEventListener("click", this.preventExternalLink) : this.mapElement.removeEventListener("click", this.preventExternalLink);
|
|
267
|
-
}
|
|
268
|
-
floorSelectorControlPositionChange(o, e) {
|
|
269
|
-
this.floorSelectorInstance && this.setFloorSelectorControl(o, e);
|
|
270
|
-
}
|
|
271
|
-
floorIndexChange(o, e) {
|
|
272
|
-
o === null && (o = "0"), o !== e && o !== this.mapsIndoorsInstance.getFloor() && this.mapsIndoorsInstance.setFloor(o);
|
|
273
|
-
}
|
|
274
|
-
myPositionControlPositionChange(o, e) {
|
|
275
|
-
this.setMyPositionControl(o, e);
|
|
276
|
-
}
|
|
277
|
-
polylineOptionsChange(o) {
|
|
278
|
-
this.directionsRendererInstance && this.directionsRendererInstance.setOptions({
|
|
279
|
-
strokeColor: o.color ? o.color : "#3071d9",
|
|
280
|
-
strokeOpacity: o.opacity ? o.opacity : 1,
|
|
281
|
-
strokeWeight: o.weight ? o.weight : 4
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Get the map instance.
|
|
286
|
-
* @returns {Promise<any>}
|
|
287
|
-
*/
|
|
288
|
-
async getMapInstance() {
|
|
289
|
-
return Promise.resolve(this.googleMapsInstance);
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Get the MapsIndoors instance.
|
|
293
|
-
* @returns {Promise<any>}
|
|
294
|
-
*/
|
|
295
|
-
async getMapsIndoorsInstance() {
|
|
296
|
-
return Promise.resolve(this.mapsIndoorsInstance);
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Get the MapsIndoors Directions Service Instance.
|
|
300
|
-
* @returns {Promise<any>}
|
|
301
|
-
*/
|
|
302
|
-
async getDirectionsServiceInstance() {
|
|
303
|
-
return Promise.resolve(this.directionsServiceInstance);
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Get the MapsIndoors Directions Renderer Instance.
|
|
307
|
-
* @returns {Promise<any>}
|
|
308
|
-
*/
|
|
309
|
-
async getDirectionsRendererInstance() {
|
|
310
|
-
return Promise.resolve(this.directionsRendererInstance);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Highlight a MapsIndoors location. Only a single location can be highlighted at the time.
|
|
314
|
-
* @param {Location} location
|
|
315
|
-
* @returns {Promise<void>}
|
|
316
|
-
*/
|
|
317
|
-
async highlightLocation(o) {
|
|
318
|
-
this.polygonHighlightOptions && (this.highlightedLocationId && this.highlightedLocationId === o.id || (this.highlightedLocationId && this.mapsIndoorsInstance.setDisplayRule(this.highlightedLocationId, null), this.mapsIndoorsInstance.setDisplayRule(o.id, {
|
|
319
|
-
polygonVisible: !0,
|
|
320
|
-
polygonZoomFrom: "0",
|
|
321
|
-
polygonZoomTo: "22",
|
|
322
|
-
zIndex: 1e3,
|
|
323
|
-
polygonFillColor: this.polygonHighlightOptions.fillColor,
|
|
324
|
-
polygonFillOpacity: this.polygonHighlightOptions.fillOpacity,
|
|
325
|
-
polygonStrokeColor: this.polygonHighlightOptions.strokeColor,
|
|
326
|
-
polygonStrokeOpacity: this.polygonHighlightOptions.strokeOpacity,
|
|
327
|
-
polygonStrokeWeight: this.polygonHighlightOptions.strokeWeight
|
|
328
|
-
}), this.highlightedLocationId = o.id));
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Clear existing MapsIndoors location highlight.
|
|
332
|
-
* @returns {Promise<void>}
|
|
333
|
-
*/
|
|
334
|
-
async clearHighlightLocation() {
|
|
335
|
-
this.highlightedLocationId && (this.mapsIndoorsInstance.setDisplayRule(this.highlightedLocationId, null), this.highlightedLocationId = null);
|
|
336
|
-
}
|
|
337
|
-
async componentDidLoad() {
|
|
338
|
-
await this.loadGoogleMapsApi(), await this.initializeMapsIndoorsSDK(), await this.setupMap(), this.setExternalLinkBehavior(this.disableExternalLinks), this.addEventListeners(), this.floorSelectorControlPosition && this.showFloorSelector(), this.myPositionControlPosition && this.setMyPositionControl(this.myPositionControlPosition);
|
|
339
|
-
}
|
|
340
|
-
disconnectedCallback() {
|
|
341
|
-
this.mapsIndoorsInstance.deallocate(), this.mapElement.remove(), this.mapElement = null;
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Load the Google Maps API.
|
|
345
|
-
*
|
|
346
|
-
* @returns {Promise<void>}
|
|
347
|
-
*/
|
|
348
|
-
loadGoogleMapsApi() {
|
|
349
|
-
if (typeof google > "u")
|
|
350
|
-
return new d({
|
|
351
|
-
apiKey: this.gmApiKey,
|
|
352
|
-
version: "quarterly",
|
|
353
|
-
libraries: ["geometry", "places"]
|
|
354
|
-
}).load();
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Ensure that MapsIndoors Web SDK is available.
|
|
358
|
-
*
|
|
359
|
-
* @returns {Promise<void>}
|
|
360
|
-
*/
|
|
361
|
-
initializeMapsIndoorsSDK() {
|
|
362
|
-
return new Promise((o) => {
|
|
363
|
-
if (typeof mapsindoors < "u")
|
|
364
|
-
return mapsindoors.MapsIndoors.setMapsIndoorsApiKey(this.miApiKey), mapsindoors.MapsIndoors.setLanguage(this.language), o();
|
|
365
|
-
const e = document.createElement("script");
|
|
366
|
-
e.setAttribute("type", "text/javascript"), e.setAttribute("src", `${M.miSDKUrlV4}?apikey=${this.miApiKey}`), document.body.appendChild(e), e.onload = () => o();
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Start Google Maps and MapsIndoors.
|
|
371
|
-
*/
|
|
372
|
-
setupMap() {
|
|
373
|
-
return new Promise((o) => {
|
|
374
|
-
const e = Object.assign({ element: this.mapElement }, this.gmOptions), t = new mapsindoors.mapView.GoogleMapsView(e);
|
|
375
|
-
this.googleMapsInstance = t.getMap(), this.mapsIndoorsInstance = new mapsindoors.MapsIndoors({ mapView: t }), this.mapsIndoorsInstance.on("ready", async () => {
|
|
376
|
-
this.floorIndex !== void 0 ? this.mapsIndoorsInstance.setFloor(this.floorIndex) : this.floorIndex = this.mapsIndoorsInstance.getFloor(), this.initializeDirectionsService(), this.initializeDirectionsRenderer(), this.mapsIndoorsReady.emit(), o();
|
|
377
|
-
});
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Initialize MapsIndoors Directions Service.
|
|
382
|
-
*/
|
|
383
|
-
initializeDirectionsService() {
|
|
384
|
-
const o = new mapsindoors.directions.GoogleMapsProvider();
|
|
385
|
-
this.directionsServiceInstance = new mapsindoors.services.DirectionsService(o);
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* Initialize MapsIndoors Directions Renderer with render options set.
|
|
389
|
-
*/
|
|
390
|
-
initializeDirectionsRenderer() {
|
|
391
|
-
this.directionsRendererInstance = new mapsindoors.directions.DirectionsRenderer({
|
|
392
|
-
mapsIndoors: this.mapsIndoorsInstance,
|
|
393
|
-
fitBounds: !0,
|
|
394
|
-
strokeColor: this.polylineOptions.color,
|
|
395
|
-
strokeOpacity: this.polylineOptions.opacity,
|
|
396
|
-
strokeWeight: this.polylineOptions.weight,
|
|
397
|
-
visible: !0
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Add event listeners and keep properties in sync.
|
|
402
|
-
*/
|
|
403
|
-
addEventListeners() {
|
|
404
|
-
this.mapsIndoorsInstance.on("click", (o) => {
|
|
405
|
-
this.highlightLocation(o);
|
|
406
|
-
}), this.mapsIndoorsInstance.on("floor_changed", (o) => {
|
|
407
|
-
this.floorIndex = o;
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Prevent external links from opening.
|
|
412
|
-
* @param {MouseEvent} event
|
|
413
|
-
*/
|
|
414
|
-
preventExternalLink(o) {
|
|
415
|
-
o.target.closest('a[target="_blank"]') && o.preventDefault();
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Show the floor selector.
|
|
419
|
-
*/
|
|
420
|
-
showFloorSelector() {
|
|
421
|
-
this.setFloorSelectorControl(this.floorSelectorControlPosition);
|
|
422
|
-
}
|
|
423
|
-
/**
|
|
424
|
-
* Remove a Google Map Control from the map based on class name of the control.
|
|
425
|
-
* @param {string} controlPosition - the position from where to remove the control
|
|
426
|
-
* @param {string} className - the class name of the control to remove
|
|
427
|
-
*/
|
|
428
|
-
removeGoogleMapControl(o, e) {
|
|
429
|
-
const i = this.googleMapsInstance.controls[google.maps.ControlPosition[o]].getArray().findIndex((n) => n.classList.contains(e));
|
|
430
|
-
this.googleMapsInstance.controls[google.maps.ControlPosition[o]].removeAt(i);
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* Set, update or unset floor selector on the map.
|
|
434
|
-
* @param {string} controlPosition
|
|
435
|
-
* @param {string} [oldControlPosition=undefined]
|
|
436
|
-
*/
|
|
437
|
-
setFloorSelectorControl(o, e = void 0) {
|
|
438
|
-
o === null ? (this.removeGoogleMapControl(e, "floor-selector"), this.floorSelectorElement = null, this.floorSelectorInstance = null) : this.floorSelectorInstance ? (this.removeGoogleMapControl(e, "floor-selector"), this.googleMapsInstance.controls[google.maps.ControlPosition[o]].push(this.floorSelectorElement)) : (this.floorSelectorElement = document.createElement("div"), this.floorSelectorInstance = new mapsindoors.FloorSelector(this.floorSelectorElement, this.mapsIndoorsInstance), this.googleMapsInstance.controls[google.maps.ControlPosition[o]].push(this.floorSelectorElement));
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Set, update or unset position control on the map.
|
|
442
|
-
* @param {string} controlPosition
|
|
443
|
-
* @param {string} oldControlPosition
|
|
444
|
-
*/
|
|
445
|
-
setMyPositionControl(o, e = void 0) {
|
|
446
|
-
o === null ? (this.removeGoogleMapControl(google.maps.ControlPosition[e], "position-control"), this.positionControlElement = null, this.positionControlInstance = null) : this.positionControlInstance ? (this.removeGoogleMapControl(e, "position-control"), this.googleMapsInstance.controls[google.maps.ControlPosition[o]].push(this.positionControlElement)) : (this.positionControlElement = document.createElement("div"), this.positionControlInstance = new mapsindoors.PositionControl(this.positionControlElement, { mapsIndoors: this.mapsIndoorsInstance, positionOptions: { enableHighAccuracy: !1, maximumAge: 3e5, timeout: 1e4 } }), this.googleMapsInstance.controls[google.maps.ControlPosition[o]].push(this.positionControlElement));
|
|
447
|
-
}
|
|
448
|
-
render() {
|
|
449
|
-
return O("div", { ref: (o) => this.mapElement = o });
|
|
450
|
-
}
|
|
451
|
-
static get watchers() {
|
|
452
|
-
return {
|
|
453
|
-
miApiKey: ["apiKeyChange"],
|
|
454
|
-
gmOptions: ["gmOptionsChange"],
|
|
455
|
-
disableExternalLinks: ["setExternalLinkBehavior"],
|
|
456
|
-
floorSelectorControlPosition: ["floorSelectorControlPositionChange"],
|
|
457
|
-
floorIndex: ["floorIndexChange"],
|
|
458
|
-
myPositionControlPosition: ["myPositionControlPositionChange"],
|
|
459
|
-
polylineOptions: ["polylineOptionsChange"]
|
|
460
|
-
};
|
|
461
|
-
}
|
|
462
|
-
};
|
|
463
|
-
F.style = K;
|
|
464
|
-
export {
|
|
465
|
-
F as mi_map_googlemaps
|
|
466
|
-
};
|
|
467
|
-
//# sourceMappingURL=mi-map-googlemaps.entry-81fa28d2.mjs.map
|