@roomle/embedding-lib 5.5.0-debug.4 → 5.5.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/docs/md/web/embedding/CHANGELOG.md +16 -2
- package/drag-in-BKrnFtmJ.mjs +7 -0
- package/drag-in-DC-05b4s.mjs +265 -0
- package/index.d.ts +28 -74
- package/package.json +2 -2
- package/roomle-embedding-lib.es.js +278 -343
- package/roomle-embedding-lib.es.min.js +8 -8
- package/roomle-embedding-lib.umd.js +14 -14
- package/roomle-embedding-lib.umd.min.js +14 -14
- package/drag-in-CXPjCiN1.mjs +0 -338
- package/drag-in-DhWNfKDL.mjs +0 -7
|
@@ -1,188 +1,183 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
class
|
|
5
|
-
constructor(s,
|
|
6
|
-
|
|
1
|
+
var M = Object.defineProperty;
|
|
2
|
+
var v = (t, e, s) => e in t ? M(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
|
|
3
|
+
var l = (t, e, s) => v(t, typeof e != "symbol" ? e + "" : e, s);
|
|
4
|
+
class P {
|
|
5
|
+
constructor(e, s, r, o) {
|
|
6
|
+
l(this, "_side");
|
|
7
7
|
// for better debugging (who handles message? iframe or website?)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this._side =
|
|
8
|
+
l(this, "_incomingMessageBus");
|
|
9
|
+
l(this, "_outgoingMessageBus", null);
|
|
10
|
+
l(this, "_execMessage", null);
|
|
11
|
+
this._side = e, this._incomingMessageBus = s, this._outgoingMessageBus = r, this._execMessage = o, this._incomingMessageBus.addEventListener(
|
|
12
12
|
"message",
|
|
13
13
|
this._handleMessage.bind(this)
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
|
-
setOutgoingMessageBus(
|
|
17
|
-
this._outgoingMessageBus =
|
|
16
|
+
setOutgoingMessageBus(e) {
|
|
17
|
+
this._outgoingMessageBus = e;
|
|
18
18
|
}
|
|
19
|
-
setMessageExecution(
|
|
20
|
-
this._execMessage =
|
|
19
|
+
setMessageExecution(e) {
|
|
20
|
+
this._execMessage = e;
|
|
21
21
|
}
|
|
22
|
-
sendMessage(
|
|
23
|
-
return new Promise((
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
if (!
|
|
27
|
-
return
|
|
22
|
+
sendMessage(e, s = []) {
|
|
23
|
+
return new Promise((r, o) => {
|
|
24
|
+
const i = new MessageChannel();
|
|
25
|
+
i.port1.onmessage = (n) => {
|
|
26
|
+
if (!n || !n.data)
|
|
27
|
+
return i.port1.close(), i.port2.close(), o(
|
|
28
28
|
new Error(
|
|
29
29
|
this._side + " received message but response can not be interpreted"
|
|
30
30
|
)
|
|
31
31
|
);
|
|
32
|
-
let
|
|
32
|
+
let c;
|
|
33
33
|
try {
|
|
34
|
-
|
|
35
|
-
} catch (
|
|
36
|
-
return
|
|
34
|
+
c = JSON.parse(n.data);
|
|
35
|
+
} catch (a) {
|
|
36
|
+
return i.port1.close(), i.port2.close(), this._prepareError(a), o(a);
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
c.error ? o(c.error) : c.result !== void 0 ? r(c.result) : r(void 0), i.port1.close(), i.port2.close();
|
|
39
39
|
};
|
|
40
|
-
let
|
|
40
|
+
let g = "";
|
|
41
41
|
try {
|
|
42
|
-
|
|
42
|
+
g = JSON.stringify({ message: e, args: s });
|
|
43
43
|
} catch {
|
|
44
|
-
return
|
|
44
|
+
return o(
|
|
45
45
|
new Error(
|
|
46
46
|
this._side + ": can not create command because it is not JSON.stringify able"
|
|
47
47
|
)
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
if (!this._outgoingMessageBus)
|
|
51
|
-
return
|
|
52
|
-
this._outgoingMessageBus.postMessage(
|
|
53
|
-
|
|
51
|
+
return o(new Error(this._side + ": outgoing bus not set yet"));
|
|
52
|
+
this._outgoingMessageBus.postMessage(g, "*", [
|
|
53
|
+
i.port2
|
|
54
54
|
]);
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
_handleMessage(
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
57
|
+
_handleMessage(e) {
|
|
58
|
+
const s = e.ports && Array.isArray(e.ports) && e.ports.length > 0 ? e.ports[0] : null;
|
|
59
|
+
if (e.data && s)
|
|
60
60
|
try {
|
|
61
|
-
const
|
|
61
|
+
const r = JSON.parse(e.data);
|
|
62
62
|
if (!this._execMessage)
|
|
63
|
-
return
|
|
63
|
+
return s.postMessage(
|
|
64
64
|
JSON.stringify({
|
|
65
65
|
error: this._side + " is not ready to handle messages"
|
|
66
66
|
})
|
|
67
67
|
);
|
|
68
|
-
Array.isArray(
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
68
|
+
Array.isArray(r.args) || (r.args = [r.args]);
|
|
69
|
+
const o = this._execMessage(r, e);
|
|
70
|
+
if (o === void 0)
|
|
71
71
|
return;
|
|
72
|
-
|
|
73
|
-
(
|
|
74
|
-
let
|
|
75
|
-
typeof
|
|
76
|
-
JSON.stringify({ error:
|
|
77
|
-
) :
|
|
78
|
-
JSON.stringify({ result: a })
|
|
79
|
-
) : e.postMessage(
|
|
72
|
+
o.then(
|
|
73
|
+
(i = {}) => {
|
|
74
|
+
let g, n;
|
|
75
|
+
typeof i == "object" && i !== null && (g = i.error, n = i.result), g ? s.postMessage(
|
|
76
|
+
JSON.stringify({ error: g })
|
|
77
|
+
) : n !== void 0 ? s.postMessage(
|
|
80
78
|
JSON.stringify({ result: n })
|
|
79
|
+
) : s.postMessage(
|
|
80
|
+
JSON.stringify({ result: i })
|
|
81
81
|
);
|
|
82
82
|
},
|
|
83
|
-
(
|
|
84
|
-
|
|
83
|
+
(i) => {
|
|
84
|
+
s.postMessage(
|
|
85
85
|
JSON.stringify({
|
|
86
|
-
error: this._prepareError(
|
|
86
|
+
error: this._prepareError(i)
|
|
87
87
|
})
|
|
88
88
|
);
|
|
89
89
|
}
|
|
90
90
|
);
|
|
91
|
-
} catch (
|
|
92
|
-
|
|
91
|
+
} catch (r) {
|
|
92
|
+
s.postMessage(
|
|
93
93
|
JSON.stringify({
|
|
94
|
-
error: this._prepareError(
|
|
94
|
+
error: this._prepareError(r)
|
|
95
95
|
})
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
_prepareError(
|
|
100
|
-
if (typeof
|
|
101
|
-
const
|
|
102
|
-
return console.error(
|
|
99
|
+
_prepareError(e) {
|
|
100
|
+
if (typeof e == "string") {
|
|
101
|
+
const s = this._side + ": " + e;
|
|
102
|
+
return console.error(s), s;
|
|
103
103
|
}
|
|
104
|
-
return
|
|
104
|
+
return e.message = this._side + ": " + e.message, console.error(e), e.message;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
const p = ".", E = {
|
|
108
108
|
REQUEST_BOOT: "requestBoot",
|
|
109
109
|
SETUP: "setup",
|
|
110
110
|
WEBSITE_READY: "websiteReady"
|
|
111
|
-
},
|
|
112
|
-
|
|
113
|
-
RETURN_METHODS: "returnMethods",
|
|
114
|
-
REGISTER_CUSTOM_VIEW: "registerCustomView",
|
|
115
|
-
REGISTER_CUSTOM_VIEW_DONE: "registerCustomViewDone"
|
|
116
|
-
}, U = async (r, s) => {
|
|
117
|
-
if (typeof r != "string")
|
|
111
|
+
}, D = async (t, e) => {
|
|
112
|
+
if (typeof t != "string")
|
|
118
113
|
throw new Error(
|
|
119
|
-
'Configurator ID is not a string type: "' + typeof
|
|
114
|
+
'Configurator ID is not a string type: "' + typeof t + '"'
|
|
120
115
|
);
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
apiKey:
|
|
124
|
-
currentTenant:
|
|
116
|
+
const s = e.customApiUrl ? e.customApiUrl : "https://api.roomle.com/v2", r = e.overrideTenant || 9, o = s + "/configurators/" + t, i = "roomle_portal_v2", g = "03-" + window.btoa((/* @__PURE__ */ new Date()).toISOString() + ";anonymous;" + i), n = () => {
|
|
117
|
+
const u = {
|
|
118
|
+
apiKey: i,
|
|
119
|
+
currentTenant: r,
|
|
125
120
|
locale: "en",
|
|
126
121
|
language: "en",
|
|
127
122
|
device: 1,
|
|
128
|
-
token:
|
|
123
|
+
token: g,
|
|
129
124
|
platform: "web"
|
|
130
125
|
};
|
|
131
|
-
return new Headers(
|
|
132
|
-
},
|
|
126
|
+
return new Headers(u);
|
|
127
|
+
}, c = new Request(o, {
|
|
133
128
|
method: "GET",
|
|
134
|
-
headers:
|
|
129
|
+
headers: n(),
|
|
135
130
|
mode: "cors",
|
|
136
131
|
cache: "default"
|
|
137
|
-
}),
|
|
138
|
-
return
|
|
139
|
-
},
|
|
132
|
+
}), a = await fetch(c), { configurator: f } = await a.json();
|
|
133
|
+
return f;
|
|
134
|
+
}, H = () => {
|
|
140
135
|
try {
|
|
141
136
|
return window.self !== window.top;
|
|
142
137
|
} catch {
|
|
143
138
|
return !0;
|
|
144
139
|
}
|
|
145
|
-
},
|
|
146
|
-
const
|
|
147
|
-
let
|
|
148
|
-
if (
|
|
140
|
+
}, F = ["127.0.0.1", "localhost", "0.0.0.0"], C = () => {
|
|
141
|
+
const t = H();
|
|
142
|
+
let e = window.location.href;
|
|
143
|
+
if (t) {
|
|
149
144
|
if (!document.referrer)
|
|
150
145
|
return null;
|
|
151
|
-
|
|
146
|
+
e = document.referrer;
|
|
152
147
|
}
|
|
153
|
-
const { hostname:
|
|
154
|
-
return
|
|
155
|
-
},
|
|
148
|
+
const { hostname: s } = new URL(e);
|
|
149
|
+
return s;
|
|
150
|
+
}, B = (t) => !!(F.includes(t) || t.endsWith("roomle.com") || t.endsWith("gitlab.io") || t.endsWith("gitlab.com")), A = [
|
|
156
151
|
"language",
|
|
157
152
|
"browserLanguage",
|
|
158
153
|
"userLanguage",
|
|
159
154
|
"systemLanguage"
|
|
160
|
-
],
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
163
|
-
return
|
|
164
|
-
if (Array.isArray(
|
|
165
|
-
return
|
|
166
|
-
for (let
|
|
167
|
-
const
|
|
168
|
-
if (
|
|
169
|
-
return
|
|
155
|
+
], U = (t = null) => {
|
|
156
|
+
const e = window.navigator;
|
|
157
|
+
if (t)
|
|
158
|
+
return t.substr(0, 2);
|
|
159
|
+
if (Array.isArray(e.languages) && e.languages.length > 0)
|
|
160
|
+
return e.languages[0].substr(0, 2);
|
|
161
|
+
for (let s = 0, r = A.length; s < r; s++) {
|
|
162
|
+
const o = e[A[s]];
|
|
163
|
+
if (o)
|
|
164
|
+
return o.substr(0, 2);
|
|
170
165
|
}
|
|
171
166
|
return "en";
|
|
172
|
-
},
|
|
173
|
-
const
|
|
174
|
-
return
|
|
175
|
-
},
|
|
176
|
-
for (const
|
|
167
|
+
}, k = (t, e) => {
|
|
168
|
+
const s = JSON.parse(JSON.stringify(t));
|
|
169
|
+
return O(s, e);
|
|
170
|
+
}, O = (t, e) => {
|
|
171
|
+
for (const s in e)
|
|
177
172
|
try {
|
|
178
|
-
s
|
|
173
|
+
e[s].constructor === Object ? t[s] = O(t[s], e[s]) : t[s] = e[s];
|
|
179
174
|
} catch {
|
|
180
|
-
|
|
175
|
+
t[s] = e[s];
|
|
181
176
|
}
|
|
182
|
-
return
|
|
177
|
+
return t;
|
|
183
178
|
};
|
|
184
|
-
var
|
|
185
|
-
const
|
|
179
|
+
var x = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1 };
|
|
180
|
+
const W = {
|
|
186
181
|
mobileLandscape: !0,
|
|
187
182
|
floorMaterialRootTag: "materials_root",
|
|
188
183
|
buttons: {
|
|
@@ -203,226 +198,146 @@ const $ = {
|
|
|
203
198
|
mocAr: !0
|
|
204
199
|
},
|
|
205
200
|
rotationSnapDegrees: 10
|
|
206
|
-
},
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
)),
|
|
210
|
-
if (!
|
|
201
|
+
}, G = "(idle)", J = (t) => (w(t), t != null && t.customApiUrl && (t.customApiUrl = decodeURIComponent(t.customApiUrl)), t.shareUrl && (t.deeplink = t.shareUrl.replace(
|
|
202
|
+
z,
|
|
203
|
+
Y
|
|
204
|
+
)), t), w = (t) => {
|
|
205
|
+
if (!t)
|
|
211
206
|
return;
|
|
212
|
-
const
|
|
213
|
-
for (const
|
|
214
|
-
const
|
|
215
|
-
if (!Array.isArray(
|
|
216
|
-
for (const
|
|
217
|
-
|
|
218
|
-
(
|
|
207
|
+
const e = Object.keys(t);
|
|
208
|
+
for (const s of e) {
|
|
209
|
+
const r = t[s];
|
|
210
|
+
if (!Array.isArray(r) && typeof r == "object" && r !== null && w(r), Array.isArray(r))
|
|
211
|
+
for (const o of r)
|
|
212
|
+
w(o);
|
|
213
|
+
(r === "true" || r === "false") && (t[s] = r === "true");
|
|
219
214
|
}
|
|
220
|
-
},
|
|
221
|
-
|
|
222
|
-
const
|
|
223
|
-
return !
|
|
224
|
-
},
|
|
225
|
-
const
|
|
226
|
-
|
|
215
|
+
}, V = (t, e) => {
|
|
216
|
+
e.configuratorId = t.id;
|
|
217
|
+
const s = t.settings || {};
|
|
218
|
+
return !e.overrideTenant && t.tenant && (e.overrideTenant = t.tenant), k(s, e);
|
|
219
|
+
}, $ = () => {
|
|
220
|
+
const t = {
|
|
221
|
+
...W
|
|
227
222
|
};
|
|
228
|
-
|
|
229
|
-
const
|
|
230
|
-
return
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
c(this, "_messageHandler", null);
|
|
235
|
-
c(this, "isSetupDone", !1);
|
|
236
|
-
c(this, "viewName", "main");
|
|
237
|
-
c(this, "plugins", {});
|
|
238
|
-
c(this, "pluginsLoaded", []);
|
|
239
|
-
c(this, "ui", {
|
|
240
|
-
callbacks: null
|
|
241
|
-
});
|
|
242
|
-
c(this, "extended", {
|
|
243
|
-
callbacks: null
|
|
244
|
-
});
|
|
245
|
-
c(this, "configurator", {
|
|
246
|
-
callbacks: null
|
|
247
|
-
});
|
|
248
|
-
c(this, "analytics", {
|
|
249
|
-
callbacks: {}
|
|
250
|
-
});
|
|
251
|
-
c(this, "global", {
|
|
252
|
-
callbacks: {}
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
setMessageHandler(s) {
|
|
256
|
-
this._messageHandler = s;
|
|
257
|
-
}
|
|
258
|
-
handleSetup(s) {
|
|
259
|
-
const { methods: e, callbacks: o } = s;
|
|
260
|
-
e.forEach((t) => {
|
|
261
|
-
const n = t.split(p), l = n[0], a = n[1];
|
|
262
|
-
this[l] || (this[l] = {}), this[l][a] = (function() {
|
|
263
|
-
if (!this._messageHandler) {
|
|
264
|
-
console.error("MessageHandler not set");
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
return this._messageHandler.sendMessage(t, [...arguments]);
|
|
268
|
-
}).bind(this);
|
|
269
|
-
}), o.forEach((t) => {
|
|
270
|
-
const n = t.split(p), l = n[0], a = n[1], i = n[2];
|
|
271
|
-
this[l] || (this[l] = {}), this[l][a] || (this[l][a] = {}), this[l][a][i] = () => {
|
|
272
|
-
};
|
|
273
|
-
}), this.isSetupDone = !0;
|
|
274
|
-
}
|
|
275
|
-
executeMessage({ message: s, args: e }) {
|
|
276
|
-
const o = s.split(p), t = o[0], n = o[1], l = o.length === 3 ? o[2] : null;
|
|
277
|
-
if (l && this[t][n][l]) {
|
|
278
|
-
const a = this[t][n][l](
|
|
279
|
-
...e
|
|
280
|
-
);
|
|
281
|
-
return a instanceof Promise ? a.then((i) => ({ result: i })) : a !== void 0 ? Promise.resolve({ result: a }) : Promise.resolve({ result: null });
|
|
282
|
-
}
|
|
283
|
-
return Promise.reject('Message "' + s + '" is unkown');
|
|
284
|
-
}
|
|
285
|
-
setupPlugins(s, e, o = "website") {
|
|
286
|
-
for (const t of s)
|
|
287
|
-
typeof t == "string" && t === "dragIn" ? this.pluginsLoaded.push(
|
|
288
|
-
new Promise((n, l) => {
|
|
289
|
-
try {
|
|
290
|
-
import("./drag-in-CXPjCiN1.mjs").then(
|
|
291
|
-
({ DragIn: a }) => {
|
|
292
|
-
const i = new a(e, o);
|
|
293
|
-
i.setInstance(this.ui), i.setViewName(this.viewName), this.plugins.dragIn = i, n();
|
|
294
|
-
}
|
|
295
|
-
);
|
|
296
|
-
} catch (a) {
|
|
297
|
-
l(a);
|
|
298
|
-
}
|
|
299
|
-
})
|
|
300
|
-
) : t.name && t.loader && this.pluginsLoaded.push(
|
|
301
|
-
new Promise((n, l) => {
|
|
302
|
-
try {
|
|
303
|
-
t.loader().then((a) => {
|
|
304
|
-
const i = new a(e, o);
|
|
305
|
-
i.setInstance(this.ui), i.setViewName(this.viewName), this.plugins[t.name] = i, n();
|
|
306
|
-
});
|
|
307
|
-
} catch (a) {
|
|
308
|
-
l(a);
|
|
309
|
-
}
|
|
310
|
-
})
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
const A = () => {
|
|
315
|
-
let r, s;
|
|
316
|
-
return { promise: new Promise((o, t) => {
|
|
317
|
-
r = o, s = t;
|
|
318
|
-
}), resolve: r, reject: s };
|
|
319
|
-
}, N = (r, s, e) => {
|
|
320
|
-
let o = null;
|
|
321
|
-
Object.defineProperty(r, s, {
|
|
223
|
+
t.locale || (t.locale = U()), t.id === G && delete t.id;
|
|
224
|
+
const e = C();
|
|
225
|
+
return e && B(e) && (t.configuratorId = "demoConfigurator"), t.customApiUrl = x.VITE_RAPI_URL, t.emails = !1, t;
|
|
226
|
+
}, z = "<CONF_ID>", Y = "#CONFIGURATIONID#", L = () => /(android)/i.test(navigator.userAgent), R = (t, e, s) => {
|
|
227
|
+
let r = null;
|
|
228
|
+
Object.defineProperty(t, e, {
|
|
322
229
|
get() {
|
|
323
|
-
return
|
|
230
|
+
return r || s;
|
|
324
231
|
},
|
|
325
|
-
set(
|
|
326
|
-
|
|
232
|
+
set(o) {
|
|
233
|
+
o != null && o.mute ? r = o.value : (console.warn(
|
|
327
234
|
"You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"
|
|
328
|
-
), console.warn("{ mute: true, value: () => void }"),
|
|
235
|
+
), console.warn("{ mute: true, value: () => void }"), r = o);
|
|
329
236
|
}
|
|
330
237
|
});
|
|
331
|
-
},
|
|
332
|
-
|
|
333
|
-
() =>
|
|
238
|
+
}, T = () => window.innerHeight * 0.01 + "px", b = (t) => {
|
|
239
|
+
t && setTimeout(
|
|
240
|
+
() => t.style.setProperty(y, T()),
|
|
334
241
|
0
|
|
335
242
|
);
|
|
336
|
-
},
|
|
243
|
+
}, S = "rml-styles", q = 450, y = "--rml-full-height", d = {
|
|
337
244
|
CONTAINER: "rml-container",
|
|
338
245
|
FILL: "rml-fill",
|
|
339
246
|
POSITION: "rml-pos",
|
|
340
247
|
TRANSITION: "rml-transition",
|
|
341
248
|
ANDROID_HEIGHT: "rml-android-height",
|
|
342
249
|
OVERFLOW_HIDDEN: "rml-overflow-hidden"
|
|
343
|
-
},
|
|
344
|
-
class
|
|
345
|
-
constructor(e,
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
250
|
+
}, I = /* @__PURE__ */ new Map();
|
|
251
|
+
class Q {
|
|
252
|
+
constructor(e, s, r, o, i) {
|
|
253
|
+
l(this, "ui", {
|
|
254
|
+
callbacks: null
|
|
255
|
+
});
|
|
256
|
+
l(this, "extended", {
|
|
257
|
+
callbacks: null
|
|
258
|
+
});
|
|
259
|
+
l(this, "configurator", {
|
|
260
|
+
callbacks: null
|
|
261
|
+
});
|
|
262
|
+
l(this, "analytics", {
|
|
263
|
+
callbacks: {}
|
|
264
|
+
});
|
|
265
|
+
l(this, "global", {
|
|
266
|
+
callbacks: {}
|
|
267
|
+
});
|
|
268
|
+
l(this, "plugins", {});
|
|
269
|
+
l(this, "_waitForIframe");
|
|
270
|
+
l(this, "_container");
|
|
271
|
+
l(this, "_messageHandler");
|
|
272
|
+
l(this, "_configuratorSettings");
|
|
273
|
+
l(this, "_initData", {});
|
|
274
|
+
l(this, "_iframe");
|
|
275
|
+
l(this, "pluginsLoaded", []);
|
|
352
276
|
if (!e || typeof e.id != "string")
|
|
353
277
|
throw new Error(
|
|
354
278
|
"Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person"
|
|
355
279
|
);
|
|
356
|
-
if (
|
|
280
|
+
if (I.has(s))
|
|
357
281
|
throw new Error("There is already an instance on this DOM element");
|
|
358
|
-
if (!!!document.getElementById(
|
|
359
|
-
const
|
|
360
|
-
|
|
361
|
-
const f = "transition:all ease-in-out " +
|
|
362
|
-
(
|
|
282
|
+
if (!!!document.getElementById(S)) {
|
|
283
|
+
const c = r.zIndex || 9999999, a = document.createElement("style");
|
|
284
|
+
a.type = "text/css", a.id = S;
|
|
285
|
+
const f = "transition:all ease-in-out " + q + "ms;", u = ["-webkit-", "-o-"].reduce(
|
|
286
|
+
(m, _) => m += _ + f,
|
|
363
287
|
""
|
|
364
|
-
) + f,
|
|
365
|
-
|
|
366
|
-
.${
|
|
367
|
-
.${
|
|
368
|
-
.${
|
|
369
|
-
.${
|
|
370
|
-
.${
|
|
371
|
-
.${
|
|
372
|
-
`, document.head.appendChild(
|
|
288
|
+
) + f, h = T();
|
|
289
|
+
a.innerHTML = `
|
|
290
|
+
.${d.CONTAINER}{${y}:${h};}
|
|
291
|
+
.${d.POSITION}{position:fixed;top:0;left:0;z-index:${c};opacity:0}
|
|
292
|
+
.${d.TRANSITION}{${u}}
|
|
293
|
+
.${d.FILL}{width:100%;height:100%;opacity:1}
|
|
294
|
+
.${d.ANDROID_HEIGHT}{height:calc(var(${y},1vh)*100)}
|
|
295
|
+
.${d.OVERFLOW_HIDDEN}{overflow:hidden}
|
|
296
|
+
`, document.head.appendChild(a);
|
|
373
297
|
}
|
|
374
|
-
this.
|
|
375
|
-
const
|
|
298
|
+
this._onResize = this._onResize.bind(this), L() && window.addEventListener("resize", this._onResize), this._container = s, this._initData = r, this._configuratorSettings = e;
|
|
299
|
+
const n = this._createIframe();
|
|
300
|
+
this._onUseFullPage = this._onUseFullPage.bind(this), this._executeMessage = this._executeMessage.bind(this), this._onBackToWebsite = this._onBackToWebsite.bind(this), this._messageHandler = new P(
|
|
376
301
|
"website",
|
|
377
302
|
window,
|
|
378
303
|
null,
|
|
379
304
|
this._executeMessage
|
|
380
|
-
);
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
305
|
+
), this._waitForIframe = i, this._container.appendChild(n), this._iframe = n;
|
|
306
|
+
for (const c of o)
|
|
307
|
+
typeof c == "string" && c === "dragIn" ? this.pluginsLoaded.push(
|
|
308
|
+
new Promise((a, f) => {
|
|
309
|
+
try {
|
|
310
|
+
import("./drag-in-DC-05b4s.mjs").then(
|
|
311
|
+
({ DragIn: u }) => {
|
|
312
|
+
const h = new u(this._iframe);
|
|
313
|
+
h.setInstance(this.ui), this.plugins.dragIn = h, a();
|
|
314
|
+
}
|
|
315
|
+
);
|
|
316
|
+
} catch (u) {
|
|
317
|
+
f(u);
|
|
318
|
+
}
|
|
319
|
+
})
|
|
320
|
+
) : c.name && c.loader && this.pluginsLoaded.push(
|
|
321
|
+
new Promise((a, f) => {
|
|
322
|
+
try {
|
|
323
|
+
c.loader().then((u) => {
|
|
324
|
+
const h = new u(this._iframe);
|
|
325
|
+
h.setInstance(this.ui), this.plugins[c.name] = h, a();
|
|
326
|
+
});
|
|
327
|
+
} catch (u) {
|
|
328
|
+
f(u);
|
|
329
|
+
}
|
|
330
|
+
})
|
|
331
|
+
);
|
|
332
|
+
I.set(s, !0);
|
|
384
333
|
}
|
|
385
|
-
static createPlanner(e,
|
|
334
|
+
static createPlanner(e, s, r, o = []) {
|
|
386
335
|
return this._create(
|
|
387
336
|
e,
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
);
|
|
392
|
-
}
|
|
393
|
-
static async connect(e, o = []) {
|
|
394
|
-
const t = new T();
|
|
395
|
-
t.viewName = e;
|
|
396
|
-
const { resolve: n, promise: l } = A(), { resolve: a, promise: i } = A(), d = ({
|
|
397
|
-
message: f,
|
|
398
|
-
args: m
|
|
399
|
-
}) => {
|
|
400
|
-
if (f === _.REGISTER_CUSTOM_VIEW_DONE) {
|
|
401
|
-
n();
|
|
402
|
-
return;
|
|
403
|
-
}
|
|
404
|
-
if (f === _.RETURN_METHODS) {
|
|
405
|
-
t.handleSetup(m[0]), a();
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
if (t.isSetupDone)
|
|
409
|
-
return t.executeMessage({ message: f, args: m });
|
|
410
|
-
}, g = new y(
|
|
411
|
-
"custom-view",
|
|
412
|
-
window,
|
|
413
|
-
window.parent,
|
|
414
|
-
d
|
|
337
|
+
s,
|
|
338
|
+
r,
|
|
339
|
+
o
|
|
415
340
|
);
|
|
416
|
-
t.setMessageHandler(g);
|
|
417
|
-
const h = [e];
|
|
418
|
-
return g.sendMessage(
|
|
419
|
-
_.REGISTER_CUSTOM_VIEW,
|
|
420
|
-
h
|
|
421
|
-
), await l, g.sendMessage(_.GET_METHODS, h), await i, t.setupPlugins(
|
|
422
|
-
o,
|
|
423
|
-
document.body,
|
|
424
|
-
"custom-view"
|
|
425
|
-
), await Promise.allSettled(t.pluginsLoaded), t;
|
|
426
341
|
}
|
|
427
342
|
/**
|
|
428
343
|
* Method to create a new instance of a Roomle Configurator
|
|
@@ -430,12 +345,12 @@ class ee extends T {
|
|
|
430
345
|
* @param container DOM container in which the configurator should be placed
|
|
431
346
|
* @param initData settings with which the configurator should be started
|
|
432
347
|
*/
|
|
433
|
-
static createConfigurator(e,
|
|
348
|
+
static createConfigurator(e, s, r, o = []) {
|
|
434
349
|
return this._create(
|
|
435
350
|
e,
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
351
|
+
s,
|
|
352
|
+
r,
|
|
353
|
+
o
|
|
439
354
|
);
|
|
440
355
|
}
|
|
441
356
|
/**
|
|
@@ -445,12 +360,12 @@ class ee extends T {
|
|
|
445
360
|
* @param container DOM container in which the configurator should be placed
|
|
446
361
|
* @param initData settings with which the configurator should be started
|
|
447
362
|
*/
|
|
448
|
-
static create(e,
|
|
363
|
+
static create(e, s, r, o) {
|
|
449
364
|
return this._create(
|
|
450
365
|
e,
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
366
|
+
s,
|
|
367
|
+
r,
|
|
368
|
+
o
|
|
454
369
|
);
|
|
455
370
|
}
|
|
456
371
|
/**
|
|
@@ -459,80 +374,100 @@ class ee extends T {
|
|
|
459
374
|
* @param container DOM container in which the configurator should be placed
|
|
460
375
|
* @param initData settings with which the configurator should be started
|
|
461
376
|
*/
|
|
462
|
-
static createViewer(e,
|
|
377
|
+
static createViewer(e, s, r, o = []) {
|
|
463
378
|
return this._create(
|
|
464
379
|
e,
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
380
|
+
s,
|
|
381
|
+
r,
|
|
382
|
+
o
|
|
468
383
|
);
|
|
469
384
|
}
|
|
470
|
-
static async _create(e,
|
|
471
|
-
return new Promise(async (
|
|
385
|
+
static async _create(e, s, r, o) {
|
|
386
|
+
return new Promise(async (i, g) => {
|
|
472
387
|
try {
|
|
473
|
-
const
|
|
474
|
-
|
|
475
|
-
|
|
388
|
+
const n = O(
|
|
389
|
+
$(),
|
|
390
|
+
J(r)
|
|
476
391
|
);
|
|
477
|
-
|
|
478
|
-
const
|
|
392
|
+
n.featureFlags || (n.featureFlags = {}), typeof n.featureFlags.realPartList != "boolean" && (n.featureFlags.realPartList = !0), typeof n.featureFlags.globalCallbacks != "boolean" && (n.featureFlags.globalCallbacks = !0), typeof n.featureFlags.mocAr != "boolean" && (n.featureFlags.mocAr = !1);
|
|
393
|
+
const c = await D(
|
|
479
394
|
e,
|
|
480
|
-
|
|
395
|
+
n
|
|
481
396
|
);
|
|
482
|
-
|
|
483
|
-
const
|
|
484
|
-
|
|
397
|
+
r = V(c, n);
|
|
398
|
+
const a = new this(
|
|
399
|
+
c,
|
|
400
|
+
s,
|
|
401
|
+
r,
|
|
485
402
|
o,
|
|
486
|
-
|
|
487
|
-
n,
|
|
488
|
-
l
|
|
403
|
+
i
|
|
489
404
|
);
|
|
490
|
-
return await Promise.allSettled(
|
|
491
|
-
} catch (
|
|
492
|
-
return
|
|
405
|
+
return console.info(a), await Promise.allSettled(a.pluginsLoaded), a;
|
|
406
|
+
} catch (n) {
|
|
407
|
+
return g(n);
|
|
493
408
|
}
|
|
494
409
|
});
|
|
495
410
|
}
|
|
496
411
|
teardown() {
|
|
497
|
-
this._container &&
|
|
412
|
+
this._container && I.delete(this._container);
|
|
498
413
|
const e = this._container.querySelector("iframe");
|
|
499
414
|
e && this._container.removeChild(e), window.removeEventListener("resize", this._onResize);
|
|
500
415
|
}
|
|
501
416
|
_createIframe() {
|
|
502
|
-
var
|
|
417
|
+
var r;
|
|
503
418
|
const e = document.createElement("iframe");
|
|
504
|
-
let
|
|
505
|
-
return this._initData.useLocalRoomle && (
|
|
419
|
+
let s = ((r = this._configuratorSettings) == null ? void 0 : r.url) || "https://www.roomle.com/t/cp/";
|
|
420
|
+
return this._initData.useLocalRoomle && (s = location.href.replace("embedding.html", "")), location.href.includes("roomle.gitlab.io") && (s = location.href.replace("embedding.html", "index.html")), this._initData.overrideServerUrl && (s = this._initData.overrideServerUrl), e.src = s, e.classList.add(d.CONTAINER), e.classList.add(d.FILL), e;
|
|
506
421
|
}
|
|
507
422
|
_onResize() {
|
|
508
|
-
|
|
423
|
+
b(this._iframe);
|
|
509
424
|
}
|
|
510
425
|
_onUseFullPage() {
|
|
511
|
-
this._iframe.classList.add(
|
|
426
|
+
this._iframe.classList.add(d.POSITION), document.documentElement.classList.add(d.OVERFLOW_HIDDEN), window.document.body.classList.add(d.OVERFLOW_HIDDEN), L() && (b(this._iframe), this._iframe.classList.add(d.ANDROID_HEIGHT));
|
|
512
427
|
}
|
|
513
428
|
_onBackToWebsite() {
|
|
514
|
-
this._iframe.classList.remove(
|
|
429
|
+
this._iframe.classList.remove(d.POSITION), this._iframe.classList.remove(d.ANDROID_HEIGHT), document.documentElement.classList.remove(d.OVERFLOW_HIDDEN), window.document.body.classList.remove(d.OVERFLOW_HIDDEN);
|
|
515
430
|
}
|
|
516
|
-
_executeMessage({ message: e, args:
|
|
517
|
-
var
|
|
518
|
-
if (
|
|
519
|
-
return
|
|
431
|
+
_executeMessage({ message: e, args: s }, r) {
|
|
432
|
+
var c;
|
|
433
|
+
if (!r.source || r.source !== ((c = this._iframe) == null ? void 0 : c.contentWindow))
|
|
434
|
+
return;
|
|
435
|
+
if (e === E.REQUEST_BOOT)
|
|
436
|
+
return this._messageHandler.setOutgoingMessageBus(r.source), Promise.resolve({ result: this._initData });
|
|
437
|
+
if (e === E.SETUP) {
|
|
438
|
+
const { methods: a, callbacks: f } = s[0];
|
|
439
|
+
return a.forEach((u) => {
|
|
440
|
+
const h = u.split(p), m = h[0], _ = h[1];
|
|
441
|
+
this[m] || (this[m] = {}), this[m][_] = (function() {
|
|
442
|
+
return this._messageHandler.sendMessage(u, [...arguments]);
|
|
443
|
+
}).bind(this);
|
|
444
|
+
}), f.forEach((u) => {
|
|
445
|
+
const h = u.split(p), m = h[0], _ = h[1], N = h[2];
|
|
446
|
+
this[m] || (this[m] = {}), this[m][_] || (this[m][_] = {}), this[m][_][N] = () => {
|
|
447
|
+
};
|
|
448
|
+
}), R(
|
|
520
449
|
this.ui.callbacks,
|
|
521
450
|
"onUseFullPage",
|
|
522
451
|
this._onUseFullPage
|
|
523
|
-
),
|
|
452
|
+
), R(
|
|
524
453
|
this.ui.callbacks,
|
|
525
454
|
"onBackToWebsite",
|
|
526
455
|
this._onBackToWebsite
|
|
527
|
-
), this._waitForIframe(this), setTimeout(
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
456
|
+
), this._waitForIframe(this), setTimeout(
|
|
457
|
+
() => this._messageHandler.sendMessage(E.WEBSITE_READY),
|
|
458
|
+
0
|
|
459
|
+
), Promise.resolve({ result: null });
|
|
460
|
+
}
|
|
461
|
+
const o = e.split(p), i = o[0], g = o[1], n = o.length === 3 ? o[2] : null;
|
|
462
|
+
if (n && this[i][g][n]) {
|
|
463
|
+
const a = this[i][g][n](
|
|
464
|
+
...s
|
|
465
|
+
);
|
|
466
|
+
return a instanceof Promise ? a.then((f) => ({ result: f })) : a !== void 0 ? Promise.resolve({ result: a }) : Promise.resolve({ result: null });
|
|
467
|
+
}
|
|
468
|
+
return Promise.reject('Message "' + e + '" is unkown');
|
|
534
469
|
}
|
|
535
470
|
}
|
|
536
471
|
export {
|
|
537
|
-
|
|
472
|
+
Q as default
|
|
538
473
|
};
|